menu.go 3.9 KB

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