惊喜礼盒,逻辑修改

back_recharge
duhui 2021-06-12 18:07:13 +08:00
parent 8811d07ace
commit 374cd9d58d
1 changed files with 35 additions and 26 deletions

View File

@ -12,6 +12,7 @@ import com.ljsd.jieling.logic.dao.root.User;
import com.ljsd.jieling.network.session.ISession; import com.ljsd.jieling.network.session.ISession;
import config.SGlobalActivity; import config.SGlobalActivity;
import config.SSurpriseBox; import config.SSurpriseBox;
import manager.STableManager;
import util.TimeUtils; import util.TimeUtils;
import java.util.*; import java.util.*;
@ -48,16 +49,6 @@ public class SuperBoxActivity extends AbstractActivity {
List<Integer> list = boxMap.values().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); 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); user.getActivityManager().getActivityMissionMap().put(id, mission);
// 修改状态 // 修改状态
updateState(user); updateState(user);
@ -99,15 +90,10 @@ public class SuperBoxActivity extends AbstractActivity {
// 当前礼包状态处理 // 当前礼包状态处理
ActivityProgressInfo current = missionMap.get(box.getId()); ActivityProgressInfo current = missionMap.get(box.getId());
if (current != null){ if (current != null){
current.setState(8); current.setState(ActivityType.HAD_TAKED);
current.setProgrss(8);
missionMap.put(box.getId(),current); missionMap.put(box.getId(),current);
} }
// 下位礼包数据处理
ActivityProgressInfo next = missionMap.get(box.getLimitPackBId());
if (next != null){
next.setProgrss(1);
missionMap.put(box.getId(),next);
}
break; break;
} }
} }
@ -137,9 +123,9 @@ public class SuperBoxActivity extends AbstractActivity {
for (Map.Entry<Integer, ActivityProgressInfo> entry : missionMap.entrySet()) { for (Map.Entry<Integer, ActivityProgressInfo> entry : missionMap.entrySet()) {
int k = entry.getKey(); int k = entry.getKey();
ActivityProgressInfo v = entry.getValue(); ActivityProgressInfo v = entry.getValue();
int state = v.getState(); int progrss = v.getProgrss();
// 是否已购买 // 是否已购买
if (state == 8){ if (progrss == 8){
// 已购买 // 已购买
continue; continue;
} }
@ -150,28 +136,28 @@ public class SuperBoxActivity extends AbstractActivity {
// 已解锁, 可买天数 // 已解锁, 可买天数
if (days >= box.getBuyDay()){ if (days >= box.getBuyDay()){
// 可买, 是否购买前置礼包 // 可买, 是否购买前置礼包
if (v.getProgrss() == 1){ if (checkBuyAgo(user,box.getId())){
// 已购买前置. 是否需要特权, 是否激活特权 // 已购买前置. 是否需要特权, 是否激活特权
state = checkRule(user,box.getRule())?1:4; progrss = checkRule(user,box.getRule())?1:4;
}else { }else {
// 未购买前置 // 未购买前置
state = 3; progrss = 3;
} }
}else { }else {
// 不可买 // 不可买
state = 2; progrss = 2;
} }
}else { }else {
// 未解锁, 是否可见 // 未解锁, 是否可见
if (days >= box.getVisibleDay()){ if (days >= box.getVisibleDay()){
// 可见, 是否可预览 // 可见, 是否可预览
state = days >= box.getViewDay()?6:7; progrss = days >= box.getViewDay()?6:7;
}else { }else {
// 不可见 // 不可见
state = 5; progrss = 5;
} }
} }
v.setState(state); v.setProgrss(progrss);
} }
// 客户端推送 // 客户端推送
@ -179,6 +165,29 @@ public class SuperBoxActivity extends AbstractActivity {
sendActivityProgress(session, mission, null); sendActivityProgress(session, mission, null);
} }
/**
*
* @param user
* @param boxId
* @return
*/
private boolean checkBuyAgo(User user, int boxId){
boolean result = true;
// 获取消息
Map<Integer, ActivityProgressInfo> missionMap = user.getActivityManager().getActivityMissionMap().get(id).getActivityMissionMap();
SSurpriseBox box = STableManager.getConfig(SSurpriseBox.class).get(boxId);
// 非空
if (!missionMap.isEmpty() && box != null){
// 前置礼包状态验证
ActivityProgressInfo info = missionMap.get(box.getLimitPackFId());
// info为null代表没有前置条件, state==2代表已买过
if (info != null && info.getState() == ActivityType.WILL_TAKE){
result = false;
}
}
return result;
}
/** /**
* *
* 0 true * 0 true