新增修改菜单

This commit is contained in:
wucongxing 2023-06-27 13:38:52 +08:00
parent f414704688
commit 195942a4f5
5 changed files with 67 additions and 14 deletions

View File

@ -7,6 +7,7 @@ import (
"hospital-admin-api/api/service" "hospital-admin-api/api/service"
"hospital-admin-api/global" "hospital-admin-api/global"
"hospital-admin-api/utils" "hospital-admin-api/utils"
"strconv"
) )
type Menu struct{} type Menu struct{}
@ -95,35 +96,48 @@ func (r *Menu) PutMenu(c *gin.Context) {
return 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) responses.FailWithMessage("请填写页面地址", c)
return return
} }
if MenuRequest.AddMenu.Component == "" { if MenuRequest.PutMenu.Component == "" {
responses.FailWithMessage("请填写组件名称", c) responses.FailWithMessage("请填写组件名称", c)
return return
} }
} }
// 非模块无父级 // 非模块无父级
if MenuRequest.AddMenu.ParentId == 0 && MenuRequest.AddMenu.MenuType != 1 { if MenuRequest.PutMenu.ParentId == 0 && MenuRequest.PutMenu.MenuType != 1 {
responses.FailWithMessage("请选择父节点", c) responses.FailWithMessage("请选择父节点", c)
return return
} }
// 模块存在父级 // 模块存在父级
if MenuRequest.AddMenu.ParentId != 0 && MenuRequest.AddMenu.MenuType == 1 { if MenuRequest.PutMenu.ParentId != 0 && MenuRequest.PutMenu.MenuType == 1 {
responses.FailWithMessage("顶级菜单,无法添加上级菜单", c) responses.FailWithMessage("顶级菜单,无法添加上级菜单", c)
return return
} }
// 业务处理 // 业务处理
MenuService := service.MenuService{} MenuService := service.MenuService{}
_, err := MenuService.PutMenu(MenuRequest.PutMenu) _, err = MenuService.PutMenu(menuId, MenuRequest.PutMenu)
if err != nil { if err != nil {
responses.FailWithMessage(err.Error(), c) responses.FailWithMessage(err.Error(), c)
return return

View File

@ -52,3 +52,12 @@ func (r *AdminMenuDao) AddAdminMenu(tx *gorm.DB, model *model.AdminMenu) (*model
} }
return model, nil 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
}

View File

@ -26,3 +26,11 @@ func (r *AdminMenuApiDao) AddAdminMenuApi(tx *gorm.DB, model *model.AdminMenuApi
} }
return model, nil 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
}

View File

@ -58,7 +58,7 @@ func (r *AdminRoleDao) GetAdminRolePageSearch(roleName string, page, pageSize in
return m, totalRecords, nil return m, totalRecords, nil
} }
// EditAdminRoleById 修改角色 // EditAdminRoleById 修改角色-interface
func (r *AdminRoleDao) EditAdminRoleById(tx *gorm.DB, roleId int64, data interface{}) error { func (r *AdminRoleDao) EditAdminRoleById(tx *gorm.DB, roleId int64, data interface{}) error {
err := tx.Model(&model.AdminRole{}).Where("role_id = ?", roleId).Updates(data).Error err := tx.Model(&model.AdminRole{}).Where("role_id = ?", roleId).Updates(data).Error
if err != nil { if err != nil {
@ -74,3 +74,12 @@ func (r *AdminRoleDao) DeleteAdminRoleByRoleId(tx *gorm.DB, roleId int64) error
} }
return nil 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
}

View File

@ -124,7 +124,7 @@ func (r *MenuService) AddMenu(AddMenuRequest requests.AddMenu) (bool, error) {
} }
// PutMenu 修改菜单 // PutMenu 修改菜单
func (r *MenuService) PutMenu(PutMenuRequest requests.PutMenu) (bool, error) { func (r *MenuService) PutMenu(requestMenuId int64, PutMenuRequest requests.PutMenu) (bool, error) {
AdminMenuDao := dao.AdminMenuDao{} AdminMenuDao := dao.AdminMenuDao{}
AdminMenuApiDao := dao.AdminMenuApiDao{} AdminMenuApiDao := dao.AdminMenuApiDao{}
AdminApiDao := dao.AdminApiDao{} 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() tx := global.Db.Begin()
defer func() { defer func() {
@ -145,7 +151,7 @@ func (r *MenuService) PutMenu(PutMenuRequest requests.PutMenu) (bool, error) {
} }
}() }()
// 新增菜单 // 修改菜单
AdminMenuModel := &model.AdminMenu{ AdminMenuModel := &model.AdminMenu{
MenuName: PutMenuRequest.MenuName, MenuName: PutMenuRequest.MenuName,
MenuTitle: PutMenuRequest.MenuTitle, MenuTitle: PutMenuRequest.MenuTitle,
@ -159,10 +165,17 @@ func (r *MenuService) PutMenu(PutMenuRequest requests.PutMenu) (bool, error) {
Component: PutMenuRequest.Component, Component: PutMenuRequest.Component,
} }
adminMenu, _ := AdminMenuDao.AddAdminMenu(tx, AdminMenuModel) err := AdminMenuDao.EditAdminMenuByIdWithStruct(tx, adminMenu.MenuId, AdminMenuModel)
if adminMenu == nil { if err != nil {
tx.Rollback() 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 // 新增菜单api
@ -172,7 +185,7 @@ func (r *MenuService) PutMenu(PutMenuRequest requests.PutMenu) (bool, error) {
adminApi, _ := AdminApiDao.GetAdminApiById(v) adminApi, _ := AdminApiDao.GetAdminApiById(v)
if adminApi == nil { if adminApi == nil {
tx.Rollback() tx.Rollback()
return false, errors.New("接口不存在") return false, errors.New("关联接口api不存在")
} }
AdminMenuApiModel := &model.AdminMenuApi{ AdminMenuApiModel := &model.AdminMenuApi{
@ -183,7 +196,7 @@ func (r *MenuService) PutMenu(PutMenuRequest requests.PutMenu) (bool, error) {
adminMenuApi, _ := AdminMenuApiDao.AddAdminMenuApi(tx, AdminMenuApiModel) adminMenuApi, _ := AdminMenuApiDao.AddAdminMenuApi(tx, AdminMenuApiModel)
if adminMenuApi == nil { if adminMenuApi == nil {
tx.Rollback() tx.Rollback()
return false, errors.New("新增失败") return false, errors.New("修改失败")
} }
} }
} }