menu.go 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  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. // CreatedOrUpdateSystemMenu 添加或者更新系统菜单权限
  14. func CreatedOrUpdateSystemMenu(c *gin.Context) {
  15. var req pasturePb.SearchMenuRequest
  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. valid.Field(&req.Title, valid.Required),
  23. valid.Field(&req.MenuType, valid.Required, valid.Min(0), valid.Max(2)),
  24. valid.Field(&req.Path, valid.Required),
  25. ); err != nil {
  26. apierr.AbortBadRequest(c, http.StatusBadRequest, err)
  27. return
  28. }
  29. if err := middleware.BackendOperation(c).OpsService.CreateOrUpdateSystemMenu(c, &req); err != nil {
  30. apierr.ClassifiedAbort(c, err)
  31. return
  32. }
  33. ginutil.JSONResp(c, &operationPb.CommonOK{
  34. Code: http.StatusOK,
  35. Msg: "ok",
  36. Data: &operationPb.Success{Success: true},
  37. })
  38. }
  39. // SearchSystemMenuList 菜单列表查询
  40. func SearchSystemMenuList(c *gin.Context) {
  41. var req pasturePb.SearchMenuRequest
  42. if err := ginutil.BindProto(c, &req); err != nil {
  43. apierr.AbortBadRequest(c, http.StatusBadRequest, err)
  44. return
  45. }
  46. pagination := &pasturePb.PaginationModel{
  47. Page: int32(c.GetInt(middleware.Page)),
  48. PageSize: int32(c.GetInt(middleware.PageSize)),
  49. PageOffset: int32(c.GetInt(middleware.PageOffset)),
  50. }
  51. res, err := middleware.Dependency(c).StoreEventHub.OpsService.SearchSystemMenuList(c, &req, pagination)
  52. if err != nil {
  53. apierr.ClassifiedAbort(c, err)
  54. return
  55. }
  56. ginutil.JSONResp(c, res)
  57. }
  58. // DeleteSystemMenu 删除菜单
  59. func DeleteSystemMenu(c *gin.Context) {
  60. menuIdStr := c.Param("id")
  61. menuId, _ := strconv.Atoi(menuIdStr)
  62. if err := valid.Validate(menuId, valid.Required, valid.Min(1)); err != nil {
  63. apierr.ClassifiedAbort(c, err)
  64. return
  65. }
  66. if err := middleware.BackendOperation(c).OpsService.DeleteSystemMenu(c, int64(menuId)); err != nil {
  67. apierr.ClassifiedAbort(c, err)
  68. return
  69. }
  70. ginutil.JSONResp(c, &operationPb.CommonOK{
  71. Code: http.StatusOK,
  72. Msg: "ok",
  73. Data: &operationPb.Success{Success: true},
  74. })
  75. }
  76. // GetSystemMenuTree 角色菜单
  77. func GetSystemMenuTree(c *gin.Context) {
  78. res, err := middleware.Dependency(c).StoreEventHub.OpsService.SystemMenuTree(c)
  79. if err != nil {
  80. apierr.ClassifiedAbort(c, err)
  81. return
  82. }
  83. ginutil.JSONResp(c, res)
  84. }