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

This commit is contained in:
luying
2023-02-08 19:09:56 +08:00
parent f8c08974d9
commit e5df5fe4f0
2 changed files with 11 additions and 2 deletions

View File

@@ -4,7 +4,7 @@ import { GVGLeagueModel } from "../../../db/GVGLeague";
import { GVGLeaguePrepareModel } from "../../../db/GVGLeaguePrepare";
import { GVGMainData, LeagueDistributeInfo, LeagueMemberDistributeInfo, LeagueMemberListInfo } from "../../../domain/gvgField/returnData";
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 { getAllServerName } from "../../../services/redisService";
import { Distribute, GVGUserDataModel } from "../../../db/GVGUserData";
@@ -22,6 +22,7 @@ import { getGVGCities, getGVGCitiesInfo } from "../../../services/gvg/gvgBattleS
import { GVGRecModel } from "../../../db/GVGRec";
import { checkGVGTask } from "../../../services/task/taskService";
import { getFightTimeByPeriod, getVestiges } from "../../../services/gvg/gvgFightService";
import { getSeconds } from "../../../pubUtils/timeUtil";
export default function (app: Application) {
new HandlerService(app, {});
@@ -455,4 +456,10 @@ export class GVGHandler {
const result = await handleGVGCost(roleId, myLeague.leagueCode, sid, leagueItems, items, ITEM_CHANGE_REASON.DEBUG);
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 });
}
}

View File

@@ -88,12 +88,14 @@ export function getGVGConfig() {
return { configId, teamTime, prepareTime, battleTime, scheduleTime }
}
function getServerTypeByTime(openTime: number) {
export function getServerTypeByTime(openTime: number) {
let today = nowSeconds();
if(today - openTime < WEEK_TO_SECOND) return GVG_SERVER_TYPE.NO;
let toWeek = getCurrentTeamTime(today);
let openWeek = getCurrentTeamTime(openTime);
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;
}