package controller import ( "github.com/gin-gonic/gin" "hospital-admin-api/api/requests" "hospital-admin-api/api/responses" "hospital-admin-api/api/service" "hospital-admin-api/global" "hospital-admin-api/utils" ) type Menu struct{} var MenuRequest requests.MenuRequest // GetMenuList 获取全部菜单列表 func (r *Menu) GetMenuList(c *gin.Context) { MenuService := service.MenuService{} MenuList, err := MenuService.GetMenuList() if err != nil { responses.FailWithMessage(err.Error(), c) return } if MenuList == nil { responses.FailWithMessage("请联系管理人员设置菜单", c) return } responses.OkWithData(MenuList, c) return } // AddMenu 新增菜单 func (r *Menu) AddMenu(c *gin.Context) { if err := c.ShouldBindJSON(&MenuRequest.AddMenu); err != nil { responses.FailWithMessage(err.Error(), c) return } // 参数验证 if err := global.Validate.Struct(MenuRequest.AddMenu); err != nil { responses.FailWithMessage(utils.Translate(err), c) return } // 处理参数 if MenuRequest.AddMenu.MenuType == 1 || MenuRequest.AddMenu.MenuType == 2 { // 模块-菜单 if MenuRequest.AddMenu.Path == "" { responses.FailWithMessage("请填写页面地址", c) return } if MenuRequest.AddMenu.Component == "" { responses.FailWithMessage("请填写组件名称", c) return } } // 非模块无父级 if MenuRequest.AddMenu.ParentId == 0 && MenuRequest.AddMenu.MenuType != 1 { responses.FailWithMessage("请选择父节点", c) return } // 模块存在父级 if MenuRequest.AddMenu.ParentId != 0 && MenuRequest.AddMenu.MenuType == 1 { responses.FailWithMessage("顶级菜单,无法添加上级菜单", c) return } // 业务处理 MenuService := service.MenuService{} _, err := MenuService.AddMenu(MenuRequest.AddMenu) if err != nil { responses.FailWithMessage(err.Error(), c) return } responses.Ok(c) return } // PutMenu 修改菜单 func (r *Menu) PutMenu(c *gin.Context) { if err := c.ShouldBindJSON(&MenuRequest.PutMenu); err != nil { responses.FailWithMessage(err.Error(), c) return } // 参数验证 if err := global.Validate.Struct(MenuRequest.PutMenu); err != nil { responses.FailWithMessage(utils.Translate(err), c) return } // 处理参数 if MenuRequest.AddMenu.MenuType == 1 || MenuRequest.AddMenu.MenuType == 2 { // 模块-菜单 if MenuRequest.AddMenu.Path == "" { responses.FailWithMessage("请填写页面地址", c) return } if MenuRequest.AddMenu.Component == "" { responses.FailWithMessage("请填写组件名称", c) return } } // 非模块无父级 if MenuRequest.AddMenu.ParentId == 0 && MenuRequest.AddMenu.MenuType != 1 { responses.FailWithMessage("请选择父节点", c) return } // 模块存在父级 if MenuRequest.AddMenu.ParentId != 0 && MenuRequest.AddMenu.MenuType == 1 { responses.FailWithMessage("顶级菜单,无法添加上级菜单", c) return } // 业务处理 MenuService := service.MenuService{} _, err := MenuService.PutMenu(MenuRequest.PutMenu) if err != nil { responses.FailWithMessage(err.Error(), c) return } responses.Ok(c) return }