userService.js
3.7 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
var userModel = require('../model/userModel');
var status = require('../util/resTemplate');
var saitMd5 = require('../util/saltMD5');
var sequelize = require('../config');
var tokenUtil = require('../util/tokenUtil');
var co = require('co');
function userService(){
}
userService.prototype.addUser = async(data)=>{
try{
let oldUser = await userModel.find({where:{loginName:data.loginName}})
if(oldUser){
return {code:400,msg:'用户已存在'}
}
let newUser = await userModel.create(data)
return newUser;
}catch (err){
throw new Error(err);
}
}
userService.prototype.login = async(name,pw) => {
try{
let User = await userModel.find({where:{loginName:name}})
console.dir(User)
if(!User){
return {code:300,msg:'用户不存在'}
}else if(User.password != saitMd5.md5Salt(pw,User.salt)){
return {code:300,msg:'密码不正确'}
}
let token = await tokenUtil.getSession(User);
return token
}catch (err){
console.log(err)
throw new Error(err);
}
}
userService.prototype.getStu = async(type)=>{
try {
let sql = `SELECT
u.*, ug.name groupName
FROM
3m_user u
LEFT JOIN 3m_user_group ug ON ug.id = u.group_id`
let User = await sequelize.query(sql);
return User
} catch (error) {
throw new Error(error);
}
}
userService.prototype.resetPasswordByUserId = async(userId,pw) => {
try{
var t = await sequelize.transaction({ autocommit: true })
let User = await userModel.findOne({where:{id:userId}})
if(!User){
t.rollback
return {code:0,msg:'用户不存在'}
}
let updateUser = await userModel.update({password:pw.md5Pass,salt:pw.salt},{where:{id:userId}});
t.commit();
return updateUser
}catch (err){
t.rollback();
throw new Error(err);
}
}
userService.prototype.updateUserByUserId = async(userId,data)=>{
try {
var t = await sequelize.transaction({ autocommit: true })
let oldUser = await userModel.findAll({where:{id:userId}},{transaction: t});
if(!oldUser){
t.rollback()
return {msg:'用户不存在'}
}
if(data.loginName){
let loginNameUser = await userModel.findAll({where:{loginName:data.loginName}},{transaction: t});
if(loginNameUser[0]){
t.rollback()
return {code:1,msg:'用户名已存在'}
}
}
let updateUser = await userModel.update(data,{where:{id:userId}},{transaction: t});
let updateAfterUser = await userModel.find({where:{id:userId}},{transaction: t});
await t.commit();
delete updateAfterUser.password;
delete updateAfterUser.salt
return updateAfterUser
} catch (error) {
t.rollback();
throw new Error(error);
}
}
userService.prototype.delUserByUserId = async(userId) => {
let t = await sequelize.transaction({ autocommit: true })
try {
let User = await userModel.find({where:{id:userId}},{transaction: t});
if(!User){
t.rollback()
return {msg:'用户不存在'}
}
let delUser = await userModel.destroy({where:{id:userId}},{transaction: t});
await t.commit();
return delUser
} catch (error) {
t.rollback();
throw new Error(error);
}
}
module.exports = new userService();