135 lines
3.1 KiB
Go
135 lines
3.1 KiB
Go
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
|
|
}
|