邮件:定时循环邮件
This commit is contained in:
@@ -86,6 +86,7 @@ export class GmHandler {
|
||||
if(needSend) {
|
||||
let f = new SendMailFun();
|
||||
let code = await f.setWithGmMail(gmmail);
|
||||
if(!code) return resResult(STATUS.GM_MAIL_CAN_NOT_SENT);
|
||||
|
||||
if (mailType == GM_MAIL_TYPE.SINGLE || mailType == GM_MAIL_TYPE.GROUP) {
|
||||
let roleIds = receivers.filter(cur => cur.env == this.app.get('env')).map(cur => cur.roleId);
|
||||
|
||||
@@ -82,10 +82,7 @@ export async function getPlayerSignInData(activityId: number, serverId: number,
|
||||
let serverTime = await getServerCreateTime(serverId);
|
||||
|
||||
let playerData = new SignInData(activityData, createTime, serverTime);
|
||||
console.log('##### getPlayerSignInData',activityId, roleId, playerData.roundIndex, playerData)
|
||||
let playerRecords: ActivitySignInModelType = await ActivitySignInModel.findData(activityId, roleId, playerData.roundIndex);
|
||||
|
||||
console.log('##### getPlayerSignInData playerData', playerRecords, !!playerRecords)
|
||||
playerData.setPlayerRecords(playerRecords);
|
||||
return playerData;
|
||||
}
|
||||
|
||||
@@ -169,8 +169,10 @@ export async function sendOpenServerMail(type: 'openMail'|'circleMail', mail: St
|
||||
if(needSend) {
|
||||
let f = new SendMailFun();
|
||||
let code = await f.setWithGmMail(gmmail);
|
||||
await f.createServerMails(code, [newServer.id]);
|
||||
await f.pushToUsers();
|
||||
if(code) {
|
||||
await f.createServerMails(code, [newServer.id]);
|
||||
await f.pushToUsers();
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
@@ -320,7 +322,6 @@ export async function getParamStr(activity: ActivityModelType, productID: string
|
||||
pkg = _pkg; item = _item;
|
||||
}
|
||||
}
|
||||
console.log('&&&&&', item)
|
||||
if(item.isPushing) {
|
||||
param['code'] = item.code;
|
||||
} else {
|
||||
|
||||
@@ -5,7 +5,7 @@ import { ServerMailModel, ServerMailType } from '../db/ServerMail';
|
||||
import { getRoleOnlineInfo } from "./redisService";
|
||||
import { pinus } from "pinus";
|
||||
import { gameData } from "../pubUtils/data";
|
||||
import { nowSeconds } from '../pubUtils/timeUtil';
|
||||
import { getCurDay, nowSeconds } from '../pubUtils/timeUtil';
|
||||
import { STATUS } from '../consts/statusCode';
|
||||
import { genCode, resResult } from '../pubUtils/util';
|
||||
import { GM_MAIL_TYPE, ITID, MAIL_STATUS, MAIL_TIME_TYPE, MAIL_TYPE, PUSH_ROUTE, SEND_NAME, SEND_TITLE } from "../consts";
|
||||
@@ -106,7 +106,20 @@ class MailTemp {
|
||||
} else if (gmmail.timeType == MAIL_TIME_TYPE.DELAY) {
|
||||
this.sendTime = gmmail.startTime;
|
||||
} else if (gmmail.timeType == MAIL_TIME_TYPE.CIRCLE) {
|
||||
this.sendTime = moment(moment().format('YYYY-MM-DD ' + gmmail.circleHour)).unix();
|
||||
let time = moment(moment().format('YYYY-MM-DD ' + gmmail.circleHour)).unix();
|
||||
if(time < nowSeconds()) {
|
||||
if(gmmail.circleDay == 0) {
|
||||
time += 86400;
|
||||
} else {
|
||||
let date = getCurDay(true); // 今天星期几
|
||||
if(date < gmmail.circleDay) {
|
||||
time += (gmmail.circleDay - date) * 86400;
|
||||
} else {
|
||||
time += (7 + date - gmmail.circleDay) * 86400;
|
||||
}
|
||||
}
|
||||
}
|
||||
this.sendTime = time;
|
||||
}
|
||||
this.endTime = this.sendTime + gmmail.expire * 60 * 60;
|
||||
this.sendName = gmmail.sendName;
|
||||
@@ -114,7 +127,7 @@ class MailTemp {
|
||||
this.content = gmmail.content;
|
||||
this.hasGoods = gmmail.hasGoods;
|
||||
this.goods = gmmail.goods;
|
||||
return gmmail;
|
||||
return true;
|
||||
}
|
||||
|
||||
private getContent(content: string, params: string[] = []) {
|
||||
@@ -164,7 +177,8 @@ export class SendMailFun {
|
||||
// 从GMMail表读取数据
|
||||
public async setWithGmMail(gmmail: GMMailType) {
|
||||
let mailTemp = new MailTemp();
|
||||
mailTemp.setWithGmMail(gmmail);
|
||||
let canSet = mailTemp.setWithGmMail(gmmail);
|
||||
if(!canSet) return false
|
||||
this.mailTemps.set(mailTemp.code, mailTemp);
|
||||
return mailTemp.code;
|
||||
}
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
import { ACTIVITY_TYPE, COM_BTL_QUALITY, getRedisKeyByRankType, GUILD_ACTIVITY_TYPE } from './../consts';
|
||||
import { ACTIVITY_TYPE, getRedisKeyByRankType, GUILD_ACTIVITY_TYPE } from './../consts';
|
||||
import * as Redis from 'redis';
|
||||
import {REDIS_KEY} from '../consts'
|
||||
import { GameModel } from "../db/Game";
|
||||
import { pinus, ServerInfo } from 'pinus';
|
||||
import { GuildRankParam, GuildLeader, RankParam, LineupParam } from '../domain/rank';
|
||||
import { comBtlRanges } from '../pubUtils/data';
|
||||
|
||||
@@ -427,10 +427,11 @@ async function sendCircleMail() {
|
||||
let gmmails = await GMMailModel.findCircleMails(pinus.app.get('env'));
|
||||
let f = new SendMailFun();
|
||||
for(let gmmail of gmmails) {
|
||||
let { receivers, mailType, sendTimes } = gmmail;
|
||||
let { receivers, mailType, sendTimes, circleStart, circleEnd } = gmmail;
|
||||
let code = await f.setWithGmMail(gmmail);
|
||||
if(!code) continue;
|
||||
let mapTemp = f.getMailTemp(code);
|
||||
if(sendTimes.indexOf(mapTemp.sendTime) == -1) {
|
||||
if(sendTimes.indexOf(mapTemp.sendTime) == -1 && circleStart <= mapTemp.sendTime && circleEnd >= mapTemp.sendTime) {
|
||||
if(mailType == GM_MAIL_TYPE.SINGLE) {
|
||||
await f.createSingleMails(code, receivers.map(cur => cur.roleId));
|
||||
} else if (mailType == GM_MAIL_TYPE.GROUP) {
|
||||
|
||||
Reference in New Issue
Block a user