diff --git a/game-server/app/servers/gm/handler/gmHandler.ts b/game-server/app/servers/gm/handler/gmHandler.ts index 50d49fb6b..fcfa89b69 100644 --- a/game-server/app/servers/gm/handler/gmHandler.ts +++ b/game-server/app/servers/gm/handler/gmHandler.ts @@ -5,20 +5,22 @@ import { getEvent } from '../../../services/eventSercive'; import { resResult } from '../../../pubUtils/util'; import { STATUS } from '../../../consts/statusCode'; import { GMMailModel } from '../../../db/GMMail'; -import { setGmMails } from '../../../pubUtils/gmData/gmDataUtil'; -import { getRoleOnlineInfo } from '../../../services/redisService'; +import { delGuildActivityRank, getRoleOnlineInfo } from '../../../services/redisService'; import { SendMailFun } from '../../../services/mailService'; import { GM_MAIL_TYPE } from '../../../consts'; import { RewardInter } from '../../../pubUtils/interface'; import { MarqueeModel } from '../../../db/Marquee'; import { ServerlistModel } from '../../../db/Serverlist'; -import { getWorldChannelSid } from '../../../services/chatService'; +import { pushCurrentTime } from '../../../services/chatService'; import { MaintenanceModel } from '../../../db/Maintenance'; import { initMaintenance, stopMaintenance } from '../../../services/gmService'; import { checkActivityEditable, checkActivityGroupType } from '../../../services/activity/activityService'; import { ActivityModel } from '../../../db/Activity'; import { ActivityGroupModel } from '../../../db/ActivityGroup'; import { ActivityGroupTypeModel } from '../../../db/ActivityGroupType'; +import { GuildActivityCityModel } from '../../../db/GuildActivityCity'; +import { GuildActivityRecordModel } from '../../../db/GuildActivityRec'; +import { getTimeFunM } from '../../../pubUtils/timeUtil'; export default function (app: Application) { return new GmHandler(app); } @@ -335,7 +337,49 @@ export class GmHandler { return resResult(STATUS.SUCCESS) } - async setGuildActivityDebug(msg: { startActivity: number, }, session: BackendSession) { - // 1. 将军团活动的时间设置到 + /** + * 开启军团活动到拍卖行debug + * @param msg + * @param session + */ + async setGuildActivityDebug(msg: { aid: number, day: number, startActivity: number, endActivity: number, startGuildAuction: number, endGuildAuction: number, startWorldAuction: number, endWorldAuction: number }, session: BackendSession) { + const { aid, day, startActivity = 0, endActivity = 0, startGuildAuction = 0, endGuildAuction = 0, startWorldAuction = 0, endWorldAuction = 0 } = msg; + const uid = session.get('uid'); + if(aid == undefined || day == undefined ) { + return resResult(STATUS.WRONG_PARMS); + } + + // 设置字典 + let now = new Date(); + + let startTimes = await pinus.app.rpc.guild.guildActivityRemote.setDicGuildActivity.broadcast(now.getTime(), aid, startActivity, endActivity); + await pinus.app.rpc.systimer.systimerRemote.setDicGuildActivity.broadcast(now.getTime(), aid, startActivity, endActivity); + await pinus.app.rpc.guild.guildActivityRemote.setDicAuctionTime.broadcast(startTimes[0], endActivity, startGuildAuction, endGuildAuction, startWorldAuction, endWorldAuction); + await pinus.app.rpc.systimer.systimerRemote.setDicAuctionTime.broadcast(startTimes[0], endActivity, startGuildAuction, endGuildAuction, startWorldAuction, endWorldAuction); + await pinus.app.rpc.guild.guildActivityRemote.setDay.broadcast(day); + await pinus.app.rpc.systimer.systimerRemote.setDay.broadcast(day); + + + // 清空旧数据 + if (day <= 2) { + await GuildActivityCityModel.deleteMany({}); + } + if(aid != 0) await delGuildActivityRank(aid); + await GuildActivityRecordModel.updateTodayInfo({ status: 2 }); + + // 开启定时器 + await pinus.app.rpc.systimer.systimerRemote.setAuctionSchedule.broadcast(); + await pinus.app.rpc.systimer.systimerRemote.setGuildActivitySchedule.broadcast(); + // 向客户端发送时间 + let time = getTimeFunM().getTimeWithWeek(day, 20, 0, 0) - startActivity; + await pushCurrentTime(time); + return resResult(STATUS.SUCCESS, { + startActivity: startTimes[0], + endActivity: startTimes[0] + endActivity * 1000, + startGuildAuction: startTimes[0] + endActivity * 1000 + startGuildAuction * 1000, + endGuildAuction: startTimes[0] + endActivity * 1000 + startGuildAuction * 1000 + endGuildAuction * 1000, + startWorldAuction: startTimes[0] + endActivity * 1000 + startGuildAuction * 1000 + endGuildAuction * 1000 + startWorldAuction * 1000, + endWorldAuction: startTimes[0] + endActivity * 1000 + startGuildAuction * 1000 + endGuildAuction * 1000 + startWorldAuction * 1000 + endWorldAuction * 1000, + }); } } \ No newline at end of file diff --git a/game-server/app/servers/guild/handler/guildBossHandler.ts b/game-server/app/servers/guild/handler/guildBossHandler.ts index bf5b392d0..e317bdef8 100644 --- a/game-server/app/servers/guild/handler/guildBossHandler.ts +++ b/game-server/app/servers/guild/handler/guildBossHandler.ts @@ -193,7 +193,8 @@ export class GuildHandler { if(!bossInstance) return resResult(STATUS.GUILD_SCRIPT_NOT_OPENED); let { myEncourageCnt } = await refreshUserGuildOfBoss(userGuild); - let costGold = (myEncourageCnt + count - dicParam.GUILD_BOSS.GUILD_BOSS_ENCOURAGE_FREECOUNT) * dicParam.GUILD_BOSS.GUILD_BOSS_ENCOURAGE_COST; + let freeCount = dicParam.GUILD_BOSS.GUILD_BOSS_ENCOURAGE_FREECOUNT - myEncourageCnt > 0? dicParam.GUILD_BOSS.GUILD_BOSS_ENCOURAGE_FREECOUNT - myEncourageCnt: 0; + let costGold = (count - freeCount) * dicParam.GUILD_BOSS.GUILD_BOSS_ENCOURAGE_COST; if(costGold < 0) costGold = 0; let { gold } = await RoleModel.findByRoleId(roleId, 'gold'); if(gold < costGold) return resResult(STATUS.BATTLE_GOLD_NOT_ENOUGH); diff --git a/game-server/app/servers/guild/remote/guildActivityRemote.ts b/game-server/app/servers/guild/remote/guildActivityRemote.ts index 02d453790..2bf876d19 100644 --- a/game-server/app/servers/guild/remote/guildActivityRemote.ts +++ b/game-server/app/servers/guild/remote/guildActivityRemote.ts @@ -1,5 +1,5 @@ import { Application, ChannelService, HandlerService, } from 'pinus'; -import { sendAllGuildRanks, sendGuildActEndMsg, calWoodenHorseAndSend, sendRaceStartMsg } from '../../../services/guildActivityService'; +import { sendAllGuildRanks, sendGuildActEndMsg, calWoodenHorseAndSend, sendRaceStartMsg, setDicGuildActivity, setDicAuctionTime } from '../../../services/guildActivityService'; import { gameData } from '../../../pubUtils/data'; import { setWeek } from '../../../pubUtils/timeUtil'; @@ -65,6 +65,22 @@ export class GuildActivityRemote { } } + /** + * 改变字典表中的军团活动开始时间&持续时间 + * @param {number} aid 活动 + * @param {number} startSeconds 从现在开始几秒后开启活动 + * @param {number} endSeconds 从开始之后几秒后结束活动 + */ + async setDicGuildActivity(now: number, aid: number, startSeconds: number, endSeconds: number) { + return setDicGuildActivity(now, aid, startSeconds, endSeconds); + } + + /** + * 改变字典表中的拍卖行时间 + */ + async setDicAuctionTime(startTime: number, endActivity: number, startGuild: number, endGuild: number, startWorld: number, endWorld: number) { + setDicAuctionTime(startTime, endActivity, startGuild, endGuild, startWorld, endWorld); + } /** * !! 注意,这条函数会改变内存时间,影响甚大,请考虑清楚后使用 diff --git a/game-server/app/servers/systimer/remote/systimerRemote.ts b/game-server/app/servers/systimer/remote/systimerRemote.ts index f950b64fb..f5dddd54d 100644 --- a/game-server/app/servers/systimer/remote/systimerRemote.ts +++ b/game-server/app/servers/systimer/remote/systimerRemote.ts @@ -1,9 +1,11 @@ import { Application, ChannelService } from 'pinus'; -import { resetPvpSeasonTime, setPvpDefResult, guildActivityStart, gateActivityEnd, cityActivityEnd, raceActivityEnd } from '../../../services/timeTaskService'; +import { resetPvpSeasonTime, setPvpDefResult, guildActivityStart, gateActivityEnd, cityActivityEnd, raceActivityEnd, guildActivitySchedule, auctionSchedule } from '../../../services/timeTaskService'; import PvpDefenseType from '../../../db/PvpDefense'; import { DicGuildActivity } from '../../../pubUtils/dictionary/DicGuildActivity'; import { reloadResources } from '../../../pubUtils/data'; import { setMarquee, cancelMarquee } from '../../../services/gmService'; +import { setDicAuctionTime, setDicGuildActivity } from '../../../services/guildActivityService'; +import { setWeek } from '../../../pubUtils/timeUtil'; export default function (app: Application) { return new SystimerRemote(app); @@ -59,4 +61,36 @@ export class SystimerRemote { public async cancelMarquee(code: string) { return await cancelMarquee(code); } + + /** + * 改变字典表中的军团活动开始时间&持续时间 + * @param {number} aid 活动 + * @param {number} startSeconds 从现在开始几秒后开启活动 + * @param {number} endSeconds 从开始之后几秒后结束活动 + */ + public async setDicGuildActivity(now: number, aid: number, startSeconds: number, endSeconds: number) { + setDicGuildActivity(now, aid, startSeconds, endSeconds); + } + + /** + * 改变字典表中的拍卖行时间 + */ + public async setDicAuctionTime(startTime: number, endActivity: number, startGuild: number, endGuild: number, startWorld: number, endWorld: number) { + setDicAuctionTime(startTime, endActivity, startGuild, endGuild, startWorld, endWorld); + } + + public async setGuildActivitySchedule() { + await guildActivitySchedule(); + } + + public async setAuctionSchedule() { + auctionSchedule(); + } + + /** + * !! 注意,这条函数会改变内存时间,影响甚大,请考虑清楚后使用 + */ + async setDay(week: number) { + setWeek(week); + } } diff --git a/game-server/app/services/auctionService.ts b/game-server/app/services/auctionService.ts index 76110cfcc..a61de7d78 100644 --- a/game-server/app/services/auctionService.ts +++ b/game-server/app/services/auctionService.ts @@ -3,7 +3,7 @@ import { LOT_CODE_LEN, AUCTION_STAGE, AUCTION_TIME, DIVIDEND_CODE_LEN, DIVIDEND_ import { DividendRec, ItemReward } from "../domain/dbGeneral"; import { genCode } from '../pubUtils/util'; import { LotModel, LotParam } from '../db/Lot'; -import { getTimeFunD } from '../pubUtils/timeUtil'; +import { getCurDay, getTimeFunD, getTimeFunM } from '../pubUtils/timeUtil'; import { gameData, getGoodById } from '../pubUtils/data'; import { DividendParam, DividendType } from '../db/Dividend'; import { sendMailByContent } from './mailService'; @@ -13,6 +13,7 @@ import { Member } from '../domain/battleField/guildActivity'; import * as dicParam from '../pubUtils/dicParam'; import { RewardInter } from '../pubUtils/interface'; import { errlogger } from '../util/logger'; +import { pushCurrentTime } from './chatService'; // ! 获取底价,假数据 export function getBasePrice(gid: number, count: number) { @@ -228,6 +229,13 @@ export async function startGuildAuction() { const begin = todayGuildBegin(); await LotModel.updateLotsStageByBegin(begin, AUCTION_STAGE.GUILD); await DividendModel.updateDividendsStatus(begin, DIVIDEND_STATUS.ING); + + if(dicParam.SERVER_DEBUG_MODE.CURRENT_TIME == 1) { + let day = getCurDay(); + let time = getTimeFunM().getTimeWithWeek(day, 20, 20, 0); + await pushCurrentTime(time); + } + return true; } catch (e) { console.error('startGuildAuction err: ', e); @@ -242,6 +250,12 @@ export async function startWorldAuction() { await LotModel.setLotSoldByBegin(begin); await LotModel.updateUnSoldLotsStageByBegin(begin, AUCTION_STAGE.WORLD); await DividendModel.updateDividendsStatus(begin, DIVIDEND_STATUS.END); + + if(dicParam.SERVER_DEBUG_MODE.CURRENT_TIME == 1) { + let day = getCurDay(); + let time = getTimeFunM().getTimeWithWeek(day, 20, 40, 0); + await pushCurrentTime(time); + } return true; } catch (e) { console.error('startWorldAuction err: ', e); @@ -255,6 +269,12 @@ export async function stopAuction() { const begin = todayGuildBegin(); await LotModel.setLotSoldByBegin(begin); await LotModel.updateLotsStageByBegin(begin, AUCTION_STAGE.END); + + if(dicParam.SERVER_DEBUG_MODE.CURRENT_TIME == 1) { + let day = getCurDay(); + let time = getTimeFunM().getTimeWithWeek(day, 22, 0, 0); + await pushCurrentTime(time); + } return true; } catch (e) { console.error('stopAuction err: ', e); diff --git a/game-server/app/services/chatService.ts b/game-server/app/services/chatService.ts index 829e4144e..b77a75970 100644 --- a/game-server/app/services/chatService.ts +++ b/game-server/app/services/chatService.ts @@ -9,7 +9,7 @@ import { GroupMessageParam, GroupMessageType } from '../db/GroupMessage'; import { genCode, resResult } from '../pubUtils/util'; import { pinus } from 'pinus'; import { CHANNEL_PREFIX, MSG_CODE_LEN, MSG_STATUS, ON_PRIVATE_MSG_ROUTE, MSG_TYPE, MSG_SOURCE } from '../consts'; -import { getRoleOnlineInfo } from './redisService'; +import { getAllServers, getRoleOnlineInfo } from './redisService'; import { ChatInfoModel } from '../db/ChatInfo'; import { channelServer } from './chatChannelService'; import { AccuseRecModel, AccueseParam } from '../db/AccuseRec'; @@ -397,4 +397,13 @@ export async function checkFilterWords(word: string) { } return hasBlock; +} + +export async function pushCurrentTime(time: number) { + let serverlists = await getAllServers() + for(let serverId of serverlists) { + let roomId = groupRoomId(CHANNEL_PREFIX.WORLD, serverId); + const channelSid = await channelServer(roomId); + await pinus.app.rpc.chat.chatRemote.pushCurrentTime.toServer(channelSid, serverId, time); + } } \ No newline at end of file diff --git a/game-server/app/services/guildActivityService.ts b/game-server/app/services/guildActivityService.ts index 264ecec07..328dde879 100644 --- a/game-server/app/services/guildActivityService.ts +++ b/game-server/app/services/guildActivityService.ts @@ -4,7 +4,7 @@ import { reduceCe } from "../pubUtils/util"; import { GUILDACTIVITY } from "../pubUtils/dicParam"; import { gameData, getGuildAuctionRewards, getCityActivityRewards } from "../pubUtils/data"; import { getCurDay, nowSeconds, getTimeFun } from "../pubUtils/timeUtil"; -import { GUILD_ACTIVITY_STATUS, GET_POINT_WAYS, GUILD_ACTIVITY_TYPE, REDIS_KEY, AUCTION_SOURCE, MAIL_TYPE, CITY_STATUS, DEBUG_MAGIC_WORD, GUILD_POINT_WAYS, TASK_TYPE } from "../consts"; +import { GUILD_ACTIVITY_STATUS, GET_POINT_WAYS, GUILD_ACTIVITY_TYPE, REDIS_KEY, AUCTION_SOURCE, MAIL_TYPE, CITY_STATUS, DEBUG_MAGIC_WORD, GUILD_POINT_WAYS, TASK_TYPE, AUCTION_TIME } from "../consts"; import { Record, UserGuildActivityRecModel } from "../db/UserGuildActivityRec"; import { GateMembersRec, CityParam, Member, WoodenHorse } from "../domain/battleField/guildActivity"; import { DicGuildActivity } from "../pubUtils/dictionary/DicGuildActivity"; @@ -106,6 +106,7 @@ export function getAllGuildActivityStatus() { export function getGuildActivityByDic(dicGuildActivity: DicGuildActivity) { let t = getTimeFun(); + console.log('*********', dicGuildActivity.startTime, dicGuildActivity.startMinute, dicGuildActivity.startSeconds) let startTime = t.getTimeWithHour(dicGuildActivity.startTime, dicGuildActivity.startMinute, dicGuildActivity.startSeconds); let countdownTime = t.getTimeWithHour(dicGuildActivity.countDown); let { duringTime, openDay } = dicGuildActivity; @@ -735,4 +736,50 @@ export async function raceActivitySettleReward(guildCode: string, woodenHorse: W export async function sendPopUpActivityData(guildCode: string, serverId: number, data: any[]) { let chatSid = await getGuildChannelSid(guildCode); pinus.app.rpc.chat.guildRemote.sendPopUpActivity.toServer(chatSid, guildCode, data); +} + +/** + * !! 注意,这条函数会改变内存中的字典表,仅用于测试中使用 + * 改变字典表中的军团活动开始时间&持续时间 + * @param {number} aid 活动 + * @param {number} startSeconds 从现在开始几秒后开启活动 + * @param {number} endSeconds 从开始之后几秒后结束活动 + */ +export async function setDicGuildActivity(now: number, aid: number, startSeconds: number, endSeconds: number) { + let startTime = new Date(now + startSeconds * 1000); + if(aid != 0) { + let guildActivity = gameData.guildActivity; + let cur = guildActivity.get(aid); + + cur.startMinute = startTime.getMinutes(); + cur.startTime = startTime.getHours(); + cur.startSeconds = startTime.getSeconds(); + cur.duringTime = endSeconds; + } + return startTime.getTime(); +} + +export async function setDicAuctionTime(startTime: number, endActivity: number, startGuild: number, endGuild: number, startWorld: number, endWorld: number) { + + console.log('********* setDicAuctionTime', startTime, endActivity, startGuild, endGuild, startWorld, endWorld); + let startGuildDate = new Date(startTime + endActivity * 1000 + startGuild * 1000); + let endGuildDate = new Date(startGuildDate.getTime() + endGuild * 1000); + let startWorldDate = new Date(endGuildDate.getTime() + startWorld * 1000); + let endWorldDate = new Date(startWorldDate.getTime() + endWorld * 1000); + + + console.log('********* setDicAuctionTime', startGuildDate, endGuildDate, startWorldDate, endWorldDate); + + gameData.auctionTime.set(AUCTION_TIME.GUILD_PREVIEW, formatTime(new Date(startTime))); + gameData.auctionTime.set(AUCTION_TIME.GUILD_OPEN, formatTime(startGuildDate)); + gameData.auctionTime.set(AUCTION_TIME.GUILD_CLOSE, formatTime(endGuildDate)); + gameData.auctionTime.set(AUCTION_TIME.WORLD_PREVIEW, formatTime(endGuildDate)); + gameData.auctionTime.set(AUCTION_TIME.WORLD_OPEN, formatTime(startWorldDate)); + gameData.auctionTime.set(AUCTION_TIME.WORLD_CLOSE, formatTime(endWorldDate)); + + console.log('*********** setDicAuctionTime', gameData.auctionTime) +} + +function formatTime(date: Date) { + return { hour: date.getHours(), minute: date.getMinutes(), seconds: date.getSeconds() } } \ No newline at end of file diff --git a/game-server/app/services/timeTaskService.ts b/game-server/app/services/timeTaskService.ts index 7b1884129..380d37491 100644 --- a/game-server/app/services/timeTaskService.ts +++ b/game-server/app/services/timeTaskService.ts @@ -2,7 +2,7 @@ import { scheduleJob, Job, } from 'node-schedule'; import { PVPConfigModel } from '../db/SystemConfig'; import PvpDefenseType, { PvpDefenseModel } from '../db/PvpDefense'; -import { PVP } from '../pubUtils/dicParam'; +import { PVP, SERVER_DEBUG_MODE } from '../pubUtils/dicParam'; import { nowSeconds, getTimeFun } from '../pubUtils/timeUtil'; import { getPvpGkWarIds, getPvpRankRewards, getPvpHeroRewards, getResultMaxRank, getTodayGuildActivity, gameData } from '../pubUtils/data'; import { deepCopy, getRandSingleEelm } from '../pubUtils/util'; @@ -36,6 +36,7 @@ var seasonMakeRewardTimJobId: Job; var warJobId: Job; var seasonRefreshTimeJobId: Job; let guildWeeklyJobId: Job; +let guildActStartJobId: Job; // 军团活动开启后每10(or 1)秒循环的定时任务,到结束活动清除 let guildActSecondsJobId: Job; // 军团活动开启后每10(or 1)秒循环的定时任务,到结束活动清除 let guildActEndJobId: Job; // 军团活动开启后每10(or 1)秒循环的定时任务,到结束活动清除 let pvpMakeRewardInterval = null; @@ -342,13 +343,18 @@ export async function reportOnlineSchedule() { /** * 军团活动,每晚8点开启 */ -async function guildActivitySchedule() { +export async function guildActivitySchedule() { /***********guildActivitySchedule***********/ + if (guildActStartJobId) { + guildActStartJobId.cancel(); + } let dicGuildActivity = getTodayGuildActivity(); await delGuildActivityRank(dicGuildActivity.id); - scheduleJob('guildActivityStart', `${dicGuildActivity.startSeconds} ${dicGuildActivity.startMinute} ${dicGuildActivity.startTime} * * ?`, guildActivityStartSchedule); + console.log(dicGuildActivity) + + guildActStartJobId = scheduleJob('guildActivityStart', `${dicGuildActivity.startSeconds} ${dicGuildActivity.startMinute} ${dicGuildActivity.startTime} * * ?`, guildActivityStartSchedule); } // 军团晚间活动,每天8点开始 @@ -365,6 +371,7 @@ export async function guildActivityStart(dicGuildActivity?: DicGuildActivity) { return false } + console.log('********', dicGuildActivity.id, Date.now() + dicGuildActivity.duringTime * 1000) let servers = await getAllServers(); // 玩家serverId列表 if (dicGuildActivity.id == GUILD_ACTIVITY_TYPE.GATE_ACTIVITY) { guildActSecondsJobId = scheduleJob('guildActivitySeconds', '*/10 * * * * *', gateActivitySeconds); @@ -458,8 +465,6 @@ export async function raceActivityEnd() { guildActSecondsJobId = undefined; } if (guildActEndJobId) { - - guildActEndJobId.cancel(); guildActEndJobId = undefined; } @@ -476,13 +481,42 @@ export async function raceActivitySeconds() { } } -function auctionSchedule() { +let startGuildAuctionJobId: Job; +let startWorldAuctionJobId: Job; +let stopAuctionJobId: Job; +let sendUngotDividendJobId: Job; + +export function auctionSchedule() { + clearAuctionSchedule(); let guildOpen = gameData.auctionTime.get(AUCTION_TIME.GUILD_OPEN); let worldOpen = gameData.auctionTime.get(AUCTION_TIME.WORLD_OPEN); let worldClose = gameData.auctionTime.get(AUCTION_TIME.WORLD_CLOSE); - scheduleJob('startGuildAuction', `0 0 ${guildOpen.hour} ${guildOpen.minute} * ?`, startGuildAuction); - scheduleJob('startWorldAuction', `0 0 ${worldOpen.hour} ${worldOpen.minute} * ?`, startWorldAuction); - scheduleJob('stopAuction', `0 0 ${worldClose.hour} ${worldClose.minute} * ?`, stopAuction); - scheduleJob('sendUngotDividendJob', '0 0 5 00 * ?', sendUngotDividendJob); + console.log('***** auctionSchedule', guildOpen.hour, guildOpen.minute, guildOpen.seconds); + console.log('***** auctionSchedule', worldOpen.hour, worldOpen.minute, worldOpen.seconds); + console.log('***** auctionSchedule', worldClose.hour, worldClose.minute, worldClose.seconds); + startGuildAuctionJobId = scheduleJob('startGuildAuction', `${guildOpen.seconds} ${guildOpen.minute} ${guildOpen.hour} * * ?`, startGuildAuction); + startWorldAuctionJobId = scheduleJob('startWorldAuction', `${worldOpen.seconds} ${worldOpen.minute} ${worldOpen.hour} * * ?`, startWorldAuction); + stopAuctionJobId = scheduleJob('stopAuction', `${worldClose.seconds} ${worldClose.minute} ${worldClose.hour} * * ?`, stopAuction); + sendUngotDividendJobId = scheduleJob('sendUngotDividendJob', '0 0 5 00 * ?', sendUngotDividendJob); + } + +function clearAuctionSchedule() { + if (startGuildAuctionJobId) { + startGuildAuctionJobId.cancel(); + startGuildAuctionJobId = undefined; + } + if (startWorldAuctionJobId) { + startWorldAuctionJobId.cancel(); + startWorldAuctionJobId = undefined; + } + if (stopAuctionJobId) { + stopAuctionJobId.cancel(); + stopAuctionJobId = undefined; + } + if (sendUngotDividendJobId) { + sendUngotDividendJobId.cancel(); + sendUngotDividendJobId = undefined; + } +} \ No newline at end of file diff --git a/shared/pubUtils/dictionary/DicGuildActivity.ts b/shared/pubUtils/dictionary/DicGuildActivity.ts index 20f2dcc14..86b6b28e5 100644 --- a/shared/pubUtils/dictionary/DicGuildActivity.ts +++ b/shared/pubUtils/dictionary/DicGuildActivity.ts @@ -9,7 +9,7 @@ export interface DicGuildActivity { // 开启日期 星期几 readonly openDay: number[]; // 持续时间 秒 - readonly duringTime: number; + duringTime: number; // 开启时间 几点 startTime: number; // 开启时间 几点