From 0c6bea6ad1fc69eaa46def9d8a77b8c49955faab Mon Sep 17 00:00:00 2001 From: luying Date: Wed, 19 Jul 2023 11:08:08 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9E=20fix(=E5=86=9B=E5=9B=A2=E6=B4=BB?= =?UTF-8?q?=E5=8A=A8):=20=E8=AF=B8=E4=BE=AF=E6=B7=B7=E6=88=98=E5=AE=A3?= =?UTF-8?q?=E5=A4=9A=E5=9F=8E=E6=95=B0=E6=8D=AE=E5=88=86=E5=BC=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../guildActivity/guildActivityService.ts | 2 +- shared/db/GuildActivityRec.ts | 36 +++++++++++++------ 2 files changed, 26 insertions(+), 12 deletions(-) diff --git a/game-server/app/services/guildActivity/guildActivityService.ts b/game-server/app/services/guildActivity/guildActivityService.ts index 228c5df9c..1052f3c9d 100644 --- a/game-server/app/services/guildActivity/guildActivityService.ts +++ b/game-server/app/services/guildActivity/guildActivityService.ts @@ -447,7 +447,7 @@ export async function cityActivitySettleReward(cityId: number, serverId: number) rank: guildRank, damage: num, remainGateHp: gateHp, rewards: getRewardToDbFromMap(rewards), auctionType: AUCTION_SOURCE.CITY, - }); + }, cityId); // 奖励加入拍卖行 await genAuction(guildCode, AUCTION_SOURCE.CITY, rec.code, serverId, rewards); diff --git a/shared/db/GuildActivityRec.ts b/shared/db/GuildActivityRec.ts index 0dbd21d32..7d645e505 100644 --- a/shared/db/GuildActivityRec.ts +++ b/shared/db/GuildActivityRec.ts @@ -79,19 +79,33 @@ export default class GuildActivityRecord extends BaseModel { let insert = Object.assign(docs, { code, guildCode, serverId, aid, createdAt: new Date(), auctionType: aid + 1 }); if(events) insert = Object.assign(insert, { events }); let update: GuildActivityRecordUpdateParam = {}; - if(cityId) update = Object.assign(update, { challengeCityId: cityId }); - let rec: GuildActivityRecordType = await GuildActivityRecordModel.findOneAndUpdate( - { aid, guildCode, index, status: 1}, - { $setOnInsert: insert, $set: update }, - {new: true, upsert: true}).lean(); - return rec; + if(cityId) { + let rec: GuildActivityRecordType = await GuildActivityRecordModel.findOneAndUpdate( + { aid, guildCode, index, status: 1, challengeCityId: cityId}, + { $setOnInsert: insert, $set: update }, + {new: true, upsert: true}).lean(); + return rec; + } else { + let rec: GuildActivityRecordType = await GuildActivityRecordModel.findOneAndUpdate( + { aid, guildCode, index, status: 1}, + { $setOnInsert: insert, $set: update }, + {new: true, upsert: true}).lean(); + return rec; + } } - public static async updateInfo(guildCode: string, aid: number, index: number, update: GuildActivityRecordUpdateParam) { - let rec: GuildActivityRecordType = await GuildActivityRecordModel.findOneAndUpdate( - { guildCode, aid, index, status: 1 }, - { $set: update, $setOnInsert: { code: genCode(10) } }, { new: true, upsert: true }).lean(); - return rec; + public static async updateInfo(guildCode: string, aid: number, index: number, update: GuildActivityRecordUpdateParam, challengeCityId?: number) { + if(challengeCityId) { + let rec: GuildActivityRecordType = await GuildActivityRecordModel.findOneAndUpdate( + { guildCode, aid, index, status: 1, challengeCityId }, + { $set: update, $setOnInsert: { code: genCode(10) } }, { new: true, upsert: true }).lean(); + return rec; + } else { + let rec: GuildActivityRecordType = await GuildActivityRecordModel.findOneAndUpdate( + { guildCode, aid, index, status: 1 }, + { $set: update, $setOnInsert: { code: genCode(10) } }, { new: true, upsert: true }).lean(); + return rec; + } } public static async pushEvent(guildCode: string, aid: number, index: number, event: Event) {