kefu/model/users.js

69 lines
2.0 KiB
JavaScript

var mongoose = require('../utils/mongoose').mongoose;
var crypto = require('crypto');
var Schema = mongoose.Schema;
// 管理员模型
var UsersSchema = new Schema({
username: {type: String,index: true},
password: {type: String},
nickname: {type: String},
description: {type: String,default:'欢迎咨询'},
time: {type: Date, default: Date.now}
});
var UsersModel = mongoose.model("users", UsersSchema);
function login(username, password, callback) {
var md5 = crypto.createHash('md5');
password = md5.update(password).digest('hex');
var condition = {'username': username, 'password': password};
UsersModel.findOne(condition, function (err, res) {
var _err = null;
if (err) {
_err = err;
}
if (!res) {
_err = '用户名密码不正确';
}
return callback(_err, res);
})
}
function reset_psw(username, psw_old, psw_new, callback) {
psw_old = crypto.createHash('md5').update(psw_old).digest('hex');
UsersModel.find({username: username, password: psw_old}, function (err, info) {
if (err) {
return callback(err, null);
}
if (!info || info.length == 0) {
return callback('原密码不正确', null);
}
psw_new = crypto.createHash('md5').update(psw_new).digest('hex');
UsersModel.findOneAndUpdate({username: username, password: psw_old}, {password: psw_new}, callback);
});
}
function findByUserName(username){
return new Promise((resolve ,reject)=>{
UsersModel.findOne({username},(err,res)=>{
if(err) reject(err)
else if(!res) resolve(null)
else{
resolve(res);
}
});
})
}
function updateInfo(username, nickname, description) {
return new Promise((resovle, reject) => {
UsersModel.findOneAndUpdate({username}, {nickname, description}, resovle);
})
}
exports.updateInfo = updateInfo;
exports.findByUserName = findByUserName;
exports.login = login;
exports.reset_psw = reset_psw;