惊喜礼盒,逻辑修改
parent
8811d07ace
commit
374cd9d58d
|
@ -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
|
||||||
|
|
Loading…
Reference in New Issue