明树Git Lab

Commit 3c3f5ea8 authored by zfp1's avatar zfp1

update

parent 1b44a342
{
"tokenEx": 86400000000,
"userDefaultPassword": "GZB123JT.",
"file": {
"storagePath": "/uploadfiles"
},
......
const errorMessage = require("../utils/errorMessage");
async function createRole(req, res, next) {
try {
const body = req.body;
const ret = await userModule.create(body);
const ret = await DB.Role.create(body);
return res.sendData(ret);
} catch (error) {
next(error);
......@@ -14,7 +16,8 @@ async function updateRole(req, res, next) {
if (!body.id) {
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);
} catch (error) {
next(error);
......@@ -23,15 +26,34 @@ async function updateRole(req, res, next) {
}
async function deleteRole(req, res, next) {
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) {
next(error);
}
}
async function listRole(req, res, next) {
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) {
next(error);
}
......@@ -39,7 +61,11 @@ async function listRole(req, res, next) {
}
async function getRole(req, res, next) {
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) {
next(error);
}
......
const crypto = require('crypto');
const _ = require('lodash');
const CryptoJS = require('crypto-js');
const { Op, where } = require('sequelize');
const { Op } = require('sequelize');
const userModule = require('../module/userModule');
const errorMessage = require('../utils/errorMessage');
async function regist(req, res, next) {
......@@ -32,7 +30,6 @@ async function login(req, res, next) {
}
const { mobile, password } = req.body;
const user = await DB.User.findOne({ where: { mobile, del: 0, enable: 0 }, raw: true });
console.log("----------------------", user)
if (!user) {
return res.sendError(errorMessage.loginError);
}
......@@ -64,9 +61,13 @@ async function login(req, res, next) {
/**
* 管理端功能
*/
async function addUser(req, res, next) {
async function createUser(req, res, next) {
try {
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);
return res.sendData(ret);
} catch (error) {
......@@ -122,7 +123,7 @@ async function listUser(req, res, next) {
}
search.limit = limit;
search.offset = offset;
// console.log(JSON.stringify(search), "===")
search.attributes = req.body.attributes || {exclude: ['password', 'salt']};
let ret = await DB.User.findAndCountAll(search);
return res.sendData(ret);
} catch (error) {
......@@ -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 = {
regist,
login,
listUser,
addUser,
createUser,
getUserInfo,
updateUser,
deleteUser,
setUserRole,
}
\ No newline at end of file
......@@ -2,7 +2,9 @@
// 模型初始化
const User = require("./model/user");
const Role = require("./model/role");
const UserRole = require("./model/userRole");
const Menu = require("./model/menu");
const RoleMenu = require("./model/roleMenu");
const RequestLog = require("./model/requestLog");
......@@ -11,6 +13,8 @@ global.DB = {
User,
RequestLog,
Role,
UserRole,
RoleMenu,
}
......
......@@ -13,10 +13,10 @@ const Role = sequelize.define('Role', {
type: DataTypes.STRING,
commnet: "角色名称",
},
key: {
type: DataTypes.STRING,
commnet: "角色标识",
},
// key: {
// type: DataTypes.STRING,
// commnet: "角色标识",
// },
// enable: {
// type: DataTypes.BOOLEAN,
// defaultValue: true,
......
......@@ -27,7 +27,7 @@ const RoleMenu = sequelize.define('RoleMenu', {
// 同步模型到数据库(创建表)
RoleMenu.sync({
// force: false, // force: true 会删除已存在表并重新创建
alter: true
// alter: true
})
.then(() => {
console.log('RoleMenu 表同步成功');
......
......@@ -26,9 +26,10 @@ const User = sequelize.define('User', {
type: DataTypes.STRING(50),
allowNull: true
},
avatar: DataTypes.STRING(500), //头像
enable: {
type: DataTypes.INTEGER,
defaultValue: true,
defaultValue: 0,
comment: "0: 启用, 1: 不启用"
},
del: {
......
......@@ -27,7 +27,7 @@ const UserRole = sequelize.define('UserRole', {
// 同步模型到数据库(创建表)
UserRole.sync({
// force: false, // force: true 会删除已存在表并重新创建
alter: true
// alter: true
})
.then(() => {
console.log('UserRole 表同步成功');
......
......@@ -10,11 +10,13 @@ const roleController = require('../controller/roleController');
router.post('/regist', userController.regist);
router.post('/login', userController.login);
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/getUserInfo', userController.getUserInfo);
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