用户登录和接口鉴权
This commit is contained in:
@@ -10,6 +10,7 @@ import (
|
||||
"git.huangwc.com/pig/pig-farm-controller/internal/config"
|
||||
"git.huangwc.com/pig/pig-farm-controller/internal/logs"
|
||||
"git.huangwc.com/pig/pig-farm-controller/internal/storage/db"
|
||||
"git.huangwc.com/pig/pig-farm-controller/internal/storage/repository"
|
||||
"git.huangwc.com/pig/pig-farm-controller/internal/task"
|
||||
)
|
||||
|
||||
@@ -25,6 +26,9 @@ type Application struct {
|
||||
// TaskExecutor 任务执行器组件实例
|
||||
TaskExecutor *task.Executor
|
||||
|
||||
// UserRepo 用户仓库实例
|
||||
UserRepo repository.UserRepo
|
||||
|
||||
// Config 应用配置
|
||||
Config *config.Config
|
||||
|
||||
@@ -46,8 +50,11 @@ func NewApplication(cfg *config.Config) *Application {
|
||||
// 初始化存储组件
|
||||
store := db.NewStorage(connectionString, maxOpenConns, maxIdleConns, connMaxLifetime)
|
||||
|
||||
// 初始化用户仓库
|
||||
userRepo := repository.NewUserRepo(store.GetDB())
|
||||
|
||||
// 初始化API组件
|
||||
apiInstance := api.NewAPI(cfg)
|
||||
apiInstance := api.NewAPI(cfg, userRepo)
|
||||
|
||||
// 初始化任务执行器组件(使用5个工作协程)
|
||||
taskExecutor := task.NewExecutor(5)
|
||||
@@ -56,6 +63,7 @@ func NewApplication(cfg *config.Config) *Application {
|
||||
Storage: store,
|
||||
API: apiInstance,
|
||||
TaskExecutor: taskExecutor,
|
||||
UserRepo: userRepo,
|
||||
Config: cfg,
|
||||
logger: logs.NewLogger(),
|
||||
}
|
||||
@@ -66,19 +74,19 @@ func NewApplication(cfg *config.Config) *Application {
|
||||
func (app *Application) Start() error {
|
||||
// 启动存储组件
|
||||
if err := app.Storage.Connect(); err != nil {
|
||||
return fmt.Errorf("failed to connect to storage: %v", err)
|
||||
return fmt.Errorf("存储连接失败: %v", err)
|
||||
}
|
||||
app.logger.Info("Storage connected successfully")
|
||||
app.logger.Info("存储连接成功")
|
||||
|
||||
// 启动API组件
|
||||
if err := app.API.Start(); err != nil {
|
||||
return fmt.Errorf("failed to start API: %v", err)
|
||||
return fmt.Errorf("API启动失败: %v", err)
|
||||
}
|
||||
app.logger.Info("API started successfully")
|
||||
app.logger.Info("API启动成功")
|
||||
|
||||
// 启动任务执行器组件
|
||||
app.TaskExecutor.Start()
|
||||
app.logger.Info("Task executor started successfully")
|
||||
app.logger.Info("任务执行器启动成功")
|
||||
|
||||
return nil
|
||||
}
|
||||
@@ -88,18 +96,18 @@ func (app *Application) Start() error {
|
||||
func (app *Application) Stop() error {
|
||||
// 停止API组件
|
||||
if err := app.API.Stop(); err != nil {
|
||||
app.logger.Error(fmt.Sprintf("Failed to stop API: %v", err))
|
||||
app.logger.Error(fmt.Sprintf("API停止失败: %v", err))
|
||||
}
|
||||
|
||||
// 停止任务执行器组件
|
||||
app.TaskExecutor.Stop()
|
||||
app.logger.Info("Task executor stopped successfully")
|
||||
app.logger.Info("任务执行器已停止")
|
||||
|
||||
// 停止存储组件
|
||||
if err := app.Storage.Disconnect(); err != nil {
|
||||
return fmt.Errorf("failed to disconnect from storage: %v", err)
|
||||
return fmt.Errorf("存储断开连接失败: %v", err)
|
||||
}
|
||||
app.logger.Info("Storage disconnected successfully")
|
||||
app.logger.Info("存储断开连接成功")
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user