diff --git a/game-server/app/services/gmService.ts b/game-server/app/services/gmService.ts index 341b17487..b62666504 100644 --- a/game-server/app/services/gmService.ts +++ b/game-server/app/services/gmService.ts @@ -28,7 +28,7 @@ import { TreasureHuntData } from "../domain/activityField/treasureHuntField"; import { RefreshShopData } from "../domain/activityField/refreshShopField"; import { RoleType } from "../db/Role"; import { MonopolyData } from "../domain/activityField/monopolyField"; -import { ActivityPopUpShopModel } from "../db/ActivityPopUpShop"; +import { ActivityPopUpShopModel, ActivityPopUpShopModelType } from "../db/ActivityPopUpShop"; // —————————————— 跑马灯 —————————————— // // 初始 @@ -297,10 +297,24 @@ export async function getParamStr(activity: ActivityModelType, productID: string let allTaskData: any[] = JSON.parse(activity.data); let task = allTaskData.find(cur => cur.productID == productID); if(!task) break; - let beginTime = new Date(); - let endTime = moment(new Date()).add(task.duration, 'h').toDate(); - let playerRecord = await ActivityPopUpShopModel.addTaskPushMessage(role.serverId, activity.activityId, role.roleId, task.id, task.taskType, task.condition, beginTime, endTime); - param['beginTimeStamp'] = playerRecord.beginTime; + + let playerRecords = await ActivityPopUpShopModel.findAllOpenData(role.serverId, activity.activityId, role.roleId); + let playerRecord: ActivityPopUpShopModelType; + for(let record of playerRecords) { + let playerData = new PopUpShopData(task, activity.activityId); + playerData.setPlayerRecords(record); + if (record && playerData.buyCount < task.count) { + playerRecord = record; break; + } + } + console.log('####', playerRecord, task) + if(!playerRecord) { + let beginTime = new Date(); + let endTime = moment(new Date()).add(task.duration, 'h').toDate(); + playerRecord = await ActivityPopUpShopModel.addTaskPushMessage(role.serverId, activity.activityId, role.roleId, task.id, task.taskType, task.condition, beginTime, endTime); + } + + param['beginTimeStamp'] = playerRecord.beginTime.getTime(); break; case ACTIVITY_TYPE.REFRESH_SHOP: let { activityGroupId } = await ServerlistModel.findByServerId(role.serverId);