diff --git a/controllers/roleController.js b/controllers/roleController.js index 89d060e865bbb43213813fd249ca0470b4f23193..5b302fef4cc9b3e3a6ceb8fe01b1b47676483f56 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 d431ca7beced64cf0526743d337acab849b3e45f..d5369652839a20fa0aaf0e76bd608ca54c54373c 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 ab43ca6c9cb2d9301a969c7a99188f59326e4551..d7073959b75c9def6efce490fd79ea523aa2997f 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 13836511635d871ab9e9b3fa71d0664f72c2ec57..e4a345fe4249961bfde46db12d9becc263ed6779 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 e9040dd35fd7db3b36abd00914ce9e32d19ec181..79a00076f47cd77c0b495132edd462b098f8cf37 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;