后台:定时邮件
This commit is contained in:
@@ -5,13 +5,13 @@ import { nowSeconds, getTimeFun, getSeconds } from '../pubUtils/timeUtil';
|
||||
import { getTodayGuildActivity, gameData } from '../pubUtils/data';
|
||||
import { pvpSeasonEnd } from './pvpService';
|
||||
import { getAllOnlineRoles, getAllServers, delGuildActivityRank } from './redisService';
|
||||
import { GUILD_ACTIVITY_TYPE, REFRESH_TIME, SEND_NAME, SERVER_OPEN_TIME, COUNTER, AUCTION_TIME } from '../consts';
|
||||
import { GUILD_ACTIVITY_TYPE, REFRESH_TIME, SEND_NAME, SERVER_OPEN_TIME, COUNTER, AUCTION_TIME, GM_MAIL_TYPE } from '../consts';
|
||||
import { RoleModel } from '../db/Role';
|
||||
import { pinus } from 'pinus';
|
||||
import { indexOf } from 'underscore';
|
||||
import { PvpSeasonResultModel } from '../db/PvpSeasonResult';
|
||||
import { settleGuildWeekly } from './guildService';
|
||||
import { sendMailByContent } from './mailService';
|
||||
import { sendMailByContent, SendMailFun } from './mailService';
|
||||
import { getGuildActivityByDic, sendEndMsgToAll, autoDeclare, sendGuildActivityStatus } from './guildActivityService';
|
||||
import { sendUngotDividendJob, startGuildAuction, startWorldAuction, stopAuction } from './auctionService';
|
||||
import { DicGuildActivity } from '../pubUtils/dictionary/DicGuildActivity';
|
||||
@@ -25,6 +25,7 @@ import { CounterModel } from '../db/Counter';
|
||||
import { reportOneOnline } from './authenticateService';
|
||||
import { PVP } from '../pubUtils/dicParam';
|
||||
import { fetch37Words } from './sdkService';
|
||||
import { GMMailModel } from '../db/GMMail';
|
||||
|
||||
const PER_SECOND = 1 * 1000;
|
||||
const PER_DAY = 24 * 60 * 60;
|
||||
@@ -59,6 +60,9 @@ export async function init() {
|
||||
// 每天拉取37词库
|
||||
scheduleJob('fetchWord', '0 0 4 * * ?', fetch37Words);
|
||||
|
||||
// 每天邮件
|
||||
scheduleJob('circleMail', '0 0 3 * * ?', sendCircleMail);
|
||||
|
||||
// 军团活动排行榜
|
||||
guildActivitySchedule();
|
||||
|
||||
@@ -374,4 +378,22 @@ function clearAuctionSchedule() {
|
||||
sendUngotDividendJobId.cancel();
|
||||
sendUngotDividendJobId = undefined;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
async function sendCircleMail() {
|
||||
let gmmails = await GMMailModel.findCircleMails(pinus.app.get('env'));
|
||||
for(let gmmail of gmmails) {
|
||||
let { receivers, mailType } = gmmail;
|
||||
let f = new SendMailFun();
|
||||
await f.setWithGmMail(gmmail);
|
||||
|
||||
if (mailType == GM_MAIL_TYPE.SINGLE || mailType == GM_MAIL_TYPE.GROUP) {
|
||||
let roleIds = receivers.map(cur => cur.roleId);
|
||||
await f.sendToUsers(mailType, roleIds);
|
||||
} else {
|
||||
let serverIds = receivers.map(cur => cur.serverId);
|
||||
await f.sendToServer(serverIds);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user