diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/LimitRandomCardActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/LimitRandomCardActivity.java index c8f9c0ec4..196db3b90 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/LimitRandomCardActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/LimitRandomCardActivity.java @@ -22,10 +22,7 @@ import manager.STableManager; import org.springframework.data.redis.core.ZSetOperations; import util.TimeUtils; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Set; +import java.util.*; import java.util.function.Consumer; import java.util.function.Predicate; import java.util.stream.Stream; @@ -64,19 +61,22 @@ public class LimitRandomCardActivity extends AbstractActivity { return; } int index = 1; + List configList = new ArrayList<>(); for(Map.Entry entry:mustAppear.entrySet()){ int key = entry.getKey(); List lotterySpecialConfigListByType = SLotterySpecialConfig.getLotteryListByDifferentType(key); if(lotterySpecialConfigListByType==null||lotterySpecialConfigListByType.isEmpty()){ continue; } - for(SLotterySpecialConfig config:lotterySpecialConfigListByType){ - if(config==null||config.getIsNeedShow()==0){ - continue; - } - allCount +=entry.getValue()*index; - index*=1000; + configList.addAll(lotterySpecialConfigListByType); + } + configList.sort(Comparator.comparingInt(SLotterySpecialConfig::getDifferentType)); + for(SLotterySpecialConfig config:configList){ + if(config==null||config.getIsNeedShow()==0){ + continue; } + allCount +=mustAppear.get(config.getDifferentType())*index; + index*=1000; } ActivityMission activityMission = user.getActivityManager().getActivityMissionMap().get(id);