装备穿戴战力bug

This commit is contained in:
mamengke01
2020-12-29 19:48:01 +08:00
parent 93f6ee0499
commit d70cabfdbb
5 changed files with 114 additions and 134 deletions

View File

@@ -12,79 +12,79 @@ const SALT_WORK_FACTOR = 5
@index({ uid: 1 })
export default class GMUser extends BaseModel {
@prop({ required: true })
uid: number;
@prop({ required: true })
uid: number;
@prop({ required: true })
name: string;
@prop({ required: true })
name: string;
@prop({ required: true })
username: string;
@prop({ required: true })
username: string;
@prop({ required: true })
password: string;
@prop({ required: true })
password: string;
@prop({ required: true })
salt: string;
@prop({ required: true })
salt: string;
@prop({ required: true })
token: string;
@prop({ required: true })
token: string;
private static async encryptPass(password: string, salt?: string) {
if(!salt) {
salt = await bcrypt.genSalt(SALT_WORK_FACTOR);
private static async encryptPass(password: string, salt?: string) {
if (!salt) {
salt = await bcrypt.genSalt(SALT_WORK_FACTOR);
}
let npassword = await bcrypt.hash(password, salt);
return { npassword, salt };
}
let npassword = await bcrypt.hash(password, salt);
return {npassword, salt};
}
public static async getGmAccountList(lean = true) {
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: GMUserType = await GMUserModel.findOne({token}).select('uid username name token').lean(lean);
return user;
}
public static async getGmAccountByUid(uid: number, lean = true) {
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: 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: GMUserType = await GMUserModel.findOne({username}).select('salt').lean();
if(user) {
let { salt } = user;
let { npassword } = await this.encryptPass(password, salt);
const checkUser: GMUserType = await GMUserModel.findOneAndUpdate({username, password: npassword}, { token }).select('uid username name token').lean(lean);
return checkUser;
} else {
return null
public static async getGmAccountList(lean = true) {
const user: GMUserType[] = await GMUserModel.find().select('uid username name token').lean(lean);
return user;
}
}
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: 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 getGmAccountByToken(token: string, lean = true) {
// console.log(token)
const user: GMUserType = await GMUserModel.findOne({ token }).select('uid username name token').lean(lean);
return user;
}
public static async changePass(uid: number, password: string, lean = true) {
let r = await this.encryptPass(password);
const user: GMUserType = await GMUserModel.findOneAndUpdate({uid}, { password: r.npassword, salt: r.salt}).select('uid username name').lean(lean);
return user;
}
public static async getGmAccountByUid(uid: number, lean = true) {
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: 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: GMUserType = await GMUserModel.findOne({ username }).select('salt').lean();
if (user) {
let { salt } = user;
let { npassword } = await this.encryptPass(password, salt);
const checkUser: GMUserType = await GMUserModel.findOneAndUpdate({ username, password: npassword }, { token }).select('uid username name token').lean(lean);
return checkUser;
} else {
return null
}
}
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: 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: 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>{};
export interface GMUserType extends Pick<DocumentType<GMUser>, keyof GMUser> { };

View File

@@ -7,7 +7,7 @@ class Heroes {
@prop({ required: true })
actorName: string; // 武将名
@prop({ required: true })
attribute: {hp: number, atk: number, matk: number, def: number, mdef: number, agi: number, luk: number, speed: number, hit: number, cri: number, flee: number, antCri: number, damageIncrease: number, damageDecrease: number, defIgnore: number, bloodSuck: number, ap: number}; // 属性
attribute: { hp: number, atk: number, matk: number, def: number, mdef: number, agi: number, luk: number, speed: number, hit: number, cri: number, flee: number, antCri: number, damageIncrease: number, damageDecrease: number, defIgnore: number, bloodSuck: number, ap: number }; // 属性
@prop({ required: true })
lv: number; // 角色等级
@prop({ required: true })
@@ -18,8 +18,8 @@ class Heroes {
seid: string; // 技能
@prop({ required: false })
star: number; // 角色星级
}
}
@index({ roleId: 1 })
@index({ ce: 1 })
@@ -84,4 +84,4 @@ export default class PvpDefense extends BaseModel {
export const PvpDefenseModel = getModelForClass(PvpDefense);
export interface PvpDefenseType extends Pick<DocumentType<PvpDefense>, keyof PvpDefense>{};
export interface PvpDefenseType extends Pick<DocumentType<PvpDefense>, keyof PvpDefense> { };