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/controllers/userController.js b/controllers/userController.js index 8be991f27249c16aa799872fa78e2282584c3e34..626e935d54a25e3fd0f85af16f429d5fa1a54515 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 54f1795cc625ede80841eb133ca68ea0f8cda8a3..58a9d39bc2782451243400b2ec127e985b33bc0b 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/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/router/user.js b/router/user.js index b66b5e678a4232da8c541594d512b4a383ead024..19ad6d95f9c20742edf755aa1cb32387f2c1ecf1 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/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; diff --git a/services/userServices.js b/services/userServices.js index a4594e3bfcca1484c746807133b5b48802b59843..801cb6d8239762feb4a0288d896de49565ee4e64 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];