名将擂台:超时推送逻辑修改

This commit is contained in:
luying
2022-07-20 09:33:31 +08:00
parent c49dac5234
commit 019d4913d7
4 changed files with 32 additions and 18 deletions
@@ -212,7 +212,7 @@ export class LadderHandler {
await BattleRecordModel.updateBattleRecordByCode(battleCode, { $set: { status: isSuccess? 1: 2 } });
let historyRank = ladderData.historyRank;
ladderData = await LadderMatchModel.updateByRoleId(roleId, { historyRank: (historyRank > rank || historyRank == 0)? rank: historyRank });
ladderData = await LadderMatchModel.updateByRoleId(roleId, { historyRank: (historyRank > atkLadderMatch.rank || historyRank == 0)? atkLadderMatch.rank: historyRank });
result.setLadderData(ladderData, rec);
// 获取奖励
+15 -11
View File
@@ -267,19 +267,23 @@ function calculateDefCeByDefense(defense: LadderDefense) {
return ce;
}
export async function ladderTimeout(battleCode: string, status: LADDER_STATUS) {
let rec = await LadderMatchRecModel.findByBattleCode(battleCode);
if(status == LADDER_STATUS.CHECK) {
await sendMessageToUserWithSuc(rec.roleId1, PUSH_ROUTE.LADDER_CHECK_STOP, { battleCode });
} else if (status == LADDER_STATUS.BATTLE) {
export async function ladderTimeWillout(battleCode: string, status: LADDER_STATUS) {
console.log('######### ladderTimeWillout')
if (status == LADDER_STATUS.BATTLE) {
let rec = await LadderMatchRecModel.findByBattleCode(battleCode);
await sendMessageToUserWithSuc(rec.roleId1, PUSH_ROUTE.LADDER_BATTLE_STOP, { battleCode });
}
}
setTimeout(async () => {
let rec = await LadderMatchRecModel.timeout(battleCode);
// console.log('##### rec.defenseInfo', rec.defenseInfo, rec.defenseInfo.isRobot, rec.defenseInfo.roleId)
if(rec.defenseInfo && !rec.defenseInfo.isRobot) await LadderMatchModel.unlock(rec.serverId, rec.defenseInfo.roleId);
}, LADDER_SERVER_GAP_TIME * 1000);
export async function ladderTimeout(battleCode: string, status: LADDER_STATUS) {
console.log('######### ladderTimeout')
let rec = await LadderMatchRecModel.timeout(battleCode);
// console.log('##### rec.defenseInfo', rec.defenseInfo, rec.defenseInfo.isRobot, rec.defenseInfo.roleId)
if(rec.defenseInfo && !rec.defenseInfo.isRobot) await LadderMatchModel.unlock(rec.serverId, rec.defenseInfo.roleId);
if(status == LADDER_STATUS.CHECK) {
await sendMessageToUserWithSuc(rec.roleId1, PUSH_ROUTE.LADDER_CHECK_STOP, { battleCode });
}
}
/**
@@ -338,7 +342,7 @@ export function completeLadderRanks(ranks: RoleAndGuildRankInfo[]) {
result.push(rank);
} else {
let rank = new RoleAndGuildRankInfo(i, 0);
rank.setByField(`robot${i}`, LADDER.LADDER_ROBOT_NAME, head, EXTERIOR.EXTERIOR_FACECASE, spine, level, 1, '', ce );
rank.setByField(`robot${i}`, LADDER.LADDER_ROBOT_NAME, head, EXTERIOR.EXTERIOR_FACECASE, spine, level, 1, '', ce, ce );
result.push(rank);
}
}
+8 -2
View File
@@ -39,7 +39,7 @@ import { resResult } from '../pubUtils/util';
import { checkPopUpConditionWhenGuildActivityEnd } from './activity/popUpShopService';
import { pushRefreshTime } from './connectorService';
import { sendUnReceivedActivityDailyCoin } from './activity/dailyCoinService';
import { ladderTimeout, sendLadderDailyReward } from './ladderService';
import { ladderTimeout, ladderTimeWillout, sendLadderDailyReward } from './ladderService';
import { clearLadderLock } from './ladderService';
const PER_SECOND = 1 * 1000;
@@ -748,7 +748,13 @@ export async function setLadderCountDown(battleCode: string, time: number, statu
}
let endTime = time + (status == LADDER_STATUS.CHECK? LADDER.LADDER_BATTLE_PREPARE_COUNTDOWN: LADDER.LADDER_BATTLE_COUNTDOWN);
scheduleJob(`ladder${battleCode}`, endTime * 1000, async () => {
await ladderTimeout(battleCode, status);
await ladderTimeWillout(battleCode, status);
scheduledJobs[`ladder${battleCode}`].cancel();
scheduleJob(`ladder${battleCode}`, endTime * 1000 + LADDER_SERVER_GAP_TIME * 1000, async () => {
await ladderTimeout(battleCode, status);
scheduledJobs[`ladder${battleCode}`].cancel();
});
})
}