🐞 fix(gvg): 修复农场帮收问题
This commit is contained in:
@@ -273,6 +273,9 @@ export class GVGProduceHandler {
|
|||||||
let { configId, period } = getGVGPeriodData();
|
let { configId, period } = getGVGPeriodData();
|
||||||
if(period != GVG_PERIOD.PREPARE) return resResult(STATUS.GVG_NOT_PREPARE_PERIOD);
|
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);
|
let myLeague = await GVGLeagueModel.findLeagueByGuild(guildCode);
|
||||||
if(!myLeague) return resResult(STATUS.GVG_LEAGUE_NOT_EXIST);
|
if(!myLeague) return resResult(STATUS.GVG_LEAGUE_NOT_EXIST);
|
||||||
|
|
||||||
@@ -284,15 +287,20 @@ export class GVGProduceHandler {
|
|||||||
// 计算产量
|
// 计算产量
|
||||||
const { foodSum, rewardSum, leagueRewardSum, activeSum } = await sumOutputByResults(resultField);
|
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 sendMailByContent(MAIL_TYPE.HELP_HARVEST, targetRoleId, { sendName: roleName, goods: rewardSum });
|
||||||
// 相关物品
|
// 相关物品
|
||||||
await addGVGReward(targetRoleId, roleName, myLeague.leagueCode, targetOnlineInfo.sid, leagueRewardSum, [], ITEM_CHANGE_REASON.HARVEST)
|
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);
|
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, {
|
return resResult(STATUS.SUCCESS, {
|
||||||
...await getLeagueFarmShowResult(myLeague.leagueCode, roleId, farmId),
|
...obj,
|
||||||
|
...resourceResult
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -148,7 +148,7 @@ export default class GVGLeagueFarm extends BaseModel {
|
|||||||
const result = await GVGLeagueFarmModel.updateMany({ _id: { $in: _ids } },
|
const result = await GVGLeagueFarmModel.updateMany({ _id: { $in: _ids } },
|
||||||
{ $set: { unlockTime: 0, harvestTime: 0, lockRoleId: '', lockRoleName: '', seedType: 0, index: 0 }}, { new: true });
|
{ $set: { unlockTime: 0, harvestTime: 0, lockRoleId: '', lockRoleName: '', seedType: 0, index: 0 }}, { new: true });
|
||||||
if(result.modifiedCount == 0) return [];
|
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) {
|
public static async releaseLock(configId: number, leagueCode: string, farmId: number, roleId: string) {
|
||||||
|
|||||||
Reference in New Issue
Block a user