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

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 } }); await BattleRecordModel.updateBattleRecordByCode(battleCode, { $set: { status: isSuccess? 1: 2 } });
let historyRank = ladderData.historyRank; 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); result.setLadderData(ladderData, rec);
// 获取奖励 // 获取奖励
+15 -11
View File
@@ -267,19 +267,23 @@ function calculateDefCeByDefense(defense: LadderDefense) {
return ce; return ce;
} }
export async function ladderTimeout(battleCode: string, status: LADDER_STATUS) { export async function ladderTimeWillout(battleCode: string, status: LADDER_STATUS) {
let rec = await LadderMatchRecModel.findByBattleCode(battleCode); console.log('######### ladderTimeWillout')
if(status == LADDER_STATUS.CHECK) { if (status == LADDER_STATUS.BATTLE) {
await sendMessageToUserWithSuc(rec.roleId1, PUSH_ROUTE.LADDER_CHECK_STOP, { battleCode }); let rec = await LadderMatchRecModel.findByBattleCode(battleCode);
} else if (status == LADDER_STATUS.BATTLE) {
await sendMessageToUserWithSuc(rec.roleId1, PUSH_ROUTE.LADDER_BATTLE_STOP, { battleCode }); await sendMessageToUserWithSuc(rec.roleId1, PUSH_ROUTE.LADDER_BATTLE_STOP, { battleCode });
} }
}
setTimeout(async () => { export async function ladderTimeout(battleCode: string, status: LADDER_STATUS) {
let rec = await LadderMatchRecModel.timeout(battleCode); console.log('######### ladderTimeout')
// console.log('##### rec.defenseInfo', rec.defenseInfo, rec.defenseInfo.isRobot, rec.defenseInfo.roleId) let rec = await LadderMatchRecModel.timeout(battleCode);
if(rec.defenseInfo && !rec.defenseInfo.isRobot) await LadderMatchModel.unlock(rec.serverId, rec.defenseInfo.roleId); // console.log('##### rec.defenseInfo', rec.defenseInfo, rec.defenseInfo.isRobot, rec.defenseInfo.roleId)
}, LADDER_SERVER_GAP_TIME * 1000); 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); result.push(rank);
} else { } else {
let rank = new RoleAndGuildRankInfo(i, 0); 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); result.push(rank);
} }
} }
+8 -2
View File
@@ -39,7 +39,7 @@ import { resResult } from '../pubUtils/util';
import { checkPopUpConditionWhenGuildActivityEnd } from './activity/popUpShopService'; import { checkPopUpConditionWhenGuildActivityEnd } from './activity/popUpShopService';
import { pushRefreshTime } from './connectorService'; import { pushRefreshTime } from './connectorService';
import { sendUnReceivedActivityDailyCoin } from './activity/dailyCoinService'; import { sendUnReceivedActivityDailyCoin } from './activity/dailyCoinService';
import { ladderTimeout, sendLadderDailyReward } from './ladderService'; import { ladderTimeout, ladderTimeWillout, sendLadderDailyReward } from './ladderService';
import { clearLadderLock } from './ladderService'; import { clearLadderLock } from './ladderService';
const PER_SECOND = 1 * 1000; 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); let endTime = time + (status == LADDER_STATUS.CHECK? LADDER.LADDER_BATTLE_PREPARE_COUNTDOWN: LADDER.LADDER_BATTLE_COUNTDOWN);
scheduleJob(`ladder${battleCode}`, endTime * 1000, async () => { 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();
});
}) })
} }
+8 -4
View File
@@ -33,6 +33,9 @@ export class RankParam {
@prop({ required: true }) @prop({ required: true })
ce: number = 0; ce: number = 0;
@prop({ required: true })
topLineupCe: number = 0;
@prop({ required: true }) @prop({ required: true })
updatedAt?: number = 0; updatedAt?: number = 0;
@@ -45,6 +48,7 @@ export class RankParam {
if(role.title) this.title = role.title; if(role.title) this.title = role.title;
if(role.guildName) this.guildName = role.guildName||""; if(role.guildName) this.guildName = role.guildName||"";
if(role.ce) this.ce = role.ce; if(role.ce) this.ce = role.ce;
if(role.topLineupCe) this.topLineupCe = role.topLineupCe;
if(role.updatedAt) { if(role.updatedAt) {
if(typeof role.updatedAt == 'number') { if(typeof role.updatedAt == 'number') {
this.updatedAt = role.updatedAt; this.updatedAt = role.updatedAt;
@@ -225,7 +229,7 @@ export class RoleAndGuildRankInfo {
} }
setUserInfo(role: RoleRankInfo) { setUserInfo(role: RoleRankInfo) {
this.userInfo = pick(role, ['roleId', 'roleName', 'head', 'frame', 'spine', 'lv', 'title', 'guildName', 'ce']); this.userInfo = pick(role, ['roleId', 'roleName', 'head', 'frame', 'spine', 'lv', 'title', 'guildName', 'ce', 'topLineupCe']);
this.lineup = role.lineup; this.lineup = role.lineup;
} }
@@ -244,8 +248,8 @@ export class RoleAndGuildRankInfo {
return false; return false;
} }
setByField(roleId: string, roleName: string, head: number, frame: number, spine: number, lv: number, title: number, guildName: string, ce: number) { setByField(roleId: string, roleName: string, head: number, frame: number, spine: number, lv: number, title: number, guildName: string, ce: number, topLineupCe: number) {
this.userInfo = { roleId, roleName, head, frame, spine, lv, title, guildName, ce } this.userInfo = { roleId, roleName, head, frame, spine, lv, title, guildName, ce, topLineupCe }
} }
} }
@@ -386,7 +390,7 @@ export class GeneralRankParam {
this.type = type; this.type = type;
if(general == 1) { if(general == 1) {
if(rankInfo instanceof RoleRankInfo) { if(rankInfo instanceof RoleRankInfo) {
this.userInfo = pick(rankInfo, ['roleId', 'roleName', 'head', 'frame', 'spine', 'guildName', 'ce', 'title', 'lv']); this.userInfo = pick(rankInfo, ['roleId', 'roleName', 'head', 'frame', 'spine', 'guildName', 'ce', 'title', 'lv', 'topLineupCe']);
} }
} }
this.num = rankInfo.num; this.num = rankInfo.num;