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) {