✨ feat(gvg): 添加激战期动态
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
import { GVGRecModel } from '../../../db/GVGRec';
|
||||
import { GVGRecModel, GVGRecType } from '../../../db/GVGRec';
|
||||
import { GVGAreaInMap, GVGTeamInList, GVGTeamInListOnPoint, GVGTeamSpineInMap, LeagueGood, MyTeamInfo, MyTeamSimpleInfo } from '../../../domain/gvgField/returnData';
|
||||
import { GVGTeamModel, GVGTeamType, GVGTeamUpdate } from '../../../db/GVGTeam';
|
||||
import { GVGUserDataModel } from '../../../db/GVGUserData';
|
||||
@@ -15,7 +15,7 @@ import { gameData, getReviveGold } from '../../../pubUtils/data';
|
||||
import { getAllServerName } from '../../../services/redisService';
|
||||
import { checkBattleHeroesByHid } from '../../../services/normalBattleService';
|
||||
import { SaveTeamParam, SaveTeamUpdateParam } from '../../../domain/gvgField/gvgDb';
|
||||
import { GVG_AREA_TYPE, GVG_ITEM, ITEM_CHANGE_REASON, REDIS_KEY, STATUS } from '../../../consts';
|
||||
import { GVG_AREA_TYPE, GVG_ITEM, GVG_REC_TYPE, ITEM_CHANGE_REASON, REDIS_KEY, STATUS } from '../../../consts';
|
||||
import { GVGHeroInfo } from '../../../domain/dbGeneral';
|
||||
import { ArtifactModel } from '../../../db/Artifact';
|
||||
import { getHeroesAttributes } from '../../../services/playerCeService';
|
||||
@@ -27,6 +27,7 @@ import { getGoldObject, handleCost } from '../../../services/role/rewardService'
|
||||
import { GVGCityAreaPointModel } from '../../../db/GVGCityAreaPoint';
|
||||
import { Rank } from '../../../services/rankService';
|
||||
import { LeagueRankInfo, RoleRankInfo } from '../../../domain/rank';
|
||||
import { addBattleEndRec, addTeamSettleRec } from '../../../services/gvg/gvgRecService';
|
||||
|
||||
export default function (app: Application) {
|
||||
new HandlerService(app, {});
|
||||
@@ -210,7 +211,7 @@ export class GVGBattleHandler {
|
||||
teamObj.enterCity(...teams);
|
||||
}
|
||||
|
||||
const recs = await GVGRecModel.findByCity(cityId, configId);
|
||||
const recs = await GVGRecModel.findBattleRecByCity(configId, groupId, serverType, cityId);
|
||||
const teamResult = teams.map(team => new MyTeamInfo(team));
|
||||
const { ranks, myRank } = await getBattleRanksByCity(configId, groupId, serverType, cityId, myLeague);
|
||||
await leaveGVGCityTeamChannel(roleId, sid);
|
||||
@@ -407,6 +408,9 @@ export class GVGBattleHandler {
|
||||
|
||||
let teamObj = getGVGBattleData(groupId, serverType);
|
||||
teamObj.teamSettle(roleId, teamCode, pointId);
|
||||
|
||||
addTeamSettleRec(curTeam);
|
||||
|
||||
return resResult(STATUS.SUCCESS, { curTeam: new MyTeamInfo(curTeam) });
|
||||
}
|
||||
|
||||
@@ -506,8 +510,9 @@ export class GVGBattleHandler {
|
||||
let teamObj = getGVGBattleData(groupId, serverType);
|
||||
teamObj.battleEnd([attackTeam, defenseTeam]);
|
||||
// 更新rec
|
||||
await GVGBattleRecModel.battleEnd(battleCode, isSuccess);
|
||||
let rec = await GVGBattleRecModel.battleEnd(battleCode, isSuccess);
|
||||
await battleEndSendMessage(groupId, serverType, cityId, defenseTeam, attackTeam);
|
||||
addBattleEndRec(rec);
|
||||
|
||||
return resResult(STATUS.SUCCESS, { curTeam: new MyTeamInfo(attackTeam) });
|
||||
}
|
||||
@@ -611,10 +616,27 @@ export class GVGBattleHandler {
|
||||
|
||||
// 获取战报
|
||||
// type: 战报类型
|
||||
async getRecs(msg: { type: number }, session: BackendSession) {
|
||||
const { type } = msg;
|
||||
async getRecs(msg: { type: number, cityId: number }, session: BackendSession) {
|
||||
const roleId = session.get('roleId');
|
||||
const serverId = session.get('serverId');
|
||||
const guildCode = session.get('guildCode');
|
||||
const { type, cityId } = msg;
|
||||
// 根据 type 获取战报
|
||||
const recs = await GVGRecModel.find({ type }).limit(20).lean();
|
||||
let { configId, period } = getGVGPeriodData();
|
||||
let groupId = await getGroupIdOfServer(serverId);
|
||||
let serverType = await getGVGServerType(serverId);
|
||||
|
||||
let myLeague = await GVGLeagueModel.findLeagueByGuild(guildCode);
|
||||
if(!myLeague) return resResult(STATUS.GVG_LEAGUE_NOT_EXIST);
|
||||
|
||||
let recs: GVGRecType[] = [];
|
||||
if(type == GVG_REC_TYPE.BATTLE_BY_CITY) {
|
||||
recs = await GVGRecModel.findBattleRecByCity(configId, groupId, serverType, cityId);
|
||||
} else if (type == GVG_REC_TYPE.BATTLE_BY_LEAGUE) {
|
||||
recs = await GVGRecModel.findBattleRecByLeague(configId, myLeague.leagueCode);
|
||||
} else if (type == GVG_REC_TYPE.BATTLE_BY_ROLE) {
|
||||
recs = await GVGRecModel.findBattleRecByRole(configId, roleId, myLeague.leagueCode);
|
||||
}
|
||||
return resResult(STATUS.SUCCESS, { recs });
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user