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();