惊喜盒子,状态优化

duhui 2021-06-17 14:21:20 +08:00
parent 0b2df1665a
commit 8811d07ace
2 changed files with 35 additions and 15 deletions

View File

@ -41,15 +41,26 @@ public class SuperBoxActivity extends AbstractActivity {
public void initActivity(User user) throws Exception {
ActivityMission mission = new ActivityMission();
// 读表获取阶段奖励信息
Collection<SSurpriseBox> boxes = SSurpriseBox.map.get(id).values();
if (boxes == null || boxes.isEmpty()){
Map<Integer, SSurpriseBox> boxMap = SSurpriseBox.map.getOrDefault(id,new HashMap<>());
if (boxMap.isEmpty()){
LOGGER.error("惊喜礼盒初始化失败,活动id:"+id);
boxes = new ArrayList<>();
}
List<Integer> list = boxes.stream().mapToInt(SSurpriseBox::getId).boxed().collect(Collectors.toList());
List<Integer> list = boxMap.values().stream().mapToInt(SSurpriseBox::getId).boxed().collect(Collectors.toList());
// 初始化阶段奖励
ActivityLogic.getInstance().initOtherMission(mission, list);
// 第一位的礼包初始化参数
for (Map.Entry<Integer, ActivityProgressInfo> entry : mission.getActivityMissionMap().entrySet()) {
SSurpriseBox box = boxMap.get(entry.getKey());
if (box != null && box.getLimitPackFId() == 0){
entry.getValue().setProgrss(1);
break;
}
}
user.getActivityManager().getActivityMissionMap().put(id, mission);
// 修改状态
updateState(user);
LOGGER.info("惊喜礼盒初始化..."+id);
}
@ -86,14 +97,17 @@ public class SuperBoxActivity extends AbstractActivity {
for (SSurpriseBox box : boxes) {
if (box.getPackId() == giftId){
// 当前礼包状态处理
ActivityProgressInfo current = missionMap.get(box.getPackId());
current.setState(8);
missionMap.put(box.getId(),current);
ActivityProgressInfo current = missionMap.get(box.getId());
if (current != null){
current.setState(8);
missionMap.put(box.getId(),current);
}
// 下位礼包数据处理
ActivityProgressInfo next = missionMap.get(box.getLimitPackId());
next.setProgrss(1);
missionMap.put(box.getId(),next);
ActivityProgressInfo next = missionMap.get(box.getLimitPackBId());
if (next != null){
next.setProgrss(1);
missionMap.put(box.getId(),next);
}
break;
}
}

View File

@ -25,7 +25,9 @@ public class SSurpriseBox implements BaseConfig {
private int buyDay;
private int limitPackId;
private int limitPackFId;
private int limitPackBId;
private int rule;
@ -65,11 +67,15 @@ public class SSurpriseBox implements BaseConfig {
return buyDay;
}
public int getLimitPackId() {
return limitPackId;
public int getLimitPackFId() {
return limitPackFId;
}
public int getRule() {
public int getLimitPackBId() {
return limitPackBId;
}
public int getRule() {
return rule;
}