🐞 fix(gvg): gvg个人排行
This commit is contained in:
@@ -3,16 +3,17 @@ import { GVG_ACTIVE_TYPE, GVG_ITEM, GVG_PERIOD, ITEM_CHANGE_REASON, REDIS_KEY, R
|
||||
import { BattleRecordModel } from "../../../db/BattleRecord";
|
||||
import { GVGLeagueModel } from "../../../db/GVGLeague";
|
||||
import { GVGUserItemModel } from "../../../db/GVGUserItem";
|
||||
import GVGVestigeLeagueRank, { GVGVestigeLeagueRankModel } from "../../../db/GVGVestigeLeagueRank";
|
||||
import { GVGVestigeLeagueRankModel } from "../../../db/GVGVestigeLeagueRank";
|
||||
import { GVGVestigeLockModel } from "../../../db/GVGVestigeLock";
|
||||
import { GVGVestigeRankModel } from "../../../db/GVGVestigeRank";
|
||||
import { GVGVestigeRecModel, GVGVestigeRecUpdate } from "../../../db/GVGVestigeRec";
|
||||
import { GVGVestigeSumRankModel } from "../../../db/GVGVestigeSumRank";
|
||||
import { HeroModel } from "../../../db/Hero";
|
||||
import { RoleModel } from "../../../db/Role";
|
||||
import { GVGVestigeOppLineup, VestigeRank } from "../../../domain/gvgField/returnData";
|
||||
import { RoleRankInfo } from "../../../domain/rank";
|
||||
import { getRemoteRplFilePath, getRemoteRplPrefix } from "../../../pubUtils/battleUtils";
|
||||
import { gameData, getGVGVestigeLeagueRank } from "../../../pubUtils/data";
|
||||
import { gameData } from "../../../pubUtils/data";
|
||||
import { GVG } from "../../../pubUtils/dicParam";
|
||||
import { RewardInter } from "../../../pubUtils/interface";
|
||||
import { resResult } from "../../../pubUtils/util";
|
||||
@@ -351,9 +352,9 @@ export class GVGProduceHandler {
|
||||
// 更新battleRecord
|
||||
await BattleRecordModel.updateBattleRecordByCode(battleCode, { $set: { status: isSuccess? 1: 2 } });
|
||||
|
||||
// 突破排名奖励
|
||||
let { rewards, leagueRewards } = calBreakGoods(rec.vestigeId, historyRank, atkData.rank);
|
||||
let breakGoods = await addGVGReward(roleId, roleName, myLeague.leagueCode, sid, leagueRewards, rewards, ITEM_CHANGE_REASON.GVG_VESTIGE_END);
|
||||
// 取消突破排名奖励
|
||||
// let { rewards, leagueRewards } = calBreakGoods(rec.vestigeId, historyRank, atkData.rank);
|
||||
// let breakGoods = await addGVGReward(roleId, roleName, myLeague.leagueCode, sid, leagueRewards, rewards, ITEM_CHANGE_REASON.GVG_VESTIGE_END);
|
||||
|
||||
await saveScoreToRank(rec);
|
||||
addVestigeBattleEndRec(rec);
|
||||
@@ -367,7 +368,7 @@ export class GVGProduceHandler {
|
||||
historyRank: atkData.historyRank,
|
||||
...getVestigeRecStatus(rec),
|
||||
oppPlayers: await getOppPlayerByRanks(serverId, rec.groupId, rec.serverType, rec.vestigeId, atkData.oppRanks),
|
||||
breakGoods,
|
||||
// breakGoods,
|
||||
lineup: atkData.lineup,
|
||||
lineupCe: atkData.lineup.reduce((pre, cur) => pre + cur.ce, 0),
|
||||
});
|
||||
@@ -417,6 +418,7 @@ export class GVGProduceHandler {
|
||||
async getLeagueDetailRank(msg: {}, session: BackendSession) {
|
||||
const serverId = session.get('serverId');
|
||||
const guildCode = session.get('guildCode');
|
||||
const roleId = session.get('roleId');
|
||||
|
||||
const myLeague = await GVGLeagueModel.findLeagueByGuild(guildCode);
|
||||
if(!myLeague) return resResult(STATUS.GVG_LEAGUE_NOT_EXIST);
|
||||
@@ -427,13 +429,16 @@ export class GVGProduceHandler {
|
||||
let { configId } = getGVGPeriodData();
|
||||
|
||||
const { ranks, myRank } = await getVestigeRank(REDIS_KEY.GVG_VESTIGE_LEAGUE, false, { groupId, serverType, day: getDayKeyInfo() }, { leagueCode: myLeague.leagueCode }, serverNames);
|
||||
const { ranks: memberRank, myRank: myMemberRank } = await getVestigeRank(REDIS_KEY.GVG_VESTIGE_MEMBER_ALL, false, { groupId, serverType, day: getDayKeyInfo() }, { roleId }, serverNames);
|
||||
|
||||
let yesterdayRank = await GVGVestigeLeagueRank.getYesterdayRank(myLeague.leagueCode);
|
||||
let canReceiveRanks = await GVGVestigeLeagueRank.getCanReceiveRanks(configId, myLeague.leagueCode);
|
||||
let { canReceiveBox, boxPreview } = calVestigeLeagueBoxRewards(canReceiveRanks);
|
||||
let yesterdayRank = await GVGVestigeLeagueRankModel.getYesterdayRank(myLeague.leagueCode);
|
||||
let canReceiveLeagueRanks = await GVGVestigeLeagueRankModel.getCanReceiveRanks(configId, myLeague.leagueCode);
|
||||
let canReceivePlayerRanks = await GVGVestigeSumRankModel.getCanReceiveRanks(configId, roleId);
|
||||
let { canReceiveBox, boxPreview } = calVestigeLeagueBoxRewards(canReceiveLeagueRanks, canReceivePlayerRanks);
|
||||
|
||||
return resResult(STATUS.SUCCESS, {
|
||||
ranks, myRank,
|
||||
memberRank, myMemberRank,
|
||||
latestRank: yesterdayRank?.rank||0,
|
||||
canReceiveBox, boxPreview
|
||||
})
|
||||
@@ -453,12 +458,12 @@ export class GVGProduceHandler {
|
||||
let vestigeRanks = await GVGVestigeRankModel.findRankByVestige(groupId, serverType, vestigeId);
|
||||
let r = new Rank(REDIS_KEY.GVG_VESTIGE_MEMBER, { groupId, serverType, vestigeId });
|
||||
let ranks: VestigeRank[] = [], myRank: VestigeRank;
|
||||
for(let { roleId, rank, lineup } of vestigeRanks) {
|
||||
let param = <RoleRankInfo>await r.getParam(rank, roleId, [rank]);
|
||||
for(let { roleId: targetRoleId, rank, lineup } of vestigeRanks) {
|
||||
let param = <RoleRankInfo>await r.getParam(rank, targetRoleId, [rank]);
|
||||
if(!param) {
|
||||
let role = await RoleModel.findByRoleId(roleId, ROLE_SELECT.RANK);
|
||||
await r.generParamAndSet(REDIS_KEY.USER_INFO, { roleId }, { role });
|
||||
param = <RoleRankInfo>await r.getParam(rank, roleId, [rank]);
|
||||
let role = await RoleModel.findByRoleId(targetRoleId, ROLE_SELECT.RANK);
|
||||
await r.generParamAndSet(REDIS_KEY.USER_INFO, { roleId: targetRoleId }, { role });
|
||||
param = <RoleRankInfo>await r.getParam(rank, targetRoleId, [rank]);
|
||||
}
|
||||
let lineupCe = lineup.reduce((pre, cur) => pre + cur.ce, 0);
|
||||
let serverName = serverNames[param.serverId];
|
||||
@@ -493,12 +498,14 @@ export class GVGProduceHandler {
|
||||
if(!myLeague) return resResult(STATUS.GVG_LEAGUE_NOT_EXIST);
|
||||
|
||||
let { configId } = getGVGPeriodData();
|
||||
let canReceiveRanks = await GVGVestigeLeagueRankModel.getCanReceiveRanks(configId, myLeague.leagueCode);
|
||||
if(canReceiveRanks.length <= 0) return resResult(STATUS.GVG_RECEIVE_NO_RANK_REWARD);
|
||||
let canReceiveLeagueRanks = await GVGVestigeLeagueRankModel.getCanReceiveRanks(configId, myLeague.leagueCode);
|
||||
let canReceivePlayerRanks = await GVGVestigeSumRankModel.getCanReceiveRanks(configId, roleId);
|
||||
if(canReceiveLeagueRanks.length <= 0 && canReceivePlayerRanks.length <= 0) return resResult(STATUS.GVG_RECEIVE_NO_RANK_REWARD);
|
||||
|
||||
let { leagueReward, rewards } = calVestigeLeagueBoxRewards(canReceiveRanks);
|
||||
let { leagueReward, rewards } = calVestigeLeagueBoxRewards(canReceiveLeagueRanks, canReceivePlayerRanks);
|
||||
let leagueGoods = await addGVGReward(roleId, roleName, myLeague.leagueCode, sid, leagueReward, rewards, ITEM_CHANGE_REASON.GVG_VESTIGE_RECEIVE_RANK)
|
||||
await GVGVestigeLeagueRankModel.receiveRanks(canReceiveRanks.map(cur => cur._id));
|
||||
await GVGVestigeLeagueRankModel.receiveRanks(canReceiveLeagueRanks.map(cur => cur._id));
|
||||
await GVGVestigeSumRankModel.receiveRanks(canReceivePlayerRanks.map(cur => cur._id));
|
||||
|
||||
return resResult(STATUS.SUCCESS, {
|
||||
leagueGoods,
|
||||
|
||||
Reference in New Issue
Block a user