✨ feat(后台): 批量邮件

This commit is contained in:
luying
2023-06-03 20:02:38 +08:00
parent 6e5a8affe9
commit ac877d9561
12 changed files with 435 additions and 308 deletions
@@ -13,7 +13,7 @@ import { taflush } from '../../../services/sdkService';
import { ActivityInRemote } from '../../../domain/activityField/activityField';
import { pushCurrentTime } from '../../../services/auctionService';
import { SurveyModel, SurveyUpdate } from '../../../db/Survery';
import { getSurvey } from '../../../services/gmService';
import { compaireMailGoods, getSurvey } from '../../../services/gmService';
import { sendMessageToAllWithSuc } from '../../../services/pushService';
import { sendMailByContent, sendMailsByGmMail } from '../../../services/mailService';
import { saveMemory } from '../../../services/log/memoryLogService';
@@ -69,13 +69,28 @@ export class GmHandler {
//对接gm后台,下发邮件
async sendMail(gmmail: GMMailType, isPass: boolean, uid: number) {
let id = gmmail._id;
let { receivers, mailType, status, timeType, startTime, circleHour, circleDay } = gmmail;
let { receivers, mailType, status, hasGoods, goods } = gmmail;
if(status != GM_MAIL_STATUS.CREATE) {
return resResult(STATUS.GM_MAIL_HAS_SENT);
}
if(isPass) {
await sendMailsByGmMail([gmmail]);
let gmmailArr: GMMailType[] = [];
if(mailType == GM_MAIL_TYPE.SINGLE && hasGoods && (!goods || goods.length == 0)) {
for(let receiver of receivers) {
let index = gmmailArr.findIndex(gmmail => compaireMailGoods(gmmail, receiver));
if(index == -1) {
gmmailArr.push({...gmmail, receivers: [receiver], goods: receiver.rewards, hasGoods: receiver?receiver.rewards.length > 0: false });
} else {
gmmailArr[index].receivers.push(receiver);
}
}
} else {
gmmailArr.push(gmmail);
}
await sendMailsByGmMail(gmmailArr);
}
await GMMailModel.updateMailById(id, { status: isPass? GM_MAIL_STATUS.PASS: GM_MAIL_STATUS.NOT_PASS, viewAt: new Date(), viewBy: uid }, uid);
return resResult(STATUS.SUCCESS);