拍卖行:修复获取排品缺少演武的问题

This commit is contained in:
luying
2021-05-06 15:25:10 +08:00
parent f5654c402f
commit 2ef00e8179
6 changed files with 44 additions and 11 deletions
+13 -1
View File
@@ -1,6 +1,7 @@
import BaseModel from './BaseModel';
import { index, getModelForClass, prop, DocumentType } from '@typegoose/typegoose';
import { nowSeconds } from '../pubUtils/timeUtil';
import { genCode } from '../pubUtils/util';
class Rank {
@prop({ required: true })
@@ -9,10 +10,15 @@ class Rank {
score: number;
@prop({ required: true })
time: number;
@prop({ required: true })
job: number;
}
@index({ guildCode: 1 })
export default class BossInstance extends BaseModel {
@prop({ required: true })
code: string; // 这个boss本的唯一值
@prop({ required: true })
guildCode: string;
@@ -61,7 +67,8 @@ export default class BossInstance extends BaseModel {
}
public static async openBossInstance(guildCode: string, bossHp: number, warId: number, bossLv: number, lean = true) {
const bossInstance: BossInstanceType = await BossInstanceModel.findOneAndUpdate({ guildCode },{ranks:[], time: nowSeconds(), bossHp, bossLv, warId, $inc: { num: 1 }}, {new: true, upsert: true}).lean(lean);
let code = genCode(10);
const bossInstance: BossInstanceType = await BossInstanceModel.findOneAndUpdate({ guildCode },{ $setOnInsert: { code }, ranks:[], time: nowSeconds(), bossHp, bossLv, warId, $inc: { num: 1 }}, {new: true, upsert: true}).lean(lean);
return bossInstance;
}
//记录玩家boss通关后首次查看boss关卡
@@ -100,6 +107,11 @@ export default class BossInstance extends BaseModel {
{ $pull:{ ranks: { roleId } }}, {new: true}).lean(lean);
return guildTrain;
}
public static async findBySourceCode(guildCode: string, sourceCode: string) {
const rec = await BossInstanceModel.findOne({ guildCode, code: sourceCode }).select('ranks').lean();
return rec;
}
}
export const BossInstanceModel = getModelForClass(BossInstance);
+2 -1
View File
@@ -43,7 +43,7 @@ import { dicHeroRewads } from './dictionary/DicPvpHeroReward';
import { dicRankRewads, dicRankMax } from './dictionary/DicPvpRankReward';
import { dicPvpBoxs } from './dictionary/DicPvpBox';
import { dicGuildAuth } from './dictionary/DicGuildAuth';
import { dicCenterBase, dicEquipPriduceBase, dicBossBase, dicTrainBase, dicDonateBase, dicWishPoolBase, dicStoreBase, dicStructureConsume } from "./dictionary/DicStructure";
import { dicCenterBase, dicEquipPriduceBase, dicBossBase, dicTrainBase, dicDonateBase, dicWishPoolBase, dicStoreBase, dicStructureConsume, dicBossBaseByBossLv } from "./dictionary/DicStructure";
import { dicGuildActiveDayReward } from './dictionary/DicGuildActiveDayReward';
import { dicGuildActiveWeekReward } from './dictionary/DicGuildActiveWeekReward';
import { dicGuildActiveWays } from './dictionary/DicGuildActiveWays';
@@ -144,6 +144,7 @@ export const gameData = {
centerBase: dicCenterBase,
equipProduceBase: dicEquipPriduceBase,
bossBase: dicBossBase,
bossBaseByBossLv: dicBossBaseByBossLv,
trainBase: dicTrainBase,
donateBase: dicDonateBase,
armyWishPool: dicWishPoolBase,
@@ -156,6 +156,7 @@ export const dicStructureConsume = new Map<number, Map<number, number>>(); //
export const dicCenterBase = new Map<number, DicCentreBase>(); // 中军大帐
export const dicEquipPriduceBase = new Map<number, DicEquipProduceBase>(); // 炼器堂
export const dicBossBase = new Map<number, DicBossBase>(); // 演武台
export const dicBossBaseByBossLv = new Map<number, DicBossBase>(); // 演武台 boss等级=>dic
export const dicTrainBase = new Map<number, DicTrainBase>(); // 练兵场
export const dicDonateBase = new Map<number, DicDonateBase>(); // 捐献所
export const dicWishPoolBase = new Map<number, DicWishPoolBase>(); // 许愿池
@@ -196,6 +197,7 @@ arrBoss.forEach(o => {
return { warId: parseInt(warArr[0]), bossHp: parseInt(warArr[1])}
});
dicBossBase.set(o.level, _.pick(o, Object.keys(DicBossKeys)));
dicBossBaseByBossLv.set(o.bossLevel, _.pick(o, Object.keys(DicBossKeys)));
});
arrBoss = undefined;