定时器
This commit is contained in:
@@ -21,7 +21,6 @@ import { LADDER, PVP } from '../pubUtils/dicParam';
|
||||
import { fetch37Words } from './sdkService';
|
||||
import { GMMailModel, GMMailType } from '../db/GMMail';
|
||||
import { Maintenance, ServerlistModel, ServerlistType } from '../db/Serverlist';
|
||||
import { getWorldChannelSid } from './chatService';
|
||||
import { createMarqueeMsg, pushMarqueeMsg } from './sysChatService';
|
||||
import { RegionModel, RegionType } from '../db/Region';
|
||||
import { CreateServerParam } from '../domain/backEndField/params';
|
||||
@@ -32,9 +31,8 @@ import { ServerMailModel, ServerMailType } from '../db/ServerMail';
|
||||
import { ActivityModel, ActivityModelType } from '../db/Activity';
|
||||
import { TimeLimitRankData } from '../domain/activityField/timeLimitRankField';
|
||||
import { sendRankMail, takeSnapshot } from './activity/timeLimitRankService';
|
||||
import { getActivitiesByType } from './activity/activityService';
|
||||
import { ActivityGroupModel } from '../db/ActivityGroup';
|
||||
import { sendMessageToServer } from './pushService';
|
||||
import { sendMessageToGroupShopWithSuc, sendMessageToServer } from './pushService';
|
||||
import { resResult } from '../pubUtils/util';
|
||||
import { checkPopUpConditionWhenGuildActivityEnd } from './activity/popUpShopService';
|
||||
import { pushRefreshTime } from './connectorService';
|
||||
@@ -42,6 +40,7 @@ import { sendUnReceivedActivityDailyCoin } from './activity/dailyCoinService';
|
||||
import { ladderTimeout, ladderTimeWillout, sendLadderDailyReward } from './ladderService';
|
||||
import { LadderMatchRecModel } from '../db/LadderMatchRec';
|
||||
import { LadderMatchModel } from '../db/LadderMatch';
|
||||
import { getGroupShopTimers, refundGroupShop, setGroupShopToSetSum } from './activity/groupShopService';
|
||||
|
||||
const PER_SECOND = 1 * 1000;
|
||||
const PER_DAY = 24 * 60 * 60;
|
||||
@@ -99,6 +98,9 @@ export async function init() {
|
||||
|
||||
// 名将擂台每日奖励
|
||||
await ladderDailyReward();
|
||||
|
||||
// 团购定时器
|
||||
initGroupShopSchedule();
|
||||
}
|
||||
|
||||
// 每日刷新
|
||||
@@ -798,4 +800,33 @@ async function ladderDailyReward() {
|
||||
}
|
||||
await LadderMatchRecModel.timeoutMany(battleCodes);
|
||||
}
|
||||
// —————————————— 名将擂台 end —————————————— //
|
||||
// —————————————— 名将擂台 end —————————————— //
|
||||
|
||||
// —————————————— 团购定时器 start —————————————— //
|
||||
async function initGroupShopSchedule() {
|
||||
|
||||
let activities = await ActivityModel.findActivityByType(ACTIVITY_TYPE.GROUP_SHOP);
|
||||
let scheduleMap = new Map<number, { activityId: number, itemId: number, sum: number }[]>(); // 时间 => data
|
||||
for(let activity of activities) {
|
||||
let timers = await getGroupShopTimers(activity);
|
||||
for(let { time, itemId, sum } of timers) {
|
||||
if(!scheduleMap.has(time)) {
|
||||
scheduleMap.set(time, []);
|
||||
}
|
||||
scheduleMap.get(time).push({ activityId: activity.activityId, itemId, sum });
|
||||
}
|
||||
}
|
||||
|
||||
for(let [time, arr] of scheduleMap) {
|
||||
if(scheduledJobs[`groupShopSetSum${time}`]) {
|
||||
scheduledJobs[`groupShopSetSum${time}`].cancel();
|
||||
}
|
||||
scheduleJob(`groupShopSetSum${time}`, time, async () => {
|
||||
await setGroupShopToSetSum(arr);
|
||||
});
|
||||
}
|
||||
|
||||
scheduleJob('groupShopRefund', '0 30 5 * * ?', refundGroupShop);
|
||||
}
|
||||
|
||||
// —————————————— 团购定时器 end —————————————— //
|
||||
Reference in New Issue
Block a user