试炼宝箱领取bug
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
import { Application, BackendSession, pinus } from 'pinus';
|
import { Application, BackendSession, pinus } from 'pinus';
|
||||||
import { resResult, genCode, getRandomByLen } from '../../../pubUtils/util';
|
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 { GuildTrainModel } from '../../../db/GuildTrain';
|
||||||
import { BattleRecordModel } from '../../../db/BattleRecord';
|
import { BattleRecordModel } from '../../../db/BattleRecord';
|
||||||
import { nowSeconds, getHourPoint, getCurHourPoint } from '../../../pubUtils/timeUtil';
|
import { nowSeconds, getHourPoint, getCurHourPoint } from '../../../pubUtils/timeUtil';
|
||||||
@@ -252,19 +252,27 @@ export class GuildTrainHandler {
|
|||||||
return resResult(STATUS.WRONG_PARMS);
|
return resResult(STATUS.WRONG_PARMS);
|
||||||
const { guildCode: code } = userGuild;
|
const { guildCode: code } = userGuild;
|
||||||
let { trainLv } = await GuildModel.findGuild(code, serverId, 'trainLv');
|
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)
|
if (!!res.err)
|
||||||
return resResult(STATUS.REDLOCK_ERR);
|
return resResult(STATUS.REDLOCK_ERR);
|
||||||
|
|
||||||
let { shilianRewardRatio } = getTrainBaseByLv(trainLv);
|
let { shilianRewardRatio } = getTrainBaseByLv(trainLv);
|
||||||
let { heroRewards, trainInstances } = getArmyTrainJuDian(trainId);
|
let { heroRewards, trainInstances } = getArmyTrainJuDian(trainId);
|
||||||
let { progress } = findWhere(trainInstances, {hid});
|
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) {
|
if (!guildTrain) {
|
||||||
res.releaseCallback();//解锁
|
res.releaseCallback();//解锁
|
||||||
return resResult(STATUS.GUILD_TRAIN_SCRIPT_NOT_OPENED);
|
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);
|
let good = getRandomByLen(heroRewards);
|
||||||
good.count = Math.floor((100 + shilianRewardRatio) * good.count/100);
|
good.count = Math.floor((100 + shilianRewardRatio) * good.count/100);
|
||||||
let goods = await addItems(roleId, roleName, sid, [good]);
|
let goods = await addItems(roleId, roleName, sid, [good]);
|
||||||
|
|||||||
Reference in New Issue
Block a user