网页支付,礼包优化

duhui 2021-08-27 16:51:48 +08:00
parent e62e7a4ed9
commit c7e2243818
1 changed files with 95 additions and 15 deletions

View File

@ -11,17 +11,18 @@ import com.ljsd.jieling.exception.ErrorCode;
import com.ljsd.jieling.exception.ErrorCodeException;
import com.ljsd.jieling.globals.BIReason;
import com.ljsd.jieling.globals.Global;
import com.ljsd.jieling.jbean.ActivityMission;
import com.ljsd.jieling.jbean.ActivityProgressInfo;
import com.ljsd.jieling.ktbeans.ReportEventEnum;
import com.ljsd.jieling.ktbeans.ReportUtil;
import com.ljsd.jieling.logic.GlobalDataManaager;
import com.ljsd.jieling.logic.OnlineUserManager;
import com.ljsd.jieling.logic.activity.AbstractActivity;
import com.ljsd.jieling.logic.activity.ActivityLogic;
import com.ljsd.jieling.logic.activity.ActivityType;
import com.ljsd.jieling.logic.activity.ActivityTypeEnum;
import com.ljsd.jieling.logic.activity.event.*;
import com.ljsd.jieling.logic.dao.PlayerManager;
import com.ljsd.jieling.logic.dao.RechargeInfo;
import com.ljsd.jieling.logic.dao.UserManager;
import com.ljsd.jieling.logic.dao.VipInfo;
import com.ljsd.jieling.logic.dao.*;
import com.ljsd.jieling.logic.dao.root.User;
import com.ljsd.jieling.logic.expedition.ExpeditionLogic;
import com.ljsd.jieling.logic.fight.CombatLogic;
@ -636,27 +637,106 @@ public class BuyGoodsNewLogic {
public static Set<Integer> getGoodsBagInfoFromDelive(int uid) throws Exception {
User user = UserManager.getUser(uid);
Set<Integer> list = new HashSet<>();
// 礼包是否打开
NewRechargeInfo rechargeInfo = user.getPlayerInfoManager().getNewRechargeInfo();
for(AbstractWelfareBag bag : rechargeInfo.getPerpetualMap().values()){
ArrayList<AbstractWelfareBag> welfareBags = new ArrayList<>(rechargeInfo.getPerpetualMap().values());
welfareBags.addAll(rechargeInfo.getTimeLimitMap().values());
welfareBags.addAll(rechargeInfo.getPushMap().values());
for (AbstractWelfareBag bag : welfareBags) {
if(bag.isOpen()){
list.add(bag.getModId());
if (bag.getLimit() != 0 && bag.getLimit() > bag.getBuyTimes()){
list.add(bag.getModId());
}
}
}
for(AbstractWelfareBag bag : rechargeInfo.getTimeLimitMap().values()){
if(bag.isOpen()){
list.add(bag.getModId());
for (AbstractWelfareBag value : rechargeInfo.getReceiveMap().values()) {
ReceiveWelfareBag bag = (ReceiveWelfareBag)value;
if(bag.isOpen() && bag.isBought()){
if (bag.getLimit() != 0 && bag.getLimit() > bag.getBuyTimes()){
list.add(bag.getModId());
}
}
}
for(AbstractWelfareBag bag : rechargeInfo.getReceiveMap().values()){
if(bag.isOpen()){
list.add(bag.getModId());
// 登封造极活动信息
List<SGlobalActivity> activity1 = SGlobalActivity.getsGlobalActivityMapByType(ActivityType.HERO_STAR);
Map<Integer, ActivityMission> missionMap = user.getActivityManager().getActivityMissionMap();
// 循环相同类型的全部活动
for (SGlobalActivity activity : activity1) {
// 单个活动
ActivityMission orDefault = missionMap.getOrDefault(activity.getId(), null);
if (orDefault == null){
continue;
}
// 活动页签
Map<Integer, ActivityProgressInfo> map = orDefault.getActivityMissionMap();
// 活动奖励条件
List<SActivityRewardConfig> rewardConfigs = SActivityRewardConfig.getsActivityRewardConfigByActivityId(activity.getId());
for (SActivityRewardConfig rewardConfig : rewardConfigs) {
ActivityProgressInfo progressInfo = map.get(rewardConfig.getId());
// 页签不存在或者状态不为可领取状态
if (progressInfo == null || progressInfo.getState() != 1){
int goodsId = rewardConfig.getValues()[2][0];
list.remove(goodsId);
}
}
}
for(AbstractWelfareBag bag : rechargeInfo.getPushMap().values()){
if(bag.isOpen()){
list.add(bag.getModId());
// 惊喜礼盒,特惠神装
List<SGlobalActivity> activity2 = new ArrayList<>(SGlobalActivity.getsGlobalActivityMapByType(ActivityType.SUPER_BOX));
activity2.addAll(SGlobalActivity.getsGlobalActivityMapByType(ActivityType.SUPER_DISCOUNT_SKIN));
// 循环相同类型的全部活动
for (SGlobalActivity activity : activity2) {
// 单个活动
ActivityMission orDefault = missionMap.getOrDefault(activity.getId(), null);
if (orDefault == null){
continue;
}
// 活动页签
Map<Integer, ActivityProgressInfo> map = orDefault.getActivityMissionMap();
Map<Integer, SSurpriseBox> boxMap = SSurpriseBox.map.get(activity.getId());
// 活动奖励条件
for (Map.Entry<Integer, ActivityProgressInfo> entry : map.entrySet()) {
if (entry.getValue().getProgrss() != 1){
SSurpriseBox box = boxMap.getOrDefault(entry.getKey(), null);
if (box == null){
continue;
}
list.remove(box.getPackId());
}
}
}
// 缥缈之旅
List<SGlobalActivity> activity3 = SGlobalActivity.getsGlobalActivityMapByType(ActivityType.MISTY_TRIP);
// 循环相同类型的全部活动
for (SGlobalActivity activity : activity3) {
// 单个活动
ActivityMission orDefault = missionMap.getOrDefault(activity.getId(), null);
if (orDefault == null){
continue;
}
// 活动详细配置
Map<Integer, ActivityProgressInfo> map = orDefault.getActivityMissionMap();
List<SActivityRewardConfig> rewardConfigs = SActivityRewardConfig.getsActivityRewardConfigByActivityId(activity.getId());
// 创角色第几天
int days = TimeUtils.getSoFarWentDays(user.getPlayerInfoManager().getCreateTime(), TimeUtils.now());
for (SActivityRewardConfig config : rewardConfigs) {
// 单个页签信息
ActivityProgressInfo info = map.getOrDefault(config.getId(), null);
if (info == null){
continue;
}
int[][] values = config.getValues();
// 条件,天数和任务数量
if (days < values[0][1] || info.getProgrss() < values[0][0]){
list.remove(values[1][0]);
}
}
}
return list;
}