练兵场:清空bug

This commit is contained in:
luying
2021-09-28 14:09:19 +08:00
parent b024b53334
commit dec03e1f21
2 changed files with 22 additions and 17 deletions

View File

@@ -9,7 +9,7 @@ import { ARMY } from '../pubUtils/dicParam';
import { lockData } from './redLockService';
import { pinus } from 'pinus';
import { MailModel, MailType } from '../db/Mail';
import { resResult, getRandSingleEelm } from '../pubUtils/util';
import { resResult, getRandSingleEelm, shouldRefresh } from '../pubUtils/util';
import { STATUS } from '../consts/statusCode';
import { GuildTrainReportModel } from '../db/GuildTrainReport';
import { DATA_NAME } from '../consts/dataName';
@@ -23,26 +23,12 @@ import { getGuildChannelSid } from './chatChannelService';
*/
export async function refreshTrain(userGuild: UserGuildType, roleId: string, serverId: number) {
let { trainCount, trainTime, buyTrainCount, guildCode} = userGuild;
let trainId = await resetTrain(guildCode, serverId);//检查重置练兵场
await resetTrain(guildCode, serverId);//检查重置练兵场
if (trainTime < getZeroPoint()) {//重置挑战次数和购买次数
trainCount = ARMY.ARMY_TRAIN_BUYTIMES;
buyTrainCount = 0;
userGuild = await UserGuildModel.updateInfo(roleId, {trainCount, trainTime: nowSeconds(), buyTrainCount}, {});
if(trainId) {
let { trainInstances } = getArmyTrainJuDian(trainId);
// 初始化
let instances = trainInstances.map(trainInstance => {
let t = new TrainInstance();
t.hid = trainInstance.hid;
t.progress = 0;
t.endTime = 0;
t.trainBoxs = [];
return t;
});
await GuildTrainModel.updateGuildTrain(guildCode, trainId, { trainInstances: instances });
}
}
return userGuild;
@@ -155,7 +141,23 @@ export async function resetTrain(code: string, serverId: number) {
let res:any = await lockData(serverId, DATA_NAME.GUILD, code);//加锁
if (!!res.err)
return;
let { structure, trainId } = await GuildModel.findGuild(code, serverId, 'structure trainId');
let { structure, trainId, resetTrainTimeDaily } = await GuildModel.findGuild(code, serverId, 'structure trainId resetTrainTimeDaily');
if(trainId && shouldRefresh(resetTrainTimeDaily, new Date())) {
let { trainInstances } = getArmyTrainJuDian(trainId);
// 初始化
let instances = trainInstances.map(trainInstance => {
let t = new TrainInstance();
t.hid = trainInstance.hid;
t.progress = 0;
t.endTime = 0;
t.trainBoxs = [];
return t;
});
await GuildTrainModel.updateGuildTrain(code, trainId, { trainInstances: instances });
await GuildModel.updateInfo(code, { resetTrainTimeDaily: new Date() });
}
let { lv } = findWhere(structure, {id: GUILD_STRUCTURE.TRAIN});
let guild = await GuildModel.resetGuildTrain(code, serverId, lv);
res.releaseCallback();//解锁