添加数据库类型别名

This commit is contained in:
luying
2020-12-15 18:08:29 +08:00
parent 1565dd206a
commit 2d774fc0e4
38 changed files with 393 additions and 321 deletions

View File

@@ -1,7 +1,7 @@
import { COUNTER } from './../consts';
import { CounterModel } from './Counter';
import BaseModel from './BaseModel';
import { index, getModelForClass, prop } from '@typegoose/typegoose';
import { index, getModelForClass, prop, DocumentType } from '@typegoose/typegoose';
const bcrypt = require('bcrypt');
const SALT_WORK_FACTOR = 5
@@ -39,32 +39,32 @@ export default class GMUser extends BaseModel {
}
public static async getGmAccountList(lean = true) {
const user = await GMUserModel.find().select('uid username name token').lean(lean);
const user: GMUserType[] = await GMUserModel.find().select('uid username name token').lean(lean);
return user;
}
public static async getGmAccountByToken(token: string, lean = true) {
// console.log(token)
const user = await GMUserModel.findOne({token}).select('uid username name token').lean(lean);
const user: GMUserType = await GMUserModel.findOne({token}).select('uid username name token').lean(lean);
return user;
}
public static async getGmAccountByUid(uid: number, lean = true) {
const user = await GMUserModel.findOne({uid}).select('uid username name token').lean(lean);
const user: GMUserType = await GMUserModel.findOne({uid}).select('uid username name token').lean(lean);
return user;
}
public static async getGmAccountByUsername(username: string, lean = true) {
const user = await GMUserModel.findOne({username}).select('uid username name token').lean(lean);
const user: GMUserType = await GMUserModel.findOne({username}).select('uid username name token').lean(lean);
return user;
}
public static async login(username: string, password: string, token: string, lean = true) {
const user = await GMUserModel.findOne({username}).select('salt').lean();
const user: GMUserType = await GMUserModel.findOne({username}).select('salt').lean();
if(user) {
let { salt } = user;
let { npassword } = await this.encryptPass(password, salt);
const checkUser = await GMUserModel.findOneAndUpdate({username, password: npassword}, { token }).select('uid username name token').lean(lean);
const checkUser: GMUserType = await GMUserModel.findOneAndUpdate({username, password: npassword}, { token }).select('uid username name token').lean(lean);
return checkUser;
} else {
return null
@@ -74,15 +74,17 @@ export default class GMUser extends BaseModel {
public static async createGmAccount(username: string, password: string, name: string, token: string, lean = true) {
const uid = await CounterModel.getNewCounter(COUNTER.GMUID);
let r = await this.encryptPass(password);
const user = await GMUserModel.findOneAndUpdate({username}, {uid, password: r.npassword, salt: r.salt, name, token}, {upsert: true, new: true}).select('uid username name').lean(lean);
const user: GMUserType = await GMUserModel.findOneAndUpdate({username}, {uid, password: r.npassword, salt: r.salt, name, token}, {upsert: true, new: true}).select('uid username name').lean(lean);
return user;
}
public static async changePass(uid: number, password: string, lean = true) {
let r = await this.encryptPass(password);
const user = await GMUserModel.findOneAndUpdate({uid}, { password: r.npassword, salt: r.salt}).select('uid username name').lean(lean);
const user: GMUserType = await GMUserModel.findOneAndUpdate({uid}, { password: r.npassword, salt: r.salt}).select('uid username name').lean(lean);
return user;
}
}
export const GMUserModel = getModelForClass(GMUser);
export interface GMUserType extends Pick<DocumentType<GMUser>, keyof GMUser>{};