红点:pvp推送
This commit is contained in:
@@ -34,6 +34,8 @@ import UserGuild, { UserGuildType } from '../db/UserGuild';
|
||||
import { setMedianCe } from './guildActivityService';
|
||||
import { getAllOnlineRoles } from './redisService';
|
||||
import Item from '../db/Item';
|
||||
import { PvpDefenseModel } from '../db/PvpDefense';
|
||||
import { findPvpDefAllByRoleId } from './pvpService';
|
||||
|
||||
export async function pushData(role: RoleType, session: FrontendOrBackendSession, pushType: 'entry'|'refresh' = 'entry') {
|
||||
try{
|
||||
@@ -92,8 +94,7 @@ export async function pushData(role: RoleType, session: FrontendOrBackendSession
|
||||
case 'dungeon': // 秘境
|
||||
return await getDungeonData(role);
|
||||
case 'pvp': // pvp
|
||||
const hasSeasonReward = await getPvpEntryData(roleId);
|
||||
return { hasSeasonReward }
|
||||
return await getPvpEntryData(roleId);
|
||||
case 'gacha':
|
||||
return await getGachaList(roleId);
|
||||
case 'school':
|
||||
@@ -175,7 +176,14 @@ async function getPvpEntryData(roleId: string) {
|
||||
|
||||
let { oldSeasonData, show} = pvpSeasonResult;
|
||||
// 旧赛季结算的时候,会在pvpSeasonResult表中存上一赛季的时间,并更新show字段
|
||||
return oldSeasonData.seasonEndTime <= nowSeconds() && show;
|
||||
let hasSeasonReward = oldSeasonData.seasonEndTime <= nowSeconds() && show;
|
||||
let pvpDefense = await PvpDefenseModel.findByRoleIdIncludeAll(roleId);
|
||||
if(pvpDefense) {
|
||||
let { pvpDefense, } = await findPvpDefAllByRoleId(roleId);
|
||||
let { challengeCnt, receivedBox, score } = pvpDefense;
|
||||
|
||||
return { hasSeasonReward, challengeCnt, score, receivedBox }
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -486,7 +486,7 @@ export async function findPvpDefAllByRoleId(roleId: string) {
|
||||
pvpDefense.challengeRefTime = challengeRefTime;
|
||||
}
|
||||
pvpDefense.seasonNum = seasonNum;
|
||||
let {challengeCnt, challengeRefTime} = refresh(pvpDefense.challengeCnt, pvpDefense.challengeRefTime, seasonNum);
|
||||
let {challengeCnt, challengeRefTime} = refresh(pvpDefense.challengeCnt, pvpDefense.challengeRefTime, seasonEndTime);
|
||||
let { refOppCnt, refOppTime, shouldRefOpp } = getRefOppCnt(pvpDefense.refOppCnt, pvpDefense.refOppTime); // 刷新次数
|
||||
if (challengeCnt != pvpDefense.challengeCnt || refOppCnt != pvpDefense.refOppCnt || shouldRefOpp) {
|
||||
let update: pvpUpdateInter = {
|
||||
|
||||
Reference in New Issue
Block a user