feat(活动): 节日活动高级签到邮件补发

This commit is contained in:
luying
2023-08-04 16:20:36 +08:00
parent 822c8c8c42
commit 3d510783da
8 changed files with 90 additions and 3 deletions

View File

@@ -1,10 +1,13 @@
import moment = require('moment');
import { ACTIVITY_TYPE, SERVER_OPEN_TIME, SIGNIN_VIP_OPEN_LIMIT, STATUS } from '../../consts';
import { ACTIVITY_TYPE, MAIL_TYPE, SERVER_OPEN_TIME, SIGNIN_VIP_OPEN_LIMIT, STATUS } from '../../consts';
import { ActivityModelType } from '../../db/Activity';
import { ActivitySignInModel, ActivitySignInModelType } from '../../db/ActivitySignIn';
import { SignInData } from '../../domain/activityField/signInField';
import { getRoleCreateTime, getServerCreateTime } from '../redisService';
import { getActivitiesByType, getActivityById } from './activityService';
import { RewardInter } from '../../pubUtils/interface';
import { stringToRewardInter } from './giftPackageService';
import { sendMailByContent } from '../mailService';
/**
* 获取活动数据
@@ -135,4 +138,27 @@ export async function checkSignInCanBuy(roleId: string, serverId: number, activi
}
return true
}
// 补发签到邮件
export async function repairSignInMail(playerData: SignInData) {
if(!playerData || playerData.productID == '&') return;
let playerRecords = await ActivitySignInModel.findByActivity(playerData.activityId, 1);
let hasRepaireRoleIds: string[] = []
for(let playerRecord of playerRecords) {
if(playerRecord.hasRepair) continue;
let notSendGoods: RewardInter[] = [];
let records = playerRecord.records||[];
for(let item of playerData.list) {
let curRec = records.find(rec => rec.dayIndex == item.dayIndex);
if(!curRec) {
notSendGoods.push(...stringToRewardInter(item.reward));
}
}
if(notSendGoods.length > 0) {
await sendMailByContent(MAIL_TYPE.REPAIRE_SIGN_IN, playerRecord.roleId, { goods: notSendGoods });
hasRepaireRoleIds.push(playerRecord.roleId);
}
}
await ActivitySignInModel.repairSignIn(playerData.activityId, hasRepaireRoleIds);
}