新增修改菜单
This commit is contained in:
parent
f414704688
commit
195942a4f5
@ -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
|
||||||
|
|||||||
@ -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
|
||||||
|
}
|
||||||
|
|||||||
@ -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
|
||||||
|
}
|
||||||
|
|||||||
@ -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
|
||||||
|
}
|
||||||
|
|||||||
@ -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("修改失败")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user