新增修改菜单
This commit is contained in:
parent
f414704688
commit
195942a4f5
@ -7,6 +7,7 @@ import (
|
||||
"hospital-admin-api/api/service"
|
||||
"hospital-admin-api/global"
|
||||
"hospital-admin-api/utils"
|
||||
"strconv"
|
||||
)
|
||||
|
||||
type Menu struct{}
|
||||
@ -95,35 +96,48 @@ func (r *Menu) PutMenu(c *gin.Context) {
|
||||
return
|
||||
}
|
||||
|
||||
id := c.Param("menu_id")
|
||||
if id == "" {
|
||||
responses.FailWithMessage("缺少参数", c)
|
||||
return
|
||||
}
|
||||
|
||||
// 将 id 转换为 int64 类型
|
||||
menuId, err := strconv.ParseInt(id, 10, 64)
|
||||
if err != nil {
|
||||
responses.Fail(c)
|
||||
return
|
||||
}
|
||||
|
||||
// 处理参数
|
||||
if MenuRequest.AddMenu.MenuType == 1 || MenuRequest.AddMenu.MenuType == 2 {
|
||||
if MenuRequest.PutMenu.MenuType == 1 || MenuRequest.PutMenu.MenuType == 2 {
|
||||
// 模块-菜单
|
||||
if MenuRequest.AddMenu.Path == "" {
|
||||
if MenuRequest.PutMenu.Path == "" {
|
||||
responses.FailWithMessage("请填写页面地址", c)
|
||||
return
|
||||
}
|
||||
|
||||
if MenuRequest.AddMenu.Component == "" {
|
||||
if MenuRequest.PutMenu.Component == "" {
|
||||
responses.FailWithMessage("请填写组件名称", c)
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
// 非模块无父级
|
||||
if MenuRequest.AddMenu.ParentId == 0 && MenuRequest.AddMenu.MenuType != 1 {
|
||||
if MenuRequest.PutMenu.ParentId == 0 && MenuRequest.PutMenu.MenuType != 1 {
|
||||
responses.FailWithMessage("请选择父节点", c)
|
||||
return
|
||||
}
|
||||
|
||||
// 模块存在父级
|
||||
if MenuRequest.AddMenu.ParentId != 0 && MenuRequest.AddMenu.MenuType == 1 {
|
||||
if MenuRequest.PutMenu.ParentId != 0 && MenuRequest.PutMenu.MenuType == 1 {
|
||||
responses.FailWithMessage("顶级菜单,无法添加上级菜单", c)
|
||||
return
|
||||
}
|
||||
|
||||
// 业务处理
|
||||
MenuService := service.MenuService{}
|
||||
_, err := MenuService.PutMenu(MenuRequest.PutMenu)
|
||||
_, err = MenuService.PutMenu(menuId, MenuRequest.PutMenu)
|
||||
if err != nil {
|
||||
responses.FailWithMessage(err.Error(), c)
|
||||
return
|
||||
|
||||
@ -52,3 +52,12 @@ func (r *AdminMenuDao) AddAdminMenu(tx *gorm.DB, model *model.AdminMenu) (*model
|
||||
}
|
||||
return model, nil
|
||||
}
|
||||
|
||||
// EditAdminMenuByIdWithStruct 修改菜单-struct
|
||||
func (r *AdminMenuDao) EditAdminMenuByIdWithStruct(tx *gorm.DB, menuId int64, model *model.AdminMenu) error {
|
||||
err := tx.Where("menu_id = ?", menuId).Updates(model).Error
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
@ -26,3 +26,11 @@ func (r *AdminMenuApiDao) AddAdminMenuApi(tx *gorm.DB, model *model.AdminMenuApi
|
||||
}
|
||||
return model, nil
|
||||
}
|
||||
|
||||
// DeleteAdminRoleMenuByMenuId 删除菜单关联api-菜单id
|
||||
func (r *AdminMenuApiDao) DeleteAdminRoleMenuByMenuId(tx *gorm.DB, menuId int64) error {
|
||||
if err := tx.Where("menu_id = ?", menuId).Delete(&model.AdminMenuApi{}).Error; err != nil {
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
@ -58,7 +58,7 @@ func (r *AdminRoleDao) GetAdminRolePageSearch(roleName string, page, pageSize in
|
||||
return m, totalRecords, nil
|
||||
}
|
||||
|
||||
// EditAdminRoleById 修改角色
|
||||
// EditAdminRoleById 修改角色-interface
|
||||
func (r *AdminRoleDao) EditAdminRoleById(tx *gorm.DB, roleId int64, data interface{}) error {
|
||||
err := tx.Model(&model.AdminRole{}).Where("role_id = ?", roleId).Updates(data).Error
|
||||
if err != nil {
|
||||
@ -74,3 +74,12 @@ func (r *AdminRoleDao) DeleteAdminRoleByRoleId(tx *gorm.DB, roleId int64) error
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// EditAdminRoleByIdWithStruct 修改角色-struct
|
||||
func (r *AdminRoleDao) EditAdminRoleByIdWithStruct(tx *gorm.DB, roleId int64, model *model.AdminRole) error {
|
||||
err := tx.Where("role_id = ?", roleId).Updates(model).Error
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
@ -124,7 +124,7 @@ func (r *MenuService) AddMenu(AddMenuRequest requests.AddMenu) (bool, error) {
|
||||
}
|
||||
|
||||
// PutMenu 修改菜单
|
||||
func (r *MenuService) PutMenu(PutMenuRequest requests.PutMenu) (bool, error) {
|
||||
func (r *MenuService) PutMenu(requestMenuId int64, PutMenuRequest requests.PutMenu) (bool, error) {
|
||||
AdminMenuDao := dao.AdminMenuDao{}
|
||||
AdminMenuApiDao := dao.AdminMenuApiDao{}
|
||||
AdminApiDao := dao.AdminApiDao{}
|
||||
@ -137,6 +137,12 @@ func (r *MenuService) PutMenu(PutMenuRequest requests.PutMenu) (bool, error) {
|
||||
}
|
||||
}
|
||||
|
||||
// 获取当前菜单数据
|
||||
adminMenu, _ := AdminMenuDao.GetAdminMenuById(requestMenuId)
|
||||
if adminMenu == nil {
|
||||
return false, errors.New("菜单数据错误")
|
||||
}
|
||||
|
||||
// 开始事务
|
||||
tx := global.Db.Begin()
|
||||
defer func() {
|
||||
@ -145,7 +151,7 @@ func (r *MenuService) PutMenu(PutMenuRequest requests.PutMenu) (bool, error) {
|
||||
}
|
||||
}()
|
||||
|
||||
// 新增菜单
|
||||
// 修改菜单
|
||||
AdminMenuModel := &model.AdminMenu{
|
||||
MenuName: PutMenuRequest.MenuName,
|
||||
MenuTitle: PutMenuRequest.MenuTitle,
|
||||
@ -159,10 +165,17 @@ func (r *MenuService) PutMenu(PutMenuRequest requests.PutMenu) (bool, error) {
|
||||
Component: PutMenuRequest.Component,
|
||||
}
|
||||
|
||||
adminMenu, _ := AdminMenuDao.AddAdminMenu(tx, AdminMenuModel)
|
||||
if adminMenu == nil {
|
||||
err := AdminMenuDao.EditAdminMenuByIdWithStruct(tx, adminMenu.MenuId, AdminMenuModel)
|
||||
if err != nil {
|
||||
tx.Rollback()
|
||||
return false, errors.New("新增失败")
|
||||
return false, errors.New("修改失败")
|
||||
}
|
||||
|
||||
// 删除菜单关联api
|
||||
err = AdminMenuApiDao.DeleteAdminRoleMenuByMenuId(tx, adminMenu.MenuId)
|
||||
if err != nil {
|
||||
tx.Rollback()
|
||||
return false, errors.New("修改失败")
|
||||
}
|
||||
|
||||
// 新增菜单api
|
||||
@ -172,7 +185,7 @@ func (r *MenuService) PutMenu(PutMenuRequest requests.PutMenu) (bool, error) {
|
||||
adminApi, _ := AdminApiDao.GetAdminApiById(v)
|
||||
if adminApi == nil {
|
||||
tx.Rollback()
|
||||
return false, errors.New("接口不存在")
|
||||
return false, errors.New("关联接口api不存在")
|
||||
}
|
||||
|
||||
AdminMenuApiModel := &model.AdminMenuApi{
|
||||
@ -183,7 +196,7 @@ func (r *MenuService) PutMenu(PutMenuRequest requests.PutMenu) (bool, error) {
|
||||
adminMenuApi, _ := AdminMenuApiDao.AddAdminMenuApi(tx, AdminMenuApiModel)
|
||||
if adminMenuApi == nil {
|
||||
tx.Rollback()
|
||||
return false, errors.New("新增失败")
|
||||
return false, errors.New("修改失败")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user