From ad1881ff9d73b24cf8337e9e648dfd53a5179261 Mon Sep 17 00:00:00 2001 From: mamengke01 <794347210@qq.com> Date: Sun, 7 Feb 2021 15:26:36 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AF=95=E7=82=BC=E5=AE=9D=E7=AE=B1=E9=A2=86?= =?UTF-8?q?=E5=8F=96bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../servers/battle/handler/guildTrainHandler.ts | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/game-server/app/servers/battle/handler/guildTrainHandler.ts b/game-server/app/servers/battle/handler/guildTrainHandler.ts index 2866ad5fa..ea485e97b 100644 --- a/game-server/app/servers/battle/handler/guildTrainHandler.ts +++ b/game-server/app/servers/battle/handler/guildTrainHandler.ts @@ -1,6 +1,6 @@ import { Application, BackendSession, pinus } from 'pinus'; import { resResult, genCode, getRandomByLen } from '../../../pubUtils/util'; -import { STATUS, GUILD_OPERATE, GUILD_AUTH, GUILD_JOB } from '../../../consts'; +import { STATUS } from '../../../consts'; import { GuildTrainModel } from '../../../db/GuildTrain'; import { BattleRecordModel } from '../../../db/BattleRecord'; import { nowSeconds, getHourPoint, getCurHourPoint } from '../../../pubUtils/timeUtil'; @@ -252,19 +252,27 @@ export class GuildTrainHandler { return resResult(STATUS.WRONG_PARMS); const { guildCode: code } = userGuild; let { trainLv } = await GuildModel.findGuild(code, serverId, 'trainLv'); - let res:any = await lockData(serverId, DATA_NAME.TRAIN_BOX, code + '_' + trainId);//加锁 + let res:any = await lockData(serverId, DATA_NAME.TRAIN_BOX, code + '_' + trainId + '_' + index);//加锁 if (!!res.err) return resResult(STATUS.REDLOCK_ERR); let { shilianRewardRatio } = getTrainBaseByLv(trainLv); let { heroRewards, trainInstances } = getArmyTrainJuDian(trainId); let { progress } = findWhere(trainInstances, {hid}); - let guildTrain = await GuildTrainModel.findTrainInstanceBoxByIndex(code, roleId, trainId, hid, index, progress, nowSeconds()); + let guildTrain = await GuildTrainModel.findTrainInstanceBoxByIndex(code, trainId, hid, progress); if (!guildTrain) { res.releaseCallback();//解锁 return resResult(STATUS.GUILD_TRAIN_SCRIPT_NOT_OPENED); } - + let trainInstance = findWhere(guildTrain.trainInstances, { hid }); + if (trainInstance.endTime > nowSeconds()) + return resResult(STATUS.GUILD_TRAIN_BOX_IS_OVER_TIME); + let trainBox = findWhere(trainInstance.trainBoxs, { index }) + if (!!trainBox) + return resResult(STATUS.GUILD_TRAIN_BOX_INDEX_IS_GOT); + trainBox = findWhere(trainInstance.trainBoxs, { roleId }) + if (!!trainBox) + return resResult(STATUS.GUILD_TRAIN_BOX_IS_GOT); let good = getRandomByLen(heroRewards); good.count = Math.floor((100 + shilianRewardRatio) * good.count/100); let goods = await addItems(roleId, roleName, sid, [good]);