From 2e9ebd1c4a4422bdc301b35b418d2a800e100c90 Mon Sep 17 00:00:00 2001 From: zhanglp Date: Sat, 23 Jul 2022 16:17:17 +0800 Subject: [PATCH 1/5] =?UTF-8?q?=E4=BC=98=E5=8C=96=E8=8F=9C=E5=8D=95?= =?UTF-8?q?=E5=92=8C=E8=A7=92=E8=89=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/db.config.js | 4 ++-- model/menuModel.js | 34 +++++++++++++++++++++++++--------- model/roleModel.js | 1 - 3 files changed, 27 insertions(+), 12 deletions(-) diff --git a/config/db.config.js b/config/db.config.js index f7e151f..fbd8828 100644 --- a/config/db.config.js +++ b/config/db.config.js @@ -2,9 +2,9 @@ module.exports = { debug: false, //开启调试 host: "110.42.130.88", port: "3306", - user: "quick", + user: "quick1", password: "quick", - database: "quick", + database: "quick1", timezone: "08:00", dateStrings:true, stringifyObjects: true, //是否序列化对象 diff --git a/model/menuModel.js b/model/menuModel.js index 3c55fe1..099b0f5 100644 --- a/model/menuModel.js +++ b/model/menuModel.js @@ -12,22 +12,38 @@ class MenuModel { const sqlArr = []; return db.queryAsync(sql, sqlArr); } - insert(dic) { + insert(menu) { const sql = - "insert into sys_menus(menu_id,menu_name) values(?,?)"; + "insert into sys_menus(menu_id, menu_name, path, menu_type, icon, sort, pid, link, enabled, status) values(?,?,?,?,?,?,?,?,?,?)"; const sqlArr = [ - dic.dicTypeId, - dic.name, + menu.menuId, + menu.menuName, + menu.path, + menu.menuType, + menu.icon, + menu.sort, + menu.pid, + menu.link, + menu.enabled, + menu.status ]; return db.queryAsync(sql, sqlArr); } - update(dic) { + update(menu) { const sql = - "update sys_menus set menu_name=? where id=?"; + "update sys_menus set menu_id = ?, menu_name = ?, path = ?, menu_type = ?, icon = ?, sort = ?, pid = ?, link = ?, enabled = ?, status = ? where id= ?"; const sqlArr = [ - dic.dicTypeId, - dic.name, - dic.id, + menu.menuId, + menu.menuName, + menu.path, + menu.menuType, + menu.icon, + menu.sort, + menu.pid, + menu.link, + menu.enabled, + menu.status, + menu.id ]; return db.queryAsync(sql, sqlArr); } diff --git a/model/roleModel.js b/model/roleModel.js index 0c7dabe..ddd7ca7 100644 --- a/model/roleModel.js +++ b/model/roleModel.js @@ -20,7 +20,6 @@ class RoleModel { const sql = "update sys_roles set role_name=? where id=?"; const sqlArr = [ - dic.roleId, dic.roleName, dic.id, ]; -- Gitee From 05f8a417d51cc37872373680b4c325a0a7ffdcda Mon Sep 17 00:00:00 2001 From: zhanglp Date: Sat, 23 Jul 2022 16:17:17 +0800 Subject: [PATCH 2/5] =?UTF-8?q?=E4=BC=98=E5=8C=96=E8=8F=9C=E5=8D=95?= =?UTF-8?q?=E5=92=8C=E8=A7=92=E8=89=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/db.config.js | 4 ++-- model/menuModel.js | 34 +++++++++++++++++++++++++--------- model/roleModel.js | 1 - 3 files changed, 27 insertions(+), 12 deletions(-) diff --git a/config/db.config.js b/config/db.config.js index f7e151f..fbd8828 100644 --- a/config/db.config.js +++ b/config/db.config.js @@ -2,9 +2,9 @@ module.exports = { debug: false, //开启调试 host: "110.42.130.88", port: "3306", - user: "quick", + user: "quick1", password: "quick", - database: "quick", + database: "quick1", timezone: "08:00", dateStrings:true, stringifyObjects: true, //是否序列化对象 diff --git a/model/menuModel.js b/model/menuModel.js index 3c55fe1..099b0f5 100644 --- a/model/menuModel.js +++ b/model/menuModel.js @@ -12,22 +12,38 @@ class MenuModel { const sqlArr = []; return db.queryAsync(sql, sqlArr); } - insert(dic) { + insert(menu) { const sql = - "insert into sys_menus(menu_id,menu_name) values(?,?)"; + "insert into sys_menus(menu_id, menu_name, path, menu_type, icon, sort, pid, link, enabled, status) values(?,?,?,?,?,?,?,?,?,?)"; const sqlArr = [ - dic.dicTypeId, - dic.name, + menu.menuId, + menu.menuName, + menu.path, + menu.menuType, + menu.icon, + menu.sort, + menu.pid, + menu.link, + menu.enabled, + menu.status ]; return db.queryAsync(sql, sqlArr); } - update(dic) { + update(menu) { const sql = - "update sys_menus set menu_name=? where id=?"; + "update sys_menus set menu_id = ?, menu_name = ?, path = ?, menu_type = ?, icon = ?, sort = ?, pid = ?, link = ?, enabled = ?, status = ? where id= ?"; const sqlArr = [ - dic.dicTypeId, - dic.name, - dic.id, + menu.menuId, + menu.menuName, + menu.path, + menu.menuType, + menu.icon, + menu.sort, + menu.pid, + menu.link, + menu.enabled, + menu.status, + menu.id ]; return db.queryAsync(sql, sqlArr); } diff --git a/model/roleModel.js b/model/roleModel.js index 0c7dabe..ddd7ca7 100644 --- a/model/roleModel.js +++ b/model/roleModel.js @@ -20,7 +20,6 @@ class RoleModel { const sql = "update sys_roles set role_name=? where id=?"; const sqlArr = [ - dic.roleId, dic.roleName, dic.id, ]; -- Gitee From 8a474dbafb50564f84e1265354dc59443bbbb938 Mon Sep 17 00:00:00 2001 From: 91zhangliying <1663782157@qq.com> Date: Sat, 23 Jul 2022 22:05:03 +0800 Subject: [PATCH 3/5] =?UTF-8?q?=E8=A7=92=E8=89=B2=E5=88=86=E9=85=8D?= =?UTF-8?q?=E6=9D=83=E9=99=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- controllers/menuController.js | 10 ++++++++++ model/roleMenuModel.js | 29 +++++++-------------------- router/menu.js | 15 ++++++++++++++ services/menuServices.js | 37 ++++++++++++++++++++++++++++++++++- services/roleMenuServices.js | 33 +++++++++++++++++++------------ 5 files changed, 88 insertions(+), 36 deletions(-) diff --git a/controllers/menuController.js b/controllers/menuController.js index c9438c2..aa5335e 100644 --- a/controllers/menuController.js +++ b/controllers/menuController.js @@ -4,10 +4,16 @@ const { updateMenu, deleteMenu, getPermissionMenuListByUserId, + getPermissionMenuListByRoleId, + assignPermission, } = require("../services/menuServices"); class MenuController { constructor() {} + getRoleMenuLsit(body){ + const {id:roleId}=body + return getPermissionMenuListByRoleId(roleId) + } getPermission(body){ const {id:userId}=body return getPermissionMenuListByUserId(userId) @@ -27,5 +33,9 @@ class MenuController { const { id } = body; return deleteMenu(id); } + assign(body) { + const { roleId,menuIds } = body; + return assignPermission(roleId,menuIds); + } } module.exports = new MenuController(); diff --git a/model/roleMenuModel.js b/model/roleMenuModel.js index bae3b42..2e904a0 100644 --- a/model/roleMenuModel.js +++ b/model/roleMenuModel.js @@ -2,38 +2,23 @@ const db = require("../config/dbPool"); class RoleModel { - select() { - const sql = "select * from per_role_menus"; - const sqlArr = []; - return db.queryAsync(sql, sqlArr); - } selectWhere(roleIds){ const sql = `select * from per_role_menus where role_id in(${roleIds})`; const sqlArr = []; return db.queryAsync(sql, sqlArr); } - insert(dic) { - const sql = - "insert into per_role_menus(role_id,role_name) values(?,?)"; - const sqlArr = [ - dic.roleId, - dic.roleName, - ]; - return db.queryAsync(sql, sqlArr); - } - update(dic) { + insert(roleMenu) { const sql = - "update per_role_menus set role_name=? where id=?"; + "insert into per_role_menus(role_id,menu_id) values(?,?)"; const sqlArr = [ - dic.roleId, - dic.roleName, - dic.id, + roleMenu.roleId, + roleMenu.menuId, ]; return db.queryAsync(sql, sqlArr); } - remove(id) { - const sql = "delete from per_role_menus where id=?"; - const sqlArr = [id]; + removeWhere(roleId) { + const sql = "delete from per_role_menus where role_id=?"; + const sqlArr = [roleId]; return db.queryAsync(sql, sqlArr); } } diff --git a/router/menu.js b/router/menu.js index 3a2bd86..1f004a6 100644 --- a/router/menu.js +++ b/router/menu.js @@ -1,13 +1,21 @@ const express = require("express"); const router = express.Router(); const { + getRoleMenuLsit, getPermission, getList, add, update, remove, + assign, } = require("../controllers/menuController"); +router.get("/api/menu/getRoleMenuLsit", (req, res) => { + const { query } = req; + getRoleMenuLsit(query).then((data) => { + res.send(data); + }); +}); router.get("/api/menu/getPermission", (req, res) => { const { query } = req; getPermission(query).then((data) => { @@ -39,5 +47,12 @@ router.post("/api/menu/delete", (req, res) => { res.send(data); }); }); +router.post("/api/menu/assignPermission", (req, res) => { + const { body } = req; + assign(body).then((data) => { + res.send(data); + }); +}); + module.exports = router; diff --git a/services/menuServices.js b/services/menuServices.js index 857d7d1..2a33b30 100644 --- a/services/menuServices.js +++ b/services/menuServices.js @@ -6,10 +6,40 @@ const { remove } = require("../model/menuModel"); const {getUserRoleListByUserId} =require('./userRoleServices') -const {getRoleMenuListByIds} =require('./roleMenuServices') +const { + getRoleMenuListByIds, + bindMenuForRole +} =require('./roleMenuServices') class MenuServices { constructor() {} + async getPermissionMenuListByRoleId(roleId){ + const menuIdArr=[] + const roleMenuList=await getRoleMenuListByIds(roleId) + roleMenuList.forEach(element => { + const menuId=element.menu_id + const index=menuIdArr.indexOf(menuId) + if(index==-1){ + menuIdArr.push(menuId) + } + }); + if(menuIdArr.length<=0){ + return { + status: 0, + msg: "授权菜单列表", + data:[] + }; + } + const menuIds= menuIdArr.join(',') + const menuListResult = await selectWhere(menuIds); + const menuList = menuListResult.results && menuListResult.results; + const jsonObj = { + status: 0, + msg: "授权菜单列表", + data:menuList + }; + return jsonObj; + } async getPermissionMenuListByUserId(userId){ const userRoleList=await getUserRoleListByUserId(userId) @@ -89,5 +119,10 @@ class MenuServices { }; return jsonObj; } + + async assignPermission(roleId,menuIds) { + const jsonObj =await bindMenuForRole(roleId,menuIds); + return jsonObj; + } } module.exports = new MenuServices(); diff --git a/services/roleMenuServices.js b/services/roleMenuServices.js index 52aaa2d..3205a47 100644 --- a/services/roleMenuServices.js +++ b/services/roleMenuServices.js @@ -1,5 +1,7 @@ const { - selectWhere + selectWhere, + removeWhere, + insert } = require("../model/roleMenuModel"); class RoleMenuServices { @@ -19,24 +21,29 @@ class RoleMenuServices { }; return jsonObj; } - async allotUser(userRole) { - await insert(userRole); + async bindMenuForRole(roleId,menuIds) { + await removeWhere(roleId) + const menuIdArr=menuIds.split(',') + menuIdArr.forEach(async (menuId)=>{ + const roleMenu={roleId,menuId} + await insert(roleMenu); + }) const jsonObj = { status: 0, - msg: "分配用户成功", + msg: "角色权限分配成功", data: null, }; return jsonObj; } - async unassignUser(id) { - await remove(id); - const jsonObj = { - status: 0, - msg: "取消分配用户成功", - data: null, - }; - return jsonObj; - } + // async unassignUser(id) { + // await remove(id); + // const jsonObj = { + // status: 0, + // msg: "取消分配用户成功", + // data: null, + // }; + // return jsonObj; + // } } module.exports = new RoleMenuServices(); -- Gitee From dc5523bad8ba85ce83162a1ac77075e4e52683f0 Mon Sep 17 00:00:00 2001 From: 91zhangliying <1663782157@qq.com> Date: Sat, 23 Jul 2022 22:22:31 +0800 Subject: [PATCH 4/5] test --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index b2388d6..fd3aa8d 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ quick-node-express基于node和express框架实现的后端框架。 #### 软件架构 -软件架构说明 +软件架构说明; #### 安装教程 -- Gitee From ce8bdd8b46c7ac6b35d48abe6b23fe7c39c3d48f Mon Sep 17 00:00:00 2001 From: zhanglp Date: Sun, 24 Jul 2022 12:31:18 +0800 Subject: [PATCH 5/5] =?UTF-8?q?=E7=94=A8=E6=88=B7=E6=9D=83=E9=99=90?= =?UTF-8?q?=E5=92=8C=E8=A7=92=E8=89=B2=E6=9D=83=E9=99=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- controllers/menuController.js | 14 +----- controllers/roleController.js | 10 +++++ controllers/userController.js | 5 +++ model/menuModel.js | 6 +++ router/menu.js | 19 +------- router/role.js | 15 ++++++- router/user.js | 7 +++ services/menuServices.js | 84 ++++++----------------------------- services/roleMenuServices.js | 19 +++----- services/roleServices.js | 33 ++++++++++++++ services/userServices.js | 71 +++++++++++++++++++++++++++-- 11 files changed, 166 insertions(+), 117 deletions(-) diff --git a/controllers/menuController.js b/controllers/menuController.js index aa5335e..fe7c981 100644 --- a/controllers/menuController.js +++ b/controllers/menuController.js @@ -9,15 +9,7 @@ const { } = require("../services/menuServices"); class MenuController { - constructor() {} - getRoleMenuLsit(body){ - const {id:roleId}=body - return getPermissionMenuListByRoleId(roleId) - } - getPermission(body){ - const {id:userId}=body - return getPermissionMenuListByUserId(userId) - } + constructor() {} getList() { return getMenuList(); } @@ -33,9 +25,5 @@ class MenuController { const { id } = body; return deleteMenu(id); } - assign(body) { - const { roleId,menuIds } = body; - return assignPermission(roleId,menuIds); - } } module.exports = new MenuController(); diff --git a/controllers/roleController.js b/controllers/roleController.js index 14d790f..89d060e 100644 --- a/controllers/roleController.js +++ b/controllers/roleController.js @@ -1,11 +1,17 @@ const { + getPermissionMenuListByRoleId, getRoleList, addRole, updateRole, deleteRole, + assignPermission, } = require("../services/roleServices"); class RoleController { constructor() {} + getMenuPermission(body){ + const {id:roleId}=body + return getPermissionMenuListByRoleId(roleId) + } getList() { return getRoleList(); } @@ -21,5 +27,9 @@ class RoleController { const { id } = body; return deleteRole(id); } + assignMenu(body) { + const { roleId,menuIds } = body; + return assignPermission(roleId,menuIds); + } } module.exports = new RoleController(); diff --git a/controllers/userController.js b/controllers/userController.js index 871c31d..8be991f 100644 --- a/controllers/userController.js +++ b/controllers/userController.js @@ -1,4 +1,5 @@ const { + getUserPermission, getUserPageList, getUserDetail, getUserInfo, @@ -14,6 +15,10 @@ const { class UserController { constructor() {} + getPermission(body){ + const {id:userId}=body + return getUserPermission(userId) + } getPageList(query) { const { userName, current, size } = query; return getUserPageList(current, size, userName); diff --git a/model/menuModel.js b/model/menuModel.js index 099b0f5..dbc579e 100644 --- a/model/menuModel.js +++ b/model/menuModel.js @@ -12,6 +12,12 @@ class MenuModel { const sqlArr = []; return db.queryAsync(sql, sqlArr); } + selectOne(id) { + const sql = `select * from sys_menus where id=?`; + const sqlArr = [id]; + console.log('11111111111111'); + return db.queryAsync(sql, sqlArr); + } insert(menu) { const sql = "insert into sys_menus(menu_id, menu_name, path, menu_type, icon, sort, pid, link, enabled, status) values(?,?,?,?,?,?,?,?,?,?)"; diff --git a/router/menu.js b/router/menu.js index 1f004a6..12fd8bb 100644 --- a/router/menu.js +++ b/router/menu.js @@ -10,18 +10,6 @@ const { assign, } = require("../controllers/menuController"); -router.get("/api/menu/getRoleMenuLsit", (req, res) => { - const { query } = req; - getRoleMenuLsit(query).then((data) => { - res.send(data); - }); -}); -router.get("/api/menu/getPermission", (req, res) => { - const { query } = req; - getPermission(query).then((data) => { - res.send(data); - }); -}); router.get("/api/menu/getList", (req, res) => { const { query } = req; getList(query).then((data) => { @@ -47,12 +35,7 @@ router.post("/api/menu/delete", (req, res) => { res.send(data); }); }); -router.post("/api/menu/assignPermission", (req, res) => { - const { body } = req; - assign(body).then((data) => { - res.send(data); - }); -}); + module.exports = router; diff --git a/router/role.js b/router/role.js index 12b6430..ab43ca6 100644 --- a/router/role.js +++ b/router/role.js @@ -1,12 +1,20 @@ const express = require("express"); const router = express.Router(); const { + getMenuPermission, getList, add, update, remove, + assignMenu, } = require("../controllers/roleController"); +router.get("/api/role/getMenuPermission", (req, res) => { + const { query } = req; + getMenuPermission(query).then((data) => { + res.send(data); + }); +}); router.get("/api/role/getList", (req, res) => { const { query } = req; getList(query).then((data) => { @@ -32,5 +40,10 @@ router.post("/api/role/delete", (req, res) => { res.send(data); }); }); - +router.post("/api/role/assignPermission", (req, res) => { + const { body } = req; + assignMenu(body).then((data) => { + res.send(data); + }); +}); module.exports = router; diff --git a/router/user.js b/router/user.js index 0a0e0a0..b66b5e6 100644 --- a/router/user.js +++ b/router/user.js @@ -1,6 +1,7 @@ const express = require("express"); const router = express.Router(); const { + getPermission, getPageList, getDetail, getInfo, @@ -14,6 +15,12 @@ const { disable, } = require("../controllers/userController"); +router.get("/api/user/getPermission", (req, res) => { + const { query } = req; + getPermission(query).then((data) => { + res.send(data); + }); +}); router.get("/api/user/getPageList", (req, res) => { const { query } = req; getPageList(query).then((data) => { diff --git a/services/menuServices.js b/services/menuServices.js index 2a33b30..0ad5287 100644 --- a/services/menuServices.js +++ b/services/menuServices.js @@ -1,37 +1,17 @@ const { select, selectWhere, + selectOne, insert, update, remove } = require("../model/menuModel"); - const {getUserRoleListByUserId} =require('./userRoleServices') -const { - getRoleMenuListByIds, - bindMenuForRole -} =require('./roleMenuServices') + class MenuServices { constructor() {} - async getPermissionMenuListByRoleId(roleId){ - const menuIdArr=[] - const roleMenuList=await getRoleMenuListByIds(roleId) - roleMenuList.forEach(element => { - const menuId=element.menu_id - const index=menuIdArr.indexOf(menuId) - if(index==-1){ - menuIdArr.push(menuId) - } - }); - if(menuIdArr.length<=0){ - return { - status: 0, - msg: "授权菜单列表", - data:[] - }; - } - const menuIds= menuIdArr.join(',') - const menuListResult = await selectWhere(menuIds); + async getMenuListByIds(menuIds) { + const menuListResult = await selectWhere(menuIds); const menuList = menuListResult.results && menuListResult.results; const jsonObj = { status: 0, @@ -40,57 +20,26 @@ class MenuServices { }; return jsonObj; } - async getPermissionMenuListByUserId(userId){ - - const userRoleList=await getUserRoleListByUserId(userId) - const roleIdArr=[] - const menuIdArr=[] - userRoleList.forEach(async (element) => { - const roleId=element.role_id - roleIdArr.push(roleId) - }); - if(roleIdArr.length<=0){ - return { - status: 0, - msg: "授权菜单列表", - data:[] - }; - } - const roleIds= roleIdArr.join(',') - const roleMenuList=await getRoleMenuListByIds(roleIds) - roleMenuList.forEach(element => { - const menuId=element.menu_id - const index=menuIdArr.indexOf(menuId) - if(index==-1){ - menuIdArr.push(menuId) - } - }); - if(menuIdArr.length<=0){ - return { - status: 0, - msg: "授权菜单列表", - data:[] - }; - } - const menuIds= menuIdArr.join(',') - const menuListResult = await selectWhere(menuIds); + async getMenuList() { + const menuListResult = await select(); const menuList = menuListResult.results && menuListResult.results; const jsonObj = { status: 0, - msg: "授权菜单列表", + msg: "菜单列表", data:menuList }; return jsonObj; } - async getMenuList() { - const menuListResult = await select(); - const menuList = menuListResult.results && menuListResult.results; + async getMenuDetail(id){ + const menuResult=await selectOne(id) + console.log('22222222222'); + const menuDetail = menuResult.results && menuResult.results[0]; const jsonObj = { status: 0, - msg: "菜单列表", - data:menuList + msg: "菜单详情", + data:menuDetail }; - return jsonObj; + return jsonObj } async addMenu(menu) { await insert(menu); @@ -119,10 +68,5 @@ class MenuServices { }; return jsonObj; } - - async assignPermission(roleId,menuIds) { - const jsonObj =await bindMenuForRole(roleId,menuIds); - return jsonObj; - } } module.exports = new MenuServices(); diff --git a/services/roleMenuServices.js b/services/roleMenuServices.js index 3205a47..9cdb4a6 100644 --- a/services/roleMenuServices.js +++ b/services/roleMenuServices.js @@ -6,10 +6,15 @@ const { class RoleMenuServices { constructor() {} - async getRoleMenuListByIds(roleIds) { + async getRoleMenuListByRoleIds(roleIds) { const roleMenuListResult = await selectWhere(roleIds) const roleMenuList = roleMenuListResult.results && roleMenuListResult.results; - return roleMenuList + const jsonObj = { + status: 0, + msg: "分配的菜单列表", + data:roleMenuList + }; + return jsonObj; } async getAssignedUserList(userId) { const userRoleListResult = await selectWhere('user_id',userId) @@ -35,15 +40,5 @@ class RoleMenuServices { }; return jsonObj; } - - // async unassignUser(id) { - // await remove(id); - // const jsonObj = { - // status: 0, - // msg: "取消分配用户成功", - // data: null, - // }; - // return jsonObj; - // } } module.exports = new RoleMenuServices(); diff --git a/services/roleServices.js b/services/roleServices.js index 5f977c9..1383651 100644 --- a/services/roleServices.js +++ b/services/roleServices.js @@ -4,9 +4,37 @@ const { update, remove } = require("../model/roleModel"); + const { + getRoleMenuListByRoleIds, + bindMenuForRole +} =require('./roleMenuServices') +const { + getMenuListByIds, +} =require('./menuServices') class RoleServices { constructor() {} + async getPermissionMenuListByRoleId(roleId){ + const menuIdArr=[] + const roleMenuReuslt=await getRoleMenuListByRoleIds(roleId) + const roleMenuList=roleMenuReuslt.data + roleMenuList.forEach(element => { + const menuId=element.menu_id + const index=menuIdArr.indexOf(menuId) + if(index==-1){ + menuIdArr.push(menuId) + } + }); + if(menuIdArr.length<=0){ + return { + status: 0, + msg: "授权菜单列表", + data:[] + }; + } + const menuIds= menuIdArr.join(',') + return await getMenuListByIds(menuIds); + } async getRoleList() { const roleListResult = await select(); const roleList = roleListResult.results && roleListResult.results; @@ -44,5 +72,10 @@ class RoleServices { }; return jsonObj; } + + async assignPermission(roleId,menuIds) { + const jsonObj =await bindMenuForRole(roleId,menuIds); + return jsonObj; + } } module.exports = new RoleServices(); diff --git a/services/userServices.js b/services/userServices.js index 66d2acf..a4594e3 100644 --- a/services/userServices.js +++ b/services/userServices.js @@ -8,14 +8,79 @@ const { updateField, remove, } = require("../model/userModel"); +const { getUserRoleListByUserId } = require("./userRoleServices"); +const { getRoleMenuListByRoleIds } = require("./roleMenuServices"); +const { + getMenuListByIds, + getMenuList, +} = require("./menuServices"); class UserServices { constructor() {} + async getUserPermission(userId) { + const userRoleList = await getUserRoleListByUserId(userId); + const roleIdArr = []; + const menuIdArr = []; + userRoleList.forEach(async (element) => { + const roleId = element.role_id; + roleIdArr.push(roleId); + }); + if (roleIdArr.length <= 0) { + return { + status: 0, + msg: "授权菜单列表", + data: [], + }; + } + const roleIds = roleIdArr.join(","); + const roleMenuResult = await getRoleMenuListByRoleIds(roleIds); + const roleMenuList = roleMenuResult.data; + roleMenuList.forEach((element) => { + const menuId = element.menu_id; + const index = menuIdArr.indexOf(menuId); + if (index == -1) { + menuIdArr.push(menuId); + } + }); + if (menuIdArr.length <= 0) { + return { + status: 0, + msg: "授权菜单列表", + data: [], + }; + } + const menuListResult = await getMenuList(); + const menuList = menuListResult.data; + + const menuIdArrNew = []; + menuIdArr.forEach((menuId) => { + menuIdArrNew.push(menuId); + const menu = menuList.find((x) => { + return x.id === menuId; + }); + const pid = menu.pid; + const index = menuIdArrNew.indexOf(pid); + if (pid !== 0 && index === -1) { + menuIdArrNew.push(pid); + + const parentMenu = menuList.find((x) => { + return x.id === pid; + }); + const pid1 = parentMenu.pid; + const index1 = menuIdArrNew.indexOf(pid1); + if (pid1 !== 0 && index1 === -1) { + menuIdArrNew.push(pid1); + } + } + }); + const menuIds = menuIdArrNew.join(","); + return await getMenuListByIds(menuIds); + } async userLogin(loginInfo) { const { userName, userPassword } = loginInfo; - const fields=['user_name'] - const values=[userName] - const result = await selectOneWhere(fields,values); + const fields = ["user_name"]; + const values = [userName]; + const result = await selectOneWhere(fields, values); const user = result.results && result.results[0]; const password = user && user.password; const passwordMd5 = quickMd5(userPassword); -- Gitee