用户登录和接口鉴权

This commit is contained in:
2025-09-07 21:13:15 +08:00
parent c4522b974b
commit 565cf3fa6a
380 changed files with 18330 additions and 16854 deletions

View File

@@ -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
}