From a52715b8527fe101de320f6d4619b1dfbc32451a Mon Sep 17 00:00:00 2001 From: luying Date: Mon, 21 Feb 2022 14:31:22 +0800 Subject: [PATCH] =?UTF-8?q?=E5=90=8E=E5=8F=B0=EF=BC=9A=E8=99=9A=E6=8B=9F?= =?UTF-8?q?=E5=85=85=E5=80=BC=EF=BC=8C=E4=BF=AE=E5=A4=8D=E5=A4=9A=E8=B4=AD?= =?UTF-8?q?=E4=B9=B0=E6=AC=A1=E6=95=B0=E5=90=8E=E5=BC=B9=E7=AA=97=E4=B8=8D?= =?UTF-8?q?=E6=B6=88=E5=A4=B1bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- game-server/app/services/gmService.ts | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) 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);