role.go 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160
  1. package system
  2. import (
  3. "kpt-pasture/http/middleware"
  4. "net/http"
  5. "strconv"
  6. pasturePb "gitee.com/xuyiping_admin/go_proto/proto/go/backend/cow"
  7. operationPb "gitee.com/xuyiping_admin/go_proto/proto/go/backend/operation"
  8. "gitee.com/xuyiping_admin/pkg/apierr"
  9. "gitee.com/xuyiping_admin/pkg/ginutil"
  10. "gitee.com/xuyiping_admin/pkg/valid"
  11. "github.com/gin-gonic/gin"
  12. )
  13. // RoleCreateOrUpdate 添加或者更新角色
  14. func RoleCreateOrUpdate(c *gin.Context) {
  15. var req pasturePb.SearchRoleRequest
  16. if err := ginutil.BindProto(c, &req); err != nil {
  17. apierr.AbortBadRequest(c, http.StatusBadRequest, err)
  18. return
  19. }
  20. if err := valid.ValidateStruct(&req,
  21. valid.Field(&req.Name, valid.Required),
  22. ); err != nil {
  23. apierr.AbortBadRequest(c, http.StatusBadRequest, err)
  24. return
  25. }
  26. if err := middleware.Dependency(c).StoreEventHub.OpsService.SystemRoleCreateOrUpdate(c, &req); err != nil {
  27. apierr.ClassifiedAbort(c, err)
  28. return
  29. }
  30. ginutil.JSONResp(c, &operationPb.CommonOK{
  31. Code: http.StatusOK,
  32. Msg: "ok",
  33. Data: &operationPb.Success{Success: true},
  34. })
  35. }
  36. // GetRoleMenu 获取角色对应的菜单
  37. func GetRoleMenu(c *gin.Context) {
  38. roleIdStr := c.Param("id")
  39. roleId, _ := strconv.Atoi(roleIdStr)
  40. if err := valid.Validate(roleId, valid.Required, valid.Min(1)); err != nil {
  41. apierr.ClassifiedAbort(c, err)
  42. return
  43. }
  44. res, err := middleware.BackendOperation(c).OpsService.GetRoleMenuList(c, int64(roleId))
  45. if err != nil {
  46. apierr.ClassifiedAbort(c, err)
  47. return
  48. }
  49. ginutil.JSONResp(c, res)
  50. }
  51. // DeleteSystemRole 删除角色
  52. func DeleteSystemRole(c *gin.Context) {
  53. roleIdStr := c.Param("id")
  54. roleId, _ := strconv.Atoi(roleIdStr)
  55. if err := valid.Validate(roleId, valid.Required, valid.Min(1)); err != nil {
  56. apierr.ClassifiedAbort(c, err)
  57. return
  58. }
  59. if err := middleware.BackendOperation(c).OpsService.DeleteSystemRole(c, int64(roleId)); err != nil {
  60. apierr.ClassifiedAbort(c, err)
  61. return
  62. }
  63. ginutil.JSONResp(c, &operationPb.CommonOK{
  64. Code: http.StatusOK,
  65. Msg: "ok",
  66. Data: &operationPb.Success{Success: true},
  67. })
  68. }
  69. func IsShowSystemRole(c *gin.Context) {
  70. roleIdStr := c.Param("id")
  71. roleId, _ := strconv.Atoi(roleIdStr)
  72. if err := valid.Validate(roleId, valid.Required, valid.Min(1)); err != nil {
  73. apierr.ClassifiedAbort(c, err)
  74. return
  75. }
  76. if err := middleware.BackendOperation(c).OpsService.IsShowSystemRole(c, int64(roleId)); err != nil {
  77. apierr.ClassifiedAbort(c, err)
  78. return
  79. }
  80. ginutil.JSONResp(c, &operationPb.CommonOK{
  81. Code: http.StatusOK,
  82. Msg: "ok",
  83. Data: &operationPb.Success{Success: true},
  84. })
  85. }
  86. // SearchSystemRoleList 角色列表
  87. func SearchSystemRoleList(c *gin.Context) {
  88. var req pasturePb.SearchRoleRequest
  89. if err := ginutil.BindProto(c, &req); err != nil {
  90. apierr.AbortBadRequest(c, http.StatusBadRequest, err)
  91. return
  92. }
  93. pagination := &pasturePb.PaginationModel{
  94. Page: int32(c.GetInt(middleware.Page)),
  95. PageSize: int32(c.GetInt(middleware.PageSize)),
  96. PageOffset: int32(c.GetInt(middleware.PageOffset)),
  97. }
  98. res, err := middleware.Dependency(c).StoreEventHub.OpsService.SearchSystemRoleList(c, &req, pagination)
  99. if err != nil {
  100. apierr.ClassifiedAbort(c, err)
  101. return
  102. }
  103. ginutil.JSONResp(c, res)
  104. }
  105. func RoleMenuSave(c *gin.Context) {
  106. var req pasturePb.SystemRoleMenuRequest
  107. if err := ginutil.BindProto(c, &req); err != nil {
  108. apierr.AbortBadRequest(c, http.StatusBadRequest, err)
  109. return
  110. }
  111. if err := valid.ValidateStruct(&req,
  112. valid.Field(&req.RoleId, valid.Required),
  113. valid.Field(&req.MenuIds, valid.Required),
  114. ); err != nil {
  115. apierr.AbortBadRequest(c, http.StatusBadRequest, err)
  116. return
  117. }
  118. if err := middleware.Dependency(c).StoreEventHub.OpsService.RoleMenuSave(c, &req); err != nil {
  119. apierr.ClassifiedAbort(c, err)
  120. return
  121. }
  122. ginutil.JSONResp(c, &operationPb.CommonOK{
  123. Code: http.StatusOK,
  124. Msg: "ok",
  125. Data: &operationPb.Success{Success: true},
  126. })
  127. }
  128. func GetRoleList(c *gin.Context) {
  129. res, err := middleware.Dependency(c).StoreEventHub.OpsService.SystemRoleList(c)
  130. if err != nil {
  131. apierr.ClassifiedAbort(c, err)
  132. return
  133. }
  134. ginutil.JSONResp(c, res)
  135. }