军团活动:修复活动结束之后还继续挑战的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);
// 更新数据库