From c182733066ba102a52b8348293f0bc1522d080e7 Mon Sep 17 00:00:00 2001 From: luying Date: Mon, 13 Feb 2023 10:56:22 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9E=20fix(gvg):=20=E4=BA=91=E5=8F=B0?= =?UTF-8?q?=E8=B4=A1=E7=8C=AE=E6=8E=A5=E5=8F=A3=E5=90=8D=E9=94=99=E8=AF=AF?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../app/servers/guild/handler/gvgHandler.ts | 34 +++++++++---------- .../guild/handler/gvgProduceHandler.ts | 8 ++--- game-server/app/services/checkParam.ts | 2 +- .../app/services/gvg/gvgPrepareService.ts | 14 ++++---- shared/db/GVGUserData.ts | 8 ++--- shared/domain/gvgField/returnData.ts | 22 ++++++------ 6 files changed, 44 insertions(+), 44 deletions(-) diff --git a/game-server/app/servers/guild/handler/gvgHandler.ts b/game-server/app/servers/guild/handler/gvgHandler.ts index 5581c52e6..8d6b9bf1a 100644 --- a/game-server/app/servers/guild/handler/gvgHandler.ts +++ b/game-server/app/servers/guild/handler/gvgHandler.ts @@ -2,17 +2,17 @@ import { Application, BackendSession, ChannelService, HandlerService, pinus } fr import { GVG_ITEM, DATA_NAME, GVG_ACTIVE_TYPE, GVG_PERIOD, GVG_SERVER_TYPE, ITEM_CHANGE_REASON, LEAGUE_JOB, LEAGUE_MANAGE_TYPE, STATUS, GVG_REC_TYPE, TASK_TYPE } from "../../../consts"; import { GVGLeagueModel } from "../../../db/GVGLeague"; import { GVGLeaguePrepareModel } from "../../../db/GVGLeaguePrepare"; -import { GVGMainData, LeagueDistributeInfo, LeagueMemberDistributeInfo, LeagueMemberListInfo } from "../../../domain/gvgField/returnData"; +import { GVGMainData, LeagueContributeInfo, LeagueMemberContributeInfo, LeagueMemberListInfo } from "../../../domain/gvgField/returnData"; import { resResult } from "../../../pubUtils/util"; import { calLeagueCe, getGVGConfig, getGVGPeriodData, getGVGServerType, getServerTypeByTime } from "../../../services/gvg/gvgService"; import { autoCreateLeague, checkCanChooseJob, checkCanPrepare, checkLeagueAuth, getMyAuth } from "../../../services/gvg/gvgTeamService"; import { getAllServerName } from "../../../services/redisService"; -import { Distribute, GVGUserDataModel } from "../../../db/GVGUserData"; +import { Contribute, GVGUserDataModel } from "../../../db/GVGUserData"; import { GVGUserItemModel } from "../../../db/GVGUserItem"; import { GVGUserTaskModel } from "../../../db/GVGUserTask"; import { GVG } from "../../../pubUtils/dicParam"; import { RoleModel } from "../../../db/Role"; -import { addGVGTechActive, calFighterDistribute, calProducerDistribute, checkPreTech, checkTechIsIng, getDailyLoginReward, getMyDistribute } from "../../../services/gvg/gvgPrepareService"; +import { addGVGTechActive, calFighterContribute, calProducerContribute, checkPreTech, checkTechIsIng, getDailyLoginReward, getMyContribute } from "../../../services/gvg/gvgPrepareService"; import { GVGUserDailyDataModel } from "../../../db/GVGUserDailyData"; import { gameData } from "../../../pubUtils/data"; import { lockLeagueData } from "../../../services/redLockService"; @@ -153,7 +153,7 @@ export class GVGHandler { } // 查看贡献 - async getDistribute(msg: {}, session: BackendSession) { + async getContribute(msg: {}, session: BackendSession) { const roleId = session.get('roleId'); const guildCode = session.get('guildCode'); @@ -169,35 +169,35 @@ export class GVGHandler { const serverNames = await getAllServerName(); const myUserData = await GVGUserDataModel.findByRole(configId, myLeague.leagueCode, roleId); - const { distribute = new Distribute(), box = [] } = myUserData||{}; + const { contribute = new Contribute(), box = [] } = myUserData||{}; const userDatas = await GVGUserDataModel.findByRoles(configId, myLeague.leagueCode, roleIds); - const result: LeagueDistributeInfo[] = []; + const result: LeagueContributeInfo[] = []; for(let curJob of [LEAGUE_JOB.PRODUCER, LEAGUE_JOB.FIGHTER]) { - const memberResult: LeagueMemberDistributeInfo[] = []; + const memberResult: LeagueMemberContributeInfo[] = []; for(let member of members) { let role = roles.find(role => role.roleId == member.roleId); if(!role) continue; let userData = userDatas.find(userData => userData.roleId == member.roleId); - let obj = new LeagueMemberDistributeInfo(role, serverNames); + let obj = new LeagueMemberContributeInfo(role, serverNames); obj.setAuth(member.auth); obj.setByUserData(userData); - if(curJob == LEAGUE_JOB.PRODUCER && calProducerDistribute(obj) > 0) memberResult.push(obj); + if(curJob == LEAGUE_JOB.PRODUCER && calProducerContribute(obj) > 0) memberResult.push(obj); if(curJob == LEAGUE_JOB.FIGHTER && obj.score > 0) memberResult.push(obj); } memberResult.sort((a, b) => { - return curJob == LEAGUE_JOB.PRODUCER? calProducerDistribute(b) - calProducerDistribute(a): calFighterDistribute(b) - calFighterDistribute(a); + return curJob == LEAGUE_JOB.PRODUCER? calProducerContribute(b) - calProducerContribute(a): calFighterContribute(b) - calFighterContribute(a); }); for(let i = 0; i < memberResult.length; i++) { memberResult[i].setRank(i + 1); } - let sumDistribute = curJob == LEAGUE_JOB.PRODUCER? calProducerDistribute(distribute): calFighterDistribute(distribute); + let sumContribute = curJob == LEAGUE_JOB.PRODUCER? calProducerContribute(contribute): calFighterContribute(contribute); let boxReceived = box.filter(boxId => { let dicBox = gameData.gvgContributeBox.get(boxId); return dicBox.job == curJob; }); - let disObj = new LeagueDistributeInfo(curJob, sumDistribute, boxReceived); + let disObj = new LeagueContributeInfo(curJob, sumContribute, boxReceived); disObj.setMembers(memberResult); result.push(disObj) } @@ -206,7 +206,7 @@ export class GVGHandler { const myRanks = await GVGVestigeRankModel.findAllByRole(roleId); return resResult(STATUS.SUCCESS, { - myDistribute: getMyDistribute(userDailyData, myRanks), + myContribute: getMyContribute(userDailyData, myRanks), list: result }); } @@ -229,17 +229,17 @@ export class GVGHandler { if(!dicBox) return resResult(STATUS.DIC_DATA_NOT_FOUND); let myUserData = await GVGUserDataModel.findByRole(configId, myLeague.leagueCode, roleId); - let { distribute = new Distribute(), box = [] } = myUserData||{}; + let { contribute = new Contribute(), box = [] } = myUserData||{}; if(box.indexOf(boxId) != -1) return resResult(STATUS.GVG_BOX_HAS_RECEIVED) - let sumDistribute = dicBox.job == LEAGUE_JOB.PRODUCER? calProducerDistribute(distribute): calFighterDistribute(distribute); - if(sumDistribute < dicBox.boxPoint) return resResult(STATUS.GVG_BOX_POINT_NOT_ENOUGH); + let sumContribute = dicBox.job == LEAGUE_JOB.PRODUCER? calProducerContribute(contribute): calFighterContribute(contribute); + if(sumContribute < dicBox.boxPoint) return resResult(STATUS.GVG_BOX_POINT_NOT_ENOUGH); const leagueGoods = await addGVGReward(roleId, roleName, myLeague.leagueCode, sid, dicBox.boxLeagueReward, dicBox.boxReward, ITEM_CHANGE_REASON.GVG_RECEIVE_BOX); myUserData = await GVGUserDataModel.receiveBox(configId, myLeague.leagueCode, roleId, boxId); return resResult(STATUS.SUCCESS, { - sumDistribute, + sumContribute, receivedBox: myUserData.box, leagueGoods }); diff --git a/game-server/app/servers/guild/handler/gvgProduceHandler.ts b/game-server/app/servers/guild/handler/gvgProduceHandler.ts index 0ab4aa0c6..999d3884d 100644 --- a/game-server/app/servers/guild/handler/gvgProduceHandler.ts +++ b/game-server/app/servers/guild/handler/gvgProduceHandler.ts @@ -13,7 +13,7 @@ import { nowSeconds } from "../../../pubUtils/timeUtil"; import { resResult } from "../../../pubUtils/util"; import { getGVGCities } from "../../../services/gvg/gvgBattleService"; import { addGVGReward, getProduceCoinCnt, handleGVGCost } from "../../../services/gvg/gvgItemService"; -import { addGVGActive, addResource, getCostSeedReward, getItemIdOfSeedType, getLeagueFarmShowResult, getLockFieldCnt, getmyDistributeRank, rollbackUnPlantFields, lockField, calFarmOutput, sumOutputByResults, lockMineOrForestry, calMineOutput, calForestryOutput, checkItemCanUserInFarm } from "../../../services/gvg/gvgPrepareService"; +import { addGVGActive, addResource, getCostSeedReward, getItemIdOfSeedType, getLeagueFarmShowResult, getLockFieldCnt, getmyContributeRank, rollbackUnPlantFields, lockField, calFarmOutput, sumOutputByResults, lockMineOrForestry, calMineOutput, calForestryOutput, checkItemCanUserInFarm } from "../../../services/gvg/gvgPrepareService"; import { getGVGConfig, getGVGPeriodData } from "../../../services/gvg/gvgService"; import { sendMailByContent } from "../../../services/mailService"; import { getAllServerName, getRoleOnlineInfo } from "../../../services/redisService"; @@ -151,7 +151,7 @@ export class GVGProduceHandler { if(dicResource.type == GVG_RESOURCE_TYPE.FOOD) { await lockField(myLeague.leagueCode, roleId, roleName, farmId); } - const myRank = await getmyDistributeRank(myLeague.leagueCode, myLeague.members, roleId); + const myRank = await getmyContributeRank(myLeague.leagueCode, myLeague.members, roleId); return resResult(STATUS.SUCCESS, { ...await getLeagueFarmShowResult(myLeague.leagueCode, roleId, farmId), @@ -313,7 +313,7 @@ export class GVGProduceHandler { const lockResult = await lockMineOrForestry(myLeague.leagueCode, roleId, farmId, itemId); if(!lockResult) return resResult(STATUS.GVG_MINE_HAS_LOCKED); - const myRank = await getmyDistributeRank(myLeague.leagueCode, myLeague.members, roleId); + const myRank = await getmyContributeRank(myLeague.leagueCode, myLeague.members, roleId); return resResult(STATUS.SUCCESS, { ...await getLeagueFarmShowResult(myLeague.leagueCode, roleId, farmId, false), @@ -440,7 +440,7 @@ export class GVGProduceHandler { const lockResult = await lockMineOrForestry(myLeague.leagueCode, roleId, farmId, itemId); if(!lockResult) return resResult(STATUS.GVG_MINE_HAS_LOCKED); - const myRank = await getmyDistributeRank(myLeague.leagueCode, myLeague.members, roleId); + const myRank = await getmyContributeRank(myLeague.leagueCode, myLeague.members, roleId); return resResult(STATUS.SUCCESS, { ...await getLeagueFarmShowResult(myLeague.leagueCode, roleId, farmId, false), diff --git a/game-server/app/services/checkParam.ts b/game-server/app/services/checkParam.ts index 26a87494d..01a0e10d5 100644 --- a/game-server/app/services/checkParam.ts +++ b/game-server/app/services/checkParam.ts @@ -78,7 +78,7 @@ export function checkRouteParam(route: string, msg: any) { case "guild.gvgHandler.getData": case "guild.gvgHandler.getMap": case "guild.gvgHandler.getRec": - case "guild.gvgHandler.getDistribute": + case "guild.gvgHandler.getContribute": case "guild.gvgHandler.getTech": case "guild.gvgManageHandler.getApplies": case "guild.gvgManageHandler.getLeagueInvitations": diff --git a/game-server/app/services/gvg/gvgPrepareService.ts b/game-server/app/services/gvg/gvgPrepareService.ts index 41297e59e..6c10af3ae 100644 --- a/game-server/app/services/gvg/gvgPrepareService.ts +++ b/game-server/app/services/gvg/gvgPrepareService.ts @@ -38,12 +38,12 @@ export function checkTechIsIng(techId: number, activeQueue: number[], techQueue: return techQueue.findIndex(cur => cur.id == techId) != -1 || activeQueue.indexOf(techId) != -1 } -export function calProducerDistribute(obj: { food: number, mineral: number, wood: number }) { +export function calProducerContribute(obj: { food: number, mineral: number, wood: number }) { let { food = 0, mineral = 0, wood = 0 } = obj||{}; return food + mineral + wood; } -export function calFighterDistribute(obj: { score: number }) { +export function calFighterContribute(obj: { score: number }) { return obj?.score||0 } @@ -90,7 +90,7 @@ export async function getDailyLoginReward(roleId: string, roleName: string, sid: return null; } -export function getMyDistribute(userDailyData: GVGUserDailyDataType, myRanks: {vestigeId: number, rank: number}[]) { +export function getMyContribute(userDailyData: GVGUserDailyDataType, myRanks: {vestigeId: number, rank: number}[]) { let score = 0; for(let { vestigeId, rank} of myRanks) { let dicRankMap = gameData.gvgVestige.get(vestigeId); @@ -129,10 +129,10 @@ export async function addResource(leagueCode: string, roleId: string, roleName: let userDailyData = await GVGUserDailyDataModel.addResource(configId, leagueCode, roleId, food, mineral, wood); let myRanks = await GVGVestigeRankModel.findAllByRole(roleId); - let myDistribute = getMyDistribute(userDailyData, myRanks); + let myContribute = getMyContribute(userDailyData, myRanks); addResourceRecord(roleId, roleName, leagueCode, resourceType, count); - return { resource: league.resources, leagueLv: league.lv, myDistribute } + return { resource: league.resources, leagueLv: league.lv, myContribute } } function getResourceCnt(resourceType: GVG_RESOURCE_TYPE, count: number) { @@ -284,12 +284,12 @@ export async function getLockFieldCnt(leagueCode: string, roleId: string) { return items.reduce((pre, cur) => pre + cur.count, 0); } -export async function getmyDistributeRank(leagueCode: string, members: { roleId: string }[], targetRoleId: string) { +export async function getmyContributeRank(leagueCode: string, members: { roleId: string }[], targetRoleId: string) { let { configId } = getGVGConfig(); const roleIds = members.map(member => member.roleId); const userDatas = await GVGUserDataModel.findByRoles(configId, leagueCode, roleIds); - userDatas.sort((a, b) => calProducerDistribute(b.distribute) - calProducerDistribute(a.distribute)); + userDatas.sort((a, b) => calProducerContribute(b.contribute) - calProducerContribute(a.contribute)); for(let i = 0; i < userDatas.length; i++) { if(userDatas[i].roleId == targetRoleId) return i + 1; } diff --git a/shared/db/GVGUserData.ts b/shared/db/GVGUserData.ts index 63092928a..c4c7c4b89 100644 --- a/shared/db/GVGUserData.ts +++ b/shared/db/GVGUserData.ts @@ -17,7 +17,7 @@ class ActiveRec { } } -export class Distribute { +export class Contribute { @prop({ required: true, default: 0 }) food: number = 0; // 粮食 @prop({ required: true, default: 0 }) @@ -60,7 +60,7 @@ export default class GVGUserData extends BaseModel { box: number[]; @prop({ required: true, default: {}, _id: false }) - distribute: Distribute; + contribute: Contribute; @prop({ required: true, default: 0 }) sendFightRewardTime: number; // 发送征战奖励的时间 @@ -103,14 +103,14 @@ export default class GVGUserData extends BaseModel { const result: GVGUserDataType = await GVGUserDataModel.findOneAndUpdate({ configId, leagueCode, roleId }, { - $inc: { 'distribute.food': food, 'distribute.mineral': mineral, 'distribute.wood': wood } + $inc: { 'contribute.food': food, 'contribute.mineral': mineral, 'contribute.wood': wood } }, { new: true, upsert: true }).lean(); return result; } 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: { 'distribute.score': score } } } } + return { updateOne: { filter: { configId, leagueCode, roleId }, update: { $inc: { 'contribute.score': score } } } } })); } diff --git a/shared/domain/gvgField/returnData.ts b/shared/domain/gvgField/returnData.ts index ab87ab916..3931430b3 100644 --- a/shared/domain/gvgField/returnData.ts +++ b/shared/domain/gvgField/returnData.ts @@ -271,7 +271,7 @@ export class LeagueMemberListInfo { } } -export class LeagueMemberDistributeInfo extends LeagueMemberListInfo{ +export class LeagueMemberContributeInfo extends LeagueMemberListInfo{ rank: number = 0; food: number = 0; mineral: number = 0; @@ -282,10 +282,10 @@ export class LeagueMemberDistributeInfo extends LeagueMemberListInfo{ if(!data) return; this.active = data.active; this.job = data.job; - this.food = data.distribute?.food||0; - this.mineral = data.distribute?.mineral||0; - this.wood = data.distribute?.wood||0; - this.score = data.distribute?.score||0 + this.food = data.contribute?.food||0; + this.mineral = data.contribute?.mineral||0; + this.wood = data.contribute?.wood||0; + this.score = data.contribute?.score||0 } setRank(rank: number) { @@ -293,19 +293,19 @@ export class LeagueMemberDistributeInfo extends LeagueMemberListInfo{ } } -export class LeagueDistributeInfo { +export class LeagueContributeInfo { job: number; // 1-内政 2-外政 - sumDistribute: number; // 总贡献(宝箱显示) + sumContribute: number; // 总贡献(宝箱显示) receivedBox: number[]; // 已领取的宝箱id - members: LeagueMemberDistributeInfo[]; + members: LeagueMemberContributeInfo[]; - constructor(job: number, sumDistribute: number, receivedBox: number[]) { + constructor(job: number, sumContribute: number, receivedBox: number[]) { this.job = job; - this.sumDistribute = sumDistribute||0; + this.sumContribute = sumContribute||0; this.receivedBox = receivedBox||[]; } - setMembers(members: LeagueMemberDistributeInfo[]) { + setMembers(members: LeagueMemberContributeInfo[]) { this.members = members; } }