package module import ( "context" "ssq-desk/internal/api" ) // AuthModule 授权码模块 type AuthModule struct { BaseModule authAPI *api.AuthAPI } // NewAuthModule 创建授权码模块 func NewAuthModule() (*AuthModule, error) { // 延迟初始化,等到 Init() 方法调用时再创建 API(此时数据库已初始化) return &AuthModule{ BaseModule: BaseModule{ name: "auth", api: nil, // 延迟初始化 }, authAPI: nil, // 延迟初始化 }, nil } // Init 初始化模块 func (m *AuthModule) Init(ctx context.Context) error { if m.authAPI == nil { authAPI, err := api.NewAuthAPI() if err != nil { return err } m.authAPI = authAPI m.api = authAPI } return nil } // Start 启动模块(检查授权状态) func (m *AuthModule) Start(ctx context.Context) error { if m.authAPI == nil { return m.Init(ctx) } status, err := m.authAPI.GetAuthStatus() if err == nil { if data, ok := status["data"].(map[string]interface{}); ok && data != nil { if isActivated, ok := data["is_activated"].(bool); ok && !isActivated { println("授权未激活,部分功能可能受限") } else { println("授权验证通过") } } } return nil } // AuthAPI 返回 Auth API(类型安全) func (m *AuthModule) AuthAPI() *api.AuthAPI { return m.authAPI }