拍卖行:修复分红补发定时任务

This commit is contained in:
luying
2022-05-28 05:00:38 +08:00
parent 756b387eea
commit 48f3b96782
5 changed files with 26 additions and 19 deletions
@@ -14,7 +14,7 @@ import { rmRoleFromQueue, roleLeave, getRoleOnlineInfo, roleLogin } from '../../
import { addRoleToGuildChannel, addRoleToSysChannel, addRoleToWorldChannel, leaveGuildAuctionChannel, leaveGuildChannel, leaveSysChannel, leaveWorldAuctionChannel, leaveWorldChannel, recentGuildMsgs, recentPrivateChatInfos, recentSysMsgs, recentWorldMsgs } from '../../../services/chatService'; import { addRoleToGuildChannel, addRoleToSysChannel, addRoleToWorldChannel, leaveGuildAuctionChannel, leaveGuildChannel, leaveSysChannel, leaveWorldAuctionChannel, leaveWorldChannel, recentGuildMsgs, recentPrivateChatInfos, recentSysMsgs, recentWorldMsgs } from '../../../services/chatService';
import { reportOneOnline, savePlayTime } from '../../../services/authenticateService'; import { reportOneOnline, savePlayTime } from '../../../services/authenticateService';
import { checkTaskInEntry, } from '../../../services/task/taskService'; import { checkTaskInEntry, } from '../../../services/task/taskService';
import { pushData, everydayRefresh, kickUser, getModuleData } from '../../../services/connectorService'; import { pushData, kickUser, getModuleData } from '../../../services/connectorService';
// import { setComBtlOnUserLeave } from '../../../services/comBattleService'; // import { setComBtlOnUserLeave } from '../../../services/comBattleService';
import Counter from '../../../db/Counter'; import Counter from '../../../db/Counter';
import { getExpByLv } from '../../../pubUtils/data'; import { getExpByLv } from '../../../pubUtils/data';
@@ -153,9 +153,15 @@ export class AuctionHandler {
async checkDividend(msg: {}, session: BackendSession) { async checkDividend(msg: {}, session: BackendSession) {
const begin = await todayGuildBegin(); const begin = await todayGuildBegin();
const guildCode = session.get('guildCode'); const guildCode = session.get('guildCode');
if (!guildCode) return resResult(STATUS.GUILD_NOT_FOUND); if(guildCode) {
const dividends = await DividendModel.findGuildDividendsByBegin(guildCode, begin); const dividends = await DividendModel.findGuildDividendsByBegin(guildCode, begin);
return resResult(STATUS.SUCCESS, { dividends: processDividendFormat(dividends) }); return resResult(STATUS.SUCCESS, { dividends: processDividendFormat(dividends) });
} else {
let roleId = session.get('roleId');
const dividends = await DividendModel.findDividendByRoleAndBegin(roleId, begin);
return resResult(STATUS.SUCCESS, { dividends: processDividendFormat(dividends) });
}
} }
async getDividend(msg: { code: string }, session: BackendSession) { async getDividend(msg: { code: string }, session: BackendSession) {
+2 -7
View File
@@ -30,7 +30,7 @@ import { getEvent } from './eventSercive';
import { getBattleListOfMain, getMainChapter } from './normalBattleService'; import { getBattleListOfMain, getMainChapter } from './normalBattleService';
import { GuildModel, GuildType } from '../db/Guild'; import { GuildModel, GuildType } from '../db/Guild';
import UserGuild, { UserGuildType } from '../db/UserGuild'; import UserGuild, { UserGuildType } from '../db/UserGuild';
import { setPreDayActiveData, getAllGuildActivityStatus } from './guildActivity/guildActivityService'; import { getAllGuildActivityStatus } from './guildActivity/guildActivityService';
import { getAllOnlineRoles, getAllServers } from './redisService'; import { getAllOnlineRoles, getAllServers } from './redisService';
import Item, { ItemModel } from '../db/Item'; import Item, { ItemModel } from '../db/Item';
import { PvpDefenseModel } from '../db/PvpDefense'; import { PvpDefenseModel } from '../db/PvpDefense';
@@ -284,12 +284,7 @@ async function getGuildEntryData(role: RoleType, sid: string, session: FrontendO
return { hasGuild: false } return { hasGuild: false }
} }
export async function everydayRefresh() { export async function pushRefreshTime() {
pushRefreshTime();
setPreDayActiveData();
}
async function pushRefreshTime() {
let todayZeroPoint = getZeroPoint(); let todayZeroPoint = getZeroPoint();
await sendMessageToAllWithSuc(PUSH_ROUTE.REFRESH_TIME, { todayZeroPoint }); await sendMessageToAllWithSuc(PUSH_ROUTE.REFRESH_TIME, { todayZeroPoint });
} }
+10 -8
View File
@@ -9,11 +9,10 @@ import { GUILD_ACTIVITY_TYPE, REFRESH_TIME, COUNTER, AUCTION_TIME, GM_MAIL_TYPE,
import { pinus } from 'pinus'; import { pinus } from 'pinus';
import { settleGuildWeekly } from './guildService'; import { settleGuildWeekly } from './guildService';
import { SendMailFun, sendMailsByGmMail, } from './mailService'; import { SendMailFun, sendMailsByGmMail, } from './mailService';
import { sendEndMsgToAllServer, autoDeclare, sendGuildActivityStatus } from './guildActivity/guildActivityService'; import { sendEndMsgToAllServer, autoDeclare, sendGuildActivityStatus, setPreDayActiveData } from './guildActivity/guildActivityService';
import { sendUngotDividendJob, startGuildAuction, startWorldAuction, stopAuction } from './auctionService'; import { sendUngotDividendJob, startGuildAuction, startWorldAuction, stopAuction } from './auctionService';
import { DicGuildActivity } from '../pubUtils/dictionary/DicGuildActivity'; import { DicGuildActivity } from '../pubUtils/dictionary/DicGuildActivity';
import { dispatch } from '../pubUtils/dispatcher'; import { dispatch } from '../pubUtils/dispatcher';
import { everydayRefresh } from './connectorService';
import { createNewServer, initMarquee } from './gmService'; import { createNewServer, initMarquee } from './gmService';
import moment = require('moment'); import moment = require('moment');
import { CounterModel } from '../db/Counter'; import { CounterModel } from '../db/Counter';
@@ -38,6 +37,7 @@ import { ActivityGroupModel } from '../db/ActivityGroup';
import { sendMessageToServer } from './pushService'; import { sendMessageToServer } from './pushService';
import { resResult } from '../pubUtils/util'; import { resResult } from '../pubUtils/util';
import { checkPopUpConditionWhenGuildActivityEnd } from './activity/popUpShopService'; import { checkPopUpConditionWhenGuildActivityEnd } from './activity/popUpShopService';
import { pushRefreshTime } from './connectorService';
const PER_SECOND = 1 * 1000; const PER_SECOND = 1 * 1000;
const PER_DAY = 24 * 60 * 60; const PER_DAY = 24 * 60 * 60;
@@ -97,6 +97,14 @@ export async function init() {
await initTimeLimitRank(); await initTimeLimitRank();
} }
// 每日刷新
export async function everydayRefresh() {
pushRefreshTime();
setPreDayActiveData();
sendUngotDividendJob();
}
// —————————————— PVP 及赛季相关 —————————————— // // —————————————— PVP 及赛季相关 —————————————— //
function getSeasonContinueDay(seasonNum: number) { function getSeasonContinueDay(seasonNum: number) {
const pvpSeasonDuring = PVP.PVP_SEASON_DAYS.split('|').map(cur => { const pvpSeasonDuring = PVP.PVP_SEASON_DAYS.split('|').map(cur => {
@@ -376,7 +384,6 @@ export async function raceActivitySeconds() {
let startGuildAuctionJobId: Job; let startGuildAuctionJobId: Job;
let startWorldAuctionJobId: Job; let startWorldAuctionJobId: Job;
let stopAuctionJobId: Job; let stopAuctionJobId: Job;
let sendUngotDividendJobId: Job;
export async function auctionSchedule() { export async function auctionSchedule() {
clearAuctionSchedule(); clearAuctionSchedule();
@@ -390,7 +397,6 @@ export async function auctionSchedule() {
startGuildAuctionJobId = scheduleJob('startGuildAuction', `${guildOpen.seconds} ${guildOpen.minute} ${guildOpen.hour} * * ?`, startGuildAuction); startGuildAuctionJobId = scheduleJob('startGuildAuction', `${guildOpen.seconds} ${guildOpen.minute} ${guildOpen.hour} * * ?`, startGuildAuction);
startWorldAuctionJobId = scheduleJob('startWorldAuction', `${worldOpen.seconds} ${worldOpen.minute} ${worldOpen.hour} * * ?`, startWorldAuction); startWorldAuctionJobId = scheduleJob('startWorldAuction', `${worldOpen.seconds} ${worldOpen.minute} ${worldOpen.hour} * * ?`, startWorldAuction);
stopAuctionJobId = scheduleJob('stopAuction', `${worldClose.seconds} ${worldClose.minute} ${worldClose.hour} * * ?`, stopAuction); stopAuctionJobId = scheduleJob('stopAuction', `${worldClose.seconds} ${worldClose.minute} ${worldClose.hour} * * ?`, stopAuction);
sendUngotDividendJobId = scheduleJob('sendUngotDividendJob', '0 0 5 00 * ?', sendUngotDividendJob);
} }
@@ -407,10 +413,6 @@ function clearAuctionSchedule() {
stopAuctionJobId.cancel(); stopAuctionJobId.cancel();
stopAuctionJobId = undefined; stopAuctionJobId = undefined;
} }
if (sendUngotDividendJobId) {
sendUngotDividendJobId.cancel();
sendUngotDividendJobId = undefined;
}
} }
// —————————————— 拍卖行 end —————————————— // // —————————————— 拍卖行 end —————————————— //
+4
View File
@@ -56,6 +56,10 @@ export default class Dividend extends BaseModel {
return results; return results;
} }
public static async findDividendByRoleAndBegin(roleId: string, begin: Date) {
const results = await DividendModel.find({ 'dividends.roleId': roleId, begin }).select('-_id -__v').lean();
return results;
}
public static async findDividendsByBegin(begin: Date) { public static async findDividendsByBegin(begin: Date) {
const results = await DividendModel.find({ begin }).select('-_id -__v').lean(); const results = await DividendModel.find({ begin }).select('-_id -__v').lean();
return results; return results;