| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115 |
- 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;
|