From cb53a76f9e0c7cc0edc158c16b46dd944e82d5b9 Mon Sep 17 00:00:00 2001 From: 91zhangliying <1663782157@qq.com> Date: Sun, 24 Jul 2022 19:54:59 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E8=A7=92=E8=89=B2=E5=88=86=E9=85=8D?= =?UTF-8?q?=E7=94=A8=E6=88=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- controllers/roleController.js | 10 ++++++++++ model/userRoleModel.js | 29 +++++++---------------------- router/role.js | 14 ++++++++++++++ services/roleServices.js | 22 ++++++++++++++++++++++ services/userRoleServices.js | 35 +++++++++++++++++++++-------------- 5 files changed, 74 insertions(+), 36 deletions(-) diff --git a/controllers/roleController.js b/controllers/roleController.js index 89d060e..5b302fe 100644 --- a/controllers/roleController.js +++ b/controllers/roleController.js @@ -1,13 +1,19 @@ const { + getPermissionUserListByRoleId, getPermissionMenuListByRoleId, getRoleList, addRole, updateRole, deleteRole, assignPermission, + assignUserPermission } = require("../services/roleServices"); class RoleController { constructor() {} + getUserPermission(body){ + const {id:roleId}=body + return getPermissionUserListByRoleId(roleId) + } getMenuPermission(body){ const {id:roleId}=body return getPermissionMenuListByRoleId(roleId) @@ -31,5 +37,9 @@ class RoleController { const { roleId,menuIds } = body; return assignPermission(roleId,menuIds); } + assignUser(body) { + const { roleId,userIds } = body; + return assignUserPermission(roleId,userIds); + } } module.exports = new RoleController(); diff --git a/model/userRoleModel.js b/model/userRoleModel.js index d431ca7..d536965 100644 --- a/model/userRoleModel.js +++ b/model/userRoleModel.js @@ -2,38 +2,23 @@ const db = require("../config/dbPool"); class UserRoleModel { - select() { - const sql = "select * from per_user_roles"; - const sqlArr = []; - return db.queryAsync(sql, sqlArr); - } selectWhere( field, value){ const sql = `select * from per_user_roles where ${field}=?`; const sqlArr = [value]; return db.queryAsync(sql, sqlArr); } - insert(dic) { - const sql = - "insert into per_user_roles(role_id,role_name) values(?,?)"; - const sqlArr = [ - dic.roleId, - dic.roleName, - ]; - return db.queryAsync(sql, sqlArr); - } - update(dic) { + insert(userRole) { const sql = - "update per_user_roles set role_name=? where id=?"; + "insert into per_user_roles(role_id,user_id) values(?,?)"; const sqlArr = [ - dic.roleId, - dic.roleName, - dic.id, + userRole.roleId, + userRole.userId, ]; return db.queryAsync(sql, sqlArr); } - remove(id) { - const sql = "delete from per_user_roles where id=?"; - const sqlArr = [id]; + removeWhere(roleId) { + const sql = "delete from per_user_roles where role_id=?"; + const sqlArr = [roleId]; return db.queryAsync(sql, sqlArr); } } diff --git a/router/role.js b/router/role.js index ab43ca6..d707395 100644 --- a/router/role.js +++ b/router/role.js @@ -1,14 +1,22 @@ const express = require("express"); const router = express.Router(); const { + getUserPermission, getMenuPermission, getList, add, update, remove, assignMenu, + assignUser, } = require("../controllers/roleController"); +router.get("/api/role/getUserPermission", (req, res) => { + const { query } = req; + getUserPermission(query).then((data) => { + res.send(data); + }); +}); router.get("/api/role/getMenuPermission", (req, res) => { const { query } = req; getMenuPermission(query).then((data) => { @@ -46,4 +54,10 @@ router.post("/api/role/assignPermission", (req, res) => { res.send(data); }); }); +router.post("/api/role/assignUser", (req, res) => { + const { body } = req; + assignUser(body).then((data) => { + res.send(data); + }); +}); module.exports = router; diff --git a/services/roleServices.js b/services/roleServices.js index 1383651..e4a345f 100644 --- a/services/roleServices.js +++ b/services/roleServices.js @@ -11,9 +11,26 @@ const { const { getMenuListByIds, } =require('./menuServices') +const { + getUserRoleListByRoleId, + bindUserForRole, +} =require('./userRoleServices') class RoleServices { constructor() {} + async getPermissionUserListByRoleId(roleId){ + const userRoleReuslt=await getUserRoleListByRoleId(roleId) + const userRoleList=userRoleReuslt.data + const userIds=userRoleList.map(item=>{ + return item.user_id + }) + const jsonObj = { + status: 0, + msg: "分配的用户列表", + data:userIds + }; + return jsonObj; + } async getPermissionMenuListByRoleId(roleId){ const menuIdArr=[] const roleMenuReuslt=await getRoleMenuListByRoleIds(roleId) @@ -77,5 +94,10 @@ class RoleServices { const jsonObj =await bindMenuForRole(roleId,menuIds); return jsonObj; } + + async assignUserPermission(roleId,userIds) { + const jsonObj =await bindUserForRole(roleId,userIds); + return jsonObj; + } } module.exports = new RoleServices(); diff --git a/services/userRoleServices.js b/services/userRoleServices.js index e9040dd..79a0007 100644 --- a/services/userRoleServices.js +++ b/services/userRoleServices.js @@ -1,9 +1,21 @@ const { - selectWhere + selectWhere, + removeWhere, + insert } = require("../model/userRoleModel"); class UserRoleServices { constructor() {} + async getUserRoleListByRoleId(roleId) { + const userRoleListResult = await selectWhere('role_id',roleId) + const userRoleList = userRoleListResult.results && userRoleListResult.results; + const jsonObj = { + status: 0, + msg: "分配的用户列表", + data:userRoleList + }; + return jsonObj; + } async getUserRoleListByUserId(userId) { const userRoleListResult = await selectWhere('user_id',userId) const userRoleList = userRoleListResult.results && userRoleListResult.results; @@ -19,21 +31,16 @@ class UserRoleServices { }; return jsonObj; } - async allotUser(userRole) { - await insert(userRole); - const jsonObj = { - status: 0, - msg: "分配用户成功", - data: null, - }; - return jsonObj; - } - - async unassignUser(id) { - await remove(id); + async bindUserForRole(roleId,userIds) { + await removeWhere(roleId) + const userIdArr=userIds.split(',') + userIdArr.forEach(async (userId)=>{ + const userRole={roleId,userId} + await insert(userRole); + }) const jsonObj = { status: 0, - msg: "取消分配用户成功", + msg: "角色用户分配成功", data: null, }; return jsonObj; -- Gitee From 34c0b2b07abf86b2c208c9d9935ceb36d56eaaab Mon Sep 17 00:00:00 2001 From: zhanglp Date: Mon, 25 Jul 2022 19:46:16 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E4=BC=98=E5=8C=96=EF=BC=9A=E8=A7=92?= =?UTF-8?q?=E8=89=B2=E6=9D=83=E9=99=90=E5=92=8C=E5=88=86=E9=85=8D=E7=94=A8?= =?UTF-8?q?=E6=88=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- controllers/userController.js | 4 ++++ model/userModel.js | 5 +++++ router/user.js | 7 +++++++ services/userServices.js | 11 +++++++++++ 4 files changed, 27 insertions(+) diff --git a/controllers/userController.js b/controllers/userController.js index 8be991f..626e935 100644 --- a/controllers/userController.js +++ b/controllers/userController.js @@ -1,6 +1,7 @@ const { getUserPermission, getUserPageList, + getUserList, getUserDetail, getUserInfo, addUser, @@ -23,6 +24,9 @@ class UserController { const { userName, current, size } = query; return getUserPageList(current, size, userName); } + getList(){ + return getUserList() + } getDetail(query) { const { id } = query; return getUserDetail(id); diff --git a/model/userModel.js b/model/userModel.js index 54f1795..58a9d39 100644 --- a/model/userModel.js +++ b/model/userModel.js @@ -34,6 +34,11 @@ class UserModel { const sql = `select * from sys_users where deleted=0 ${whereStr} order by id desc limit ?,?`; return db.queryAsync(sql, sqlArr); } + select(){ + const sqlArr=[] + const sql = `select * from sys_users where deleted=0 and enabled=0 `; + return db.queryAsync(sql, sqlArr); + } insert(user) { const sql = "insert into sys_users(user_id,user_name,password,full_name,phone,email,address,create_time,deleted,enabled,remark) values(?,?,?,?,?,?,?,?,?,?,?)"; diff --git a/router/user.js b/router/user.js index b66b5e6..19ad6d9 100644 --- a/router/user.js +++ b/router/user.js @@ -3,6 +3,7 @@ const router = express.Router(); const { getPermission, getPageList, + getList, getDetail, getInfo, add, @@ -27,6 +28,12 @@ router.get("/api/user/getPageList", (req, res) => { res.send(data); }); }); +router.get("/api/user/getList", (req, res) => { + const { query } = req; + getList(query).then((data) => { + res.send(data); + }); +}); router.get("/api/user/getDetail", (req, res) => { const { query } = req; getDetail(query).then((data) => { diff --git a/services/userServices.js b/services/userServices.js index a4594e3..801cb6d 100644 --- a/services/userServices.js +++ b/services/userServices.js @@ -3,6 +3,7 @@ const { selectOneWhere, selectTotal, selectPage, + select, insert, update, updateField, @@ -131,6 +132,16 @@ class UserServices { }; return jsonObj; } + async getUserList() { + const result = await select() + const user = result.results && result.results; + const jsonObj = { + status: 0, + msg: "用户列表", + data: user, + }; + return jsonObj; + } async getUserDetail(id) { const fields = ["id"]; const values = [id]; -- Gitee