Keine Beschreibung
Du kannst nicht mehr als 25 Themen auswählen Themen müssen mit entweder einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.

menu_routes.go 1.9KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. package routes
  2. import (
  3. "context"
  4. "git.x2erp.com/qdy/go-base/authbase"
  5. "git.x2erp.com/qdy/go-base/ctx"
  6. "git.x2erp.com/qdy/go-base/logger"
  7. "git.x2erp.com/qdy/go-base/model/response"
  8. "git.x2erp.com/qdy/go-base/webx/router"
  9. "git.x2erp.com/qdy/go-svc-code/internal/service/menu"
  10. )
  11. // RegisterMenuRoutes 注册菜单路由
  12. func RegisterMenuRoutes(ws *router.RouterService, mappingService *menu.MappingService) {
  13. // 获取顶部菜单(需要Token认证)
  14. ws.GET("/api/menu/top",
  15. func(ctx context.Context, reqCtx *ctx.RequestContext) (*response.QueryResult[[]menu.MenuItem], error) {
  16. return menu.GetTopMenu(ctx, reqCtx), nil
  17. },
  18. ).Use(authbase.TokenAuth).Desc("获取顶部菜单").Register()
  19. // 获取菜单项的所有会话ID(需要Token认证)
  20. ws.GET("/api/menu/sessions",
  21. func(menuItemID string, ctx context.Context, reqCtx *ctx.RequestContext) (*response.QueryResult[[]string], error) {
  22. if menuItemID == "" {
  23. return &response.QueryResult[[]string]{
  24. Success: false,
  25. Message: "参数 menu_item_id 不能为空",
  26. }, nil
  27. }
  28. // 获取用户ID
  29. userID := reqCtx.UserID
  30. if userID == "" {
  31. logger.Warn("无法从请求上下文获取用户ID")
  32. return &response.QueryResult[[]string]{
  33. Success: false,
  34. Message: "用户认证信息不完整",
  35. }, nil
  36. }
  37. // 获取菜单项的所有会话ID
  38. sessionIDs, err := mappingService.GetSessionIDsByMenuItemID(ctx, menuItemID, userID)
  39. if err != nil {
  40. logger.Error("获取菜单项会话ID失败", "menu_item_id", menuItemID, "user_id", userID, "error", err)
  41. return &response.QueryResult[[]string]{
  42. Success: false,
  43. Message: "获取菜单项会话ID失败: " + err.Error(),
  44. }, nil
  45. }
  46. return &response.QueryResult[[]string]{
  47. Success: true,
  48. Data: sessionIDs,
  49. }, nil
  50. },
  51. ).Use(authbase.TokenAuth).Desc("获取菜单项的所有会话ID").Register()
  52. }