✨ feat(pvp): 巅峰演武战区化

This commit is contained in:
luying
2023-03-18 16:59:39 +08:00
parent da86251116
commit e52c7b5241
25 changed files with 341 additions and 191 deletions
@@ -29,6 +29,7 @@ import { PVPConfigModel } from '../../../db/PvpConfig';
import { getAllServerName, getServerName } from '../../../services/redisService';
import { RoleRankInfo } from '../../../domain/rank';
import { isHeroHidden } from '../../../services/dataService';
import { getPVPGroupIdOfServer } from '../../../services/serverService';
export default function (app: Application) {
new HandlerService(app, {});
@@ -42,6 +43,7 @@ export class PvpHandler {
//1获取主界面
async getData(msg: {}, session: BackendSession) {
let roleId = session.get('roleId');
let serverId = session.get('serverId');
let seasonNum: number = this.app.get('pvpSeasonNum');
let seasonStartTime: number = this.app.get('pvpSeasonStartTime');
@@ -90,8 +92,9 @@ export class PvpHandler {
result.setPvpSeasonResult(pvpSeasonResult);
await PvpSeasonResultModel.setShow(roleId);
}
// 拍卖
let r = new Rank(REDIS_KEY.PVP_RANK, { seasonNum });
// 排行榜
let groupId = await getPVPGroupIdOfServer(serverId);
let r = new Rank(REDIS_KEY.PVP_RANK, { seasonNum, groupId });
let myRank = await r.getMyRank({ roleId });//去redis中获取排名
result.setMyRank(myRank);
@@ -285,7 +288,8 @@ export class PvpHandler {
if(seasonNum == pvpSeasonNum) {
// 加入排行榜
let r = new Rank(REDIS_KEY.PVP_RANK, { seasonNum: pvpSeasonNum });
let groupId = await getPVPGroupIdOfServer(serverId);
let r = new Rank(REDIS_KEY.PVP_RANK, { seasonNum: pvpSeasonNum, groupId });
await r.setRankWithRoleInfo(roleId, pvpDefense.score, pvpDefense.updatedAt.getTime(), role);
let myRank = await r.getMyRank({ roleId });
result.setMyRank(myRank);
@@ -482,6 +486,7 @@ export class PvpHandler {
async getRank(msg: {}, session: BackendSession) {
let roleId = session.get('roleId');
let serverId = session.get('serverId');
let seasonNum: number = this.app.get('pvpSeasonNum');
if(checkPvpSeasonIsWaiting()) { // 休赛期
@@ -489,7 +494,8 @@ export class PvpHandler {
}
let serverNames = await getAllServerName();
let r = new Rank(REDIS_KEY.PVP_RANK, { seasonNum });
let groupId = await getPVPGroupIdOfServer(serverId);
let r = new Rank(REDIS_KEY.PVP_RANK, { seasonNum, groupId });
r.setGenerFieldsFun(function (param: RoleRankInfo) {
let { serverId } = param;
return { ...param, serverName: serverNames[serverId]||'无' };
@@ -557,7 +563,8 @@ export class PvpHandler {
}
heroes.sort((a, b) => b.score - a.score);
let seasonNum: number = this.app.get('pvpSeasonNum');
let r = new Rank(REDIS_KEY.PVP_RANK, { seasonNum });
let groupId = await getPVPGroupIdOfServer(serverId);
let r = new Rank(REDIS_KEY.PVP_RANK, { seasonNum, groupId });
let rank = await r.getMyRank({ roleId: oppoRoleId });//去redis中获取排名
result = new PlayerDetail(oppoRoleId, heroes, rank);
@@ -657,7 +664,8 @@ export class PvpHandler {
// 加入排行榜
let seasonNum: number = this.app.get('pvpSeasonNum');
let r = new Rank(REDIS_KEY.PVP_RANK, { seasonNum });
let groupId = await getPVPGroupIdOfServer(serverId);
let r = new Rank(REDIS_KEY.PVP_RANK, { seasonNum, groupId });
await r.setRankWithRoleInfo(roleId, pvpDefense.score, pvpDefense.updatedAt.getTime(), role);
// 任务