feat(gvg): 添加debug接口

This commit is contained in:
luying
2023-02-08 14:22:43 +08:00
parent f305ee99c4
commit 040d37dcf8
5 changed files with 65 additions and 4 deletions

View File

@@ -17,7 +17,7 @@ import { GVG } from "../../../pubUtils/dicParam";
import { RewardInter } from "../../../pubUtils/interface";
import { resResult } from "../../../pubUtils/util";
import { isHeroHidden } from "../../../services/dataService";
import { calBreakGoods, checkHeroIsUsedInOtherVestige, checkVestige, checkVestigeOppStatus, checkVestigeRank, generateAttackHeroInfo, generateAttackInfo, generateDefenseInfo, getDayKeyInfo, getMyVestigeRank, getOppDetailData, getOppPlayerByRanks, getVestigeRecStatus, getVestigeRank, getVestigeUsedHeroes, isRobot, refreshVestigeOppRanks, saveScoreToRank, updateMyVestigeRank, saveVestigeRankSchedule, calVestigeLeagueBoxRewards, checkFightTime } from "../../../services/gvg/gvgFightService";
import { calBreakGoods, checkHeroIsUsedInOtherVestige, checkVestige, checkVestigeOppStatus, checkVestigeRank, generateAttackHeroInfo, generateAttackInfo, generateDefenseInfo, getDayKeyInfo, getMyVestigeRank, getOppDetailData, getOppPlayerByRanks, getVestigeRecStatus, getVestigeRank, getVestigeUsedHeroes, isRobot, refreshVestigeOppRanks, saveScoreToRank, updateMyVestigeRank, saveVestigeRankSchedule, calVestigeLeagueBoxRewards, checkFightTime, savePlayerRank } from "../../../services/gvg/gvgFightService";
import { addGVGReward, combinePushItem, handleGVGCost } from "../../../services/gvg/gvgItemService";
import { addGVGActive } from "../../../services/gvg/gvgPrepareService";
import { addVestigeBattleEndRec } from "../../../services/gvg/gvgRecService";
@@ -516,4 +516,43 @@ export class GVGProduceHandler {
await saveVestigeRankSchedule();
return resResult(STATUS.SUCCESS);
}
async debugSetMyRank(msg: { vestigeId: number, rank: number }, session: BackendSession) {
const { vestigeId, rank } = msg;
let roleId = session.get('roleId');
let serverId = session.get('serverId');
let guildCode = session.get('guildCode');
let groupId = await getGroupIdOfServer(serverId);
let serverType = await getGVGServerType(serverId);
let { configId } = getGVGPeriodData();
const myLeague = await GVGLeagueModel.findLeagueByGuild(guildCode);
if(!myLeague) return resResult(STATUS.GVG_LEAGUE_NOT_EXIST);
let myData = await getMyVestigeRank(configId, groupId, serverType, vestigeId, roleId, myLeague)
let myRank = myData?.rank||0;
let targetData = await GVGVestigeRankModel.findByRank(configId, groupId, serverType, vestigeId, rank);
if(targetData) {
myData = await GVGVestigeRankModel.updateByRoleId(vestigeId, roleId, { rank, oldRank: myRank, historyRank: rank });
targetData = await GVGVestigeRankModel.updateByRoleId(vestigeId, targetData.roleId, { rank: myRank, oldRank: rank });
} else {
myData = await GVGVestigeRankModel.updateByRoleId(vestigeId, roleId, { rank, oldRank: myRank, historyRank: rank });
}
await savePlayerRank(configId, groupId, serverType, vestigeId, { isRobot: false, newRank: rank, oldRank: myRank, roleId, leagueCode: myLeague.leagueCode });
if(targetData) {
await savePlayerRank(configId, groupId, serverType, vestigeId, { isRobot: false, newRank: targetData.rank, oldRank: rank, roleId: targetData.roleId, leagueCode: targetData.leagueCode });
}
return resResult(STATUS.SUCCESS);
}
async debugSetMyOpp(msg: { vestigeId: number, oppRanks: number[] }, session: BackendSession) {
const { vestigeId, oppRanks } = msg;
let roleId = session.get('roleId');
await GVGVestigeRankModel.updateByRoleId(vestigeId, roleId, { oppRanks });
return resResult(STATUS.SUCCESS);
}
}

View File

@@ -520,4 +520,18 @@ export class GVGProduceHandler {
return resResult(STATUS.SUCCESS, resourceResult);
}
// 设置农田的收获时间
async debugAdjustHarvest(msg: { time: number }, session: BackendSession) {
const guildCode = session.get('guildCode');
const { time } = msg;
let { configId } = getGVGPeriodData();
let myLeague = await GVGLeagueModel.findLeagueByGuild(guildCode);
if(!myLeague) return resResult(STATUS.GVG_LEAGUE_NOT_EXIST);
await GVGLeagueFarmModel.setMyHarvestTime(configId, myLeague.leagueCode, time);
return resResult(STATUS.SUCCESS);
}
}

View File

@@ -1998,6 +1998,9 @@ export function checkRouteParam(route: string, msg: any) {
case "guild.gvgFightHandler.debugCalRec":
case "guild.gvgFightHandler.debugSaveScore":
case "guild.gvgBattleHandler.createCity":
case "guild.gvgProduceHandler.debugAdjustHarvest":
case "guild.gvgFightHandler.debugSetMyRank":
case "guild.gvgFightHandler.debugSetMyOpp":
{
if (msg.magicWord !== DEBUG_MAGIC_WORD || !isDevelopEnv()) return false;

View File

@@ -166,7 +166,7 @@ export async function checkVestigeOppStatus(configId: number, groupId: number, s
if(!myData || myData.rank != myRank) return VESTIGE_OPP_STATUS.MY_RANK_CHANGE;
if(isRobot(targetRoleId)) {
let targetData = await GVGVestigeRankModel.findByRank(vestigeId, rank);
let targetData = await GVGVestigeRankModel.findByRank(configId, groupId, serverType, vestigeId, rank);
if(targetData) return VESTIGE_OPP_STATUS.OPP_RANK_CHANGE;
} else {
let targetData = await GVGVestigeRankModel.findByRole(vestigeId, targetRoleId);
@@ -328,7 +328,7 @@ export function getDayKeyInfo() {
return moment().format('YYMMDD');
}
async function savePlayerRank(configId: number, groupId: number, serverType: number, vestigeId: number, playerInfo: OppPlayerInfo) {
export async function savePlayerRank(configId: number, groupId: number, serverType: number, vestigeId: number, playerInfo: Partial<OppPlayerInfo>) {
if(playerInfo.isRobot) return
let dicRankMap = gameData.gvgVestige.get(vestigeId);
let newRank = dicRankMap?.get(playerInfo.newRank)?.score||0;
@@ -351,7 +351,7 @@ export async function getVestigeRank(redisKey: REDIS_KEY, isSimple: boolean, key
if(isSimple) {
return { rank: obj.rank, name: obj.name, score: obj.num }
} else {
return { ...obj, leader: {...obj.leader, serverName: serverNames[obj.leader.serverId]}};
return { ...obj, score: obj.num, leader: {...obj.leader, serverName: serverNames[obj.leader.serverId]}};
}
}
return obj

View File

@@ -176,6 +176,11 @@ export default class GVGLeagueFarm extends BaseModel {
{ new: true }).lean();
return result;
}
public static async setMyHarvestTime(configId: number, leagueCode: string, time: number) {
console.log(configId, leagueCode, nowSeconds(), time)
await GVGLeagueFarmModel.updateMany({ configId, leagueCode, harvestTime: { $gt: nowSeconds() } }, { $set: { harvestTime: nowSeconds() + time }});
}
}
export const GVGLeagueFarmModel = getModelForClass(GVGLeagueFarm);