后台:邮件
This commit is contained in:
@@ -9,7 +9,6 @@ import { delGuildActivityRank, getRoleOnlineInfo } from '../../../services/redis
|
||||
import { SendMailFun } from '../../../services/mailService';
|
||||
import { GM_MAIL_TYPE } from '../../../consts';
|
||||
import { RewardInter } from '../../../pubUtils/interface';
|
||||
import { CreateMailParams } from '../../../domain/backEndField/params';
|
||||
|
||||
export default function (app: Application) {
|
||||
return new GmMailHandler(app);
|
||||
|
||||
@@ -1,52 +1,28 @@
|
||||
import { Controller } from 'egg';
|
||||
import { GM_MAIL_STATUS, GM_MAIL_TYPE, STATUS } from '@consts';
|
||||
import { GM_MAIL_TYPE, STATUS } from '@consts';
|
||||
import { UpdateMailParams } from '@domain/backEndField/params';
|
||||
|
||||
export default class MailController extends Controller {
|
||||
|
||||
public async getCreateSingleMail() {
|
||||
const { ctx } = this;
|
||||
const { page, pageSize, sortField, sortOrder, form } = ctx.request.body;
|
||||
ctx.body = await ctx.service.mail.getGMMailList(page, pageSize, sortField, sortOrder, {...form, mailType: GM_MAIL_TYPE.SINGLE, status: GM_MAIL_STATUS.CREATE, hasGoods: true });
|
||||
return
|
||||
}
|
||||
public async getCreateSingleMailTxt() {
|
||||
const { ctx } = this;
|
||||
const { page, pageSize, sortField, sortOrder, form } = ctx.request.body;
|
||||
ctx.body = await ctx.service.mail.getGMMailList(page, pageSize, sortField, sortOrder, {...form, mailType: GM_MAIL_TYPE.SINGLE, status: GM_MAIL_STATUS.CREATE, hasGoods: false });
|
||||
return
|
||||
}
|
||||
public async getCreateServerMail() {
|
||||
const { ctx } = this;
|
||||
const { page, pageSize, sortField, sortOrder, form } = ctx.request.body;
|
||||
ctx.body = await ctx.service.mail.getGMMailList(page, pageSize, sortField, sortOrder, {...form, mailType: GM_MAIL_TYPE.SERVER, status: GM_MAIL_STATUS.CREATE, hasGoods: true });
|
||||
return
|
||||
}
|
||||
public async getCreateServerMailTxt() {
|
||||
const { ctx } = this;
|
||||
const { page, pageSize, sortField, sortOrder, form } = ctx.request.body;
|
||||
ctx.body = await ctx.service.mail.getGMMailList(page, pageSize, sortField, sortOrder, {...form, mailType: GM_MAIL_TYPE.SERVER, status: GM_MAIL_STATUS.CREATE, hasGoods: false });
|
||||
return
|
||||
}
|
||||
public async getViewSingleMail() {
|
||||
public async getSingleMail() {
|
||||
const { ctx } = this;
|
||||
const { page, pageSize, sortField, sortOrder, form } = ctx.request.body;
|
||||
ctx.body = await ctx.service.mail.getGMMailList(page, pageSize, sortField, sortOrder, {...form, mailType: GM_MAIL_TYPE.SINGLE, hasGoods: true });
|
||||
return
|
||||
}
|
||||
public async getViewSingleMailTxt() {
|
||||
public async getSingleMailTxt() {
|
||||
const { ctx } = this;
|
||||
const { page, pageSize, sortField, sortOrder, form } = ctx.request.body;
|
||||
ctx.body = await ctx.service.mail.getGMMailList(page, pageSize, sortField, sortOrder, {...form, mailType: GM_MAIL_TYPE.SINGLE, hasGoods: false });
|
||||
return
|
||||
}
|
||||
public async getViewServerMail() {
|
||||
public async getServerMail() {
|
||||
const { ctx } = this;
|
||||
const { page, pageSize, sortField, sortOrder, form } = ctx.request.body;
|
||||
ctx.body = await ctx.service.mail.getGMMailList(page, pageSize, sortField, sortOrder, {...form, mailType: GM_MAIL_TYPE.SERVER, hasGoods: true });
|
||||
return
|
||||
}
|
||||
public async getViewServerMailTxt() {
|
||||
public async getServerMailTxt() {
|
||||
const { ctx } = this;
|
||||
const { page, pageSize, sortField, sortOrder, form } = ctx.request.body;
|
||||
ctx.body = await ctx.service.mail.getGMMailList(page, pageSize, sortField, sortOrder, {...form, mailType: GM_MAIL_TYPE.SERVER, hasGoods: false });
|
||||
@@ -71,11 +47,15 @@ export default class MailController extends Controller {
|
||||
public async updateGMMail() {
|
||||
const { ctx } = this;
|
||||
const msg = ctx.request.body;
|
||||
let params = new UpdateMailParams(msg);
|
||||
let check = params.checkParams();
|
||||
if(!check) return ctx.body = ctx.service.utils.resResult(STATUS.WRONG_PARMS);
|
||||
if(msg._id == 'new') {
|
||||
let params = new UpdateMailParams(msg);
|
||||
let check = params.checkParams();
|
||||
if(!check) return ctx.body = ctx.service.utils.resResult(STATUS.WRONG_PARMS);
|
||||
ctx.body = await ctx.service.mail.createGmMail(params);
|
||||
} else if(msg._id) {
|
||||
ctx.body = await ctx.service.mail.updateGMMail(msg._id, params);
|
||||
} else {
|
||||
return ctx.body = ctx.service.utils.resResult(STATUS.WRONG_PARMS);
|
||||
}
|
||||
|
||||
return
|
||||
|
||||
@@ -95,15 +95,18 @@ export default (app: Application) => {
|
||||
router.post('/api/activity/updateactivitytaskpoint', controller.activity.updateActivityTaskPoint);
|
||||
router.post('/api/activity/delactivitytaskpoint', controller.activity.delActivityTaskPoint);
|
||||
|
||||
router.post('/api/mail/getcreatesinglemail', controller.mail.getCreateSingleMail);
|
||||
router.post('/api/mail/getcreatesinglemailtxt', controller.mail.getCreateSingleMailTxt);
|
||||
router.post('/api/mail/getcreateservermail', controller.mail.getCreateServerMail);
|
||||
router.post('/api/mail/getcreateservermailtxt', controller.mail.getCreateServerMailTxt);
|
||||
router.post('/api/mail/getviewsinglemail', controller.mail.getViewSingleMail);
|
||||
router.post('/api/mail/getviewsinglemailtxt', controller.mail.getViewSingleMailTxt);
|
||||
router.post('/api/mail/getviewservermail', controller.mail.getViewServerMail);
|
||||
router.post('/api/mail/getviewservermailtxt', controller.mail.getViewServerMailTxt);
|
||||
router.post('/api/mail/getcreatesinglemail', controller.mail.getSingleMail);
|
||||
router.post('/api/mail/getcreatesinglemailtxt', controller.mail.getSingleMailTxt);
|
||||
router.post('/api/mail/getcreateservermail', controller.mail.getServerMail);
|
||||
router.post('/api/mail/getcreateservermailtxt', controller.mail.getServerMailTxt);
|
||||
router.post('/api/mail/getviewsinglemail', controller.mail.getSingleMail);
|
||||
router.post('/api/mail/getviewsinglemailtxt', controller.mail.getSingleMailTxt);
|
||||
router.post('/api/mail/getviewservermail', controller.mail.getServerMail);
|
||||
router.post('/api/mail/getviewservermailtxt', controller.mail.getServerMailTxt);
|
||||
router.post('/api/mail/findrolebyidorname', controller.mail.findRoleByIdOrName);
|
||||
router.post('/api/mail/updategmmail', controller.mail.updateGMMail);
|
||||
router.post('/api/mail/updatesinglemail', controller.mail.updateGMMail);
|
||||
router.post('/api/mail/updatesinglemailtxt', controller.mail.updateGMMail);
|
||||
router.post('/api/mail/updateservermail', controller.mail.updateGMMail);
|
||||
router.post('/api/mail/updateservermailtxt', controller.mail.updateGMMail);
|
||||
router.post('/api/mail/getgmmailrecords', controller.mail.getGMMailRecords);
|
||||
};
|
||||
|
||||
@@ -33,18 +33,14 @@ export default class Mail extends Service {
|
||||
|
||||
public async createGmMail(params: UpdateMailParams) {
|
||||
const { ctx } = this;
|
||||
await GMMailModel.addMail(params);
|
||||
await GMMailModel.addMail(params, ctx.user?.uid);
|
||||
|
||||
return ctx.service.utils.resResult(STATUS.SUCCESS);
|
||||
}
|
||||
|
||||
public async updateGMMail(isCreate: boolean, params: UpdateMailParams) {
|
||||
public async updateGMMail(_id: string, params: UpdateMailParams) {
|
||||
const { ctx } = this;
|
||||
if(isCreate) {
|
||||
await GMMailModel.addMail(params);
|
||||
} else {
|
||||
// await GMMailModel.updateMailById(params._id, params);
|
||||
}
|
||||
await GMMailModel.updateMailById(_id, params, ctx.user?.uid);
|
||||
return ctx.service.utils.resResult(STATUS.SUCCESS);
|
||||
}
|
||||
|
||||
|
||||
@@ -38,7 +38,7 @@ export default class Api extends BaseModel {
|
||||
|
||||
}
|
||||
|
||||
export let ApiModel: ReturnModelType<typeof Api, {}> = getModelForClass(Api);
|
||||
export let ApiModel: ReturnModelType<typeof Api, {}>;
|
||||
export function loadApiModel(connect: mongoose.Connection) {
|
||||
ApiModel = getModelForClass(Api, {
|
||||
existingConnection: connect
|
||||
|
||||
@@ -74,7 +74,7 @@ export default class GMGroup extends BaseModel {
|
||||
|
||||
}
|
||||
|
||||
export let GMGroupModel: ReturnModelType<typeof GMGroup, {}> = getModelForClass(GMGroup);
|
||||
export let GMGroupModel: ReturnModelType<typeof GMGroup, {}>;
|
||||
export function loadGMGroupModel(connect: mongoose.Connection) {
|
||||
GMGroupModel = getModelForClass(GMGroup, {
|
||||
existingConnection: connect
|
||||
|
||||
@@ -2,11 +2,10 @@
|
||||
* 邮件的模板,在GM后台能看到的邮件列表
|
||||
*/
|
||||
import BaseModel from './BaseModel';
|
||||
import { getModelForClass, prop, DocumentType, mongoose } from '@typegoose/typegoose';
|
||||
import { getModelForClass, prop, DocumentType, mongoose, ReturnModelType } from '@typegoose/typegoose';
|
||||
import { nowSeconds } from '../pubUtils/timeUtil';
|
||||
import { GM_MAIL_STATUS, GM_MAIL_TYPE, MAIL_TIME_TYPE } from '../consts';
|
||||
import { SearchMailParam } from '../domain/backEndField/search';
|
||||
import { UpdateMailParams } from '../domain/backEndField/params';
|
||||
|
||||
class Reward {
|
||||
@prop({ required: true })
|
||||
@@ -53,7 +52,7 @@ export default class GMMail extends BaseModel {
|
||||
circleDay: number; // 循环时间,每周几,0表示每天
|
||||
|
||||
@prop({ required: true })
|
||||
circleHour: number; // 几点发送
|
||||
circleHour: string; // 几点发送
|
||||
|
||||
@prop({ required: true })
|
||||
title: string;
|
||||
@@ -73,14 +72,14 @@ export default class GMMail extends BaseModel {
|
||||
@prop({ required: true })
|
||||
reason: string; // 原因
|
||||
|
||||
@prop({ required: true })
|
||||
@prop({ required: true, default: false })
|
||||
isSp: boolean; // 特殊邮件
|
||||
|
||||
@prop({ required: true })
|
||||
@prop({ required: true, default: 0 })
|
||||
status: GM_MAIL_STATUS; // 邮件状态
|
||||
|
||||
|
||||
public static async addMail(params: UpdateMailParams, uid = 1) {
|
||||
public static async addMail(params: GMMailTypeParam, uid = 1) {
|
||||
const doc = new GMMailModel();
|
||||
let mail = Object.assign(doc.toJSON(), params);
|
||||
let result: GMMailType = await GMMailModel.findOneAndUpdate({ _id: mail._id }, { $set: {...mail, updatedBy: uid}, $setOnInsert: { createdBy: uid } }, {upsert: true, new: true}).lean();
|
||||
@@ -110,8 +109,9 @@ export default class GMMail extends BaseModel {
|
||||
|
||||
private static getSearchObj(form: SearchMailParam) {
|
||||
let searchObj = {};
|
||||
if(form.createTimeStart) searchObj['createdAt'] = { $gt: new Date(form.createTimeStart) };
|
||||
if(form.createTimeEnd) searchObj['createdAt'] = { $lt: new Date(form.createTimeEnd) };
|
||||
console.log('******', form)
|
||||
if(form.createTimeStart) searchObj['createdAt'] = { $gt: new Date(form.createTimeStart * 1000) };
|
||||
if(form.createTimeEnd) searchObj['createdAt'] = { $lt: new Date(form.createTimeEnd * 1000) };
|
||||
if(form.serverId) searchObj['receivers.serverId'] = form.serverId;
|
||||
if(form.roleId) searchObj['receivers.roleId'] = form.roleId;
|
||||
if(form.roleName) searchObj['receivers.roleName'] = { $regex: new RegExp(form.roleName.toString(), 'i') }
|
||||
@@ -148,7 +148,7 @@ export default class GMMail extends BaseModel {
|
||||
|
||||
}
|
||||
|
||||
export let GMMailModel = getModelForClass(GMMail);
|
||||
export let GMMailModel: ReturnModelType<typeof GMMail, {}>;
|
||||
export function loadGMMailModel(connect: mongoose.Connection) {
|
||||
GMMailModel = getModelForClass(GMMail, {
|
||||
existingConnection: connect
|
||||
|
||||
@@ -28,7 +28,7 @@ export default class GMRecord extends BaseModel {
|
||||
|
||||
}
|
||||
|
||||
export let GMRecordModel: ReturnModelType<typeof GMRecord, {}> = getModelForClass(GMRecord);
|
||||
export let GMRecordModel: ReturnModelType<typeof GMRecord, {}>;
|
||||
export function loadGMRecordModel(connect: mongoose.Connection) {
|
||||
GMRecordModel = getModelForClass(GMRecord, {
|
||||
existingConnection: connect
|
||||
|
||||
@@ -85,7 +85,7 @@ export default class GMUser extends BaseModel {
|
||||
}
|
||||
}
|
||||
|
||||
export let GMUserModel: ReturnModelType<typeof GMUser, {}> = getModelForClass(GMUser);
|
||||
export let GMUserModel: ReturnModelType<typeof GMUser, {}>;
|
||||
export function loadGMUserModel(connect: mongoose.Connection) {
|
||||
GMUserModel = getModelForClass(GMUser, {
|
||||
existingConnection: connect
|
||||
|
||||
@@ -32,7 +32,7 @@ export default class GMUserGroup extends BaseModel {
|
||||
}
|
||||
}
|
||||
|
||||
export let GMUserGroupModel: ReturnModelType<typeof GMUserGroup, {}> = getModelForClass(GMUserGroup);
|
||||
export let GMUserGroupModel: ReturnModelType<typeof GMUserGroup, {}>;
|
||||
export function loadGMUserGroupModel(connect: mongoose.Connection) {
|
||||
GMUserGroupModel = getModelForClass(GMUserGroup, {
|
||||
existingConnection: connect
|
||||
|
||||
Reference in New Issue
Block a user