sys_role.go 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138
  1. package api
  2. import (
  3. "gfast/app/common/global"
  4. CommService "gfast/app/common/service"
  5. "gfast/app/system/model"
  6. "gfast/app/system/service"
  7. "github.com/gogf/gf/frame/g"
  8. "github.com/gogf/gf/net/ghttp"
  9. "github.com/gogf/gf/util/gvalid"
  10. )
  11. type sysRole struct {
  12. systemBase
  13. }
  14. var SysRole = new(sysRole)
  15. // RoleList 角色列表
  16. func (c *sysRole) RoleList(r *ghttp.Request) {
  17. var req *model.SelectPageReq
  18. if err := r.Parse(&req); err != nil {
  19. c.FailJsonExit(r, err.(gvalid.Error).Current().Error())
  20. }
  21. total, page, list, err := service.SysRole.GetRoleListSearch(req)
  22. if err != nil {
  23. g.Log().Error(err)
  24. c.FailJsonExit(r, "获取数据失败")
  25. }
  26. c.SusJsonExit(r, g.Map{
  27. "currentPage": page,
  28. "total": total,
  29. "list": list,
  30. })
  31. }
  32. // GetRoleMenu GetRole 新增角色
  33. func (c *sysRole) GetRoleMenu(r *ghttp.Request) {
  34. mListEntities, err := service.Rule.GetMenuList()
  35. if err != nil {
  36. g.Log().Error(err)
  37. c.FailJsonExit(r, "获取数据失败")
  38. }
  39. mList := service.Rule.GetMenuListTree(0, mListEntities)
  40. res := g.Map{
  41. "menuList": mList,
  42. }
  43. c.SusJsonExit(r, res)
  44. }
  45. // AddRole 新增角色提交
  46. func (c *sysRole) AddRole(r *ghttp.Request) {
  47. res := r.GetFormMap()
  48. if err := service.SysRole.AddRolePost(res); err != nil {
  49. c.FailJsonExit(r, err.Error())
  50. }
  51. c.SusJsonExit(r, "添加角色成功")
  52. }
  53. // 获取修改的角色
  54. func (c *sysRole) GetRole(r *ghttp.Request) {
  55. id := r.GetRequestInt("roleId")
  56. //获取角色信息
  57. role, err := service.SysRole.One(id)
  58. if err != nil {
  59. g.Log().Error(err)
  60. c.FailJsonExit(r, "获取角色数据失败")
  61. }
  62. //获取菜单信息
  63. mListEntities, err := service.Rule.GetMenuList()
  64. if err != nil {
  65. g.Log().Error(err)
  66. c.FailJsonExit(r, "获取菜单数据失败")
  67. }
  68. mList := service.Rule.GetMenuListTree(0, mListEntities)
  69. //获取角色关联的菜单规则
  70. gpSlice, err := service.SysRole.GetFilteredNamedPolicy(id)
  71. if err != nil {
  72. c.FailJsonExit(r, err.Error())
  73. }
  74. c.SusJsonExit(r, g.Map{
  75. "menuList": mList,
  76. "role": role,
  77. "checkedRules": gpSlice,
  78. })
  79. }
  80. // EditRole 编辑角色提交
  81. func (c *sysRole) EditRole(r *ghttp.Request) {
  82. id := r.GetRequestInt("roleId")
  83. res := r.GetFormMap()
  84. if err := service.SysRole.EditRolePost(res, id); err != nil {
  85. c.FailJsonExit(r, err.Error())
  86. }
  87. c.SusJsonExit(r, "修改角色成功")
  88. }
  89. // StatusSetRole 设置角色状态
  90. func (c *sysRole) StatusSetRole(r *ghttp.Request) {
  91. var req *model.StatusSetReq
  92. if err := r.Parse(&req); err != nil {
  93. c.FailJsonExit(r, err.(gvalid.Error).Current().Error())
  94. }
  95. err := service.SysRole.StatusSetRole(req)
  96. if err != nil {
  97. c.FailJsonExit(r, err.Error())
  98. }
  99. c.SusJsonExit(r, "状态设置成功")
  100. }
  101. // RoleDataScope 角色数据权限分配
  102. func (c *sysRole) RoleDataScope(r *ghttp.Request) {
  103. var req *model.DataScopeReq
  104. if err := r.Parse(&req); err != nil {
  105. c.FailJsonExit(r, err.(gvalid.Error).Current().Error())
  106. }
  107. err := service.SysRole.RoleDataScope(req)
  108. if err != nil {
  109. c.FailJsonExit(r, err.Error())
  110. }
  111. CommService.Cache.New().RemoveByTag(global.SysAuthTag)
  112. c.SusJsonExit(r, req)
  113. }
  114. // DeleteRole 删除角色
  115. func (c *sysRole) DeleteRole(r *ghttp.Request) {
  116. ids := r.GetInts("ids")
  117. if len(ids) == 0 {
  118. c.FailJsonExit(r, "删除失败,参数错误")
  119. }
  120. err := service.SysRole.DeleteByIds(ids)
  121. if err != nil {
  122. c.FailJsonExit(r, err.Error())
  123. }
  124. CommService.Cache.New().RemoveByTag(global.SysAuthTag)
  125. c.SusJsonExit(r, "删除成功")
  126. }