练兵场:清空bug
This commit is contained in:
@@ -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();//解锁
|
||||
|
||||
Reference in New Issue
Block a user