sys_role.go 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237
  1. package controllers
  2. import (
  3. "encoding/json"
  4. "eta/eta_mini_crm/models"
  5. "eta/eta_mini_crm/models/request"
  6. "eta/eta_mini_crm/models/response"
  7. "eta/eta_mini_crm/utils"
  8. "time"
  9. "github.com/beego/beego/v2/client/orm"
  10. "github.com/rdlucklib/rdluck_tools/paging"
  11. )
  12. type SysRoleController struct {
  13. BaseAuthController
  14. }
  15. // List
  16. // @Title 系统角色列表
  17. // @Description 系统角色列表
  18. // @Param request body UserLoginReq true "type json string"
  19. // @Success 200 {object} response.SysRoleListResp
  20. // @router /list [get]
  21. func (this *SysRoleController) List() {
  22. br := new(models.BaseResponse).Init()
  23. defer func() {
  24. this.Data["json"] = br
  25. this.ServeJSON()
  26. }()
  27. pageSize, _ := this.GetInt("PageSize")
  28. currentIndex, _ := this.GetInt("CurrentIndex")
  29. var startSize int
  30. if pageSize <= 0 {
  31. pageSize = utils.PageSize20
  32. }
  33. if currentIndex <= 0 {
  34. currentIndex = 1
  35. }
  36. startSize = utils.StartIndex(currentIndex, pageSize)
  37. total, err := models.GetSysRoleListCount()
  38. if err != nil {
  39. br.Msg = "获取失败"
  40. br.ErrMsg = "获取失败,Err:" + err.Error()
  41. return
  42. }
  43. list, err := models.GetSysRoleList(startSize, pageSize)
  44. if err != nil {
  45. br.Msg = "获取失败"
  46. br.ErrMsg = "获取失败,Err:" + err.Error()
  47. return
  48. }
  49. page := paging.GetPaging(currentIndex, pageSize, total)
  50. resp := new(response.SysRoleListResp)
  51. resp.List = list
  52. resp.Paging = page
  53. br.Ret = 200
  54. br.Success = true
  55. br.Msg = "获取成功"
  56. br.Data = resp
  57. }
  58. // @Title 删除角色
  59. // @Description 删除角色接口
  60. // @Param request body system.SysRoleDeleteReq true "type json string"
  61. // @Success 200 删除成功
  62. // @router /delete [post]
  63. func (this *SysRoleController) Delete() {
  64. br := new(models.BaseResponse).Init()
  65. defer func() {
  66. this.Data["json"] = br
  67. this.ServeJSON()
  68. }()
  69. var req request.SysRoleDeleteReq
  70. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  71. if err != nil {
  72. br.Msg = "参数解析异常!"
  73. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  74. return
  75. }
  76. if req.SysRoleId <= 0 {
  77. br.Msg = "参数错误"
  78. br.ErrMsg = "参数错误,GroupId 小于等于0 "
  79. return
  80. }
  81. role, err := models.GetSysRoleById(req.SysRoleId)
  82. if err != nil {
  83. if err == orm.ErrNoRows {
  84. br.Msg = "角色不存在, 请刷新页面"
  85. return
  86. }
  87. br.Msg = "删除失败"
  88. br.ErrMsg = "获取角色信息失败, Err: " + err.Error()
  89. return
  90. }
  91. if role.SysRoleName == "admin" {
  92. br.Msg = "admin角色不可删除"
  93. return
  94. }
  95. count, err := models.GetSysUserCountByRoleId(req.SysRoleId)
  96. if err != nil {
  97. br.Msg = "删除失败"
  98. br.ErrMsg = "获取用户数量失败,Err: " + err.Error()
  99. return
  100. }
  101. if count > 0 {
  102. br.Msg = "角色绑定用户,不可删除"
  103. return
  104. }
  105. err = models.DeleteSysRoleById(req.SysRoleId)
  106. if err != nil {
  107. br.Msg = "删除失败"
  108. br.Msg = "删除角色失败,系统错误,Err: " + err.Error()
  109. return
  110. }
  111. br.Msg = "删除成功"
  112. br.Ret = 200
  113. br.Success = true
  114. }
  115. // @Title 新增角色
  116. // @Description 新增角色接口
  117. // @Param request body request.SysRoleAddReq true "type json string"
  118. // @Success 200 新增成功
  119. // @router /add [post]
  120. func (this *SysRoleController) Add() {
  121. br := new(models.BaseResponse).Init()
  122. defer func() {
  123. this.Data["json"] = br
  124. this.ServeJSON()
  125. }()
  126. var req request.SysRoleAddReq
  127. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  128. if err != nil {
  129. br.Msg = "参数解析异常!"
  130. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  131. return
  132. }
  133. if req.SysRoleName == "" {
  134. br.Msg = "角色名称不能为空"
  135. return
  136. }
  137. count, err := models.GetSysRoleCountByRoleName(req.SysRoleName)
  138. if err != nil {
  139. br.Msg = "新增角色失败"
  140. br.ErrMsg = "新增角色失败,系统异常,Err:" + err.Error()
  141. return
  142. }
  143. if count > 0 {
  144. br.Msg = "角色已存在,请重新输入"
  145. return
  146. }
  147. sysRole := &models.SysRole{}
  148. sysRole.SysRoleName = req.SysRoleName
  149. sysRole.CreateTime = time.Now()
  150. sysRole.ModifyTime = time.Now()
  151. err = sysRole.Add()
  152. if err != nil {
  153. br.Msg = "新增角色失败"
  154. br.ErrMsg = "新增角色失败,系统异常,Err:" + err.Error()
  155. return
  156. }
  157. br.Ret = 200
  158. br.Msg = "新增角色成功"
  159. br.Success = true
  160. }
  161. // @Title 新增角色
  162. // @Description 新增角色接口
  163. // @Param request body request.SysRoleAddReq true "type json string"
  164. // @Success 200 新增成功
  165. // @router /edit [post]
  166. func (this *SysRoleController) Edit() {
  167. br := new(models.BaseResponse).Init()
  168. defer func() {
  169. this.Data["json"] = br
  170. this.ServeJSON()
  171. }()
  172. var req request.SysRoleEditReq
  173. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  174. if err != nil {
  175. br.Msg = "参数解析异常!"
  176. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  177. return
  178. }
  179. if req.SysRoleId <= 0 {
  180. br.Msg = "参数错误"
  181. br.ErrMsg = "参数错误,GroupId 小于等于0 "
  182. return
  183. }
  184. if req.SysRoleName == "" {
  185. br.Msg = "分组名称不能为空"
  186. return
  187. }
  188. sysRole, err := models.GetSysRoleById(req.SysRoleId)
  189. if err != nil {
  190. if err == orm.ErrNoRows {
  191. br.Msg = "角色不存在,请刷新页面"
  192. return
  193. }
  194. br.Msg = "操作失败"
  195. br.ErrMsg = "获取角色失败, Err:" + err.Error()
  196. return
  197. }
  198. if sysRole.SysRoleName == "admin" {
  199. br.Msg = "admin角色不可编辑"
  200. return
  201. }
  202. count, err := models.GetSysRoleCountByRoleName(req.SysRoleName)
  203. if count > 0 {
  204. br.Msg = "名称已存在,请重新输入"
  205. return
  206. }
  207. if err != nil && err != orm.ErrNoRows {
  208. br.Msg = "操作失败"
  209. br.ErrMsg = "获取重名角色失败,Err:" + err.Error()
  210. return
  211. }
  212. err = models.UpdateSysUserRoleByRoleId(req.SysRoleId, req.SysRoleName)
  213. if err != nil {
  214. br.Msg = "编辑失败"
  215. br.ErrMsg = "编辑角色失败,Err:" + err.Error()
  216. return
  217. }
  218. br.Ret = 200
  219. br.Success = true
  220. br.Msg = "编辑成功"
  221. }