🐞 fix(gvg): 云台补发

This commit is contained in:
luying
2023-03-09 17:40:22 +08:00
parent 042e2c7f40
commit a194376c87
8 changed files with 88 additions and 44 deletions

View File

@@ -1,9 +1,9 @@
import { BackendSession } from "pinus";
import { GVG_ACTIVE_TYPE, GVG_ITEM, GVG_RESOURCE_TYPE, GVG_SEED_TYPE, GVG_TECH_TYPE, ITEM_CHANGE_REASON, LEAGUE_JOB, PUSH_ROUTE } from "../../consts";
import { GVG_ACTIVE_TYPE, GVG_ITEM, GVG_PERIOD, GVG_RESOURCE_TYPE, GVG_SEED_TYPE, GVG_TECH_TYPE, ITEM_CHANGE_REASON, LEAGUE_JOB, MAIL_TYPE, PUSH_ROUTE } from "../../consts";
import { GVGLeagueFarmModel, GVGLeagueFarmType } from "../../db/GVGLeagueFarm";
import { GVGLeaguePrepareModel, Tech } from "../../db/GVGLeaguePrepare";
import { GVGUserDailyDataModel, GVGUserDailyDataType } from "../../db/GVGUserDailyData";
import { GVGUserDataModel } from "../../db/GVGUserData";
import { Contribute, GVGUserDataModel } from "../../db/GVGUserData";
import { GVGUserItemModel } from "../../db/GVGUserItem";
import { LeagueField } from "../../domain/gvgField/returnData";
import { calLeagueLv, gameData, getFieldMaxAddType } from "../../pubUtils/data";
@@ -11,13 +11,13 @@ import { GVG } from "../../pubUtils/dicParam";
import { RewardInter } from "../../pubUtils/interface";
import { nowSeconds } from "../../pubUtils/timeUtil";
import { arrToMap, getArrayOfNumber, getRandEelm, decodeIdCntArrayStr, parseGoodStr, sortArrRandom } from "../../pubUtils/util";
import { addGVGReward } from "./gvgItemService";
import { getGVGConfig } from "./gvgService";
import { getProduceCoinCnt } from "./gvgItemService";
import { addGVGReward, combinePushItem, getProduceCoinCnt } from "./gvgItemService";
import { getGVGConfig, getGVGPeriodData } from "./gvgService";
import { GVGVestigeRankModel } from "../../db/GVGVestigeRank";
import { addLeagueLvUpMessage, addResourceRecord } from "./gvgRecService";
import { GVGLeagueType } from "../../db/GVGLeague";
import { sendMessageToGuildWithSuc } from "../pushService";
import { sendMailByContent } from "../mailService";
export function checkPreTech(techId: number, activeQueue: number[], techQueue: Tech[]) {
const dicTech = gameData.gvgTech.get(techId);
@@ -477,3 +477,26 @@ export async function pushTechChange(guildCodes: string[], isActive: boolean, id
});
}
}
export async function sendUngotBoxReward(configId: number, leagueCode: string, roleId: string, sid: string) {
let { period } = getGVGPeriodData();
if(period != GVG_PERIOD.BATTLE) return;
let userData = await GVGUserDataModel.checkBox(configId, leagueCode, roleId);
if(userData) {
let { contribute = new Contribute(), box = [] } = userData||{};
let rewards: RewardInter[] = [], leagueReward: RewardInter[] = [], receiveBoxes: number[] = [];
for(let [boxId, dicBox] of gameData.gvgContributeBox) {
if(box.indexOf(boxId) != -1) continue;
let sumContribute = dicBox.job == LEAGUE_JOB.PRODUCER? calProducerContribute(contribute): calFighterContribute(contribute);
if(sumContribute < dicBox.boxPoint) continue;
receiveBoxes.push(boxId);
combinePushItem(rewards, dicBox.boxReward);
combinePushItem(leagueReward, dicBox.boxLeagueReward);
}
if(leagueReward.length > 0) await addGVGReward(roleId, '', leagueCode, sid, leagueReward, [], ITEM_CHANGE_REASON.GVG_VESTIGE_RECEIVE_RANK);
if(rewards.length > 0) await sendMailByContent(MAIL_TYPE.GVG_BOX_REWARD, roleId, { params: [`${configId}`, receiveBoxes.join()], goods: rewards });
await GVGUserDataModel.receiveBoxes(configId, leagueCode, roleId, receiveBoxes);
}
}