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

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

View File

@@ -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 { reportOneOnline, savePlayTime } from '../../../services/authenticateService';
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 Counter from '../../../db/Counter';
import { getExpByLv } from '../../../pubUtils/data';

View File

@@ -153,9 +153,15 @@ export class AuctionHandler {
async checkDividend(msg: {}, session: BackendSession) {
const begin = await todayGuildBegin();
const guildCode = session.get('guildCode');
if (!guildCode) return resResult(STATUS.GUILD_NOT_FOUND);
const dividends = await DividendModel.findGuildDividendsByBegin(guildCode, begin);
return resResult(STATUS.SUCCESS, { dividends: processDividendFormat(dividends) });
if(guildCode) {
const dividends = await DividendModel.findGuildDividendsByBegin(guildCode, begin);
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) {

View File

@@ -30,7 +30,7 @@ import { getEvent } from './eventSercive';
import { getBattleListOfMain, getMainChapter } from './normalBattleService';
import { GuildModel, GuildType } from '../db/Guild';
import UserGuild, { UserGuildType } from '../db/UserGuild';
import { setPreDayActiveData, getAllGuildActivityStatus } from './guildActivity/guildActivityService';
import { getAllGuildActivityStatus } from './guildActivity/guildActivityService';
import { getAllOnlineRoles, getAllServers } from './redisService';
import Item, { ItemModel } from '../db/Item';
import { PvpDefenseModel } from '../db/PvpDefense';
@@ -284,12 +284,7 @@ async function getGuildEntryData(role: RoleType, sid: string, session: FrontendO
return { hasGuild: false }
}
export async function everydayRefresh() {
pushRefreshTime();
setPreDayActiveData();
}
async function pushRefreshTime() {
export async function pushRefreshTime() {
let todayZeroPoint = getZeroPoint();
await sendMessageToAllWithSuc(PUSH_ROUTE.REFRESH_TIME, { todayZeroPoint });
}

View File

@@ -9,11 +9,10 @@ import { GUILD_ACTIVITY_TYPE, REFRESH_TIME, COUNTER, AUCTION_TIME, GM_MAIL_TYPE,
import { pinus } from 'pinus';
import { settleGuildWeekly } from './guildService';
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 { DicGuildActivity } from '../pubUtils/dictionary/DicGuildActivity';
import { dispatch } from '../pubUtils/dispatcher';
import { everydayRefresh } from './connectorService';
import { createNewServer, initMarquee } from './gmService';
import moment = require('moment');
import { CounterModel } from '../db/Counter';
@@ -38,6 +37,7 @@ import { ActivityGroupModel } from '../db/ActivityGroup';
import { sendMessageToServer } from './pushService';
import { resResult } from '../pubUtils/util';
import { checkPopUpConditionWhenGuildActivityEnd } from './activity/popUpShopService';
import { pushRefreshTime } from './connectorService';
const PER_SECOND = 1 * 1000;
const PER_DAY = 24 * 60 * 60;
@@ -97,6 +97,14 @@ export async function init() {
await initTimeLimitRank();
}
// 每日刷新
export async function everydayRefresh() {
pushRefreshTime();
setPreDayActiveData();
sendUngotDividendJob();
}
// —————————————— PVP 及赛季相关 —————————————— //
function getSeasonContinueDay(seasonNum: number) {
const pvpSeasonDuring = PVP.PVP_SEASON_DAYS.split('|').map(cur => {
@@ -376,7 +384,6 @@ export async function raceActivitySeconds() {
let startGuildAuctionJobId: Job;
let startWorldAuctionJobId: Job;
let stopAuctionJobId: Job;
let sendUngotDividendJobId: Job;
export async function auctionSchedule() {
clearAuctionSchedule();
@@ -390,7 +397,6 @@ export async function auctionSchedule() {
startGuildAuctionJobId = scheduleJob('startGuildAuction', `${guildOpen.seconds} ${guildOpen.minute} ${guildOpen.hour} * * ?`, startGuildAuction);
startWorldAuctionJobId = scheduleJob('startWorldAuction', `${worldOpen.seconds} ${worldOpen.minute} ${worldOpen.hour} * * ?`, startWorldAuction);
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 = undefined;
}
if (sendUngotDividendJobId) {
sendUngotDividendJobId.cancel();
sendUngotDividendJobId = undefined;
}
}
// —————————————— 拍卖行 end —————————————— //

View File

@@ -56,6 +56,10 @@ export default class Dividend extends BaseModel {
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) {
const results = await DividendModel.find({ begin }).select('-_id -__v').lean();
return results;