邮件:修改邮件逻辑
This commit is contained in:
+14
-19
@@ -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>; // 将所有字段变成可选项
|
||||
Reference in New Issue
Block a user