名将擂台:获取对手

This commit is contained in:
luying
2022-07-15 15:31:08 +08:00
parent 7394f14e9d
commit f56dbc29de
15 changed files with 1881 additions and 70 deletions

View File

@@ -15,7 +15,10 @@ export default class LadderMatch extends BaseModel {
rank: number; // 排名
@prop({ required: true, default: 0 })
historyRank: number; // 历史最高排名
@prop({ required: true, default: 0 })
locked: number; // 是否被挑战
@prop({ required: true, default: null, _id: false })
defense: LadderDefense;
@@ -31,8 +34,21 @@ export default class LadderMatch extends BaseModel {
@prop({ required: true, default: 0 })
refOppCnt: number; // 刷新对手次数
public static async findByRoleId(roleId: string, getters = false) {
const result: LadderMatchType = await LadderMatchModel.findOne({ roleId }).lean({ getters});
public static async findByRoleId(roleId: string) {
const result: LadderMatchType = await LadderMatchModel.findOne({ roleId }).lean();
return result;
}
public static async checkByRank(rank: number) {
const result = await LadderMatchModel.exists({ rank });
return result;
}
public static async findByRoleIdAndInclude(roleId: string) {
const result: LadderMatchType = await LadderMatchModel.findOne({ roleId })
.populate('role', 'roleId roleName head frame spine heads frames spines title lv updatedAt')
.populate('defense.hero', 'hid skinId quality star colorStar lv')
.lean();
return result;
}
@@ -62,6 +78,11 @@ export default class LadderMatch extends BaseModel {
}
return result
}
public static async lock(roleId: string, rank: number) {
const defense: LadderMatchType = await LadderMatchModel.findOneAndUpdate({ roleId, rank, locked: 0 }, { $set: { locked: 1 }}, { new: true }).lean();
return defense;
}
}
export const LadderMatchModel = getModelForClass(LadderMatch);