role.go 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394
  1. package controller
  2. import (
  3. "github.com/gin-gonic/gin"
  4. "github.com/mhaya/game/game_cluster/internal/code"
  5. "github.com/mhaya/game/game_cluster/nodes/adminapi/common"
  6. "github.com/mhaya/game/game_cluster/nodes/adminapi/entity"
  7. "github.com/mhaya/game/game_cluster/nodes/adminapi/service"
  8. )
  9. type Role struct {
  10. sev *service.Role
  11. }
  12. func NewRole() *Role {
  13. return &Role{
  14. sev: service.NewRole(),
  15. }
  16. }
  17. // Add 新增角色
  18. // @Summary 新增角色
  19. // @Description 新增角色
  20. // @Tags 角色
  21. // @Accept application/json
  22. // @Produce application/json
  23. // @Param data body entity.RoleAddReq true "新增角色"
  24. // @Success 200 {object} entity.Response
  25. // @Router /v1/admin/role/add [post]
  26. func (r *Role) Add(ctx *gin.Context) {
  27. var req entity.RoleAddReq
  28. if err := ctx.ShouldBindJSON(&req); err != nil {
  29. common.PackOkResult(ctx, code.ParamError)
  30. return
  31. }
  32. err := r.sev.Add(ctx, req)
  33. if err != nil {
  34. common.PackOkResult(ctx, err.Code)
  35. return
  36. }
  37. common.PackOkResult(ctx, code.OK, nil)
  38. }
  39. // List 角色列表
  40. // @Summary 角色列表
  41. // @Description 角色列表
  42. // @Tags 角色
  43. // @Accept application/json
  44. // @Produce application/json
  45. // @Param data query entity.RoleListReq true "角色列表"
  46. // @Success 200 {object} entity.Response
  47. // @Router /v1/admin/role/list [get]
  48. func (r *Role) List(ctx *gin.Context) {
  49. var req entity.RoleListReq
  50. if err := ctx.ShouldBindJSON(&req); err != nil {
  51. common.PackOkResult(ctx, code.ParamError)
  52. return
  53. }
  54. resp, err := r.sev.List(ctx, req)
  55. if err != nil {
  56. common.PackOkResult(ctx, err.Code)
  57. return
  58. }
  59. common.PackOkResult(ctx, code.OK, resp)
  60. }
  61. // Update 修改角色
  62. // @Summary 修改角色
  63. // @Description 修改角色
  64. // @Tags 角色
  65. // @Accept application/json
  66. // @Produce application/json
  67. // @Param data body entity.RoleUpdateReq true "修改角色"
  68. // @Success 200 {object} entity.Response
  69. // @Router /v1/admin/role/update [post]
  70. func (r *Role) Update(ctx *gin.Context) {
  71. var req entity.RoleUpdateReq
  72. if err := ctx.ShouldBindJSON(&req); err != nil {
  73. common.PackOkResult(ctx, code.ParamError)
  74. return
  75. }
  76. err := r.sev.Update(ctx, req)
  77. if err != nil {
  78. common.PackOkResult(ctx, err.Code)
  79. return
  80. }
  81. common.PackOkResult(ctx, code.OK, nil)
  82. }
  83. // Del 删除角色
  84. // @Summary 删除角色
  85. // @Description 删除角色
  86. // @Tags 角色
  87. // @Accept application/json
  88. // @Produce application/json
  89. // @Param data query entity.RoleDelReq true "删除角色"
  90. // @Success 200 {object} entity.Response
  91. // @Router /v1/admin/role/del [get]
  92. func (r *Role) Del(ctx *gin.Context) {
  93. var req entity.RoleDelReq
  94. if err := ctx.ShouldBindJSON(&req); err != nil {
  95. common.PackOkResult(ctx, code.ParamError)
  96. return
  97. }
  98. err := r.sev.Del(ctx, req)
  99. if err != nil {
  100. common.PackOkResult(ctx, err.Code)
  101. return
  102. }
  103. common.PackOkResult(ctx, code.OK, nil)
  104. }
  105. // AddRoleAccess 添加角色权限
  106. // @Summary 添加角色权限
  107. // @Description 添加角色权限
  108. // @Tags 角色
  109. // @Accept application/json
  110. // @Produce application/json
  111. // @Param data body entity.RoleAccessAddReq true "添加角色权限"
  112. // @Success 200 {object} entity.Response
  113. // @Router /v1/admin/role/role_access/add [post]
  114. func (r *Role) AddRoleAccess(ctx *gin.Context) {
  115. var req entity.RoleAccessAddReq
  116. if err := ctx.ShouldBindJSON(&req); err != nil {
  117. common.PackOkResult(ctx, code.ParamError)
  118. return
  119. }
  120. err := r.sev.AddRoleAccess(ctx, req)
  121. if err != nil {
  122. common.PackOkResult(ctx, err.Code)
  123. return
  124. }
  125. common.PackOkResult(ctx, code.OK, nil)
  126. }
  127. // UpdateRoleAccess 修改角色权限
  128. // @Summary 修改角色权限
  129. // @Description 修改角色权限
  130. // @Tags 角色
  131. // @Accept application/json
  132. // @Produce application/json
  133. // @Param data body entity.RoleAccessUpdateReq true "修改角色权限"
  134. // @Success 200 {object} entity.Response
  135. // @Router /v1/admin/role/role_access/update [post]
  136. func (r *Role) UpdateRoleAccess(ctx *gin.Context) {
  137. var req entity.RoleAccessUpdateReq
  138. if err := ctx.ShouldBindJSON(&req); err != nil {
  139. common.PackOkResult(ctx, code.ParamError)
  140. return
  141. }
  142. err := r.sev.UpdateRoleAccess(ctx, req)
  143. if err != nil {
  144. common.PackOkResult(ctx, err.Code)
  145. return
  146. }
  147. common.PackOkResult(ctx, code.OK, nil)
  148. }
  149. // DelRoleAccess 删除角色权限
  150. // @Summary 删除角色权限
  151. // @Description 删除角色权限
  152. // @Tags 角色
  153. // @Accept application/json
  154. // @Produce application/json
  155. // @Param data query entity.RoleAccessDelReq true "删除角色权限"
  156. // @Success 200 {object} entity.Response
  157. // @Router /v1/admin/role/role_access/del [get]
  158. func (r *Role) DelRoleAccess(ctx *gin.Context) {
  159. var req entity.RoleAccessDelReq
  160. if err := ctx.ShouldBindJSON(&req); err != nil {
  161. common.PackOkResult(ctx, code.ParamError)
  162. return
  163. }
  164. err := r.sev.DelRoleAccess(ctx, req)
  165. if err != nil {
  166. common.PackOkResult(ctx, err.Code)
  167. return
  168. }
  169. common.PackOkResult(ctx, code.OK, nil)
  170. }
  171. // GetRoleAccessList 获取角色权限列表根据角色ID
  172. // @Summary 获取角色权限列表根据角色ID
  173. // @Description 获取角色权限列表根据角色ID
  174. // @Tags 角色
  175. // @Accept application/json
  176. // @Produce application/json
  177. // @Param data query entity.RoleAccessListReq true "获取角色权限列表根据角色ID"
  178. // @Success 200 {object} []entity.AccessResp
  179. // @Router /v1/admin/role/role_access/list [get]
  180. func (r *Role) GetRoleAccessList(ctx *gin.Context) {
  181. var req entity.RoleAccessListReq
  182. if err := ctx.ShouldBindJSON(&req); err != nil {
  183. common.PackOkResult(ctx, code.ParamError)
  184. return
  185. }
  186. resp, err := r.sev.GetRoleAccessList(ctx, req)
  187. if err != nil {
  188. common.PackOkResult(ctx, err.Code)
  189. return
  190. }
  191. common.PackOkResult(ctx, code.OK, resp)
  192. }
  193. // AddAccess 添加权限路由
  194. // @Summary 添加权限路由
  195. // @Description 添加权限路由
  196. // @Tags 角色-路由
  197. // @Accept application/json
  198. // @Produce application/json
  199. // @Param data body entity.AccessAddReq true "添加权限路由"
  200. // @Success 200 {object} entity.Response
  201. // @Router /v1/admin/role/access/add [post]
  202. func (r *Role) AddAccess(ctx *gin.Context) {
  203. var req entity.AccessAddReq
  204. if err := ctx.ShouldBindJSON(&req); err != nil {
  205. common.PackOkResult(ctx, code.ParamError)
  206. return
  207. }
  208. err := r.sev.AddAccess(ctx, req)
  209. if err != nil {
  210. common.PackOkResult(ctx, err.Code)
  211. return
  212. }
  213. common.PackOkResult(ctx, code.OK, nil)
  214. }
  215. // DelAccess
  216. // @Summary 删除权限路由
  217. // @Description 删除权限路由
  218. // @Tags 角色-路由
  219. // @Accept application/json
  220. // @Produce application/json
  221. // @Param data query entity.AccessDelReq true "删除权限路由"
  222. // @Success 200 {object} entity.Response
  223. // @Router /v1/admin/role/access/del [Get]
  224. func (r *Role) DelAccess(ctx *gin.Context) {
  225. var req entity.AccessDelReq
  226. if err := ctx.ShouldBindJSON(&req); err != nil {
  227. common.PackOkResult(ctx, code.ParamError)
  228. return
  229. }
  230. err := r.sev.DelAccess(ctx, req)
  231. if err != nil {
  232. common.PackOkResult(ctx, err.Code)
  233. return
  234. }
  235. common.PackOkResult(ctx, code.OK, nil)
  236. }
  237. // UpdateAccess 修改权限路由
  238. // @Summary 修改权限路由
  239. // @Description 修改权限路由
  240. // @Tags 角色-路由
  241. // @Accept application/json
  242. // @Produce application/json
  243. // @Param data body entity.AccessUpdateReq true "修改权限路由"
  244. // @Success 200 {object} entity.Response
  245. // @Router /v1/admin/role/access/update [post]
  246. func (r *Role) UpdateAccess(ctx *gin.Context) {
  247. var req entity.AccessUpdateReq
  248. if err := ctx.ShouldBindJSON(&req); err != nil {
  249. common.PackOkResult(ctx, code.ParamError)
  250. return
  251. }
  252. err := r.sev.UpdateAccess(ctx, req)
  253. if err != nil {
  254. common.PackOkResult(ctx, err.Code)
  255. return
  256. }
  257. common.PackOkResult(ctx, code.OK, nil)
  258. }
  259. // ListAccess 获取权限路由列表
  260. // @Summary 获取权限路由列表
  261. // @Description 获取权限路由列表
  262. // @Tags 角色-路由
  263. // @Accept application/json
  264. // @Produce application/json
  265. // @Param data query entity.AccessListReq true "获取权限路由列表"
  266. // @Success 200 {object} []entity.AccessResp
  267. // @Router /v1/admin/role/access/list [get]
  268. func (r *Role) ListAccess(ctx *gin.Context) {
  269. var req entity.AccessListReq
  270. if err := ctx.ShouldBindJSON(&req); err != nil {
  271. common.PackOkResult(ctx, code.ParamError)
  272. return
  273. }
  274. resp, err := r.sev.ListAccess(ctx, req)
  275. if err != nil {
  276. common.PackOkResult(ctx, err.Code)
  277. return
  278. }
  279. common.PackOkResult(ctx, code.OK, resp)
  280. }
  281. // GetAdminRole
  282. // @Summary 获取该管理员的权限详情
  283. // @Description 获取该管理员的权限详情
  284. // @Tags 角色
  285. // @Accept application/json
  286. // @Produce application/json
  287. // @Param data query entity.AdminBindRoleReq true "获取角色"
  288. // @Success 200 {object} entity.AdminBindRoleResp
  289. // @Router /v1/admin/role/admin_role_info [post]
  290. func (r *Role) GetAdminRole(ctx *gin.Context) {
  291. var req entity.AdminBindRoleReq
  292. if err := ctx.ShouldBindJSON(&req); err != nil {
  293. common.PackOkResult(ctx, code.ParamError)
  294. return
  295. }
  296. resp, err := r.sev.GetAdminRole(ctx, req)
  297. if err != nil {
  298. common.PackOkResult(ctx, err.Code)
  299. return
  300. }
  301. common.PackOkResult(ctx, code.OK, resp)
  302. }
  303. // AdminBindRole 绑定角色
  304. // @Summary 绑定角色
  305. // @Description 绑定角色
  306. // @Tags 角色
  307. // @Accept application/json
  308. // @Produce application/json
  309. // @Param data body entity.AdminBindRoleReq true "绑定角色"
  310. // @Success 200 {object} entity.Response
  311. // @Router /v1/admin/role/admin_bind_role [post]
  312. func (r *Role) AdminBindRole(ctx *gin.Context) {
  313. var req entity.AdminBindRoleReq
  314. if err := ctx.ShouldBindJSON(&req); err != nil {
  315. common.PackOkResult(ctx, code.ParamError)
  316. return
  317. }
  318. err := r.sev.AdminBindRole(ctx, req)
  319. if err != nil {
  320. common.PackOkResult(ctx, err.Code)
  321. return
  322. }
  323. common.PackOkResult(ctx, code.OK, nil)
  324. }
  325. // AdminUnBindRole 取消绑定角色
  326. // @Summary 取消绑定角色
  327. // @Description 取消绑定角色
  328. // @Tags 角色
  329. // @Accept application/json
  330. // @Produce application/json
  331. // @Param data body entity.AdminBindRoleReq true "取消绑定角色"
  332. // @Success 200 {object} entity.Response
  333. // @Router /v1/admin/role/admin_unbind_role [post]
  334. func (r *Role) AdminUnBindRole(ctx *gin.Context) {
  335. var req entity.AdminBindRoleReq
  336. if err := ctx.ShouldBindJSON(&req); err != nil {
  337. common.PackOkResult(ctx, code.ParamError)
  338. return
  339. }
  340. err := r.sev.AdminUnBindRole(ctx, req)
  341. if err != nil {
  342. common.PackOkResult(ctx, err.Code)
  343. return
  344. }
  345. common.PackOkResult(ctx, code.OK, nil)
  346. }