fork from bc4552c5a8
This commit is contained in:
114
server/models/user.js
Normal file
114
server/models/user.js
Normal file
@@ -0,0 +1,114 @@
|
||||
const baseModel = require('./base.js');
|
||||
|
||||
class userModel extends baseModel {
|
||||
getName() {
|
||||
return 'user';
|
||||
}
|
||||
|
||||
getSchema() {
|
||||
return {
|
||||
username: {
|
||||
type: String,
|
||||
required: true
|
||||
},
|
||||
password: {
|
||||
type: String,
|
||||
required: true
|
||||
},
|
||||
email: {
|
||||
type: String,
|
||||
required: true
|
||||
},
|
||||
passsalt: String,
|
||||
study: { type: Boolean, default: false },
|
||||
role: String,
|
||||
add_time: Number,
|
||||
up_time: Number,
|
||||
type: { type: String, enum: ['site', 'third'], default: 'site' } //site用户是网站注册用户, third是第三方登录过来的用户
|
||||
};
|
||||
}
|
||||
|
||||
save(data) {
|
||||
let user = new this.model(data);
|
||||
return user.save();
|
||||
}
|
||||
|
||||
checkRepeat(email) {
|
||||
return this.model.countDocuments({
|
||||
email: email
|
||||
});
|
||||
}
|
||||
|
||||
list() {
|
||||
return this.model
|
||||
.find()
|
||||
.select('_id username email role type add_time up_time study')
|
||||
.exec(); //显示id name email role
|
||||
}
|
||||
|
||||
findByUids(uids) {
|
||||
return this.model
|
||||
.find({
|
||||
_id: { $in: uids }
|
||||
})
|
||||
.select('_id username email role type add_time up_time study')
|
||||
.exec();
|
||||
}
|
||||
|
||||
listWithPaging(page, limit) {
|
||||
page = parseInt(page);
|
||||
limit = parseInt(limit);
|
||||
return this.model
|
||||
.find()
|
||||
.sort({ _id: -1 })
|
||||
.skip((page - 1) * limit)
|
||||
.limit(limit)
|
||||
.select('_id username email role type add_time up_time study')
|
||||
.exec();
|
||||
}
|
||||
|
||||
listCount() {
|
||||
return this.model.countDocuments();
|
||||
}
|
||||
|
||||
findByEmail(email) {
|
||||
return this.model.findOne({ email: email });
|
||||
}
|
||||
|
||||
findById(id) {
|
||||
return this.model.findOne({
|
||||
_id: id
|
||||
});
|
||||
}
|
||||
|
||||
del(id) {
|
||||
return this.model.remove({
|
||||
_id: id
|
||||
});
|
||||
}
|
||||
|
||||
update(id, data) {
|
||||
return this.model.update(
|
||||
{
|
||||
_id: id
|
||||
},
|
||||
data
|
||||
);
|
||||
}
|
||||
|
||||
search(keyword) {
|
||||
return this.model
|
||||
.find(
|
||||
{
|
||||
$or: [{ email: new RegExp(keyword, 'i') }, { username: new RegExp(keyword, 'i') }]
|
||||
},
|
||||
{
|
||||
passsalt: 0,
|
||||
password: 0
|
||||
}
|
||||
)
|
||||
.limit(10);
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = userModel;
|
||||
Reference in New Issue
Block a user