menu.go 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159
  1. package system
  2. import (
  3. "kpt-tmr-group/http/middleware"
  4. "kpt-tmr-group/pkg/apierr"
  5. "kpt-tmr-group/pkg/ginutil"
  6. "kpt-tmr-group/pkg/valid"
  7. operationPb "kpt-tmr-group/proto/go/backend/operation"
  8. "net/http"
  9. "strconv"
  10. "github.com/gin-gonic/gin"
  11. )
  12. // AddSystemMenu 添加系统菜单权限
  13. func AddSystemMenu(c *gin.Context) {
  14. var req operationPb.AddMenuRequest
  15. if err := ginutil.BindProto(c, &req); err != nil {
  16. apierr.AbortBadRequest(c, http.StatusBadRequest, err)
  17. return
  18. }
  19. if err := valid.ValidateStruct(&req,
  20. valid.Field(&req.Name, valid.Required),
  21. valid.Field(&req.Title, valid.Required),
  22. valid.Field(&req.MenuType, valid.Required, valid.Min(0), valid.Max(2)),
  23. valid.Field(&req.Level, valid.Required, valid.Min(1), valid.Max(3)),
  24. valid.Field(&req.Path, valid.Required),
  25. ); err != nil {
  26. apierr.AbortBadRequest(c, http.StatusBadRequest, err)
  27. return
  28. }
  29. if req.MenuType == 1 {
  30. if err := valid.Validate(&req.Component, valid.Required); err != nil {
  31. apierr.AbortBadRequest(c, http.StatusBadRequest, err)
  32. return
  33. }
  34. }
  35. if err := middleware.BackendOperation(c).OpsService.CreateSystemMenu(c, &req); err != nil {
  36. apierr.ClassifiedAbort(c, err)
  37. return
  38. }
  39. ginutil.JSONResp(c, &operationPb.CommonOK{
  40. Code: http.StatusOK,
  41. Msg: "ok",
  42. Data: &operationPb.Success{Success: true},
  43. })
  44. }
  45. // EditSystemMenu 编辑系统菜单权限
  46. func EditSystemMenu(c *gin.Context) {
  47. var req operationPb.AddMenuRequest
  48. if err := ginutil.BindProto(c, &req); err != nil {
  49. apierr.AbortBadRequest(c, http.StatusBadRequest, err)
  50. return
  51. }
  52. if err := valid.ValidateStruct(&req,
  53. valid.Field(&req.Id, valid.Required, valid.Min(1)),
  54. valid.Field(&req.Name, valid.Required),
  55. valid.Field(&req.ParentId, valid.Required, valid.Min(0)),
  56. valid.Field(&req.MenuType, valid.Required, valid.Min(0), valid.Max(2)),
  57. valid.Field(&req.Path, valid.Required),
  58. ); err != nil {
  59. apierr.AbortBadRequest(c, http.StatusBadRequest, err)
  60. return
  61. }
  62. if req.MenuType == 1 {
  63. if err := valid.Validate(&req.Component, valid.Required); err != nil {
  64. apierr.AbortBadRequest(c, http.StatusBadRequest, err)
  65. return
  66. }
  67. }
  68. if err := middleware.BackendOperation(c).OpsService.EditSystemMenu(c, &req); err != nil {
  69. apierr.ClassifiedAbort(c, err)
  70. return
  71. }
  72. ginutil.JSONResp(c, &operationPb.CommonOK{
  73. Code: http.StatusOK,
  74. Msg: "ok",
  75. Data: &operationPb.Success{Success: true},
  76. })
  77. }
  78. // IsShowSystemMenu 是否启动
  79. func IsShowSystemMenu(c *gin.Context) {
  80. var req operationPb.IsShowSystemMenuRequest
  81. if err := ginutil.BindProto(c, &req); err != nil {
  82. apierr.AbortBadRequest(c, http.StatusBadRequest, err)
  83. return
  84. }
  85. if err := valid.ValidateStruct(&req,
  86. valid.Field(&req.MenuId, valid.Required, valid.Min(1)),
  87. valid.Field(&req.IsShow, valid.Required, valid.Min(1), valid.Max(2)),
  88. ); err != nil {
  89. apierr.AbortBadRequest(c, http.StatusBadRequest, err)
  90. return
  91. }
  92. if err := middleware.Dependency(c).StoreEventHub.OpsService.IsShowSystemMenu(c, &req); err != nil {
  93. apierr.ClassifiedAbort(c, err)
  94. return
  95. }
  96. ginutil.JSONResp(c, &operationPb.CommonOK{
  97. Code: http.StatusOK,
  98. Msg: "ok",
  99. Data: &operationPb.Success{Success: true},
  100. })
  101. }
  102. // SearchSystemMenuList 菜单列表查询
  103. func SearchSystemMenuList(c *gin.Context) {
  104. var req operationPb.SearchMenuRequest
  105. if err := ginutil.BindProto(c, &req); err != nil {
  106. apierr.AbortBadRequest(c, http.StatusBadRequest, err)
  107. return
  108. }
  109. req.Pagination = &operationPb.PaginationModel{
  110. Page: int32(c.GetInt(middleware.Page)),
  111. PageSize: int32(c.GetInt(middleware.PageSize)),
  112. PageOffset: int32(c.GetInt(middleware.PageOffset)),
  113. }
  114. res, err := middleware.Dependency(c).StoreEventHub.OpsService.SearchSystemMenuList(c, &req)
  115. if err != nil {
  116. apierr.ClassifiedAbort(c, err)
  117. return
  118. }
  119. ginutil.JSONResp(c, res)
  120. }
  121. // DeleteSystemMenu 删除菜单
  122. func DeleteSystemMenu(c *gin.Context) {
  123. menuIdStr := c.Param("menu_id")
  124. menuId, _ := strconv.Atoi(menuIdStr)
  125. if err := valid.Validate(menuId, valid.Required, valid.Min(1)); err != nil {
  126. apierr.ClassifiedAbort(c, err)
  127. return
  128. }
  129. if err := middleware.BackendOperation(c).OpsService.DeleteSystemMenu(c, int64(menuId)); err != nil {
  130. apierr.ClassifiedAbort(c, err)
  131. return
  132. }
  133. ginutil.JSONResp(c, &operationPb.CommonOK{
  134. Code: http.StatusOK,
  135. Msg: "ok",
  136. Data: &operationPb.Success{Success: true},
  137. })
  138. }