🐞 fix(gvg): 修复根据开服时间判断单服还是跨服

This commit is contained in:
luying
2023-02-17 10:58:47 +08:00
parent f8c08974d9
commit e5df5fe4f0
2 changed files with 11 additions and 2 deletions
@@ -4,7 +4,7 @@ import { GVGLeagueModel } from "../../../db/GVGLeague";
import { GVGLeaguePrepareModel } from "../../../db/GVGLeaguePrepare"; import { GVGLeaguePrepareModel } from "../../../db/GVGLeaguePrepare";
import { GVGMainData, LeagueDistributeInfo, LeagueMemberDistributeInfo, LeagueMemberListInfo } from "../../../domain/gvgField/returnData"; import { GVGMainData, LeagueDistributeInfo, LeagueMemberDistributeInfo, LeagueMemberListInfo } from "../../../domain/gvgField/returnData";
import { resResult } from "../../../pubUtils/util"; import { resResult } from "../../../pubUtils/util";
import { calLeagueCe, getGVGConfig, getGVGPeriodData, getGVGServerType } from "../../../services/gvg/gvgService"; import { calLeagueCe, getGVGConfig, getGVGPeriodData, getGVGServerType, getServerTypeByTime } from "../../../services/gvg/gvgService";
import { autoCreateLeague, checkCanChooseJob, checkCanPrepare, checkLeagueAuth, getMyAuth } from "../../../services/gvg/gvgTeamService"; import { autoCreateLeague, checkCanChooseJob, checkCanPrepare, checkLeagueAuth, getMyAuth } from "../../../services/gvg/gvgTeamService";
import { getAllServerName } from "../../../services/redisService"; import { getAllServerName } from "../../../services/redisService";
import { Distribute, GVGUserDataModel } from "../../../db/GVGUserData"; import { Distribute, GVGUserDataModel } from "../../../db/GVGUserData";
@@ -22,6 +22,7 @@ import { getGVGCities, getGVGCitiesInfo } from "../../../services/gvg/gvgBattleS
import { GVGRecModel } from "../../../db/GVGRec"; import { GVGRecModel } from "../../../db/GVGRec";
import { checkGVGTask } from "../../../services/task/taskService"; import { checkGVGTask } from "../../../services/task/taskService";
import { getFightTimeByPeriod, getVestiges } from "../../../services/gvg/gvgFightService"; import { getFightTimeByPeriod, getVestiges } from "../../../services/gvg/gvgFightService";
import { getSeconds } from "../../../pubUtils/timeUtil";
export default function (app: Application) { export default function (app: Application) {
new HandlerService(app, {}); new HandlerService(app, {});
@@ -455,4 +456,10 @@ export class GVGHandler {
const result = await handleGVGCost(roleId, myLeague.leagueCode, sid, leagueItems, items, ITEM_CHANGE_REASON.DEBUG); const result = await handleGVGCost(roleId, myLeague.leagueCode, sid, leagueItems, items, ITEM_CHANGE_REASON.DEBUG);
return resResult(STATUS.SUCCESS, { result }); return resResult(STATUS.SUCCESS, { result });
} }
async getServerType(msg: { time: string }, session: BackendSession) {
let t = new Date(msg.time);
let serverType = getServerTypeByTime(getSeconds(t));
return resResult(STATUS.SUCCESS, { serverType });
}
} }
+3 -1
View File
@@ -88,12 +88,14 @@ export function getGVGConfig() {
return { configId, teamTime, prepareTime, battleTime, scheduleTime } return { configId, teamTime, prepareTime, battleTime, scheduleTime }
} }
function getServerTypeByTime(openTime: number) { export function getServerTypeByTime(openTime: number) {
let today = nowSeconds(); let today = nowSeconds();
if(today - openTime < WEEK_TO_SECOND) return GVG_SERVER_TYPE.NO; if(today - openTime < WEEK_TO_SECOND) return GVG_SERVER_TYPE.NO;
let toWeek = getCurrentTeamTime(today); let toWeek = getCurrentTeamTime(today);
let openWeek = getCurrentTeamTime(openTime); let openWeek = getCurrentTeamTime(openTime);
let n = Math.floor((toWeek - openWeek) / WEEK_TO_SECOND); let n = Math.floor((toWeek - openWeek) / WEEK_TO_SECOND);
let day = new Date(openTime * 1000).getDay();
if(day == 6) n++; // 周六开服的服务器延后一周开启跨服
return n <= GVG.GVG_CROSS_SERVICE_STARTTIME? GVG_SERVER_TYPE.SINGLE: GVG_SERVER_TYPE.MULTI; return n <= GVG.GVG_CROSS_SERVICE_STARTTIME? GVG_SERVER_TYPE.SINGLE: GVG_SERVER_TYPE.MULTI;
} }