✨ feat(gvg): 排行榜奖励邮件
This commit is contained in:
@@ -17,6 +17,7 @@ import { BAG } from "../pubUtils/dicParam";
|
||||
import { GuildModel, GuildType } from "../db/Guild";
|
||||
import moment = require("moment");
|
||||
import { sendMessageToGuildWithSuc, sendMessageToServerWithSuc, sendMessageToUsersWithSuc } from "./pushService";
|
||||
import { GVGLeagueModel, GVGLeagueType } from "../db/GVGLeague";
|
||||
|
||||
/**
|
||||
* 获取邮件信息
|
||||
@@ -71,6 +72,16 @@ export async function sendMailToGuildByContent(contentId: MAIL_TYPE, guildCode:
|
||||
return true;
|
||||
}
|
||||
|
||||
export async function sendMailToLeagueByContent(contentId: MAIL_TYPE, leagueCode: string, params: { sendName?: string, endTime?: number, params?: string[], goods?: RewardInter[] }, league?: GVGLeagueType) {
|
||||
if(!league) league = await GVGLeagueModel.findByCodeWithoutPopulate(leagueCode);
|
||||
if(!league) return false;
|
||||
let f = new SendMailFun();
|
||||
let code = f.setWithContentId(contentId, params);
|
||||
await f.createGroupMails(code, league.members.map(cur => cur.roleId), null, leagueCode);
|
||||
await f.pushToUsers();
|
||||
return true;
|
||||
}
|
||||
|
||||
export async function sendMailsByGmMail(gmmails: GMMailType[]) {
|
||||
let f = new SendMailFun();
|
||||
for(let gmmail of gmmails) {
|
||||
@@ -224,13 +235,13 @@ export class SendMailFun {
|
||||
}
|
||||
|
||||
// 生成多人邮件
|
||||
public async createGroupMails(code: string, roleIds: string[], guildCode?: string) {
|
||||
public async createGroupMails(code: string, roleIds: string[], guildCode?: string, leagueCode?: string) {
|
||||
let mapTemp = this.mailTemps.get(code);
|
||||
if(mapTemp.sendTime < nowSeconds()) return;
|
||||
let roleStatus = roleIds.map(roleId => {
|
||||
return { roleId, status: MAIL_STATUS.CREATE }
|
||||
})
|
||||
let originMail = await GroupMailModel.addMail({ roleStatus, guildCode, ...mapTemp.getCreateMailParams() });
|
||||
let originMail = await GroupMailModel.addMail({ roleStatus, guildCode, leagueCode, ...mapTemp.getCreateMailParams() });
|
||||
if(mapTemp.gmmail) await GMMailModel.sendMail(mapTemp.gmmail._id, mapTemp.sendTime);
|
||||
this.groupMails.push(originMail);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user