🐞 fix(gvg): 玩家贡献更新下发推送
This commit is contained in:
@@ -227,7 +227,7 @@ export class GVGProduceHandler {
|
||||
// 计算产量
|
||||
const { foodSum, rewardSum, leagueRewardSum, activeSum } = await sumOutputByResults(myResultFields);
|
||||
// 资源
|
||||
let resourceResult = await addResource(myLeague, roleId, roleName, GVG_RESOURCE_TYPE.FOOD, foodSum)||{};
|
||||
let resourceResult = await addResource(myLeague, roleId, roleName, GVG_RESOURCE_TYPE.FOOD, foodSum, sid)||{};
|
||||
// 相关物品
|
||||
let leagueGoods = await addGVGReward(roleId, roleName, myLeague.leagueCode, sid, leagueRewardSum, rewardSum, ITEM_CHANGE_REASON.HARVEST)
|
||||
// 活跃
|
||||
@@ -370,7 +370,7 @@ export class GVGProduceHandler {
|
||||
let { reward, leagueReward, leagueConsume } = dicGVGItem;
|
||||
let produceCoin = getProduceCoinCnt(leagueConsume);
|
||||
// 资源
|
||||
let resourceResult = await addResource(myLeague, roleId, roleName, GVG_RESOURCE_TYPE.MINERAL, output)||{};
|
||||
let resourceResult = await addResource(myLeague, roleId, roleName, GVG_RESOURCE_TYPE.MINERAL, output, sid)||{};
|
||||
// 相关物品
|
||||
let leagueGoods = await addGVGReward(roleId, roleName, myLeague.leagueCode, sid, leagueReward, reward, ITEM_CHANGE_REASON.HARVEST)
|
||||
// 活跃
|
||||
@@ -493,7 +493,7 @@ export class GVGProduceHandler {
|
||||
let { reward, leagueReward, leagueConsume } = dicGVGItem;
|
||||
let produceCoin = getProduceCoinCnt(leagueConsume);
|
||||
// 资源
|
||||
let resourceResult = await addResource(myLeague, roleId, roleName, GVG_RESOURCE_TYPE.WOOD, output)||{};
|
||||
let resourceResult = await addResource(myLeague, roleId, roleName, GVG_RESOURCE_TYPE.WOOD, output, sid)||{};
|
||||
// 相关物品
|
||||
let leagueGoods = await addGVGReward(roleId, roleName, myLeague.leagueCode, sid, leagueReward, reward, ITEM_CHANGE_REASON.HARVEST)
|
||||
// 活跃
|
||||
@@ -513,6 +513,7 @@ export class GVGProduceHandler {
|
||||
// 获取资源
|
||||
async debugAddResource(msg: { type: number, count: number }, session: BackendSession) {
|
||||
const roleId = session.get('roleId');
|
||||
const sid = session.get('sid');
|
||||
const roleName = session.get('roleName');
|
||||
const guildCode = session.get('guildCode');
|
||||
const { type, count } = msg;
|
||||
@@ -520,7 +521,7 @@ export class GVGProduceHandler {
|
||||
let myLeague = await GVGLeagueModel.findLeagueByGuild(guildCode);
|
||||
if(!myLeague) return resResult(STATUS.GVG_LEAGUE_NOT_EXIST);
|
||||
|
||||
let resourceResult = await addResource(myLeague, roleId, roleName, type, count);
|
||||
let resourceResult = await addResource(myLeague, roleId, roleName, type, count, sid);
|
||||
if(!resourceResult) return resResult(STATUS.WRONG_PARMS);
|
||||
|
||||
return resResult(STATUS.SUCCESS, resourceResult);
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
// 征战中原相关
|
||||
|
||||
import moment = require("moment");
|
||||
import { GVG_PERIOD, GVG_RETURN_ITEM_TYPE, ITEM_CHANGE_REASON, MAIL_TYPE, REDIS_KEY, VESTIGE_OPP_STATUS, VESTIGE_STATUS } from "../../consts";
|
||||
import { GVG_PERIOD, GVG_RETURN_ITEM_TYPE, ITEM_CHANGE_REASON, LEAGUE_JOB, MAIL_TYPE, PUSH_ROUTE, REDIS_KEY, VESTIGE_OPP_STATUS, VESTIGE_STATUS } from "../../consts";
|
||||
import { ArtifactModel } from "../../db/Artifact";
|
||||
import { GVGConfigModel } from "../../db/GVGConfig";
|
||||
import { GVGLeagueModel, GVGLeagueType } from "../../db/GVGLeague";
|
||||
@@ -25,10 +25,12 @@ import { getRandEelm } from "../../pubUtils/util";
|
||||
import { getNumberArr, uniqueArr } from "../ladderService";
|
||||
import { sendMailByContent } from "../mailService";
|
||||
import { getHeroesAttributes } from "../playerCeService";
|
||||
import { sendMessageToUserWithSuc } from "../pushService";
|
||||
import { Rank } from "../rankService";
|
||||
import { findKeys, getAllServerName, redisClient } from "../redisService";
|
||||
import { isDevelopEnv } from "../utilService";
|
||||
import { addGVGReward, combinePushItem } from "./gvgItemService";
|
||||
import { calFighterContribute } from "./gvgPrepareService";
|
||||
import { addVestigeLeagueRankRec, addVestigeRankMessage } from "./gvgRecService";
|
||||
import { getGroupIdOfServer, getGroupKey, getGVGServerType, getPeriodByTime } from "./gvgService";
|
||||
|
||||
@@ -434,7 +436,10 @@ export async function saveVestigeRankSchedule() {
|
||||
await GVGVestigeSumRankModel.saveRank(groupKey, ranks);
|
||||
}
|
||||
let playerSumRanks = await GVGVestigeSumRankModel.findAllScores();
|
||||
await GVGUserDataModel.addVestigeScores(config.configId, playerSumRanks);
|
||||
let userDatas = await GVGUserDataModel.addVestigeScores(config.configId, playerSumRanks);
|
||||
for(let userData of userDatas) {
|
||||
await sendMessageToUserWithSuc(userData.roleId, PUSH_ROUTE.GVG_CONTRIBUTE_UPDATE, { leagueCode: userData.leagueCode, job: LEAGUE_JOB.FIGHTER, sumContribute: calFighterContribute(userData.contribute) });
|
||||
}
|
||||
}
|
||||
|
||||
// systimer 服,每周六5点
|
||||
|
||||
@@ -16,7 +16,7 @@ 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 { sendMessageToGuildWithSuc, sendMessageToUserWithSuc } from "../pushService";
|
||||
import { sendMailByContent } from "../mailService";
|
||||
|
||||
export function checkPreTech(techId: number, activeQueue: number[], techQueue: Tech[]) {
|
||||
@@ -118,7 +118,7 @@ export function getMyContribute(userDailyData: GVGUserDailyDataType, myRanks: {v
|
||||
* @param count 数量
|
||||
* @returns
|
||||
*/
|
||||
export async function addResource(myLeague: GVGLeagueType, roleId: string, roleName: string, resourceType: GVG_RESOURCE_TYPE, count: number) {
|
||||
export async function addResource(myLeague: GVGLeagueType, roleId: string, roleName: string, resourceType: GVG_RESOURCE_TYPE, count: number, sid?: string) {
|
||||
let { leagueCode } = myLeague;
|
||||
let { configId } = getGVGConfig();
|
||||
let resources = getResourceCnt(resourceType, count);
|
||||
@@ -140,6 +140,7 @@ export async function addResource(myLeague: GVGLeagueType, roleId: string, roleN
|
||||
let myContribute = getMyContribute(userDailyData, myRanks);
|
||||
addResourceRecord(roleId, roleName, leagueCode, resourceType, count);
|
||||
if(lv > originLv) addLeagueLvUpMessage(roleId, roleName, myLeague, lv);
|
||||
await sendMessageToUserWithSuc(roleId, PUSH_ROUTE.GVG_CONTRIBUTE_UPDATE, { leagueCode, job: LEAGUE_JOB.PRODUCER, sumContribute: calProducerContribute(myContribute) }, sid);
|
||||
|
||||
return { resources: league.resources, leagueLv: league.lv, myContribute }
|
||||
}
|
||||
|
||||
@@ -204,4 +204,5 @@ export const PUSH_ROUTE = {
|
||||
GVG_PLAYER_LEAVE_AREA: 'onPlayerLeaveArea', // 积分点上的驻守人变更
|
||||
GVG_CITY_RANK_UPDATE: 'onGVGCityRankUpdate', // 城池积分排名
|
||||
GVG_SPINE_ATTACKED: 'onSpinesAttacked', // 4.7 队伍在地图上受到攻击
|
||||
GVG_CONTRIBUTE_UPDATE: 'onGVGContributeUpdate', // 贡献更新
|
||||
}
|
||||
@@ -115,9 +115,12 @@ export default class GVGUserData extends BaseModel {
|
||||
}
|
||||
|
||||
public static async addVestigeScores(configId: number, memberScores: { leagueCode: string, roleId: string, score: number }[]) {
|
||||
await GVGUserDataModel.bulkWrite(memberScores.map(({ leagueCode, roleId, score }) => {
|
||||
return { updateOne: { filter: { configId, leagueCode, roleId }, update: { $inc: { 'contribute.score': score } } } }
|
||||
}));
|
||||
let result: GVGUserDataType[] = [];
|
||||
for(let { leagueCode, roleId, score } of memberScores) {
|
||||
let data: GVGUserDataType = await GVGUserDataModel.findOneAndUpdate({ configId, leagueCode, roleId }, { $inc: { 'contribute.score': score } }, { new: true }).lean();
|
||||
if(data) result.push(data);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
public static async receiveBox(configId: number, leagueCode: string, roleId: string, boxId: number) {
|
||||
|
||||
Reference in New Issue
Block a user