✨ feat(后台): 批量邮件
This commit is contained in:
@@ -10,7 +10,7 @@ import { GMMail as StategyMail } from './ServerStategy';
|
||||
import { ServerlistType } from './Serverlist';
|
||||
import moment = require('moment');
|
||||
|
||||
class Reward {
|
||||
class MailReward {
|
||||
@prop({ required: true })
|
||||
id: number;
|
||||
@prop({ required: true })
|
||||
@@ -26,6 +26,8 @@ export class Receiver {
|
||||
roleId?: string;
|
||||
@prop({ required: true })
|
||||
roleName?: string;
|
||||
@prop({ required: true, type: MailReward, _id: false })
|
||||
rewards?: MailReward[];
|
||||
}
|
||||
|
||||
export default class GMMail extends BaseModel {
|
||||
@@ -33,8 +35,8 @@ export default class GMMail extends BaseModel {
|
||||
@prop({ required: false})
|
||||
hasGoods: boolean; // 有效时间,单位小时
|
||||
|
||||
@prop({ required: true, type: Reward, default: [], _id: false })
|
||||
goods: Reward[];
|
||||
@prop({ required: true, type: MailReward, default: [], _id: false })
|
||||
goods: MailReward[];
|
||||
|
||||
@prop({ required: true, default: true })
|
||||
timeType: MAIL_TIME_TYPE; // 邮件时间类型
|
||||
|
||||
@@ -404,8 +404,8 @@ export default class Role extends BaseModel {
|
||||
return role;
|
||||
}
|
||||
|
||||
public static async findByRoleName(roleName: string, select?: string, getters = false, virtuals = true) {
|
||||
const role: RoleType = await RoleModel.findOne({ roleName }).select(select).lean({ getters, virtuals });
|
||||
public static async findByRoleName(roleName: string, serverId: number, select?: string, getters = false, virtuals = true) {
|
||||
const role: RoleType = await RoleModel.findOne({ roleName, serverId }).select(select).lean({ getters, virtuals });
|
||||
return role;
|
||||
}
|
||||
|
||||
|
||||
@@ -20,14 +20,14 @@ export class UpdateMailParams {
|
||||
content: string;
|
||||
sendName: string;
|
||||
mailType: GM_MAIL_TYPE; // 收件人类型
|
||||
receivers: {env: string; serverId: number; roleId: string; roleName: string; }[];
|
||||
receivers: {env: string; serverId: number; roleId: string; roleName: string; rewards: {id: number; count: number}[] }[];
|
||||
reason: string; // 原因
|
||||
isSp: boolean = false; // 特殊邮件
|
||||
isSingle: boolean;
|
||||
|
||||
constructor(obj: UpdateMailParams) {
|
||||
this.goods = obj.goods;
|
||||
this.hasGoods = obj.goods?.length > 0;
|
||||
if(obj.goods && obj.goods?.length > 0) this.hasGoods = true;
|
||||
this.timeType = obj.timeType;
|
||||
this.expire = obj.expire;
|
||||
this.startTime = obj.startTime;
|
||||
@@ -44,6 +44,12 @@ export class UpdateMailParams {
|
||||
this.mailType = GM_MAIL_TYPE.SERVER;
|
||||
}
|
||||
this.receivers = obj.receivers;
|
||||
if(obj.receivers && obj.receivers.length > 0) {
|
||||
for(let { rewards } of obj.receivers) {
|
||||
console.log('#### rewards', rewards)
|
||||
if(rewards && rewards.length > 0) this.hasGoods = true;
|
||||
}
|
||||
}
|
||||
this.reason = obj.reason;
|
||||
this.isSp = obj.isSp;
|
||||
}
|
||||
|
||||
@@ -999,5 +999,12 @@
|
||||
"name": "上传二维码",
|
||||
"module": "server",
|
||||
"type": "update"
|
||||
},
|
||||
{
|
||||
"id": 144,
|
||||
"api": "/api/upload/uploadmailexcel",
|
||||
"name": "上传excel",
|
||||
"module": "server",
|
||||
"type": "update"
|
||||
}
|
||||
]
|
||||
Reference in New Issue
Block a user