diff --git a/game-server/app/servers/battle/handler/ladderHandler.ts b/game-server/app/servers/battle/handler/ladderHandler.ts index 92eafde83..b1afd0ff3 100644 --- a/game-server/app/servers/battle/handler/ladderHandler.ts +++ b/game-server/app/servers/battle/handler/ladderHandler.ts @@ -279,7 +279,7 @@ export class LadderHandler { return dbHero && new LadderDefenseHero(cur, dbHero._id, dbHero.ce); }).filter(cur => cur); let defense = new LadderDefense(defenseHeroes, warId); - ladderData = await LadderMatchModel.updateByRoleId(roleId, { defense }); + ladderData = await LadderMatchModel.updateByRoleId(roleId, { defense, hasDefense: true }); // 返回 let result = new LadderDataReturn(); result.setLadderData(ladderData); diff --git a/shared/db/LadderMatch.ts b/shared/db/LadderMatch.ts index 3e039e1de..a56f620be 100644 --- a/shared/db/LadderMatch.ts +++ b/shared/db/LadderMatch.ts @@ -24,6 +24,8 @@ export default class LadderMatch extends BaseModel { @prop({ required: true, default: null, _id: false }) defense: LadderDefense; + @prop({ required: true, default: false }) + hasDefense: boolean; // 购买次数 @prop({ required: true, type: LadderOppPlayerInDB, default: [], _id: false }) oppPlayers: LadderOppPlayerInDB[]; @@ -147,7 +149,7 @@ export default class LadderMatch extends BaseModel { public static async updateCe(roleId: string, hid: number, ce: number) { const rec: LadderMatchType = await LadderMatchModel.findOneAndUpdate( - { roleId, defense: { $exists: false } }, + { roleId, hasDefense: true }, { $set: { 'defense.heroes.$[t].ce': ce } }, { arrayFilters: [{"t.actorId": hid}] }).lean(); return rec