diff --git a/game-server/app/servers/connector/handler/entryHandler.ts b/game-server/app/servers/connector/handler/entryHandler.ts index 6a7827c46..60c489c23 100644 --- a/game-server/app/servers/connector/handler/entryHandler.ts +++ b/game-server/app/servers/connector/handler/entryHandler.ts @@ -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'; diff --git a/game-server/app/servers/guild/handler/auctionHandler.ts b/game-server/app/servers/guild/handler/auctionHandler.ts index 421837ec9..2d2e70319 100644 --- a/game-server/app/servers/guild/handler/auctionHandler.ts +++ b/game-server/app/servers/guild/handler/auctionHandler.ts @@ -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) { diff --git a/game-server/app/services/connectorService.ts b/game-server/app/services/connectorService.ts index ec1817114..f69cc19be 100644 --- a/game-server/app/services/connectorService.ts +++ b/game-server/app/services/connectorService.ts @@ -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 }); } diff --git a/game-server/app/services/timeTaskService.ts b/game-server/app/services/timeTaskService.ts index 8ab6b95eb..080789c4c 100644 --- a/game-server/app/services/timeTaskService.ts +++ b/game-server/app/services/timeTaskService.ts @@ -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 —————————————— // diff --git a/shared/db/Dividend.ts b/shared/db/Dividend.ts index 0da40cd7d..ff8f643c3 100644 --- a/shared/db/Dividend.ts +++ b/shared/db/Dividend.ts @@ -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;