package system import ( operationPb "gitee.com/xuyiping_admin/go_proto/proto/go/backend/operation" "gitee.com/xuyiping_admin/pkg/apierr" "gitee.com/xuyiping_admin/pkg/ginutil" "gitee.com/xuyiping_admin/pkg/valid" "kpt-tmr-group/http/middleware" "net/http" "strconv" "github.com/gin-gonic/gin" ) // AddSystemMenu 添加系统菜单权限 func AddSystemMenu(c *gin.Context) { var req operationPb.AddMenuRequest if err := ginutil.BindProto(c, &req); err != nil { apierr.AbortBadRequest(c, http.StatusBadRequest, err) return } if err := valid.ValidateStruct(&req, valid.Field(&req.Name, valid.Required), valid.Field(&req.Title, valid.Required), valid.Field(&req.MenuType, valid.Required, valid.Min(0), valid.Max(2)), valid.Field(&req.Level, valid.Required, valid.Min(1), valid.Max(3)), valid.Field(&req.Path, valid.Required), ); err != nil { apierr.AbortBadRequest(c, http.StatusBadRequest, err) return } if req.MenuType == 1 { if err := valid.Validate(&req.Component, valid.Required); err != nil { apierr.AbortBadRequest(c, http.StatusBadRequest, err) return } } if err := middleware.BackendOperation(c).OpsService.CreateSystemMenu(c, &req); err != nil { apierr.ClassifiedAbort(c, err) return } ginutil.JSONResp(c, &operationPb.CommonOK{ Code: http.StatusOK, Msg: "ok", Data: &operationPb.Success{Success: true}, }) } // EditSystemMenu 编辑系统菜单权限 func EditSystemMenu(c *gin.Context) { var req operationPb.AddMenuRequest if err := ginutil.BindProto(c, &req); err != nil { apierr.AbortBadRequest(c, http.StatusBadRequest, err) return } if err := valid.ValidateStruct(&req, valid.Field(&req.Id, valid.Required, valid.Min(1)), valid.Field(&req.Name, valid.Required), valid.Field(&req.MenuType, valid.Required, valid.Min(0), valid.Max(2)), valid.Field(&req.Path, valid.Required), ); err != nil { apierr.AbortBadRequest(c, http.StatusBadRequest, err) return } if req.MenuType == 1 { if err := valid.Validate(&req.Component, valid.Required); err != nil { apierr.AbortBadRequest(c, http.StatusBadRequest, err) return } } if err := middleware.BackendOperation(c).OpsService.EditSystemMenu(c, &req); err != nil { apierr.ClassifiedAbort(c, err) return } ginutil.JSONResp(c, &operationPb.CommonOK{ Code: http.StatusOK, Msg: "ok", Data: &operationPb.Success{Success: true}, }) } // IsShowSystemMenu 是否启动 func IsShowSystemMenu(c *gin.Context) { var req operationPb.IsShowSystemMenuRequest if err := ginutil.BindProto(c, &req); err != nil { apierr.AbortBadRequest(c, http.StatusBadRequest, err) return } if err := valid.ValidateStruct(&req, valid.Field(&req.MenuId, valid.Required, valid.Min(1)), valid.Field(&req.IsShow, valid.Required, valid.Min(1), valid.Max(2)), ); err != nil { apierr.AbortBadRequest(c, http.StatusBadRequest, err) return } if err := middleware.Dependency(c).StoreEventHub.OpsService.IsShowSystemMenu(c, &req); err != nil { apierr.ClassifiedAbort(c, err) return } ginutil.JSONResp(c, &operationPb.CommonOK{ Code: http.StatusOK, Msg: "ok", Data: &operationPb.Success{Success: true}, }) } // SearchSystemMenuList 菜单列表查询 func SearchSystemMenuList(c *gin.Context) { var req operationPb.SearchMenuRequest if err := ginutil.BindProto(c, &req); err != nil { apierr.AbortBadRequest(c, http.StatusBadRequest, err) return } req.Pagination = &operationPb.PaginationModel{ Page: int32(c.GetInt(middleware.Page)), PageSize: int32(c.GetInt(middleware.PageSize)), PageOffset: int32(c.GetInt(middleware.PageOffset)), } res, err := middleware.Dependency(c).StoreEventHub.OpsService.SearchSystemMenuList(c, &req) if err != nil { apierr.ClassifiedAbort(c, err) return } ginutil.JSONResp(c, res) } // DeleteSystemMenu 删除菜单 func DeleteSystemMenu(c *gin.Context) { menuIdStr := c.Param("menu_id") menuId, _ := strconv.Atoi(menuIdStr) if err := valid.Validate(menuId, valid.Required, valid.Min(1)); err != nil { apierr.ClassifiedAbort(c, err) return } if err := middleware.BackendOperation(c).OpsService.DeleteSystemMenu(c, int64(menuId)); err != nil { apierr.ClassifiedAbort(c, err) return } ginutil.JSONResp(c, &operationPb.CommonOK{ Code: http.StatusOK, Msg: "ok", Data: &operationPb.Success{Success: true}, }) }