menu.go 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136
  1. package handler
  2. import (
  3. "context"
  4. "dashoo.cn/common_definition/admin/menu_def"
  5. "dashoo.cn/common_definition/comm_def"
  6. "dashoo.cn/opms_libary/myerrors"
  7. "github.com/gogf/gf/util/gconv"
  8. "github.com/gogf/gf/util/gvalid"
  9. "dashoo.cn/micro/app/model"
  10. "dashoo.cn/micro/app/service"
  11. )
  12. type MenuHandler struct{}
  13. // GetList 获取列表
  14. func (h *MenuHandler) GetList(ctx context.Context, req *menu_def.SelectReq, rsp *comm_def.CommonMsg) error {
  15. menuService, err := service.NewMenuService(ctx)
  16. if err != nil {
  17. return err
  18. }
  19. list, err := menuService.GetList(req)
  20. if err != nil {
  21. return err
  22. }
  23. rsp.Data = list
  24. return nil
  25. }
  26. // GetEntityById 详情
  27. func (h *MenuHandler) GetEntityById(ctx context.Context, req *comm_def.IdReq, rsp *comm_def.CommonMsg) error {
  28. // 参数校验
  29. if req.Id == 0 {
  30. return myerrors.TipsError("请求参数不存在。")
  31. }
  32. menuService, err := service.NewMenuService(ctx)
  33. if err != nil {
  34. return err
  35. }
  36. entity, err := menuService.GetEntity(req.Id)
  37. if err != nil {
  38. return err
  39. }
  40. rsp.Data = entity
  41. return nil
  42. }
  43. // Create 添加
  44. func (h *MenuHandler) Create(ctx context.Context, req *model.SysMenuReq, rsp *comm_def.CommonMsg) error {
  45. // 检查请求参数
  46. if v := gvalid.CheckStruct(ctx, req, nil); v != nil {
  47. return v
  48. }
  49. menuService, err := service.NewMenuService(ctx)
  50. if err != nil {
  51. return err
  52. }
  53. id, err := menuService.Create(req)
  54. if err != nil {
  55. return err
  56. }
  57. rsp.Data = gconv.String(id)
  58. return nil
  59. }
  60. // UpdateById 编辑
  61. func (h *MenuHandler) UpdateById(ctx context.Context, req *model.SysMenuReq, rsp *comm_def.CommonMsg) error {
  62. // 参数校验
  63. if req.Id == 0 {
  64. return myerrors.TipsError("请求参数不存在。")
  65. }
  66. // 检查请求参数
  67. if v := gvalid.CheckStruct(ctx, req, nil); v != nil {
  68. return v
  69. }
  70. menuService, err := service.NewMenuService(ctx)
  71. if err != nil {
  72. return err
  73. }
  74. err = menuService.UpdateById(req)
  75. return err
  76. }
  77. // DeleteById 删除菜单
  78. func (h *MenuHandler) DeleteById(ctx context.Context, req *comm_def.IdReq, rsp *comm_def.CommonMsg) error {
  79. menuService, err := service.NewMenuService(ctx)
  80. if err != nil {
  81. return err
  82. }
  83. err = menuService.Delete(req.Id)
  84. return err
  85. }
  86. // GetRoleMenuIds 根据角色获取菜单
  87. //func (o *MenuHandler) GetRoleMenuIds(ctx context.Context, req *menu_def.RoleIdReq, rsp *comm_def.CommonMsg) error {
  88. // menuService, err := service.NewMenuService(ctx)
  89. // if err != nil {
  90. // return err
  91. // }
  92. //
  93. // entity, err := menuService.GetRoleMenuIds(req.RoleId)
  94. // if err != nil {
  95. // return err
  96. // }
  97. // rsp.Data = entity
  98. // return nil
  99. //}
  100. // GetMenuTree 获取菜单树 isAll获取完整菜单树
  101. func (h *MenuHandler) GetMenuTree(ctx context.Context, req map[string]interface{}, rsp *comm_def.CommonMsg) error {
  102. menuService, err := service.NewMenuService(ctx)
  103. if err != nil {
  104. return err
  105. }
  106. isAll := false
  107. if val, ok := req["isAll"]; ok && val == "all" {
  108. isAll = true
  109. }
  110. var list interface{}
  111. if menuService.GetCxtUserName() == "dashoo" || isAll {
  112. list, err = menuService.GetMenuTree(isAll)
  113. } else {
  114. userService, _ := service.NewUserService(ctx)
  115. userRoles, _ := userService.GetUserRoleIds(userService.GetCxtUserId())
  116. list, err = menuService.GetUserRoleMenuTree(userRoles)
  117. }
  118. if err != nil {
  119. return err
  120. }
  121. rsp.Data = list
  122. return nil
  123. }