menu.go 3.9 KB

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