diff --git a/game-server/app/services/timeTaskService.ts b/game-server/app/services/timeTaskService.ts index 5e5ee38d9..a55c2502a 100644 --- a/game-server/app/services/timeTaskService.ts +++ b/game-server/app/services/timeTaskService.ts @@ -814,7 +814,10 @@ async function initGroupShopSchedule() { }); } +let initSumJobs = []; export async function initSumSchedule() { + + let activities = await ActivityModel.findActivityByType(ACTIVITY_TYPE.GROUP_SHOP); let scheduleMap = new Map(); // 时间 => data for(let activity of activities) { @@ -828,13 +831,19 @@ export async function initSumSchedule() { } } + console.log('#### initSumJobs', initSumJobs.length); + console.log('#### scheduleMap', scheduleMap); + for(let job of initSumJobs) { + job.cancel(); + } for(let [time, arr] of scheduleMap) { if(scheduledJobs[`groupShopSetSum${time}`]) { scheduledJobs[`groupShopSetSum${time}`].cancel(); } - scheduleJob(`groupShopSetSum${time}`, time, async () => { + let job = scheduleJob(`groupShopSetSum${time}`, time, async () => { await setGroupShopToSetSum(arr); }); + initSumJobs.push(job); } } diff --git a/shared/db/ActivityGroupShopRec.ts b/shared/db/ActivityGroupShopRec.ts index c5375ebf4..7d3193047 100644 --- a/shared/db/ActivityGroupShopRec.ts +++ b/shared/db/ActivityGroupShopRec.ts @@ -34,7 +34,7 @@ export class GroupShopRecord { /** * 活动系统 - 团购总记录 */ -@index({ activityId: 1 }) +@index({ activityId: 1, itemId: 1 }) export default class Activity_Group_Shop_Rec extends BaseModel { @@ -74,8 +74,9 @@ export default class Activity_Group_Shop_Rec extends BaseModel { } public static async setSum(activityId: number, itemId: number, sum: number) { + await ActivityGroupShopRecModel.findOneAndUpdate({ activityId, itemId }, { $setOnInsert: { sum: 0 } }, { new: true, upsert: true }).lean(); let result: ActivityGroupShopRecType = await ActivityGroupShopRecModel.findOneAndUpdate( - { activityId, itemId, sum: { $lt: sum } }, { $set: { sum } }, { new: true, upsert: true } + { activityId, itemId, sum: { $lt: sum } }, { $set: { sum } }, { new: true } ).lean(); return result; } diff --git a/shared/db/ActivityGroupShopUserRec.ts b/shared/db/ActivityGroupShopUserRec.ts index e4087db39..a4abdbc58 100644 --- a/shared/db/ActivityGroupShopUserRec.ts +++ b/shared/db/ActivityGroupShopUserRec.ts @@ -6,8 +6,8 @@ import { GroupShopDiscount } from '../domain/activityField/groupShopField'; /** * 活动系统 - 团购玩家记录 */ -@index({ roleId: 1, activityId: 1, }) -@index({ activityId: 1, id: 1, 'records.price': 1 }) +@index({ roleId: 1, activityId: 1, itemId: 1 }) +@index({ activityId: 1, itemId: 1, 'records.price': 1 }) export class GroupShopBuyRecord {