diff --git a/game-server/app/servers/guild/handler/gvgProduceHandler.ts b/game-server/app/servers/guild/handler/gvgProduceHandler.ts index ddf870296..7ce207a43 100644 --- a/game-server/app/servers/guild/handler/gvgProduceHandler.ts +++ b/game-server/app/servers/guild/handler/gvgProduceHandler.ts @@ -273,6 +273,9 @@ export class GVGProduceHandler { let { configId, period } = getGVGPeriodData(); if(period != GVG_PERIOD.PREPARE) return resResult(STATUS.GVG_NOT_PREPARE_PERIOD); + let dicFarm = gameData.gvgResource.get(farmId); + if(!dicFarm) return resResult(STATUS.DIC_DATA_NOT_FOUND); + let myLeague = await GVGLeagueModel.findLeagueByGuild(guildCode); if(!myLeague) return resResult(STATUS.GVG_LEAGUE_NOT_EXIST); @@ -284,15 +287,20 @@ export class GVGProduceHandler { // 计算产量 const { foodSum, rewardSum, leagueRewardSum, activeSum } = await sumOutputByResults(resultField); // 资源 - await addResource(myLeague, targetRoleId, resultField[0].lockRoleName, GVG_RESOURCE_TYPE.FOOD, foodSum)||{}; + let resourceResult = await addResource(myLeague, targetRoleId, resultField[0].lockRoleName, GVG_RESOURCE_TYPE.FOOD, foodSum)||{}; await sendMailByContent(MAIL_TYPE.HELP_HARVEST, targetRoleId, { sendName: roleName, goods: rewardSum }); // 相关物品 await addGVGReward(targetRoleId, roleName, myLeague.leagueCode, targetOnlineInfo.sid, leagueRewardSum, [], ITEM_CHANGE_REASON.HARVEST) // 活跃 await addGVGActive(myLeague.leagueCode, targetRoleId, GVG_ACTIVE_TYPE.COST_PRODUCE_COIN, activeSum); + const leagueFarm = resultField.filter(cur => cur.farmId == dicFarm.id && cur.unlockTime >= nowSeconds()); // 已种植单位 + const canHarvestFarms = resultField.filter(cur => dicFarm.type == GVG_RESOURCE_TYPE.FOOD && cur.farmId == dicFarm.id && cur.harvestTime > 0 && cur.harvestTime <= nowSeconds()); + let obj = new LeagueFarmListInfo(dicFarm.id, leagueFarm.length, canHarvestFarms.length > 0); + return resResult(STATUS.SUCCESS, { - ...await getLeagueFarmShowResult(myLeague.leagueCode, roleId, farmId), + ...obj, + ...resourceResult }); } diff --git a/shared/db/GVGLeagueFarm.ts b/shared/db/GVGLeagueFarm.ts index 3c0941f49..ab2ddc616 100644 --- a/shared/db/GVGLeagueFarm.ts +++ b/shared/db/GVGLeagueFarm.ts @@ -148,7 +148,7 @@ export default class GVGLeagueFarm extends BaseModel { const result = await GVGLeagueFarmModel.updateMany({ _id: { $in: _ids } }, { $set: { unlockTime: 0, harvestTime: 0, lockRoleId: '', lockRoleName: '', seedType: 0, index: 0 }}, { new: true }); if(result.modifiedCount == 0) return []; - return fieldResult + return fieldResult.map(cur => ({ ...cur, unlockTime: 0, harvestTime: 0, lockRoleId: '', lockRoleName: '', seedType: 0, index: 0 })) } public static async releaseLock(configId: number, leagueCode: string, farmId: number, roleId: string) {