From 6d437b49c4c68c9a774009392b3767580c24ff99 Mon Sep 17 00:00:00 2001 From: xinyuandd Date: Tue, 31 May 2022 20:02:18 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E7=99=BB=E5=BD=95=E5=90=8E?= =?UTF-8?q?=E6=9C=AA=E8=83=BD=E6=8C=89=E7=85=A7=E7=94=A8=E6=88=B7=E5=AE=9E?= =?UTF-8?q?=E9=99=85=E8=8F=9C=E5=8D=95=E6=9D=83=E9=99=90=E5=8A=A0=E8=BD=BD?= =?UTF-8?q?=E8=8F=9C=E5=8D=95=E7=9A=84=20(#4)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- logic/menu_logic.go | 11 +++++++++-- service/isql/menu_isql.go | 6 ++++++ 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/logic/menu_logic.go b/logic/menu_logic.go index 9662027..8436287 100644 --- a/logic/menu_logic.go +++ b/logic/menu_logic.go @@ -168,9 +168,16 @@ func (l MenuLogic) GetTree(c *gin.Context, req interface{}) (data interface{}, r return nil, ReqAssertErr } _ = c - + ctxUser, err := isql.User.GetCurrentLoginUser(c) + if err != nil { + return nil, tools.NewMySqlError(fmt.Errorf("获取当前登陆用户信息失败")) + } + roleIds := []uint{} + for _, role := range ctxUser.Roles { + roleIds = append(roleIds, role.ID) + } var menus []*model.Menu - menus, err := isql.Menu.List() + menus, err = isql.Menu.ListUserMenus(roleIds) if err != nil { return nil, tools.NewMySqlError(fmt.Errorf("获取资源列表失败: " + err.Error())) } diff --git a/service/isql/menu_isql.go b/service/isql/menu_isql.go index e20a29b..f76f934 100644 --- a/service/isql/menu_isql.go +++ b/service/isql/menu_isql.go @@ -47,6 +47,12 @@ func (s MenuService) List() (menus []*model.Menu, err error) { return menus, err } +// List 获取数据列表 +func (s MenuService) ListUserMenus(roleIds []uint) (menus []*model.Menu, err error) { + err = common.DB.Where("id IN (select menu_id as id from role_menus where role_id IN (?))", roleIds).Order("sort").Find(&menus).Error + return menus, err +} + // 批量删除资源 func (s MenuService) Delete(menuIds []uint) error { return common.DB.Where("id IN (?)", menuIds).Select("Roles").Unscoped().Delete(&model.Menu{}).Error