yapi/server/models/user.js

88 lines
2.1 KiB
JavaScript
Raw Normal View History

2017-07-05 17:59:53 +08:00
import yapi from '../yapi.js'
2017-07-06 18:25:53 +08:00
import mongoose from 'mongoose'
import baseModel from './base.js'
2017-07-05 17:59:53 +08:00
2017-07-06 18:25:53 +08:00
class userModel extends baseModel{
getName(){
return 'user'
}
2017-07-05 17:59:53 +08:00
2017-07-06 18:25:53 +08:00
getSchema(){
return{
username: {
type: String,
required: true
},
2017-07-10 11:11:35 +08:00
password:{
type:String,
required: true
},
email: {
type: String,
required: true
},
2017-07-06 18:25:53 +08:00
passsalt: String,
role: String,
add_time: Number,
up_time: Number
}
}
save(data){
let user = new this.model(data);
2017-07-05 17:59:53 +08:00
return user.save();
2017-07-06 18:25:53 +08:00
}
2017-07-11 12:12:43 +08:00
checkRepeat(email){
2017-07-06 18:25:53 +08:00
return this.model.count({
2017-07-11 12:12:43 +08:00
email: email
2017-07-06 18:25:53 +08:00
})
}
list(){
2017-07-11 16:50:17 +08:00
return this.model.find().select("_id username email role add_time up_time").exec() //显示id name email role
2017-07-06 18:25:53 +08:00
}
findByUids(uids){
return this.model.find({
_id: {$in: [107]}
}).select("_id username email role add_time up_time").exec()
}
2017-07-18 16:37:28 +08:00
listWithPaging(page, limit) {
page = parseInt(page);
limit = parseInt(limit);
2017-07-21 11:46:44 +08:00
return this.model.find().sort({_id: -1}).skip((page - 1) * limit).limit(limit).select("_id username email role add_time up_time").exec();
2017-07-18 16:37:28 +08:00
}
listCount() {
return this.model.count();
}
2017-07-11 12:12:43 +08:00
findByEmail(email){
return this.model.findOne({email: email})
2017-07-07 12:04:14 +08:00
}
findById(id){
2017-07-06 18:25:53 +08:00
return this.model.findById({
_id: id
2017-07-05 17:59:53 +08:00
})
2017-07-06 18:25:53 +08:00
}
del (id) {
return this.model.deleteOne({
2017-07-11 10:17:44 +08:00
_id: id
2017-07-06 18:25:53 +08:00
})
}
update(id,data){
return this.model.update({
2017-07-11 10:17:44 +08:00
_id: id
}, data)
2017-07-05 17:59:53 +08:00
}
search(keyword) {
return this.model.find({
$or: [
{ email: new RegExp(keyword, 'i') },
{ username: new RegExp(keyword, 'i')}
]
}, {
passsalt: 0,
password: 0
}).limit(10)
}
2017-07-05 17:59:53 +08:00
}
2017-07-06 18:25:53 +08:00
module.exports = userModel