diff --git a/api/core/app_server.go b/api/core/app_server.go index 8a1a2f2a..663d77fb 100644 --- a/api/core/app_server.go +++ b/api/core/app_server.go @@ -354,12 +354,12 @@ func needLogin(c *gin.Context) bool { } // 跳过授权 -func (s *AppServer) SkipAuth(url string, prefix bool) { - if prefix { - authConfig.PrefixPaths[url] = false - } else { - authConfig.ExactPaths[url] = false - } +func (s *AppServer) SkipAuth(url string) { + authConfig.ExactPaths[url] = false +} + +func (s *AppServer) SkipAuthPrefix(url string) { + authConfig.PrefixPaths[url] = false } // 统一参数处理 diff --git a/api/handler/admin/admin_handler.go b/api/handler/admin/admin_handler.go index f4677723..ba538b66 100644 --- a/api/handler/admin/admin_handler.go +++ b/api/handler/admin/admin_handler.go @@ -45,6 +45,19 @@ func NewAdminHandler(app *core.AppServer, db *gorm.DB, client *redis.Client, cap } } +// RegisterRoutes 注册路由 +func (h *ManagerHandler) RegisterRoutes() { + group := h.App.Engine.Group("/api/admin/") + group.POST("login", h.Login) + group.GET("logout", h.Logout) + group.GET("session", h.Session) + group.GET("list", h.List) + group.POST("save", h.Save) + group.POST("enable", h.Enable) + group.GET("remove", h.Remove) + group.POST("resetPass", h.ResetPass) +} + // Login 登录 func (h *ManagerHandler) Login(c *gin.Context) { var data struct { diff --git a/api/handler/admin/api_key_handler.go b/api/handler/admin/api_key_handler.go index 8daa0990..d43a933d 100644 --- a/api/handler/admin/api_key_handler.go +++ b/api/handler/admin/api_key_handler.go @@ -30,6 +30,15 @@ func NewApiKeyHandler(app *core.AppServer, db *gorm.DB) *ApiKeyHandler { return &ApiKeyHandler{BaseHandler: handler.BaseHandler{DB: db, App: app}} } +// RegisterRoutes 注册路由 +func (h *ApiKeyHandler) RegisterRoutes() { + group := h.App.Engine.Group("/api/admin/apikey/") + group.POST("save", h.Save) + group.GET("list", h.List) + group.POST("set", h.Set) + group.GET("remove", h.Remove) +} + func (h *ApiKeyHandler) Save(c *gin.Context) { var data struct { Id uint `json:"id"` diff --git a/api/handler/admin/chat_app_handler.go b/api/handler/admin/chat_app_handler.go index 6763a694..2d6ea8d4 100644 --- a/api/handler/admin/chat_app_handler.go +++ b/api/handler/admin/chat_app_handler.go @@ -30,6 +30,16 @@ func NewChatAppHandler(app *core.AppServer, db *gorm.DB) *ChatAppHandler { return &ChatAppHandler{BaseHandler: handler.BaseHandler{App: app, DB: db}} } +// RegisterRoutes 注册路由 +func (h *ChatAppHandler) RegisterRoutes() { + group := h.App.Engine.Group("/api/admin/role/") + group.GET("list", h.List) + group.POST("save", h.Save) + group.POST("sort", h.Sort) + group.POST("set", h.Set) + group.GET("remove", h.Remove) +} + // Save 创建或者更新某个角色 func (h *ChatAppHandler) Save(c *gin.Context) { var data vo.ChatRole diff --git a/api/handler/admin/chat_app_type_handler.go b/api/handler/admin/chat_app_type_handler.go index d842a279..8efd63c0 100644 --- a/api/handler/admin/chat_app_type_handler.go +++ b/api/handler/admin/chat_app_type_handler.go @@ -20,6 +20,16 @@ func NewChatAppTypeHandler(app *core.AppServer, db *gorm.DB) *ChatAppTypeHandler return &ChatAppTypeHandler{BaseHandler: handler.BaseHandler{App: app, DB: db}} } +// RegisterRoutes 注册路由 +func (h *ChatAppTypeHandler) RegisterRoutes() { + group := h.App.Engine.Group("/api/admin/app/type") + group.POST("save", h.Save) + group.GET("list", h.List) + group.GET("remove", h.Remove) + group.POST("enable", h.Enable) + group.POST("sort", h.Sort) +} + // Save 创建或更新App类型 func (h *ChatAppTypeHandler) Save(c *gin.Context) { var data struct { diff --git a/api/handler/admin/chat_handler.go b/api/handler/admin/chat_handler.go index f99defa6..fcd761c2 100644 --- a/api/handler/admin/chat_handler.go +++ b/api/handler/admin/chat_handler.go @@ -28,6 +28,16 @@ func NewChatHandler(app *core.AppServer, db *gorm.DB) *ChatHandler { return &ChatHandler{BaseHandler: handler.BaseHandler{App: app, DB: db}} } +// RegisterRoutes 注册路由 +func (h *ChatHandler) RegisterRoutes() { + group := h.App.Engine.Group("/api/admin/chat/") + group.POST("list", h.List) + group.POST("message", h.Messages) + group.GET("history", h.History) + group.GET("remove", h.RemoveChat) + group.GET("message/remove", h.RemoveMessage) +} + type chatItemVo struct { Username string `json:"username"` UserId uint `json:"user_id"` diff --git a/api/handler/admin/chat_model_handler.go b/api/handler/admin/chat_model_handler.go index 471e8f08..64a5ed97 100644 --- a/api/handler/admin/chat_model_handler.go +++ b/api/handler/admin/chat_model_handler.go @@ -28,6 +28,16 @@ func NewChatModelHandler(app *core.AppServer, db *gorm.DB) *ChatModelHandler { return &ChatModelHandler{BaseHandler: handler.BaseHandler{App: app, DB: db}} } +// RegisterRoutes 注册路由 +func (h *ChatModelHandler) RegisterRoutes() { + group := h.App.Engine.Group("/api/admin/model/") + group.POST("save", h.Save) + group.GET("list", h.List) + group.POST("set", h.Set) + group.POST("sort", h.Sort) + group.GET("remove", h.Remove) +} + func (h *ChatModelHandler) Save(c *gin.Context) { var data struct { Id uint `json:"id"` diff --git a/api/handler/admin/config_handler.go b/api/handler/admin/config_handler.go index 76d9ce73..fa940fde 100644 --- a/api/handler/admin/config_handler.go +++ b/api/handler/admin/config_handler.go @@ -36,6 +36,16 @@ func NewConfigHandler(app *core.AppServer, db *gorm.DB, levelDB *store.LevelDB, } } +// RegisterRoutes 注册路由 +func (h *ConfigHandler) RegisterRoutes() { + group := h.App.Engine.Group("/api/admin/config") + group.POST("update", h.Update) + group.GET("get", h.Get) + group.POST("active", h.Active) + group.GET("fixData", h.FixData) + group.GET("license", h.GetLicense) +} + func (h *ConfigHandler) Update(c *gin.Context) { var data struct { Key string `json:"key"` diff --git a/api/handler/admin/dashboard_handler.go b/api/handler/admin/dashboard_handler.go index 2ce5d34e..283ec65d 100644 --- a/api/handler/admin/dashboard_handler.go +++ b/api/handler/admin/dashboard_handler.go @@ -27,6 +27,12 @@ func NewDashboardHandler(app *core.AppServer, db *gorm.DB) *DashboardHandler { return &DashboardHandler{BaseHandler: handler.BaseHandler{App: app, DB: db}} } +// RegisterRoutes 注册路由 +func (h *DashboardHandler) RegisterRoutes() { + group := h.App.Engine.Group("/api/admin/dashboard/") + group.GET("stats", h.Stats) +} + type statsVo struct { Users int64 `json:"users"` Chats int64 `json:"chats"` diff --git a/api/handler/admin/function_handler.go b/api/handler/admin/function_handler.go index 90af01e7..8ff452ce 100644 --- a/api/handler/admin/function_handler.go +++ b/api/handler/admin/function_handler.go @@ -30,6 +30,16 @@ func NewFunctionHandler(app *core.AppServer, db *gorm.DB) *FunctionHandler { return &FunctionHandler{BaseHandler: handler.BaseHandler{App: app, DB: db}} } +// RegisterRoutes 注册路由 +func (h *FunctionHandler) RegisterRoutes() { + group := h.App.Engine.Group("/api/admin/function/") + group.POST("save", h.Save) + group.POST("set", h.Set) + group.GET("list", h.List) + group.GET("remove", h.Remove) + group.GET("token", h.GenToken) +} + func (h *FunctionHandler) Save(c *gin.Context) { var data vo.Function if err := c.ShouldBindJSON(&data); err != nil { diff --git a/api/handler/admin/image_handler.go b/api/handler/admin/image_handler.go index f1737435..56467bbd 100644 --- a/api/handler/admin/image_handler.go +++ b/api/handler/admin/image_handler.go @@ -33,6 +33,15 @@ func NewImageHandler(app *core.AppServer, db *gorm.DB, userService *service.User return &ImageHandler{BaseHandler: handler.BaseHandler{App: app, DB: db}, userService: userService, uploader: manager} } +// RegisterRoutes 注册路由 +func (h *ImageHandler) RegisterRoutes() { + group := h.App.Engine.Group("/api/admin/image") + group.POST("/list/mj", h.MjList) + group.POST("/list/sd", h.SdList) + group.POST("/list/dall", h.DallList) + group.GET("/remove", h.Remove) +} + type imageQuery struct { Prompt string `json:"prompt"` Username string `json:"username"` diff --git a/api/handler/admin/media_handler.go b/api/handler/admin/media_handler.go index da18ddfa..0efbf711 100644 --- a/api/handler/admin/media_handler.go +++ b/api/handler/admin/media_handler.go @@ -33,6 +33,14 @@ func NewMediaHandler(app *core.AppServer, db *gorm.DB, userService *service.User return &MediaHandler{BaseHandler: handler.BaseHandler{App: app, DB: db}, userService: userService, uploader: manager} } +// RegisterRoutes 注册路由 +func (h *MediaHandler) RegisterRoutes() { + group := h.App.Engine.Group("/api/admin/media") + group.POST("/suno", h.SunoList) + group.POST("/videos", h.Videos) + group.GET("/remove", h.Remove) +} + type mediaQuery struct { Type string `json:"type"` // 任务类型 luma, keling Prompt string `json:"prompt"` diff --git a/api/handler/admin/menu_handler.go b/api/handler/admin/menu_handler.go index d5b45e40..e7f2b4ab 100644 --- a/api/handler/admin/menu_handler.go +++ b/api/handler/admin/menu_handler.go @@ -27,6 +27,16 @@ func NewMenuHandler(app *core.AppServer, db *gorm.DB) *MenuHandler { return &MenuHandler{BaseHandler: handler.BaseHandler{App: app, DB: db}} } +// RegisterRoutes 注册路由 +func (h *MenuHandler) RegisterRoutes() { + group := h.App.Engine.Group("/api/admin/menu/") + group.POST("save", h.Save) + group.GET("list", h.List) + group.POST("enable", h.Enable) + group.POST("sort", h.Sort) + group.GET("remove", h.Remove) +} + func (h *MenuHandler) Save(c *gin.Context) { var data struct { Id uint `json:"id"` diff --git a/api/handler/admin/order_handler.go b/api/handler/admin/order_handler.go index cc69753e..bebe0f2b 100644 --- a/api/handler/admin/order_handler.go +++ b/api/handler/admin/order_handler.go @@ -29,6 +29,14 @@ func NewOrderHandler(app *core.AppServer, db *gorm.DB) *OrderHandler { return &OrderHandler{BaseHandler: handler.BaseHandler{App: app, DB: db}} } +// RegisterRoutes 注册路由 +func (h *OrderHandler) RegisterRoutes() { + group := h.App.Engine.Group("/api/admin/order/") + group.POST("list", h.List) + group.GET("remove", h.Remove) + group.GET("clear", h.Clear) +} + func (h *OrderHandler) List(c *gin.Context) { var data struct { OrderNo string `json:"order_no"` diff --git a/api/handler/admin/power_log_handler.go b/api/handler/admin/power_log_handler.go index 7f4fe54e..a0200d32 100644 --- a/api/handler/admin/power_log_handler.go +++ b/api/handler/admin/power_log_handler.go @@ -28,6 +28,12 @@ func NewPowerLogHandler(app *core.AppServer, db *gorm.DB) *PowerLogHandler { return &PowerLogHandler{BaseHandler: handler.BaseHandler{App: app, DB: db}} } +// RegisterRoutes 注册路由 +func (h *PowerLogHandler) RegisterRoutes() { + group := h.App.Engine.Group("/api/admin/powerLog/") + group.POST("list", h.List) +} + func (h *PowerLogHandler) List(c *gin.Context) { var data struct { Username string `json:"username"` diff --git a/api/handler/admin/product_handler.go b/api/handler/admin/product_handler.go index 5df18de1..333ccc76 100644 --- a/api/handler/admin/product_handler.go +++ b/api/handler/admin/product_handler.go @@ -28,6 +28,16 @@ func NewProductHandler(app *core.AppServer, db *gorm.DB) *ProductHandler { return &ProductHandler{BaseHandler: handler.BaseHandler{App: app, DB: db}} } +// RegisterRoutes 注册路由 +func (h *ProductHandler) RegisterRoutes() { + group := h.App.Engine.Group("/api/admin/product/") + group.POST("save", h.Save) + group.GET("list", h.List) + group.POST("enable", h.Enable) + group.POST("sort", h.Sort) + group.GET("remove", h.Remove) +} + func (h *ProductHandler) Save(c *gin.Context) { var data struct { Id uint `json:"id"` diff --git a/api/handler/admin/redeem_handler.go b/api/handler/admin/redeem_handler.go index 6fae1e91..590927d1 100644 --- a/api/handler/admin/redeem_handler.go +++ b/api/handler/admin/redeem_handler.go @@ -29,6 +29,16 @@ func NewRedeemHandler(app *core.AppServer, db *gorm.DB) *RedeemHandler { return &RedeemHandler{BaseHandler: handler.BaseHandler{App: app, DB: db}} } +// RegisterRoutes 注册路由 +func (h *RedeemHandler) RegisterRoutes() { + group := h.App.Engine.Group("/api/admin/redeem/") + group.GET("list", h.List) + group.POST("create", h.Create) + group.POST("set", h.Set) + group.GET("remove", h.Remove) + group.POST("export", h.Export) +} + func (h *RedeemHandler) List(c *gin.Context) { page := h.GetInt(c, "page", 1) pageSize := h.GetInt(c, "page_size", 20) diff --git a/api/handler/admin/upload_handler.go b/api/handler/admin/upload_handler.go index 0f959eba..4a6a21ca 100644 --- a/api/handler/admin/upload_handler.go +++ b/api/handler/admin/upload_handler.go @@ -28,6 +28,11 @@ func NewUploadHandler(app *core.AppServer, db *gorm.DB, manager *oss.UploaderMan return &UploadHandler{BaseHandler: handler.BaseHandler{DB: db, App: app}, uploaderManager: manager} } +// RegisterRoutes 注册路由 +func (h *UploadHandler) RegisterRoutes() { + h.App.Engine.POST("/api/admin/upload", h.Upload) +} + func (h *UploadHandler) Upload(c *gin.Context) { // 判断文件大小 f, err := c.FormFile("file") diff --git a/api/handler/admin/user_handler.go b/api/handler/admin/user_handler.go index 90ff4b20..9e052743 100644 --- a/api/handler/admin/user_handler.go +++ b/api/handler/admin/user_handler.go @@ -36,6 +36,17 @@ func NewUserHandler(app *core.AppServer, db *gorm.DB, licenseService *service.Li return &UserHandler{BaseHandler: handler.BaseHandler{App: app, DB: db}, licenseService: licenseService, redis: redisCli} } +// RegisterRoutes 注册路由 +func (h *UserHandler) RegisterRoutes() { + group := h.App.Engine.Group("/api/admin/user/") + group.GET("list", h.List) + group.POST("save", h.Save) + group.GET("remove", h.Remove) + group.GET("loginLog", h.LoginLog) + group.GET("genLoginLink", h.GenLoginLink) + group.POST("resetPass", h.ResetPass) +} + // List 用户列表 func (h *UserHandler) List(c *gin.Context) { page := h.GetInt(c, "page", 1) diff --git a/api/handler/captcha_handler.go b/api/handler/captcha_handler.go index 57852b4a..86474d46 100644 --- a/api/handler/captcha_handler.go +++ b/api/handler/captcha_handler.go @@ -8,6 +8,7 @@ package handler // * +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ import ( + "geekai/core" "geekai/core/types" "geekai/service" "geekai/utils/resp" @@ -17,11 +18,21 @@ import ( // 今日头条函数实现 type CaptchaHandler struct { + App *core.AppServer service *service.CaptchaService } -func NewCaptchaHandler(s *service.CaptchaService) *CaptchaHandler { - return &CaptchaHandler{service: s} +func NewCaptchaHandler(app *core.AppServer, s *service.CaptchaService) *CaptchaHandler { + return &CaptchaHandler{App: app, service: s} +} + +// RegisterRoutes 注册路由 +func (h *CaptchaHandler) RegisterRoutes() { + group := h.App.Engine.Group("/api/captcha/") + group.GET("get", h.Get) + group.POST("check", h.Check) + group.GET("slide/get", h.SlideGet) + group.POST("slide/check", h.SlideCheck) } func (h *CaptchaHandler) Get(c *gin.Context) { diff --git a/api/handler/chat_app_type_handler.go b/api/handler/chat_app_type_handler.go index c18f858a..5793251c 100644 --- a/api/handler/chat_app_type_handler.go +++ b/api/handler/chat_app_type_handler.go @@ -19,6 +19,12 @@ func NewChatAppTypeHandler(app *core.AppServer, db *gorm.DB) *ChatAppTypeHandler return &ChatAppTypeHandler{BaseHandler: BaseHandler{App: app, DB: db}} } +// RegisterRoutes 注册路由 +func (h *ChatAppTypeHandler) RegisterRoutes() { + group := h.App.Engine.Group("/api/app/type") + group.GET("list", h.List) +} + // List 获取App类型列表 func (h *ChatAppTypeHandler) List(c *gin.Context) { var items []model.AppType diff --git a/api/handler/chat_handler.go b/api/handler/chat_handler.go index 406df3de..df4b4e28 100644 --- a/api/handler/chat_handler.go +++ b/api/handler/chat_handler.go @@ -78,6 +78,21 @@ func NewChatHandler(app *core.AppServer, db *gorm.DB, redis *redis.Client, manag } } +// RegisterRoutes 注册路由 +func (h *ChatHandler) RegisterRoutes() { + group := h.App.Engine.Group("/api/chat/") + group.Any("message", h.Chat) + group.GET("list", h.List) + group.GET("detail", h.Detail) + group.POST("update", h.Update) + group.GET("remove", h.Remove) + group.GET("history", h.History) + group.GET("clear", h.Clear) + group.POST("tokens", h.Tokens) + group.GET("stop", h.StopGenerate) + group.POST("tts", h.TextToSpeech) +} + // Chat 处理聊天请求 func (h *ChatHandler) Chat(c *gin.Context) { var input ChatInput diff --git a/api/handler/chat_model_handler.go b/api/handler/chat_model_handler.go index c4d4fac7..ff9ca79b 100644 --- a/api/handler/chat_model_handler.go +++ b/api/handler/chat_model_handler.go @@ -26,6 +26,12 @@ func NewChatModelHandler(app *core.AppServer, db *gorm.DB) *ChatModelHandler { return &ChatModelHandler{BaseHandler: BaseHandler{App: app, DB: db}} } +// RegisterRoutes 注册路由 +func (h *ChatModelHandler) RegisterRoutes() { + group := h.App.Engine.Group("/api/model/") + group.GET("list", h.List) +} + // List 模型列表 func (h *ChatModelHandler) List(c *gin.Context) { var items []model.ChatModel diff --git a/api/handler/chat_role_handler.go b/api/handler/chat_role_handler.go index f2e78d1f..e6b3cdd3 100644 --- a/api/handler/chat_role_handler.go +++ b/api/handler/chat_role_handler.go @@ -27,6 +27,14 @@ func NewChatRoleHandler(app *core.AppServer, db *gorm.DB) *ChatRoleHandler { return &ChatRoleHandler{BaseHandler: BaseHandler{App: app, DB: db}} } +// RegisterRoutes 注册路由 +func (h *ChatRoleHandler) RegisterRoutes() { + group := h.App.Engine.Group("/api/app/") + group.GET("list", h.List) + group.GET("list/user", h.ListByUser) + group.POST("update", h.UpdateRole) +} + // List 获取用户聊天应用列表 func (h *ChatRoleHandler) List(c *gin.Context) { tid := h.GetInt(c, "tid", 0) diff --git a/api/handler/config_handler.go b/api/handler/config_handler.go index e69b452c..3e4ad8b3 100644 --- a/api/handler/config_handler.go +++ b/api/handler/config_handler.go @@ -27,6 +27,13 @@ func NewConfigHandler(app *core.AppServer, db *gorm.DB, licenseService *service. return &ConfigHandler{BaseHandler: BaseHandler{App: app, DB: db}, licenseService: licenseService} } +// RegisterRoutes 注册路由 +func (h *ConfigHandler) RegisterRoutes() { + group := h.App.Engine.Group("/api/config/") + group.GET("get", h.Get) + group.GET("license", h.License) +} + // Get 获取指定的系统配置 func (h *ConfigHandler) Get(c *gin.Context) { key := c.Query("key") diff --git a/api/handler/dalle_handler.go b/api/handler/dalle_handler.go index 0c7bc037..3a1fdb99 100644 --- a/api/handler/dalle_handler.go +++ b/api/handler/dalle_handler.go @@ -42,6 +42,17 @@ func NewDallJobHandler(app *core.AppServer, db *gorm.DB, service *dalle.Service, } } +// RegisterRoutes 注册路由 +func (h *DallJobHandler) RegisterRoutes() { + group := h.App.Engine.Group("/api/dall") + group.POST("image", h.Image) + group.GET("jobs", h.JobList) + group.GET("imgWall", h.ImgWall) + group.GET("remove", h.Remove) + group.GET("publish", h.Publish) + group.GET("models", h.GetModels) +} + // Image 创建一个绘画任务 func (h *DallJobHandler) Image(c *gin.Context) { var data types.DallTask diff --git a/api/handler/function_handler.go b/api/handler/function_handler.go index fb6d6cd4..a96d6333 100644 --- a/api/handler/function_handler.go +++ b/api/handler/function_handler.go @@ -56,6 +56,16 @@ func NewFunctionHandler( } } +// RegisterRoutes 注册路由 +func (h *FunctionHandler) RegisterRoutes() { + group := h.App.Engine.Group("/api/function/") + group.POST("weibo", h.WeiBo) + group.POST("zaobao", h.ZaoBao) + group.POST("dalle3", h.Dall3) + group.POST("websearch", h.WebSearch) + group.GET("list", h.List) +} + type resVo struct { Code types.BizCode `json:"code"` Message string `json:"message"` diff --git a/api/handler/invite_handler.go b/api/handler/invite_handler.go index e6e5c029..40477fed 100644 --- a/api/handler/invite_handler.go +++ b/api/handler/invite_handler.go @@ -27,6 +27,14 @@ func NewInviteHandler(app *core.AppServer, db *gorm.DB) *InviteHandler { return &InviteHandler{BaseHandler: BaseHandler{App: app, DB: db}} } +// RegisterRoutes 注册路由 +func (h *InviteHandler) RegisterRoutes() { + group := h.App.Engine.Group("/api/invite/") + group.GET("code", h.Code) + group.GET("list", h.List) + group.GET("hits", h.Hits) +} + // Code 获取当前用户邀请码 func (h *InviteHandler) Code(c *gin.Context) { userId := h.GetLoginUserId(c) diff --git a/api/handler/markmap_handler.go b/api/handler/markmap_handler.go index 85b2147f..f7f0a61d 100644 --- a/api/handler/markmap_handler.go +++ b/api/handler/markmap_handler.go @@ -35,6 +35,11 @@ func NewMarkMapHandler(app *core.AppServer, db *gorm.DB, userService *service.Us } } +// RegisterRoutes 注册路由 +func (h *MarkMapHandler) RegisterRoutes() { + h.App.Engine.POST("/api/markMap/gen", h.Generate) +} + // Generate 生成思维导图 func (h *MarkMapHandler) Generate(c *gin.Context) { var data struct { diff --git a/api/handler/menu_handler.go b/api/handler/menu_handler.go index 39de1c78..a0eba073 100644 --- a/api/handler/menu_handler.go +++ b/api/handler/menu_handler.go @@ -25,6 +25,12 @@ func NewMenuHandler(app *core.AppServer, db *gorm.DB) *MenuHandler { return &MenuHandler{BaseHandler: BaseHandler{App: app, DB: db}} } +// RegisterRoutes 注册路由 +func (h *MenuHandler) RegisterRoutes() { + group := h.App.Engine.Group("/api/menu/") + group.GET("list", h.List) +} + // List 数据列表 func (h *MenuHandler) List(c *gin.Context) { index := h.GetBool(c, "index") diff --git a/api/handler/mj_handler.go b/api/handler/mj_handler.go index fc522a7c..e307c2e0 100644 --- a/api/handler/mj_handler.go +++ b/api/handler/mj_handler.go @@ -46,6 +46,18 @@ func NewMidJourneyHandler(app *core.AppServer, db *gorm.DB, snowflake *service.S } } +// RegisterRoutes 注册路由 +func (h *MidJourneyHandler) RegisterRoutes() { + group := h.App.Engine.Group("/api/mj/") + group.POST("image", h.Image) + group.POST("upscale", h.Upscale) + group.POST("variation", h.Variation) + group.GET("jobs", h.JobList) + group.GET("imgWall", h.ImgWall) + group.GET("remove", h.Remove) + group.GET("publish", h.Publish) +} + func (h *MidJourneyHandler) preCheck(c *gin.Context) bool { user, err := h.GetLoginUser(c) if err != nil { diff --git a/api/handler/net_handler.go b/api/handler/net_handler.go index 88329647..b50a0844 100644 --- a/api/handler/net_handler.go +++ b/api/handler/net_handler.go @@ -32,6 +32,14 @@ func NewNetHandler(app *core.AppServer, db *gorm.DB, manager *oss.UploaderManage return &NetHandler{BaseHandler: BaseHandler{App: app, DB: db}, uploaderManager: manager} } +// RegisterRoutes 注册路由 +func (h *NetHandler) RegisterRoutes() { + h.App.Engine.POST("/api/upload", h.Upload) + h.App.Engine.POST("/api/upload/list", h.List) + h.App.Engine.GET("/api/upload/remove", h.Remove) + h.App.Engine.GET("/api/download", h.Download) +} + func (h *NetHandler) Upload(c *gin.Context) { file, err := h.uploaderManager.GetUploadHandler().PutFile(c, "file") if err != nil { diff --git a/api/handler/order_handler.go b/api/handler/order_handler.go index a9ee42f3..fe7d3206 100644 --- a/api/handler/order_handler.go +++ b/api/handler/order_handler.go @@ -28,6 +28,13 @@ func NewOrderHandler(app *core.AppServer, db *gorm.DB) *OrderHandler { return &OrderHandler{BaseHandler: BaseHandler{App: app, DB: db}} } +// RegisterRoutes 注册路由 +func (h *OrderHandler) RegisterRoutes() { + group := h.App.Engine.Group("/api/order/") + group.GET("list", h.List) + group.GET("query", h.Query) +} + // List 订单列表 func (h *OrderHandler) List(c *gin.Context) { page := h.GetInt(c, "page", 1) diff --git a/api/handler/payment_handler.go b/api/handler/payment_handler.go index 686351d9..0ff0b6f3 100644 --- a/api/handler/payment_handler.go +++ b/api/handler/payment_handler.go @@ -71,6 +71,17 @@ func NewPaymentHandler( } } +// RegisterRoutes 注册路由 +func (h *PaymentHandler) RegisterRoutes() { + group := h.App.Engine.Group("/api/payment/") + group.POST("doPay", h.Pay) + group.GET("payWays", h.GetPayWays) + group.POST("notify/alipay", h.AlipayNotify) + group.GET("notify/geek", h.GeekPayNotify) + group.POST("notify/wechat", h.WechatPayNotify) + group.POST("notify/hupi", h.HuPiPayNotify) +} + func (h *PaymentHandler) Pay(c *gin.Context) { var data struct { PayWay string `json:"pay_way"` diff --git a/api/handler/power_log_handler.go b/api/handler/power_log_handler.go index 77732217..d4c1f418 100644 --- a/api/handler/power_log_handler.go +++ b/api/handler/power_log_handler.go @@ -27,6 +27,12 @@ func NewPowerLogHandler(app *core.AppServer, db *gorm.DB) *PowerLogHandler { return &PowerLogHandler{BaseHandler: BaseHandler{App: app, DB: db}} } +// RegisterRoutes 注册路由 +func (h *PowerLogHandler) RegisterRoutes() { + group := h.App.Engine.Group("/api/powerLog/") + group.POST("list", h.List) +} + func (h *PowerLogHandler) List(c *gin.Context) { var data struct { Model string `json:"model"` diff --git a/api/handler/product_handler.go b/api/handler/product_handler.go index 34959aaf..296bc13a 100644 --- a/api/handler/product_handler.go +++ b/api/handler/product_handler.go @@ -25,6 +25,12 @@ func NewProductHandler(app *core.AppServer, db *gorm.DB) *ProductHandler { return &ProductHandler{BaseHandler: BaseHandler{App: app, DB: db}} } +// RegisterRoutes 注册路由 +func (h *ProductHandler) RegisterRoutes() { + group := h.App.Engine.Group("/api/product/") + group.GET("list", h.List) +} + // List 模型列表 func (h *ProductHandler) List(c *gin.Context) { var items []model.Product diff --git a/api/handler/prompt_handler.go b/api/handler/prompt_handler.go index 100099b4..591410f9 100644 --- a/api/handler/prompt_handler.go +++ b/api/handler/prompt_handler.go @@ -39,6 +39,15 @@ func NewPromptHandler(app *core.AppServer, db *gorm.DB, userService *service.Use } } +// RegisterRoutes 注册路由 +func (h *PromptHandler) RegisterRoutes() { + group := h.App.Engine.Group("/api/prompt") + group.POST("/lyric", h.Lyric) + group.POST("/image", h.Image) + group.POST("/video", h.Video) + group.POST("/meta", h.MetaPrompt) +} + // Lyric 生成歌词 func (h *PromptHandler) Lyric(c *gin.Context) { var data struct { diff --git a/api/handler/realtime_handler.go b/api/handler/realtime_handler.go index 5880260e..f5874197 100644 --- a/api/handler/realtime_handler.go +++ b/api/handler/realtime_handler.go @@ -39,6 +39,12 @@ func NewRealtimeHandler(server *core.AppServer, db *gorm.DB, userService *servic return &RealtimeHandler{BaseHandler: BaseHandler{App: server, DB: db}, userService: userService} } +// RegisterRoutes 注册路由 +func (h *RealtimeHandler) RegisterRoutes() { + h.App.Engine.Any("/api/realtime", h.Connection) + h.App.Engine.POST("/api/realtime/voice", h.VoiceChat) +} + func (h *RealtimeHandler) Connection(c *gin.Context) { // 获取客户端请求中指定的子协议 clientProtocols := c.GetHeader("Sec-WebSocket-Protocol") diff --git a/api/handler/redeem_handler.go b/api/handler/redeem_handler.go index 706ac010..6acfac44 100644 --- a/api/handler/redeem_handler.go +++ b/api/handler/redeem_handler.go @@ -30,6 +30,12 @@ func NewRedeemHandler(app *core.AppServer, db *gorm.DB, userService *service.Use return &RedeemHandler{BaseHandler: BaseHandler{App: app, DB: db}, userService: userService} } +// RegisterRoutes 注册路由 +func (h *RedeemHandler) RegisterRoutes() { + group := h.App.Engine.Group("/api/redeem/") + group.POST("verify", h.Verify) +} + func (h *RedeemHandler) Verify(c *gin.Context) { var data struct { Code string `json:"code"` diff --git a/api/handler/sd_handler.go b/api/handler/sd_handler.go index f2eaf974..51a6fe08 100644 --- a/api/handler/sd_handler.go +++ b/api/handler/sd_handler.go @@ -56,6 +56,16 @@ func NewSdJobHandler(app *core.AppServer, } } +// RegisterRoutes 注册路由 +func (h *SdJobHandler) RegisterRoutes() { + group := h.App.Engine.Group("/api/sd") + group.POST("image", h.Image) + group.GET("jobs", h.JobList) + group.GET("imgWall", h.ImgWall) + group.GET("remove", h.Remove) + group.GET("publish", h.Publish) +} + func (h *SdJobHandler) preCheck(c *gin.Context) bool { user, err := h.GetLoginUser(c) if err != nil { diff --git a/api/handler/sms_handler.go b/api/handler/sms_handler.go index 191530d7..55332b96 100644 --- a/api/handler/sms_handler.go +++ b/api/handler/sms_handler.go @@ -44,6 +44,12 @@ func NewSmsHandler( BaseHandler: BaseHandler{App: app}} } +// RegisterRoutes 注册路由 +func (h *SmsHandler) RegisterRoutes() { + group := h.App.Engine.Group("/api/sms/") + group.POST("code", h.SendCode) +} + // SendCode 发送验证码 func (h *SmsHandler) SendCode(c *gin.Context) { var data struct { diff --git a/api/handler/suno_handler.go b/api/handler/suno_handler.go index 274986fd..f8ada5c1 100644 --- a/api/handler/suno_handler.go +++ b/api/handler/suno_handler.go @@ -43,6 +43,18 @@ func NewSunoHandler(app *core.AppServer, db *gorm.DB, service *suno.Service, upl } } +// RegisterRoutes 注册路由 +func (h *SunoHandler) RegisterRoutes() { + group := h.App.Engine.Group("/api/suno") + group.POST("create", h.Create) + group.GET("list", h.List) + group.GET("remove", h.Remove) + group.GET("publish", h.Publish) + group.POST("update", h.Update) + group.GET("detail", h.Detail) + group.GET("play", h.Play) +} + func (h *SunoHandler) Create(c *gin.Context) { var data struct { diff --git a/api/handler/test_handler.go b/api/handler/test_handler.go index 3ee0c622..f2b6b54c 100644 --- a/api/handler/test_handler.go +++ b/api/handler/test_handler.go @@ -1,6 +1,7 @@ package handler import ( + "geekai/core" "geekai/service" "geekai/service/payment" "github.com/gin-gonic/gin" @@ -9,13 +10,20 @@ import ( ) type TestHandler struct { + App *core.AppServer db *gorm.DB snowflake *service.Snowflake js *payment.GeekPayService } -func NewTestHandler(db *gorm.DB, snowflake *service.Snowflake, js *payment.GeekPayService) *TestHandler { - return &TestHandler{db: db, snowflake: snowflake, js: js} +func NewTestHandler(app *core.AppServer, db *gorm.DB, snowflake *service.Snowflake, js *payment.GeekPayService) *TestHandler { + return &TestHandler{App: app, db: db, snowflake: snowflake, js: js} +} + +// RegisterRoutes 注册路由 +func (h *TestHandler) RegisterRoutes() { + group := h.App.Engine.Group("/api/test") + group.Any("sse", h.PostTest, h.SseTest) } func (h *TestHandler) SseTest(c *gin.Context) { diff --git a/api/handler/user_handler.go b/api/handler/user_handler.go index 0e159759..31c85c07 100644 --- a/api/handler/user_handler.go +++ b/api/handler/user_handler.go @@ -60,6 +60,24 @@ func NewUserHandler( } } +// RegisterRoutes 注册路由 +func (h *UserHandler) RegisterRoutes() { + group := h.App.Engine.Group("/api/user/") + group.POST("register", h.Register) + group.POST("login", h.Login) + group.GET("logout", h.Logout) + group.GET("session", h.Session) + group.GET("profile", h.Profile) + group.POST("profile/update", h.ProfileUpdate) + group.POST("password", h.UpdatePass) + group.POST("bind/mobile", h.BindMobile) + group.POST("bind/email", h.BindEmail) + group.POST("resetPass", h.ResetPass) + group.GET("clogin", h.CLogin) + group.GET("clogin/callback", h.CLoginCallback) + group.GET("signin", h.SignIn) +} + // Register user register func (h *UserHandler) Register(c *gin.Context) { // parameters process diff --git a/api/handler/video_handler.go b/api/handler/video_handler.go index 6543a8c2..607bec1a 100644 --- a/api/handler/video_handler.go +++ b/api/handler/video_handler.go @@ -43,6 +43,16 @@ func NewVideoHandler(app *core.AppServer, db *gorm.DB, service *video.Service, u } } +// RegisterRoutes 注册路由 +func (h *VideoHandler) RegisterRoutes() { + group := h.App.Engine.Group("/api/video") + group.POST("luma/create", h.LumaCreate) + group.POST("keling/create", h.KeLingCreate) + group.GET("list", h.List) + group.GET("remove", h.Remove) + group.GET("publish", h.Publish) +} + func (h *VideoHandler) LumaCreate(c *gin.Context) { var data struct { diff --git a/api/main.go b/api/main.go index 7ddd1a6e..f6ade46b 100644 --- a/api/main.go +++ b/api/main.go @@ -229,281 +229,131 @@ func main() { // 注册路由 fx.Invoke(func(s *core.AppServer, h *handler.ChatRoleHandler) { - group := s.Engine.Group("/api/app/") - group.GET("list", h.List) - group.GET("list/user", h.ListByUser) - group.POST("update", h.UpdateRole) + h.RegisterRoutes() }), fx.Invoke(func(s *core.AppServer, h *handler.UserHandler) { - group := s.Engine.Group("/api/user/") - group.POST("register", h.Register) - group.POST("login", h.Login) - group.GET("logout", h.Logout) - group.GET("session", h.Session) - group.GET("profile", h.Profile) - group.POST("profile/update", h.ProfileUpdate) - group.POST("password", h.UpdatePass) - group.POST("bind/mobile", h.BindMobile) - group.POST("bind/email", h.BindEmail) - group.POST("resetPass", h.ResetPass) - group.GET("clogin", h.CLogin) - group.GET("clogin/callback", h.CLoginCallback) - group.GET("signin", h.SignIn) + h.RegisterRoutes() }), fx.Invoke(func(s *core.AppServer, h *handler.ChatHandler) { - group := s.Engine.Group("/api/chat/") - group.Any("message", h.Chat) - group.GET("list", h.List) - group.GET("detail", h.Detail) - group.POST("update", h.Update) - group.GET("remove", h.Remove) - group.GET("history", h.History) - group.GET("clear", h.Clear) - group.POST("tokens", h.Tokens) - group.GET("stop", h.StopGenerate) - group.POST("tts", h.TextToSpeech) + h.RegisterRoutes() }), fx.Invoke(func(s *core.AppServer, h *handler.NetHandler) { - s.Engine.POST("/api/upload", h.Upload) - s.Engine.POST("/api/upload/list", h.List) - s.Engine.GET("/api/upload/remove", h.Remove) - s.Engine.GET("/api/download", h.Download) + h.RegisterRoutes() }), fx.Invoke(func(s *core.AppServer, h *handler.SmsHandler) { - group := s.Engine.Group("/api/sms/") - group.POST("code", h.SendCode) + h.RegisterRoutes() }), fx.Invoke(func(s *core.AppServer, h *handler.CaptchaHandler) { - group := s.Engine.Group("/api/captcha/") - group.GET("get", h.Get) - group.POST("check", h.Check) - group.GET("slide/get", h.SlideGet) - group.POST("slide/check", h.SlideCheck) + h.RegisterRoutes() }), fx.Invoke(func(s *core.AppServer, h *handler.RedeemHandler) { - group := s.Engine.Group("/api/redeem/") - group.POST("verify", h.Verify) + h.RegisterRoutes() }), fx.Invoke(func(s *core.AppServer, h *handler.MidJourneyHandler) { - group := s.Engine.Group("/api/mj/") - group.POST("image", h.Image) - group.POST("upscale", h.Upscale) - group.POST("variation", h.Variation) - group.GET("jobs", h.JobList) - group.GET("imgWall", h.ImgWall) - group.GET("remove", h.Remove) - group.GET("publish", h.Publish) + h.RegisterRoutes() }), fx.Invoke(func(s *core.AppServer, h *handler.SdJobHandler) { - group := s.Engine.Group("/api/sd") - group.POST("image", h.Image) - group.GET("jobs", h.JobList) - group.GET("imgWall", h.ImgWall) - group.GET("remove", h.Remove) - group.GET("publish", h.Publish) + h.RegisterRoutes() }), fx.Invoke(func(s *core.AppServer, h *handler.ConfigHandler) { - group := s.Engine.Group("/api/config/") - group.GET("get", h.Get) - group.GET("license", h.License) + h.RegisterRoutes() }), // 管理后台控制器 fx.Invoke(func(s *core.AppServer, h *admin.ConfigHandler) { - group := s.Engine.Group("/api/admin/config") - group.POST("update", h.Update) - group.GET("get", h.Get) - group.POST("active", h.Active) - group.GET("fixData", h.FixData) - group.GET("license", h.GetLicense) + h.RegisterRoutes() }), fx.Invoke(func(s *core.AppServer, h *admin.ManagerHandler) { - group := s.Engine.Group("/api/admin/") - group.POST("login", h.Login) - group.GET("logout", h.Logout) - group.GET("session", h.Session) - group.GET("list", h.List) - group.POST("save", h.Save) - group.POST("enable", h.Enable) - group.GET("remove", h.Remove) - group.POST("resetPass", h.ResetPass) + h.RegisterRoutes() }), fx.Invoke(func(s *core.AppServer, h *admin.ApiKeyHandler) { - group := s.Engine.Group("/api/admin/apikey/") - group.POST("save", h.Save) - group.GET("list", h.List) - group.POST("set", h.Set) - group.GET("remove", h.Remove) + h.RegisterRoutes() }), fx.Invoke(func(s *core.AppServer, h *admin.UserHandler) { - group := s.Engine.Group("/api/admin/user/") - group.GET("list", h.List) - group.POST("save", h.Save) - group.GET("remove", h.Remove) - group.GET("loginLog", h.LoginLog) - group.GET("genLoginLink", h.GenLoginLink) - group.POST("resetPass", h.ResetPass) + h.RegisterRoutes() }), fx.Invoke(func(s *core.AppServer, h *admin.ChatAppHandler) { - group := s.Engine.Group("/api/admin/role/") - group.GET("list", h.List) - group.POST("save", h.Save) - group.POST("sort", h.Sort) - group.POST("set", h.Set) - group.GET("remove", h.Remove) + h.RegisterRoutes() }), fx.Invoke(func(s *core.AppServer, h *admin.RedeemHandler) { - group := s.Engine.Group("/api/admin/redeem/") - group.GET("list", h.List) - group.POST("create", h.Create) - group.POST("set", h.Set) - group.GET("remove", h.Remove) - group.POST("export", h.Export) + h.RegisterRoutes() }), fx.Invoke(func(s *core.AppServer, h *admin.DashboardHandler) { - group := s.Engine.Group("/api/admin/dashboard/") - group.GET("stats", h.Stats) + h.RegisterRoutes() }), fx.Invoke(func(s *core.AppServer, h *handler.ChatModelHandler) { - group := s.Engine.Group("/api/model/") - group.GET("list", h.List) + h.RegisterRoutes() }), fx.Invoke(func(s *core.AppServer, h *admin.ChatModelHandler) { - group := s.Engine.Group("/api/admin/model/") - group.POST("save", h.Save) - group.GET("list", h.List) - group.POST("set", h.Set) - group.POST("sort", h.Sort) - group.GET("remove", h.Remove) + h.RegisterRoutes() }), fx.Invoke(func(s *core.AppServer, h *handler.PaymentHandler) { - group := s.Engine.Group("/api/payment/") - group.POST("doPay", h.Pay) - group.GET("payWays", h.GetPayWays) - group.POST("notify/alipay", h.AlipayNotify) - group.GET("notify/geek", h.GeekPayNotify) - group.POST("notify/wechat", h.WechatPayNotify) - group.POST("notify/hupi", h.HuPiPayNotify) + h.RegisterRoutes() }), fx.Invoke(func(s *core.AppServer, h *admin.ProductHandler) { - group := s.Engine.Group("/api/admin/product/") - group.POST("save", h.Save) - group.GET("list", h.List) - group.POST("enable", h.Enable) - group.POST("sort", h.Sort) - group.GET("remove", h.Remove) + h.RegisterRoutes() }), fx.Invoke(func(s *core.AppServer, h *admin.OrderHandler) { - group := s.Engine.Group("/api/admin/order/") - group.POST("list", h.List) - group.GET("remove", h.Remove) - group.GET("clear", h.Clear) + h.RegisterRoutes() }), fx.Invoke(func(s *core.AppServer, h *handler.OrderHandler) { - group := s.Engine.Group("/api/order/") - group.GET("list", h.List) - group.GET("query", h.Query) + h.RegisterRoutes() }), fx.Invoke(func(s *core.AppServer, h *handler.ProductHandler) { - group := s.Engine.Group("/api/product/") - group.GET("list", h.List) + h.RegisterRoutes() }), fx.Provide(handler.NewInviteHandler), fx.Invoke(func(s *core.AppServer, h *handler.InviteHandler) { - group := s.Engine.Group("/api/invite/") - group.GET("code", h.Code) - group.GET("list", h.List) - group.GET("hits", h.Hits) + h.RegisterRoutes() }), fx.Provide(admin.NewFunctionHandler), fx.Invoke(func(s *core.AppServer, h *admin.FunctionHandler) { - group := s.Engine.Group("/api/admin/function/") - group.POST("save", h.Save) - group.POST("set", h.Set) - group.GET("list", h.List) - group.GET("remove", h.Remove) - group.GET("token", h.GenToken) + h.RegisterRoutes() }), fx.Provide(admin.NewUploadHandler), fx.Invoke(func(s *core.AppServer, h *admin.UploadHandler) { - s.Engine.POST("/api/admin/upload", h.Upload) + h.RegisterRoutes() }), fx.Provide(handler.NewFunctionHandler), fx.Invoke(func(s *core.AppServer, h *handler.FunctionHandler) { - group := s.Engine.Group("/api/function/") - group.POST("weibo", h.WeiBo) - group.POST("zaobao", h.ZaoBao) - group.POST("dalle3", h.Dall3) - group.POST("websearch", h.WebSearch) - group.GET("list", h.List) + h.RegisterRoutes() }), fx.Invoke(func(s *core.AppServer, h *admin.ChatHandler) { - group := s.Engine.Group("/api/admin/chat/") - group.POST("list", h.List) - group.POST("message", h.Messages) - group.GET("history", h.History) - group.GET("remove", h.RemoveChat) - group.GET("message/remove", h.RemoveMessage) + h.RegisterRoutes() }), fx.Invoke(func(s *core.AppServer, h *handler.PowerLogHandler) { - group := s.Engine.Group("/api/powerLog/") - group.POST("list", h.List) + h.RegisterRoutes() }), fx.Invoke(func(s *core.AppServer, h *admin.PowerLogHandler) { - group := s.Engine.Group("/api/admin/powerLog/") - group.POST("list", h.List) + h.RegisterRoutes() }), fx.Provide(admin.NewMenuHandler), fx.Invoke(func(s *core.AppServer, h *admin.MenuHandler) { - group := s.Engine.Group("/api/admin/menu/") - group.POST("save", h.Save) - group.GET("list", h.List) - group.POST("enable", h.Enable) - group.POST("sort", h.Sort) - group.GET("remove", h.Remove) + h.RegisterRoutes() }), fx.Provide(handler.NewMenuHandler), fx.Invoke(func(s *core.AppServer, h *handler.MenuHandler) { - group := s.Engine.Group("/api/menu/") - group.GET("list", h.List) + h.RegisterRoutes() }), fx.Provide(handler.NewMarkMapHandler), fx.Invoke(func(s *core.AppServer, h *handler.MarkMapHandler) { - s.Engine.POST("/api/markMap/gen", h.Generate) + h.RegisterRoutes() }), fx.Provide(handler.NewDallJobHandler), fx.Invoke(func(s *core.AppServer, h *handler.DallJobHandler) { - group := s.Engine.Group("/api/dall") - group.POST("image", h.Image) - group.GET("jobs", h.JobList) - group.GET("imgWall", h.ImgWall) - group.GET("remove", h.Remove) - group.GET("publish", h.Publish) - group.GET("models", h.GetModels) + h.RegisterRoutes() }), fx.Provide(handler.NewSunoHandler), fx.Invoke(func(s *core.AppServer, h *handler.SunoHandler) { - group := s.Engine.Group("/api/suno") - group.POST("create", h.Create) - group.GET("list", h.List) - group.GET("remove", h.Remove) - group.GET("publish", h.Publish) - group.POST("update", h.Update) - group.GET("detail", h.Detail) - group.GET("play", h.Play) + h.RegisterRoutes() }), fx.Provide(handler.NewVideoHandler), fx.Invoke(func(s *core.AppServer, h *handler.VideoHandler) { - group := s.Engine.Group("/api/video") - group.POST("luma/create", h.LumaCreate) - group.POST("keling/create", h.KeLingCreate) - group.GET("list", h.List) - group.GET("remove", h.Remove) - group.GET("publish", h.Publish) + h.RegisterRoutes() }), // 即梦AI 路由 @@ -515,30 +365,19 @@ func main() { }), fx.Provide(admin.NewChatAppTypeHandler), fx.Invoke(func(s *core.AppServer, h *admin.ChatAppTypeHandler) { - group := s.Engine.Group("/api/admin/app/type") - group.POST("save", h.Save) - group.GET("list", h.List) - group.GET("remove", h.Remove) - group.POST("enable", h.Enable) - group.POST("sort", h.Sort) + h.RegisterRoutes() }), fx.Provide(handler.NewChatAppTypeHandler), fx.Invoke(func(s *core.AppServer, h *handler.ChatAppTypeHandler) { - group := s.Engine.Group("/api/app/type") - group.GET("list", h.List) + h.RegisterRoutes() }), fx.Provide(handler.NewTestHandler), fx.Invoke(func(s *core.AppServer, h *handler.TestHandler) { - group := s.Engine.Group("/api/test") - group.Any("sse", h.PostTest, h.SseTest) + h.RegisterRoutes() }), fx.Provide(handler.NewPromptHandler), fx.Invoke(func(s *core.AppServer, h *handler.PromptHandler) { - group := s.Engine.Group("/api/prompt") - group.POST("/lyric", h.Lyric) - group.POST("/image", h.Image) - group.POST("/video", h.Video) - group.POST("/meta", h.MetaPrompt) + h.RegisterRoutes() }), fx.Invoke(func(s *core.AppServer, db *gorm.DB) { go func() { @@ -563,23 +402,15 @@ func main() { }), fx.Provide(admin.NewImageHandler), fx.Invoke(func(s *core.AppServer, h *admin.ImageHandler) { - group := s.Engine.Group("/api/admin/image") - group.POST("/list/mj", h.MjList) - group.POST("/list/sd", h.SdList) - group.POST("/list/dall", h.DallList) - group.GET("/remove", h.Remove) + h.RegisterRoutes() }), fx.Provide(admin.NewMediaHandler), fx.Invoke(func(s *core.AppServer, h *admin.MediaHandler) { - group := s.Engine.Group("/api/admin/media") - group.POST("/suno", h.SunoList) - group.POST("/videos", h.Videos) - group.GET("/remove", h.Remove) + h.RegisterRoutes() }), fx.Provide(handler.NewRealtimeHandler), fx.Invoke(func(s *core.AppServer, h *handler.RealtimeHandler) { - s.Engine.Any("/api/realtime", h.Connection) - s.Engine.POST("/api/realtime/voice", h.VoiceChat) + h.RegisterRoutes() }), ) // 启动应用程序