Files
ZYZ/gm-server/app/controller/mail.ts
2023-06-03 20:02:38 +08:00

74 lines
3.1 KiB
TypeScript

import { Controller } from 'egg';
import { GM_MAIL_TYPE, STATUS } from '@consts';
import { UpdateMailParams } from '@domain/backEndField/params';
export default class MailController extends Controller {
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 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 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 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 });
return
}
public async getGMMailList() {
const { ctx } = this;
const { page, pageSize, sortField, sortOrder, form } = ctx.request.body;
ctx.body = await ctx.service.mail.getGMMailList(page, pageSize, sortField, sortOrder, form);
return
}
public async findRoleByIdOrName() {
const { ctx } = this;
const { serverId, roleId, roleName }: { serverId: number, roleId?: string, roleName?: string } = ctx.request.body;
if(!serverId || (!roleId && !roleName)) return ctx.body = ctx.service.utils.resResult(STATUS.WRONG_PARMS);
ctx.body = await ctx.service.mail.findRoleByIdOrName(serverId, roleId, roleName);
return
}
public async updateGMMail() {
const { ctx } = this;
const msg = ctx.request.body;
if(msg.receivers && msg.receivers.length > 0) {
try {
for(let receiver of msg.receivers) {
if(receiver.rewards) receiver.rewards = JSON.parse(receiver.rewards);
}
} catch(e) {
return ctx.body = ctx.service.utils.resResult(STATUS.WRONG_PARMS);
}
}
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') {
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
}
}