From 8260b6fd83511b0b179c047aa8205de219d339c2 Mon Sep 17 00:00:00 2001 From: duhui Date: Thu, 25 Nov 2021 17:45:26 +0800 Subject: [PATCH] =?UTF-8?q?=E9=99=90=E6=97=B6=E6=8B=9B=E5=8B=9F=E8=BF=9B?= =?UTF-8?q?=E5=BA=A6=E6=9D=A1=E9=87=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../activity/ChoiceDrawCardActivity.java | 35 ++++++++++++++++++- 1 file changed, 34 insertions(+), 1 deletion(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ChoiceDrawCardActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ChoiceDrawCardActivity.java index 39a03560f..c475f7914 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ChoiceDrawCardActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ChoiceDrawCardActivity.java @@ -103,6 +103,8 @@ public class ChoiceDrawCardActivity extends AbstractActivity { CommonProto.Drop.Builder drop = ItemUtil.drop(user, reward, BIReason.TAKE_ACTIVITY_REWARD); PlayerInfoProto.TakeActivityRewardResponse build = PlayerInfoProto.TakeActivityRewardResponse.newBuilder().setDrop(drop).build(); MessageUtil.sendMessage(session, 1, rewardResponseValue, build, true); + // 检查是否需要重启奖励 + checkResetProgress(mission,missionId); // 状态推送 sendActivityProgress(session, mission, null); // 打点上报 @@ -110,6 +112,38 @@ public class ChoiceDrawCardActivity extends AbstractActivity { return true; } + /** + * 充值奖励 + * @param mission + * @param missionId + */ + private void checkResetProgress(ActivityMission mission,int missionId){ + // 获取全部未领取的mission + List collect = mission.getActivityMissionMap().values().stream().filter(v -> v.getState() == 0).collect(Collectors.toList()); + // 为空,表示全部领取,重置奖励 + if (collect.isEmpty()){ + // 配置表 + List configs = SActivityRewardConfig.getsActivityRewardConfigByActivityId(id); + // 获取最大奖励值 + List collect2 = configs.stream().mapToInt(v -> v.getValues()[0][0]).boxed().collect(Collectors.toList()); + Integer max = Collections.max(collect2); + // 获取盈余的积分 + int progrss = mission.getActivityMissionMap().get(missionId).getProgrss(); + int count = (progrss-max)>0?(progrss-max):0; + // 重置全部mission为新积分 + List missionIds = configs.stream().mapToInt(SActivityRewardConfig::getId).boxed().collect(Collectors.toList()); + for(Integer id : missionIds){ + ActivityProgressInfo activityProgressInfo = new ActivityProgressInfo(); + activityProgressInfo.setProgrss(count); + activityProgressInfo.setState(0); + mission.getActivityMissionMap().put(id, activityProgressInfo); + } + mission.setOpenType(1); + mission.setV(0); + mission.setActivityState(ActivityType.OPEN_STATE); + } + } + /** * 特殊处理奖励 * @param reward 默认奖励配置 @@ -173,7 +207,6 @@ public class ChoiceDrawCardActivity extends AbstractActivity { SGlobalActivity sGlobalActivity = SGlobalActivity.getsGlobalActivityMap().get(id); if (null != sGlobalActivity && sGlobalActivity.getResetGrade() == 1) { reSetValue(user); - getAllMissRewards(user, session, itemAttrs); } } }