排行榜:旧数据完成
This commit is contained in:
@@ -8,7 +8,6 @@ import { resResult, genCode } from '../../../pubUtils/util';
|
||||
|
||||
import { PvpDefenseModel, OppPlayers } from '../../../db/PvpDefense';
|
||||
import { pvpEndParamInter } from '../../../pubUtils/interface';
|
||||
import { RankParam } from '../../../domain/rank';
|
||||
import { PlayerDetail, PlayerDetailHero } from '../../../domain/battleField/guild';
|
||||
import { PVP_HERO_POS, PVP_HERO_ORDER, REDIS_KEY, LINEUP_NUM } from '../../../consts';
|
||||
import { PVP } from '../../../pubUtils/dicParam';
|
||||
@@ -17,13 +16,13 @@ import { HeroModel } from '../../../db/Hero';
|
||||
import { checkBattleHeroesByHid } from '../../../services/normalBattleService';
|
||||
import { BattleRecordModel } from '../../../db/BattleRecord';
|
||||
import { PvpRecordModel } from '../../../db/PvpRecord';
|
||||
import { existsRank, getRank, setRank, getMyRank, initSingleRankWithServer } from '../../../services/redisService';
|
||||
import { handleCost } from '../../../services/rewardService';
|
||||
import { nowSeconds } from '../../../pubUtils/timeUtil';
|
||||
import { nowSeconds, getSeconds } from '../../../pubUtils/timeUtil';
|
||||
import { setPvpSeasonResult, resetPvpWarId, resetPvpSeasonTime } from '../../../services/timeTaskService';
|
||||
import { PvpSeasonResultModel } from '../../../db/PvpSeasonResult';
|
||||
import { PvpHistoryOppModel, PvpHistoryOppType } from '../../../db/PvpHistoryOpp';
|
||||
import { SystemConfigModel } from '../../../db/SystemConfig';
|
||||
import { Rank } from '../../../services/rankService';
|
||||
|
||||
export default function(app: Application) {
|
||||
return new PvpHandler(app);
|
||||
@@ -62,8 +61,8 @@ export class PvpHandler {
|
||||
const role = await RoleModel.findByRoleId(roleId);
|
||||
|
||||
// 加入排行榜
|
||||
let params = new RankParam(roleName, role.lv, role.vLv, role.head, role.frame, role.spine, role.title);
|
||||
await setRank(REDIS_KEY.PVP_RANK, 0, roleId, pvpDefense.score, pvpDefense.updatedAt.getTime(), params);
|
||||
let r = new Rank(REDIS_KEY.PVP_RANK, {});
|
||||
await r.setRankWithRoleInfo(roleId, pvpDefense.score, pvpDefense.updatedAt.getTime(), role);
|
||||
return resResult(STATUS.SUCCESS, {score, hisScore, heroScores});
|
||||
}
|
||||
|
||||
@@ -118,7 +117,8 @@ export class PvpHandler {
|
||||
}
|
||||
}
|
||||
|
||||
let myRank = await getMyRank(REDIS_KEY.PVP_RANK, 0, roleId);//去redis中获取排名
|
||||
let r = new Rank(REDIS_KEY.PVP_RANK, {});
|
||||
let myRank = await r.getMyRank(roleId);//去redis中获取排名
|
||||
|
||||
let data:any = {warId, seasonNum, seasonEndTime, myRank, oppPlayers, heroes: heroes.map(cur => {
|
||||
let {actorId, dataId, order} = cur;
|
||||
@@ -284,9 +284,9 @@ export class PvpHandler {
|
||||
let result = await getEnemies(pvpDefense.oppPlayers, pvpDefense.winStreakNum);
|
||||
|
||||
// 加入排行榜
|
||||
let params = new RankParam(roleName, role.lv, role.vLv, role.head, role.frame, role.spine,role.title);
|
||||
await setRank(REDIS_KEY.PVP_RANK, 0, roleId, pvpDefense.score, pvpDefense.updatedAt.getTime(), params);
|
||||
let myRank = await getMyRank(REDIS_KEY.PVP_RANK, 0, roleId);
|
||||
let r = new Rank(REDIS_KEY.PVP_RANK, {});
|
||||
await r.setRankWithRoleInfo(roleId, pvpDefense.score, pvpDefense.updatedAt.getTime(), role);
|
||||
let myRank = await r.getMyRank(roleId);
|
||||
|
||||
return resResult(STATUS.SUCCESS, {
|
||||
battleCode, isSuccess,
|
||||
@@ -387,24 +387,17 @@ export class PvpHandler {
|
||||
async getRank(msg: {}, session: BackendSession) {
|
||||
|
||||
let roleId = session.get('roleId');
|
||||
let roleName = session.get('roleName');
|
||||
let serverId = session.get('serverId')
|
||||
|
||||
const hasRank = await existsRank(REDIS_KEY.PVP_RANK, serverId);
|
||||
if(!hasRank) await initSingleRankWithServer(REDIS_KEY.PVP_RANK, serverId);
|
||||
|
||||
let {ranks, myRank} = await getRank(REDIS_KEY.PVP_RANK, 0, roleId);
|
||||
let r = new Rank(REDIS_KEY.PVP_RANK, {});
|
||||
let {ranks, myRank} = await r.getRankListWithMyRank(roleId);
|
||||
|
||||
if(!myRank) {
|
||||
let pvpDefense = await PvpDefenseModel.findByRoleId(roleId);
|
||||
let role = await RoleModel.findByRoleId(roleId);
|
||||
let { lv, vLv, head, frame, spine, title} = role;
|
||||
let rankRank = new RankParam(roleName, lv, vLv, head, frame, spine, title);
|
||||
myRank = {
|
||||
rank: 0, roleId, ...rankRank, num: pvpDefense.score, str: ''
|
||||
}
|
||||
|
||||
myRank = await r.generMyRankWithRole(roleId, pvpDefense.score, getSeconds(pvpDefense.refOppTime));
|
||||
}
|
||||
|
||||
return resResult(STATUS.SUCCESS, { ranks: ranks.slice(0, 100), myRank });
|
||||
return resResult(STATUS.SUCCESS, { ranks, myRank });
|
||||
}
|
||||
|
||||
async getPlayerDetail(msg: { roleId: string }, session: BackendSession) {
|
||||
@@ -448,7 +441,8 @@ export class PvpHandler {
|
||||
});
|
||||
}
|
||||
heroes.sort((a, b) => b.score - a.score);
|
||||
let rank = await getMyRank(REDIS_KEY.PVP_RANK, 0, oppoRoleId);//去redis中获取排名
|
||||
let r = new Rank(REDIS_KEY.PVP_RANK, {});
|
||||
let rank = await r.getMyRank(oppoRoleId);//去redis中获取排名
|
||||
|
||||
result = new PlayerDetail({...role, ...pvpDefense, heroes, rank});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user