军团活动:修复活动结束之后还继续挑战的bug

This commit is contained in:
luying
2022-05-27 12:04:46 +08:00
parent d6c6819723
commit fe711307d6
8 changed files with 64 additions and 8 deletions
@@ -1,5 +1,5 @@
import { Application, ChannelService, BackendSession, pinus, HandlerService, } from "pinus";
import { GUILD_ACTIVITY_TYPE, STATUS, REDIS_KEY, GUILD_POINT_WAYS, CITY_STATUS, TASK_TYPE, ITEM_CHANGE_REASON, PUSH_ROUTE } from "../../../consts";
import { GUILD_ACTIVITY_TYPE, STATUS, REDIS_KEY, GUILD_POINT_WAYS, CITY_STATUS, TASK_TYPE, ITEM_CHANGE_REASON, PUSH_ROUTE, GUILD_ACTIVITY_STATUS } from "../../../consts";
import { resResult } from "../../../pubUtils/util";
import { getGuildActivityStatus, getCityActivityObj, getCityStatus as pubGetCityStatus, getCities, getCityActivityRank, sendSingleCityActEndMsg, getPreDayActiveData, sendGuildCityDeclare } from "../../../services/guildActivity/guildActivityService";
import { GuildActivityCityModel } from "../../../db/GuildActivityCity";
@@ -247,7 +247,6 @@ export class CityActivityHandler {
let { cityId, code, damage, hid, round } = msg;
if (damage == undefined || damage < 0) return resResult(STATUS.WRONG_PARMS);
const dicCity = gameData.cityActivity.get(cityId);
let obj = getCityActivityObj();
let { gateHp, maxHp } = await obj.getGateHpAndInc(serverId, cityId);
if (gateHp <= 0) return resResult(STATUS.GATE_HP_IS_ZERO);
@@ -255,6 +254,12 @@ export class CityActivityHandler {
let statusResult = getGuildActivityStatus(this.aid);
if (!statusResult) return resResult(STATUS.DIC_DATA_NOT_FOUND);
if(!statusResult.isOpen) return resResult(STATUS.GUILD_ACTIVITY_NOT_OPEN);
if(statusResult.status != GUILD_ACTIVITY_STATUS.START) {
return resResult(STATUS.SUCCESS, {
code,
...statusResult
})
}
let pushResult = await UserGuildActivityRecModel.pushCityRecord(code, { round, hid, damage });
if (!pushResult) return resResult(STATUS.WRONG_PARMS);
@@ -262,11 +267,11 @@ export class CityActivityHandler {
let tomorrow = <number>getTimeFun().getAfterDayWithHour();
// 更新redis数据
let myR = new Rank(REDIS_KEY.USER_CITY_ACTIVITY, { serverId, guildCode }, true);
let myScore = await myR.setRankWithRoleInfo(roleId, damage, Date.now(), null, true);
let myScore = await myR.setRankWithRoleInfo(roleId, damage, obj.getTimeGap(), null, true);
await myR.setExpire(tomorrow);
let r = new Rank(REDIS_KEY.CITY_ACTIVITY, { serverId, cityId }, true);
let guildScore = await r.setRankWithGuildInfo(guildCode, damage, Date.now(), null, true);
let guildScore = await r.setRankWithGuildInfo(guildCode, damage, obj.getTimeGap(), null, true);
await r.setExpire(tomorrow);
({gateHp, maxHp} = await obj.getGateHpAndInc(serverId, cityId, -1 * damage));
@@ -131,11 +131,11 @@ export class GateActivityHandler {
let tomorrow = <number>getTimeFun().getAfterDayWithHour();
// 更新redis数据
let myR = new Rank(REDIS_KEY.USER_GATE_ACTIVITY, { serverId, guildCode }, true);
let myScore = await myR.setRankWithRoleInfo(roleId, score, Date.now(), null, true);
let myScore = await myR.setRankWithRoleInfo(roleId, score, obj.getTimeGap(), null, true);
await myR.setExpire(tomorrow);
let r = new Rank(REDIS_KEY.GATE_ACTIVITY, { serverId }, true);
let guildScore = await r.setRankWithGuildInfo(guildCode, score, Date.now(), null, true);
let guildScore = await r.setRankWithGuildInfo(guildCode, score, obj.getTimeGap(), null, true);
await r.setExpire(tomorrow);
// 更新数据库
@@ -1,9 +1,10 @@
import { Application, ChannelService, HandlerService, } from 'pinus';
import { sendAllGuildRanks, calWoodenHorseAndSend, sendRaceStartMsg, setDicGuildActivity, setDicAuctionTime, settleGuildActivityReward } from '../../../services/guildActivity/guildActivityService';
import { sendAllGuildRanks, calWoodenHorseAndSend, sendRaceStartMsg, setDicGuildActivity, setDicAuctionTime, settleGuildActivityReward, gateActivityStart, cityActivityStart } from '../../../services/guildActivity/guildActivityService';
import { gameData } from '../../../pubUtils/data';
import { setWeek } from '../../../pubUtils/timeUtil';
import { sendUngotDividend } from '../../../services/auctionService';
import { errlogger } from '../../../util/logger';
import { GUILD_ACTIVITY_TYPE } from '../../../consts';
export default function (app: Application) {
new HandlerService(app, {});
@@ -57,6 +58,21 @@ export class GuildActivityRemote {
}
}
/**
* 诸侯混战和蛮夷入侵开始
*/
async gateAndCityActivityStart(aid: number) {
try {
if(aid == GUILD_ACTIVITY_TYPE.GATE_ACTIVITY) {
await gateActivityStart();
} else if (aid == GUILD_ACTIVITY_TYPE.CITY_ACTIVITY) {
await cityActivityStart();
}
} catch(e) {
errlogger.error(`remote ${__filename} \n ${e.stack}`);
}
}
/**
* 发送粮草先行活动开始通知
*/