后台:邮件

This commit is contained in:
luying
2021-12-01 14:45:06 +08:00
parent 53e55b288f
commit fe372de419
10 changed files with 41 additions and 63 deletions

View File

@@ -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);

View File

@@ -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

View File

@@ -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);
};

View File

@@ -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);
}

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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