From 98c0b852af397c99f5e6fb3f06060cd47819da0a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Mon, 28 Sep 2020 10:43:48 +0800 Subject: [PATCH] =?UTF-8?q?=E7=94=A8=E6=88=B7=E6=B7=BB=E5=8A=A0=E5=85=A8?= =?UTF-8?q?=E6=96=B0=E5=95=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/permission.go | 4 ++-- business/model/dao/permission.go | 21 +++++++++++++-------- controllers/permission.go | 3 ++- 3 files changed, 17 insertions(+), 11 deletions(-) diff --git a/business/jxstore/cms/permission.go b/business/jxstore/cms/permission.go index f12cd8864..4b7101895 100644 --- a/business/jxstore/cms/permission.go +++ b/business/jxstore/cms/permission.go @@ -11,8 +11,8 @@ import ( "git.rosy.net.cn/jx-callback/business/model/dao" ) -func GetMenu(ctx *jxcontext.Context) (menus []*model.Menu, err error) { - return dao.GetMenu(dao.GetDB(), "", 0) +func GetMenu(ctx *jxcontext.Context, userID string) (menus []*model.Menu, err error) { + return dao.GetMenu(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 8e9933ff4..9ab297904 100644 --- a/business/model/dao/permission.go +++ b/business/model/dao/permission.go @@ -5,21 +5,26 @@ import ( "git.rosy.net.cn/jx-callback/business/model" ) -func GetMenu(db *DaoDB, name string, level int) (menus []*model.Menu, err error) { +func GetMenu(db *DaoDB, name string, level int, userID string) (menus []*model.Menu, err error) { + sqlParams := []interface{}{} sql := ` - SELECT * - FROM menu - WHERE deleted_at = ? + SELECT DISTINCT a.* + FROM menu a ` - sqlParams := []interface{}{ - utils.DefaultTimeValue, + if userID != "" { + sql += ` 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 + ` + sqlParams = append(sqlParams, userID) } + sql += " WHERE a.deleted_at = ?" + sqlParams = append(sqlParams, utils.DefaultTimeValue) if name != "" { - sql += " AND name LIKE ?" + sql += " AND a.name LIKE ?" sqlParams = append(sqlParams, "%"+name+"%") } if level != 0 { - sql += " AND level = ?" + sql += " AND a.level = ?" sqlParams = append(sqlParams, level) } err = GetRows(db, &menus, sql, sqlParams) diff --git a/controllers/permission.go b/controllers/permission.go index 71437f55c..e5d16b7b1 100644 --- a/controllers/permission.go +++ b/controllers/permission.go @@ -32,12 +32,13 @@ func (c *PowerController) AddMenu() { // @Title 查询功能(菜单) // @Description 查询功能(菜单) // @Param token header string true "认证token" +// @Param userID query string false "用户ID" // @Success 200 {object} controllers.CallResult // @Failure 200 {object} controllers.CallResult // @router /GetMenu [get] func (c *PowerController) GetMenu() { c.callGetMenu(func(params *tPowerGetMenuParams) (retVal interface{}, errCode string, err error) { - retVal, err = cms.GetMenu(params.Ctx) + retVal, err = cms.GetMenu(params.Ctx, params.UserID) return retVal, "", err }) }