明树Git Lab

Commit 3c3f5ea8 authored by zfp1's avatar zfp1

update

parent 1b44a342
{ {
"tokenEx": 86400000000, "tokenEx": 86400000000,
"userDefaultPassword": "GZB123JT.",
"file": { "file": {
"storagePath": "/uploadfiles" "storagePath": "/uploadfiles"
}, },
......
const errorMessage = require("../utils/errorMessage");
async function createRole(req, res, next) { async function createRole(req, res, next) {
try { try {
const body = req.body; const body = req.body;
const ret = await userModule.create(body); const ret = await DB.Role.create(body);
return res.sendData(ret); return res.sendData(ret);
} catch (error) { } catch (error) {
next(error); next(error);
...@@ -14,7 +16,8 @@ async function updateRole(req, res, next) { ...@@ -14,7 +16,8 @@ async function updateRole(req, res, next) {
if (!body.id) { if (!body.id) {
return res.sendError(errorMessage.resourceNotFound) return res.sendError(errorMessage.resourceNotFound)
} }
const ret = await userModule.updateOne({ id: body.id }, body); // sequelize 只有update 写时需要注意条件 不能为空
const ret = await DB.Role.update(body, { where: { id: body.id } });
return res.sendData(ret); return res.sendData(ret);
} catch (error) { } catch (error) {
next(error); next(error);
...@@ -23,15 +26,34 @@ async function updateRole(req, res, next) { ...@@ -23,15 +26,34 @@ async function updateRole(req, res, next) {
} }
async function deleteRole(req, res, next) { async function deleteRole(req, res, next) {
try { try {
if (!req.body.id) {
return res.sendError(errorMessage.resourceNotFound);
}
const ret = await DB.Role.update({ del: 1 }, { where: { id: req.body.id } });
return res.sendData(ret);
} catch (error) { } catch (error) {
next(error); next(error);
} }
} }
async function listRole(req, res, next) { async function listRole(req, res, next) {
try { try {
let search = {};
let page = req.body.page || 1;
let limit = req.body.pageSize || 10;
let offset = (page - 1) * limit;
if (req.body.name) {
search.where = {
[Op.or]: [
{ name: { [Op.like]: `%${req.body.name}%` } }
],
del: 0,
}
}
search.limit = limit;
search.offset = offset;
let ret = await DB.Role.findAndCountAll(search);
return res.sendData(ret);
} catch (error) { } catch (error) {
next(error); next(error);
} }
...@@ -39,7 +61,11 @@ async function listRole(req, res, next) { ...@@ -39,7 +61,11 @@ async function listRole(req, res, next) {
} }
async function getRole(req, res, next) { async function getRole(req, res, next) {
try { try {
if (!req.body.id) {
return res.sendError(errorMessage.resourceNotFound);
}
const ret = await DB.User.findOne({ where: { id: req.body.id }, raw: true });
return res.sendData(ret);
} catch (error) { } catch (error) {
next(error); next(error);
} }
......
const crypto = require('crypto'); const crypto = require('crypto');
const _ = require('lodash'); const _ = require('lodash');
const CryptoJS = require('crypto-js'); const CryptoJS = require('crypto-js');
const { Op, where } = require('sequelize'); const { Op } = require('sequelize');
const userModule = require('../module/userModule');
const errorMessage = require('../utils/errorMessage'); const errorMessage = require('../utils/errorMessage');
async function regist(req, res, next) { async function regist(req, res, next) {
...@@ -32,7 +30,6 @@ async function login(req, res, next) { ...@@ -32,7 +30,6 @@ async function login(req, res, next) {
} }
const { mobile, password } = req.body; const { mobile, password } = req.body;
const user = await DB.User.findOne({ where: { mobile, del: 0, enable: 0 }, raw: true }); const user = await DB.User.findOne({ where: { mobile, del: 0, enable: 0 }, raw: true });
console.log("----------------------", user)
if (!user) { if (!user) {
return res.sendError(errorMessage.loginError); return res.sendError(errorMessage.loginError);
} }
...@@ -64,9 +61,13 @@ async function login(req, res, next) { ...@@ -64,9 +61,13 @@ async function login(req, res, next) {
/** /**
* 管理端功能 * 管理端功能
*/ */
async function addUser(req, res, next) { async function createUser(req, res, next) {
try { try {
const body = req.body; const body = req.body;
body.password = body.password || sysConfig.userDefaultPassword;
const { salt, passwordHash } = utils.saltHashPassword(req.body.password);
body.salt = salt;
body.password = passwordHash;
const ret = await DB.User.create(body); const ret = await DB.User.create(body);
return res.sendData(ret); return res.sendData(ret);
} catch (error) { } catch (error) {
...@@ -122,7 +123,7 @@ async function listUser(req, res, next) { ...@@ -122,7 +123,7 @@ async function listUser(req, res, next) {
} }
search.limit = limit; search.limit = limit;
search.offset = offset; search.offset = offset;
// console.log(JSON.stringify(search), "===") search.attributes = req.body.attributes || {exclude: ['password', 'salt']};
let ret = await DB.User.findAndCountAll(search); let ret = await DB.User.findAndCountAll(search);
return res.sendData(ret); return res.sendData(ret);
} catch (error) { } catch (error) {
...@@ -151,6 +152,41 @@ async function deleteUser(req, res, next) { ...@@ -151,6 +152,41 @@ async function deleteUser(req, res, next) {
} }
async function setUserRole(req, res, next) {
try {
let {userId, roleIds} = req.body;
//1. 先查被设置用户 有什么角色
const roles = await DB.UserRole.findAll({where: {user_id: req.body.userId}, raw: true, attributes: ['role_id','user_id']});
//需新增得
let dbRoleIds = [], needAddRoleIds = [], needDelRoleIds = [];
for (let index = 0; index < roles.length; index++) {
const element = roles[index];
dbRoleIds.push(element.role_id);
if(!roleIds.includes(element.role_id)) {
// 1. roleIds里面没有 但是关系表里有的 需要删除
needDelRoleIds.push(element.role_id);
}
}
for (let index = 0; index < roleIds.length; index++) {
const element = roleIds[index];
if(!dbRoleIds.includes(element)) {
needAddRoleIds.push(element);
}
}
if(needAddRoleIds.length) {
let objs = needAddRoleIds.map(o => {return {user_id: userId, role_id: o}});
await DB.UserRole.bulkCreate(objs);
}
if(needDelRoleIds.length) {
await DB.UserRole.destroy({where: {user_id: userId, role_id: {[Op.in]: needDelRoleIds}}});
}
return res.sendData();
} catch (error) {
console.log(error)
next(error);
}
}
...@@ -158,8 +194,9 @@ module.exports = { ...@@ -158,8 +194,9 @@ module.exports = {
regist, regist,
login, login,
listUser, listUser,
addUser, createUser,
getUserInfo, getUserInfo,
updateUser, updateUser,
deleteUser, deleteUser,
setUserRole,
} }
\ No newline at end of file
...@@ -2,7 +2,9 @@ ...@@ -2,7 +2,9 @@
// 模型初始化 // 模型初始化
const User = require("./model/user"); const User = require("./model/user");
const Role = require("./model/role"); const Role = require("./model/role");
const UserRole = require("./model/userRole");
const Menu = require("./model/menu"); const Menu = require("./model/menu");
const RoleMenu = require("./model/roleMenu");
const RequestLog = require("./model/requestLog"); const RequestLog = require("./model/requestLog");
...@@ -11,6 +13,8 @@ global.DB = { ...@@ -11,6 +13,8 @@ global.DB = {
User, User,
RequestLog, RequestLog,
Role, Role,
UserRole,
RoleMenu,
} }
......
...@@ -13,10 +13,10 @@ const Role = sequelize.define('Role', { ...@@ -13,10 +13,10 @@ const Role = sequelize.define('Role', {
type: DataTypes.STRING, type: DataTypes.STRING,
commnet: "角色名称", commnet: "角色名称",
}, },
key: { // key: {
type: DataTypes.STRING, // type: DataTypes.STRING,
commnet: "角色标识", // commnet: "角色标识",
}, // },
// enable: { // enable: {
// type: DataTypes.BOOLEAN, // type: DataTypes.BOOLEAN,
// defaultValue: true, // defaultValue: true,
......
...@@ -27,7 +27,7 @@ const RoleMenu = sequelize.define('RoleMenu', { ...@@ -27,7 +27,7 @@ const RoleMenu = sequelize.define('RoleMenu', {
// 同步模型到数据库(创建表) // 同步模型到数据库(创建表)
RoleMenu.sync({ RoleMenu.sync({
// force: false, // force: true 会删除已存在表并重新创建 // force: false, // force: true 会删除已存在表并重新创建
alter: true // alter: true
}) })
.then(() => { .then(() => {
console.log('RoleMenu 表同步成功'); console.log('RoleMenu 表同步成功');
......
...@@ -26,9 +26,10 @@ const User = sequelize.define('User', { ...@@ -26,9 +26,10 @@ const User = sequelize.define('User', {
type: DataTypes.STRING(50), type: DataTypes.STRING(50),
allowNull: true allowNull: true
}, },
avatar: DataTypes.STRING(500), //头像
enable: { enable: {
type: DataTypes.INTEGER, type: DataTypes.INTEGER,
defaultValue: true, defaultValue: 0,
comment: "0: 启用, 1: 不启用" comment: "0: 启用, 1: 不启用"
}, },
del: { del: {
......
...@@ -27,7 +27,7 @@ const UserRole = sequelize.define('UserRole', { ...@@ -27,7 +27,7 @@ const UserRole = sequelize.define('UserRole', {
// 同步模型到数据库(创建表) // 同步模型到数据库(创建表)
UserRole.sync({ UserRole.sync({
// force: false, // force: true 会删除已存在表并重新创建 // force: false, // force: true 会删除已存在表并重新创建
alter: true // alter: true
}) })
.then(() => { .then(() => {
console.log('UserRole 表同步成功'); console.log('UserRole 表同步成功');
......
...@@ -10,11 +10,13 @@ const roleController = require('../controller/roleController'); ...@@ -10,11 +10,13 @@ const roleController = require('../controller/roleController');
router.post('/regist', userController.regist); router.post('/regist', userController.regist);
router.post('/login', userController.login); router.post('/login', userController.login);
router.post('/manage/listUser', userController.listUser); router.post('/manage/listUser', userController.listUser);
router.post('/manage/addUser', userController.addUser); router.post('/manage/createUser', userController.createUser);
router.post('/manage/updateUser', userController.updateUser); //更新 enable用户 router.post('/manage/updateUser', userController.updateUser); //更新 enable用户
router.post('/manage/getUserInfo', userController.getUserInfo); router.post('/manage/getUserInfo', userController.getUserInfo);
router.post('/manage/deleteUser', userController.deleteUser); // 删除 router.post('/manage/deleteUser', userController.deleteUser); // 删除
router.post('/manage/setUserRole', userController.setUserRole);
/** /**
* 角色 * 角色
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment