From 5a65fcd477541e899637d2b6aebba930807534a8 Mon Sep 17 00:00:00 2001 From: zhangwenjian Date: Tue, 10 Aug 2021 14:58:04 +0800 Subject: [PATCH] =?UTF-8?q?fix=F0=9F=90=9B:=20=E4=BF=AE=E5=A4=8D=E8=8F=9C?= =?UTF-8?q?=E5=8D=95=E6=A0=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/admin/service/sys_menu.go | 27 +++++++++++++++++++++------ 1 file changed, 21 insertions(+), 6 deletions(-) diff --git a/app/admin/service/sys_menu.go b/app/admin/service/sys_menu.go index 9d3ed7ca..e2d8a35e 100644 --- a/app/admin/service/sys_menu.go +++ b/app/admin/service/sys_menu.go @@ -331,24 +331,39 @@ func (e *SysMenu) getByRoleName(roleName string) ([]models.SysMenu, error) { MenuList = data } else { role.RoleKey = roleName + buttons := make([]models.SysMenu,0) err = e.Orm.Debug().Model(&role).Where("role_key = ? ", roleName).Preload("SysMenu", func(db *gorm.DB) *gorm.DB { - return db.Where(" menu_type in ('C')").Order("sort") + return db.Where(" menu_type in ('F')").Order("sort") }).Find(&role).Error if role.SysMenu != nil { - MenuList = *role.SysMenu + buttons = *role.SysMenu } mIds := make([]int, 0) - for _, menu := range MenuList { + for _, menu := range buttons { if menu.ParentId != 0 { mIds = append(mIds, menu.ParentId) } } - var data []models.SysMenu - err = e.Orm.Where(" menu_type in ('M') and menu_id in ?", mIds).Order("sort").Find(&data).Error + var dataC []models.SysMenu + err = e.Orm.Where(" menu_type in ('C') and menu_id in ?", mIds).Order("sort").Find(&dataC).Error if err != nil { return nil, err } - for _, datum := range data { + for _, datum := range dataC { + MenuList = append(MenuList, datum) + } + cIds := make([]int, 0) + for _, menu := range MenuList { + if menu.ParentId != 0 { + cIds = append(cIds, menu.ParentId) + } + } + var dataM []models.SysMenu + err = e.Orm.Where(" menu_type in ('M') and menu_id in ?", cIds).Order("sort").Find(&dataM).Error + if err != nil { + return nil, err + } + for _, datum := range dataM { MenuList = append(MenuList, datum) } }