名将擂台:超时推送逻辑修改
This commit is contained in:
@@ -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);
|
||||
// 获取奖励
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
});
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
@@ -33,6 +33,9 @@ export class RankParam {
|
||||
@prop({ required: true })
|
||||
ce: number = 0;
|
||||
|
||||
@prop({ required: true })
|
||||
topLineupCe: number = 0;
|
||||
|
||||
@prop({ required: true })
|
||||
updatedAt?: number = 0;
|
||||
|
||||
@@ -45,6 +48,7 @@ export class RankParam {
|
||||
if(role.title) this.title = role.title;
|
||||
if(role.guildName) this.guildName = role.guildName||"";
|
||||
if(role.ce) this.ce = role.ce;
|
||||
if(role.topLineupCe) this.topLineupCe = role.topLineupCe;
|
||||
if(role.updatedAt) {
|
||||
if(typeof role.updatedAt == 'number') {
|
||||
this.updatedAt = role.updatedAt;
|
||||
@@ -225,7 +229,7 @@ export class RoleAndGuildRankInfo {
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
@@ -244,8 +248,8 @@ export class RoleAndGuildRankInfo {
|
||||
return false;
|
||||
}
|
||||
|
||||
setByField(roleId: string, roleName: string, head: number, frame: number, spine: number, lv: number, title: number, guildName: string, ce: number) {
|
||||
this.userInfo = { roleId, roleName, head, frame, spine, lv, title, guildName, ce }
|
||||
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, topLineupCe }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -386,7 +390,7 @@ export class GeneralRankParam {
|
||||
this.type = type;
|
||||
if(general == 1) {
|
||||
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;
|
||||
|
||||
Reference in New Issue
Block a user