邮件:修改邮件逻辑

This commit is contained in:
luying
2021-06-28 13:31:29 +08:00
parent 2ffe0f7890
commit 3b1d458a87
29 changed files with 932 additions and 626 deletions
+14 -19
View File
@@ -1,29 +1,22 @@
/**
* 邮件的模板,在GM后台能看到的邮件列表
*/
import BaseModel from './BaseModel';
import { getModelForClass, prop, DocumentType } from '@typegoose/typegoose';
import { nowSeconds } from '../pubUtils/timeUtil';
import { GM_MAIL_TYPE } from '../consts/constModules/mailConst';
class RewardInter {
class Reward {
@prop({ required: true })
id: number;
@prop({ required: true })
count: number;
}
class SendRole {
@prop({ required: true })
roleId: string;
}
export default class GMMail extends BaseModel {
@prop({ required: true })
serverId: number;
@prop({ required: true, type: SendRole, default:[], _id: false })
sendRoles: SendRole[];
@prop({ required: true, type: RewardInter, default: [], _id: false })
goods: RewardInter[];
@prop({ required: true, type: Reward, default: [], _id: false })
goods: Reward[];
@prop({ required: true, default: nowSeconds() })
sendTime: number;
@@ -37,13 +30,13 @@ export default class GMMail extends BaseModel {
@prop({ required: true })
sendName: string;
@prop({ required: true })
gmMailType: number; //1:群体邮件,2:分服务器邮件
@prop({ required: true, enum: GM_MAIL_TYPE })
mailType: GM_MAIL_TYPE; // 1-单人邮件 2-多人邮件 3-全服邮件
public static async addMail(params: {serverId: number, sendRoles: SendRole[], sendName: string, endTime: number, content: string, gmMailType: number, sendTime?: number, goods?: RewardInter[] }, lean = true) {
public static async addMail(params: GMMailTypeParam) {
const doc = new GMMailModel();
let mail = Object.assign(doc.toJSON(), params);
mail = await GMMailModel.findOneAndUpdate({ _id: mail._id }, { $set: mail }, {upsert: true, new: true}).lean(lean);
mail = await GMMailModel.findOneAndUpdate({ _id: mail._id }, { $set: mail }, {upsert: true, new: true}).lean();
return mail;
}
@@ -66,4 +59,6 @@ export default class GMMail extends BaseModel {
export const GMMailModel = getModelForClass(GMMail);
export interface GMMailType extends Pick<DocumentType<GMMail>, keyof GMMail> { };
export interface GMMailType extends Pick<DocumentType<GMMail>, keyof GMMail> { };
export type GMMailTypeParam = Partial<GMMailType>; // 将所有字段变成可选项