diff --git a/game-server/app/services/mailService.ts b/game-server/app/services/mailService.ts index 80eaf5595..4c7ef301d 100644 --- a/game-server/app/services/mailService.ts +++ b/game-server/app/services/mailService.ts @@ -74,11 +74,12 @@ export async function sendMailToGuildByContent(contentId: MAIL_TYPE, guildCode: export async function sendMailsByGmMail(gmmails: GMMailType[]) { let f = new SendMailFun(); for(let gmmail of gmmails) { - let { receivers, mailType, sendTimes, circleStart, circleEnd } = gmmail; + let { receivers, mailType, sendTimes } = gmmail; let code = await f.setWithGmMail(gmmail); if(!code) continue; let mapTemp = f.getMailTemp(code); - if(sendTimes.indexOf(mapTemp.sendTime) == -1 && circleStart <= mapTemp.sendTime && circleEnd >= mapTemp.sendTime) { + + if(sendTimes.indexOf(mapTemp.sendTime) == -1 && checkCanSend(gmmail, mapTemp)) { if(mailType == GM_MAIL_TYPE.SINGLE) { await f.createSingleMails(code, receivers.map(cur => cur.roleId)); } else if (mailType == GM_MAIL_TYPE.GROUP) { @@ -91,6 +92,13 @@ export async function sendMailsByGmMail(gmmails: GMMailType[]) { await f.pushToUsers(); } +function checkCanSend(gmmail: GMMailType, mapTemp: MailTemp ) { + let { circleStart, circleEnd, timeType } = gmmail; + if(timeType == MAIL_TIME_TYPE.CIRCLE) { + if(circleStart > mapTemp.sendTime || circleEnd < mapTemp.sendTime) return false; + } + return true; +} class MailTemp { public code: string; public gmmail: GMMailTypeParam;