sys_menu.go 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. package controllers
  2. import (
  3. "eta/eta_mini_crm/models"
  4. "eta/eta_mini_crm/services"
  5. )
  6. type SysMenuController struct {
  7. BaseAuthController
  8. }
  9. // @Title 获取用户权限菜单
  10. // @Description 获取用户权限菜单接口
  11. // @Success 200 {object} system.MenuListResp
  12. // @router /list [get]
  13. func (this *SysMenuController) SysMenuList() {
  14. br := new(models.BaseResponse).Init()
  15. defer func() {
  16. this.Data["json"] = br
  17. this.ServeJSON()
  18. }()
  19. sysUser := this.SysUser
  20. if sysUser == nil {
  21. br.Msg = "请登录"
  22. br.ErrMsg = "请登录,SysUser Is Empty"
  23. return
  24. }
  25. roleId := sysUser.SysRoleId
  26. if roleId <= 0 {
  27. br.Msg = "参数错误"
  28. return
  29. }
  30. list, err := models.GetMenuListByRoleIds(roleId)
  31. if err != nil {
  32. br.Msg = "获取失败"
  33. br.ErrMsg = "获取失败,Err:" + err.Error()
  34. return
  35. }
  36. items := make([]*models.SysMenuItem, 0)
  37. for _, v := range list {
  38. t := &models.SysMenuItem{
  39. SysMenuId: v.SysMenuId,
  40. ParentId: v.ParentId,
  41. Name: v.Name,
  42. Level: v.Level,
  43. Sort: v.Sort,
  44. Path: v.Path,
  45. IconPath: v.IconPath,
  46. ButtonCode: v.ButtonCode,
  47. Children: make([]*models.SysMenuItem, 0),
  48. }
  49. items = append(items, t)
  50. }
  51. // 递归返回树形结构
  52. items = services.GetMenuTreeRecursive(items, 0)
  53. br.Ret = 200
  54. br.Success = true
  55. br.Msg = "获取成功"
  56. br.Data = items
  57. }