package routes import ( "context" "git.x2erp.com/qdy/go-base/authbase" "git.x2erp.com/qdy/go-base/ctx" "git.x2erp.com/qdy/go-base/logger" "git.x2erp.com/qdy/go-base/model/response" "git.x2erp.com/qdy/go-base/util" "git.x2erp.com/qdy/go-base/webx/router" "git.x2erp.com/qdy/go-svc-code/internal/service/menu" ) // RegisterMenuRoutes 注册菜单路由 func RegisterMenuRoutes(ws *router.RouterService, mappingService *menu.MappingService) { // 获取顶部菜单(需要Token认证) ws.GET("/api/menu/top", func(ctx context.Context, reqCtx *ctx.RequestContext) (*response.QueryResult[[]menu.MenuItem], error) { return menu.GetTopMenu(ctx, reqCtx), nil }, ).Use(authbase.TokenAuth).Desc("获取顶部菜单").Register() // 获取菜单项的所有会话ID(需要Token认证) ws.GET("/api/menu/sessions/{menuItemID}", func(menuItemID string, ctx context.Context, reqCtx *ctx.RequestContext) (*response.QueryResult[[]string], error) { if menuItemID == "" { return &response.QueryResult[[]string]{ Success: false, Message: "参数 menu_item_id 不能为空", }, nil } // 获取用户ID userID := reqCtx.UserID if userID == "" { logger.Warn("无法从请求上下文获取用户ID") return &response.QueryResult[[]string]{ Success: false, Message: "用户认证信息不完整", }, nil } // 获取菜单项的所有会话ID sessionIDs, err := mappingService.GetSessionIDsByMenuItemID(ctx, menuItemID, userID) if err != nil { logger.Error("获取菜单项会话ID失败", "menu_item_id", menuItemID, "user_id", userID, "error", err) return &response.QueryResult[[]string]{ Success: false, Message: "获取菜单项会话ID失败: " + err.Error(), }, nil } return util.CreateSuccessResultData(sessionIDs, reqCtx), nil }, ).Use(authbase.TokenAuth).Desc("获取菜单项的所有会话ID").Register() }