init
This commit is contained in:
@@ -1,80 +1,81 @@
|
||||
import { Application, BackendSession, ChannelService, HandlerService } from "pinus";
|
||||
import { STATUS, TEAM_TYPE } from "../../../consts";
|
||||
import { gameData } from "../../../pubUtils/data";
|
||||
import { resResult } from "../../../pubUtils/util";
|
||||
import { PVPConfigModel } from "../../../db/PvpConfig";
|
||||
import { PvpSaveDataModel } from "../../../db/PvpSaveData";
|
||||
import { LadderMatchModel } from "../../../db/LadderMatch";
|
||||
import { GVGVestigeRankModel } from "../../../db/GVGVestigeRank";
|
||||
import { GVGTeamModel } from "../../../db/GVGTeam";
|
||||
import { PvpDefenseModel } from "../../../db/PvpDefense";
|
||||
|
||||
|
||||
|
||||
export default function (app: Application) {
|
||||
new HandlerService(app, {});
|
||||
return new TeamHandler(app);
|
||||
}
|
||||
|
||||
export class TeamHandler {
|
||||
channelService: ChannelService;
|
||||
constructor(private app: Application) {
|
||||
}
|
||||
|
||||
// 获取每个编队里的武将
|
||||
async getTeamHeroes(msg: { }, session: BackendSession) {
|
||||
const roleId = session.get('roleId');
|
||||
|
||||
const teams: { type: number, heroes: number[] }[] = [];
|
||||
|
||||
let pvpConfig = await PVPConfigModel.findCurPVPConfig();
|
||||
if(pvpConfig) {
|
||||
let saveDatas = await PvpSaveDataModel.findByRoleId(roleId);
|
||||
let heroes: number[] = [];
|
||||
for(let warId of (pvpConfig.warIds||[])) {
|
||||
let dicWar = gameData.war.get(warId);
|
||||
if(dicWar && dicWar.selectView == 1) {
|
||||
let curSaveData = saveDatas.find(cur => cur.warId == warId);
|
||||
let defenseHeroes = curSaveData?.heroes||[];
|
||||
for(let { actorId } of defenseHeroes) heroes.push(actorId);
|
||||
}
|
||||
}
|
||||
let pvpDefense = await PvpDefenseModel.findByRoleId(roleId);
|
||||
if(pvpDefense && pvpDefense.attack) {
|
||||
let attackHeroes = pvpDefense.attack.heroes||[];
|
||||
for(let { actorId } of attackHeroes) heroes.push(actorId);
|
||||
}
|
||||
|
||||
teams.push({ type: TEAM_TYPE.PVP, heroes });
|
||||
}
|
||||
|
||||
let ladderData = await LadderMatchModel.findByRoleId(roleId);
|
||||
if(ladderData && ladderData.defense) {
|
||||
let heroes: number[] = [];
|
||||
let defenseHeroes = ladderData.defense?.heroes||[];
|
||||
for(let { actorId } of defenseHeroes) heroes.push(actorId);
|
||||
teams.push({ type: TEAM_TYPE.LADDER, heroes });
|
||||
}
|
||||
|
||||
let vestigeData = await GVGVestigeRankModel.findAllByRole(roleId);
|
||||
if(vestigeData) {
|
||||
let heroes: number[] = [];
|
||||
for(let { lineup = [] } of vestigeData) {
|
||||
for(let { actorId } of lineup) heroes.push(actorId);
|
||||
}
|
||||
teams.push({ type: TEAM_TYPE.VESTIGE, heroes });
|
||||
}
|
||||
|
||||
let gvgBattleTeams = await GVGTeamModel.findByRole(roleId, '-_id lineup');
|
||||
if(gvgBattleTeams) {
|
||||
let heroes: number[] = [];
|
||||
for(let { lineup = [] } of gvgBattleTeams) {
|
||||
for(let { actorId } of lineup) heroes.push(actorId);
|
||||
}
|
||||
teams.push({ type: TEAM_TYPE.GVG_BATTLE, heroes });
|
||||
}
|
||||
|
||||
|
||||
return resResult(STATUS.SUCCESS, { teams });
|
||||
}
|
||||
}
|
||||
import { Application, BackendSession, ChannelService, HandlerService } from "pinus";
|
||||
import { STATUS, TEAM_TYPE } from "../../../consts";
|
||||
import { gameData } from "@pubUtils/data";
|
||||
import { resResult } from "@pubUtils/util";
|
||||
import { PVPConfigModel } from "@db/PvpConfig";
|
||||
import { PvpSaveDataModel } from "@db/PvpSaveData";
|
||||
import { LadderMatchModel } from "@db/LadderMatch";
|
||||
import { GVGVestigeRankModel } from "@db/GVGVestigeRank";
|
||||
import { GVGTeamModel } from "@db/GVGTeam";
|
||||
import { PvpDefenseModel } from "@db/PvpDefense";
|
||||
|
||||
|
||||
|
||||
export default function (app: Application) {
|
||||
new HandlerService(app, {});
|
||||
return new TeamHandler(app);
|
||||
}
|
||||
|
||||
export class TeamHandler {
|
||||
channelService: ChannelService;
|
||||
constructor(private app: Application) {
|
||||
}
|
||||
|
||||
// 获取每个编队里的武将
|
||||
async getTeamHeroes(msg: { }, session: BackendSession) {
|
||||
const roleId = session.get('roleId');
|
||||
|
||||
const teams: { type: number, heroes: number[] }[] = [];
|
||||
|
||||
let pvpConfig = await PVPConfigModel.findCurPVPConfig();
|
||||
if(pvpConfig) {
|
||||
let saveDatas = await PvpSaveDataModel.findByRoleId(roleId);
|
||||
let heroes: number[] = [];
|
||||
for(let warId of (pvpConfig.warIds||[])) {
|
||||
let dicWar = gameData.war.get(warId);
|
||||
if(dicWar && dicWar.selectView == 1) {
|
||||
let curSaveData = saveDatas.find(cur => cur.warId == warId);
|
||||
let defenseHeroes = curSaveData?.heroes||[];
|
||||
for(let { actorId } of defenseHeroes) heroes.push(actorId);
|
||||
}
|
||||
}
|
||||
let pvpDefense = await PvpDefenseModel.findByRoleId(roleId);
|
||||
if(pvpDefense && pvpDefense.attack) {
|
||||
let attackHeroes = pvpDefense.attack.heroes||[];
|
||||
for(let { actorId } of attackHeroes) heroes.push(actorId);
|
||||
}
|
||||
|
||||
teams.push({ type: TEAM_TYPE.PVP, heroes });
|
||||
}
|
||||
|
||||
let ladderData = await LadderMatchModel.findByRoleId(roleId);
|
||||
if(ladderData && ladderData.defense) {
|
||||
let heroes: number[] = [];
|
||||
let defenseHeroes = ladderData.defense?.heroes||[];
|
||||
for(let { actorId } of defenseHeroes) heroes.push(actorId);
|
||||
teams.push({ type: TEAM_TYPE.LADDER, heroes });
|
||||
}
|
||||
|
||||
let vestigeData = await GVGVestigeRankModel.findAllByRole(roleId);
|
||||
if(vestigeData) {
|
||||
let heroes: number[] = [];
|
||||
for(let { lineup = [] } of vestigeData) {
|
||||
for(let { actorId } of lineup) heroes.push(actorId);
|
||||
}
|
||||
teams.push({ type: TEAM_TYPE.VESTIGE, heroes });
|
||||
}
|
||||
|
||||
let gvgBattleTeams = await GVGTeamModel.findByRole(roleId, '-_id lineup');
|
||||
if(gvgBattleTeams) {
|
||||
let heroes: number[] = [];
|
||||
for(let { lineup = [] } of gvgBattleTeams) {
|
||||
for(let { actorId } of lineup) heroes.push(actorId);
|
||||
}
|
||||
teams.push({ type: TEAM_TYPE.GVG_BATTLE, heroes });
|
||||
}
|
||||
|
||||
|
||||
return resResult(STATUS.SUCCESS, { teams });
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user