🐞 fix(军团): 退出游戏cd时间变为和服务器开服时间相关

This commit is contained in:
luying
2023-03-22 16:52:04 +08:00
parent 85197ffc31
commit e31bd2bb30
4 changed files with 39 additions and 7 deletions

View File

@@ -2,7 +2,7 @@ import { Application, BackendSession, ChannelService, HandlerService, } from 'pi
import { resResult, getRandEelm, shouldRefresh, sortArrRandom } from '../../../pubUtils/util';
import { STATUS, GUILD_OPERATE, GUILD_AUTH, GUILD_JOB, GUILD_APPLY_TYPE, GUILD_STRUCTURE, GUILD_REC_TYPE, GUILD_STRUCTURE_NAME, MAIL_TYPE, REDIS_KEY, GUILD_SELECT, USER_GUILD_SELECT, TASK_TYPE, DEBUG_MAGIC_WORD, CHANNEL_PREFIX, MSG_TYPE, MSG_SOURCE, ITEM_CHANGE_REASON, TA_EVENT, GUILD_DISMISS_WAY, GUILD_MASTER_CHANGE_WAY, GUILD_QUIT_WAY, PUSH_ROUTE } from '../../../consts';
import { UserGuildModel, UserGuildType } from '../../../db/UserGuild';
import { checkAuth, joinGuild, getUserGuildWithRefActive, addActive, settleGuildWeekly, getMyGuildInfo, setUserGuildSession, getInvitationList, addGuildRecord, pushChangeGuildLeader, pushGuildMemberQuit, pushGuildDismiss, pushGuildInfoUpdate, getTodayGuildActive } from '../../../services/guildService';
import { checkAuth, joinGuild, getUserGuildWithRefActive, addActive, settleGuildWeekly, getMyGuildInfo, setUserGuildSession, getInvitationList, addGuildRecord, pushChangeGuildLeader, pushGuildMemberQuit, pushGuildDismiss, pushGuildInfoUpdate, getTodayGuildActive, getGuildQuitCdTime } from '../../../services/guildService';
import { GuildModel, GuildType, GuildUpdateParam } from '../../../db/Guild';
import { RoleModel, RoleType } from '../../../db/Role';
import { ARMY } from '../../../pubUtils/dicParam';
@@ -128,7 +128,7 @@ export class GuildHandler {
info.setApply(!!hasApply);
list.push(info);
}
return resResult(STATUS.SUCCESS, { quitTime, list });
return resResult(STATUS.SUCCESS, { quitTime, cdTime: await getGuildQuitCdTime(serverId), list });
}
// 团长修改军团名等信息
@@ -311,7 +311,7 @@ export class GuildHandler {
return resResult(STATUS.GUILD_NOT_REACH_CONDI);
}
if(nowSeconds() - role.quitGuildTime < dicParam.ARMY.ARMY_JOIN_COOLDOWNTIME * 60) {
if(nowSeconds() - role.quitGuildTime < (await getGuildQuitCdTime(serverId)) * 60) {
return resResult(STATUS.GUILD_QUIT_TIME);
}

View File

@@ -1,6 +1,6 @@
import { gameData, getGuildActiveWeekReward, getGuildActiveByIdAndType, getGoodById } from "../pubUtils/data";
import { GuildModel, GuildType, GuildUpdateParam } from "../db/Guild";
import { resResult, shouldRefresh } from "../pubUtils/util";
import { deltaDays, resResult, shouldRefresh } from "../pubUtils/util";
import { STATUS, MAIL_TYPE, GUILD_AUTH, GUILD_JOB, REDIS_KEY, CHAT_SERVER, TASK_TYPE, COUNTER, GUILD_REC_TYPE, PUSH_ROUTE, WAR_TYPE, USER_GUILD_STATUS } from "../consts";
import { RoleModel, RoleType } from "../db/Role";
import { UserGuildModel, UserGuildType, WishGood } from "../db/UserGuild";
@@ -9,7 +9,7 @@ import { getZeroPointD, getZeroPointOfTime, getZeroPointOfTimeD, nowSeconds } fr
import { pinus, BackendSession, FrontendOrBackendSession } from "pinus";
import { ARMY } from "../pubUtils/dicParam";
import { sendMailByContent } from "./mailService";
import { initSingleRank, getRoleOnlineInfo, updateUserInfo, isRoleOnline } from "./redisService";
import { initSingleRank, getRoleOnlineInfo, updateUserInfo, isRoleOnline, getServerCreateTime } from "./redisService";
import { lockData, lockDataNoRetry } from '../services/redLockService';
import { ErrLogModel } from '../db/ErrLog';
import { DATA_NAME } from '../consts/dataName';
@@ -30,6 +30,7 @@ import { BossInstanceModel } from "../db/BossInstance";
import { pick } from "underscore";
import { memberJoinGuildToLeague } from "./gvg/gvgTeamService";
import { isToday } from '../pubUtils/timeUtil';
import moment = require("moment");
export async function getMyGuildInfo(roleId: string, sid: string, userGuild: UserGuildType, guild: GuildType, serverId: number, session: FrontendOrBackendSession) {
@@ -503,4 +504,15 @@ export async function pushGuildMemberQuit(roleId: string, guildCode: string, gui
export async function pushGuildDismiss(guildCode: string) {
await sendMessageToGuildWithSuc(guildCode, PUSH_ROUTE.DISMISS, { code: guildCode });
delGuildChannel(guildCode);
}
export async function getGuildQuitCdTime(serverId: number) {
let serverTime = await getServerCreateTime(serverId);
let todayIndex = deltaDays(moment(serverTime * 1000).toDate(), new Date) + 1;
let result = 0;
for(let { day, minute } of gameData.guildQuitCd) {
if(todayIndex > day) result = minute;
}
console.log('####', serverId, serverTime, todayIndex, result)
return result
}