限时招募进度条重置

back_recharge
duhui 2021-11-25 17:45:26 +08:00
parent a2fc1eda05
commit 8260b6fd83
1 changed files with 34 additions and 1 deletions

View File

@ -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<ActivityProgressInfo> collect = mission.getActivityMissionMap().values().stream().filter(v -> v.getState() == 0).collect(Collectors.toList());
// 为空,表示全部领取,重置奖励
if (collect.isEmpty()){
// 配置表
List<SActivityRewardConfig> configs = SActivityRewardConfig.getsActivityRewardConfigByActivityId(id);
// 获取最大奖励值
List<Integer> 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<Integer> 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);
}
}
}