From b4f5a8af7de63bb3eb0f6ef4ae080e02f8d3c07d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Tue, 29 Sep 2020 15:46:32 +0800 Subject: [PATCH] menu --- business/jxstore/cms/permission.go | 6 +++++- business/model/dao/permission.go | 15 +++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/business/jxstore/cms/permission.go b/business/jxstore/cms/permission.go index 7cde7cb93..b67efa86d 100644 --- a/business/jxstore/cms/permission.go +++ b/business/jxstore/cms/permission.go @@ -10,7 +10,11 @@ import ( ) func GetMenu(ctx *jxcontext.Context, userID string) (menus []*model.Menu, err error) { - return dao.GetMenu(dao.GetDB(), "", 0, userID) + if userID == "" { + return dao.GetMenu(dao.GetDB(), "", 0, userID) + } else { + return dao.GetMenuWithUser(dao.GetDB(), "", 0, userID) + } } func AddMenu(ctx *jxcontext.Context, menu *model.Menu) (err error) { diff --git a/business/model/dao/permission.go b/business/model/dao/permission.go index 42b14bc8c..20cdb50b8 100644 --- a/business/model/dao/permission.go +++ b/business/model/dao/permission.go @@ -33,6 +33,21 @@ func GetMenu(db *DaoDB, name string, level int, userID string) (menus []*model.M return menus, err } +func GetMenuWithUser(db *DaoDB, name string, level int, userID string) (menus []*model.Menu, err error) { + sql := ` + SELECT b.* FROM ( + SELECT a.id,a.parent_id + FROM menu a + JOIN user_role b ON b.user_id = ? + JOIN role_menu c ON c.menu_id = a.id AND c.role_id = b.role_id + WHERE a.deleted_at = ?)a + JOIN menu b ON (b.id = a.id OR b.id = a.parent_id) + ` + sqlParams := []interface{}{userID, utils.DefaultTimeValue} + err = GetRows(db, &menus, sql, sqlParams) + return menus, err +} + func GetRole(db *DaoDB, name string) (roles []*model.Role, err error) { sql := ` SELECT *