From 05f8a417d51cc37872373680b4c325a0a7ffdcda Mon Sep 17 00:00:00 2001 From: zhanglp Date: Sat, 23 Jul 2022 16:17:17 +0800 Subject: [PATCH 1/3] =?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 2/3] =?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 3/3] 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