后台:更新开服邮件
This commit is contained in:
@@ -7,7 +7,7 @@ import { STATUS } from '../../../consts/statusCode';
|
||||
import { GMMailModel } from '../../../db/GMMail';
|
||||
import { delGuildActivityRank, getRoleOnlineInfo } from '../../../services/redisService';
|
||||
import { SendMailFun } from '../../../services/mailService';
|
||||
import { GM_MAIL_STATUS, GM_MAIL_TYPE, MAIL_TIME_TYPE } from '../../../consts';
|
||||
import { GM_MAIL_STATUS, GM_MAIL_TYPE, MAIL_TIME_TYPE, REF_CIRCLE_MAIL_TIME } from '../../../consts';
|
||||
import { RewardInter } from '../../../pubUtils/interface';
|
||||
import { MarqueeModel } from '../../../db/Marquee';
|
||||
import { ServerlistModel } from '../../../db/Serverlist';
|
||||
@@ -21,7 +21,6 @@ import { ActivityGroupTypeModel } from '../../../db/ActivityGroupType';
|
||||
import { GuildActivityCityModel } from '../../../db/GuildActivityCity';
|
||||
import { GuildActivityRecordModel } from '../../../db/GuildActivityRec';
|
||||
import { getTimeFunM, nowSeconds } from '../../../pubUtils/timeUtil';
|
||||
import { sendUngotDividend } from '../../../services/auctionService';
|
||||
import moment = require('moment');
|
||||
let timer: NodeJS.Timer;
|
||||
export default function (app: Application) {
|
||||
@@ -46,7 +45,7 @@ export class GmHandler {
|
||||
let needSend = false;
|
||||
if(isPass) {
|
||||
if(timeType == MAIL_TIME_TYPE.CIRCLE) {
|
||||
let refTime = moment(moment().format('YYYY-MM-DD 03:00:00')).unix();
|
||||
let refTime = moment(moment().format(`YYYY-MM-DD ${REF_CIRCLE_MAIL_TIME}:00:00`)).unix();
|
||||
let sendTime = moment(moment().format('YYYY-MM-DD '+circleHour)).unix();
|
||||
if(sendTime < refTime) sendTime += 86400;
|
||||
let now = nowSeconds();
|
||||
|
||||
@@ -2,8 +2,13 @@ import { Application, BackendSession, pinus } from 'pinus';
|
||||
import { getRandSingleEelm, resResult } from '../../../pubUtils/util';
|
||||
import { STATUS } from '../../../consts/statusCode';
|
||||
import moment = require('moment');
|
||||
import { UpdateRegionParams } from '../../../domain/backEndField/params';
|
||||
import { CreateServerParam, UpdateRegionParams } from '../../../domain/backEndField/params';
|
||||
import { RegionModel } from '../../../db/Region';
|
||||
import { gameData } from '../../../pubUtils/data';
|
||||
import { ServerlistModel } from '../../../db/Serverlist';
|
||||
import { nowSeconds } from '../../../pubUtils/timeUtil';
|
||||
import { GM_MAIL_TYPE, MAIL_TIME_TYPE, REF_CIRCLE_MAIL_TIME } from '../../../consts';
|
||||
import { SendMailFun } from '../../../services/mailService';
|
||||
let timer: NodeJS.Timer;
|
||||
export default function (app: Application) {
|
||||
return new GmHandler(app);
|
||||
@@ -17,12 +22,50 @@ export class GmHandler {
|
||||
let params = new UpdateRegionParams(msg);
|
||||
let uid = session.get('uid');
|
||||
if(!params.checkParams()) return resResult(STATUS.WRONG_PARMS);
|
||||
let update = params.getUpdateParam();
|
||||
if(params.id == 'new') {
|
||||
let update = params.getUpdateParam();
|
||||
await RegionModel.createNewRegion(update, uid);
|
||||
} else {
|
||||
let oldRegion = await RegionModel.findRegionById(params.id);
|
||||
if(!oldRegion) return resResult(STATUS.WRONG_PARMS);
|
||||
let update = params.getUpdateParam(oldRegion);
|
||||
await RegionModel.updateRegion(params.id, update, uid);
|
||||
}
|
||||
return resResult(STATUS.SUCCESS);
|
||||
}
|
||||
|
||||
async createNewServer(msg: CreateServerParam, session: BackendSession) {
|
||||
let params = new CreateServerParam(msg);
|
||||
let uid = session.get('uid');
|
||||
if(!params.checkParams()) return resResult(STATUS.WRONG_PARMS);
|
||||
let curRegion = await RegionModel.findRegionByEnv(params.env);
|
||||
if(!curRegion) return resResult(STATUS.WRONG_PARMS);
|
||||
|
||||
let { latestServer = 0 } = curRegion;
|
||||
let dicServerName = gameData.serverNames.get(latestServer + 1);
|
||||
if(!dicServerName) return resResult(STATUS.DIC_DATA_NOT_FOUND);
|
||||
|
||||
let newServer = await ServerlistModel.newServer(params, curRegion, dicServerName, uid);
|
||||
let mails = [ params.openMail, params.circleMail ];
|
||||
for(let mail of mails) {
|
||||
let needSend = false;
|
||||
if(mail.timeType == MAIL_TIME_TYPE.CIRCLE) {
|
||||
let refTime = moment(moment().format(`YYYY-MM-DD ${REF_CIRCLE_MAIL_TIME}:00:00`)).unix();
|
||||
let sendTime = moment(moment().format('YYYY-MM-DD '+ mail.circleHour)).unix();
|
||||
if(sendTime < refTime) sendTime += 86400;
|
||||
let now = nowSeconds();
|
||||
if(refTime < now && sendTime > now) {
|
||||
needSend = true;
|
||||
}
|
||||
} else {
|
||||
needSend = true;
|
||||
}
|
||||
if(needSend) {
|
||||
let f = new SendMailFun();
|
||||
await f.setWithGmMail(mail);
|
||||
await f.sendToServer([newServer.id]);
|
||||
}
|
||||
}
|
||||
return resResult(STATUS.SUCCESS);
|
||||
}
|
||||
}
|
||||
@@ -57,16 +57,14 @@ export async function setMedianCe() {
|
||||
let servers = await ServerlistModel.getAllServerList();
|
||||
|
||||
for (let server of servers) {
|
||||
if (server.serverType == 'official') {
|
||||
let medianRole = await RoleModel.getMedianRole(server.id);
|
||||
if (!medianRole) {
|
||||
await ServerlistModel.updateByServerId(server.id, { medianCe: GUILDACTIVITY.GATEACTIVITY_ENEMYCE });
|
||||
} else {
|
||||
let { topLineup } = medianRole;
|
||||
let topHero = topLineup.sort((a, b) => b.ce - a.ce);
|
||||
let medianCe = reduceCe(topHero[0].ce);
|
||||
await ServerlistModel.updateByServerId(server.id, { medianCe });
|
||||
}
|
||||
let medianRole = await RoleModel.getMedianRole(server.id);
|
||||
if (!medianRole) {
|
||||
await ServerlistModel.updateByServerId(server.id, { medianCe: GUILDACTIVITY.GATEACTIVITY_ENEMYCE });
|
||||
} else {
|
||||
let { topLineup } = medianRole;
|
||||
let topHero = topLineup.sort((a, b) => b.ce - a.ce);
|
||||
let medianCe = reduceCe(topHero[0].ce);
|
||||
await ServerlistModel.updateByServerId(server.id, { medianCe });
|
||||
}
|
||||
}
|
||||
return servers;
|
||||
|
||||
@@ -10,7 +10,7 @@ import { STATUS } from '../consts/statusCode';
|
||||
import { resResult } from '../pubUtils/util';
|
||||
import { GM_MAIL_TYPE, ITID, MAIL_STATUS, MAIL_TIME_TYPE, MAIL_TYPE, SEND_NAME, SEND_TITLE } from "../consts";
|
||||
import { MailParam } from '../domain/roleField/mail';
|
||||
import { GMMailType, GMMailModel } from "../db/GMMail";
|
||||
import { GMMailType, GMMailModel, GMMailTypeParam } from "../db/GMMail";
|
||||
import { getGuildChannelSid, getWorldChannelSid } from "./chatChannelService";
|
||||
import { GMMailRecordModel } from "../db/GMMailRecord";
|
||||
import { BAG } from "../pubUtils/dicParam";
|
||||
@@ -77,7 +77,7 @@ export class SendMailFun {
|
||||
private sendName: string = SEND_NAME;
|
||||
private title: string = SEND_TITLE;
|
||||
private content: string = '';
|
||||
private gmmail: GMMailType;
|
||||
private gmmail: GMMailTypeParam;
|
||||
private hasGoods: boolean = false; // 是否内含奖励
|
||||
private goods: RewardInter[] = []; // 发送的奖励
|
||||
private sendTime: number;
|
||||
@@ -109,7 +109,7 @@ export class SendMailFun {
|
||||
}
|
||||
|
||||
// 从GMMail表读取数据
|
||||
public async setWithGmMail(gmmail: GMMailType) {
|
||||
public async setWithGmMail(gmmail: GMMailTypeParam) {
|
||||
this.gmmail = gmmail;
|
||||
this.contentId = 0;
|
||||
if(gmmail.timeType == MAIL_TIME_TYPE.IMMEDIATE) {
|
||||
|
||||
Reference in New Issue
Block a user