From bfdd43d6bd51fe4af2ab67036b25b550331c112f Mon Sep 17 00:00:00 2001 From: duhui Date: Tue, 6 Sep 2022 13:45:24 +0800 Subject: [PATCH] =?UTF-8?q?=E7=89=9B=E6=B0=94=E5=86=B2=E5=A4=A9=E6=B4=BB?= =?UTF-8?q?=E5=8A=A8bug=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jieling/logic/dao/UserMissionManager.java | 3 +- .../mission/main/CowFlySkyMissionType.java | 6 ++-- .../src/main/java/config/SArroGantFly.java | 33 +++++++++++++++---- 3 files changed, 31 insertions(+), 11 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/UserMissionManager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/UserMissionManager.java index 80d183bd7..f91fd07d7 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/UserMissionManager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/UserMissionManager.java @@ -243,8 +243,9 @@ public class UserMissionManager extends MongoBase { break; case COW_FLY_SKY_REFRESH: + int activityCowId = (int) parm[0]; // 牛气冲天 - Set arro = STableManager.getConfig(SArroGantFly.class).keySet(); + Set arro = SArroGantFly.getActivityMap().getOrDefault(activityCowId, new HashMap<>()).keySet(); cowFlySkyMissionType.getDoingMissionIds().clear(); cowFlySkyMissionType.getFinishMissionIds().clear(); cowFlySkyMissionType.getRewardedMissionIds().clear(); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/main/CowFlySkyMissionType.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/main/CowFlySkyMissionType.java index f221a64f5..38e7b19ba 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/main/CowFlySkyMissionType.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/main/CowFlySkyMissionType.java @@ -34,11 +34,11 @@ public class CowFlySkyMissionType extends AbstractMissionType { public void calCumulationDataResult(User user, CumulationData.Result result, List missionStateChangeInfos, CumulationData cumulationData) throws Exception { // 进行中得任务 Set doingMissionIds = getDoingMissionIds(); - List flyList = SArroGantFly.getMap().get(result.subType.getMissionTypeValue()); - if (flyList == null){ + Collection values = SArroGantFly.getTaskTypeMap().get(result.subType.getMissionTypeValue()).values(); + if (values == null || values.isEmpty()){ return; } - for (SArroGantFly fly : flyList) { + for (SArroGantFly fly : values) { // 任务子id int id = fly.getId(); // 不在执行中 diff --git a/tablemanager/src/main/java/config/SArroGantFly.java b/tablemanager/src/main/java/config/SArroGantFly.java index bb91bca14..ad3792280 100644 --- a/tablemanager/src/main/java/config/SArroGantFly.java +++ b/tablemanager/src/main/java/config/SArroGantFly.java @@ -21,20 +21,39 @@ public class SArroGantFly implements BaseConfig { private int[][] reward; - private static Map> map = new HashMap<>(); - + // key:活动id + private static Map> activityMap = new HashMap<>(); + // key: 任务类型 + private static Map> taskTypeMap = new HashMap<>(); + @Override public void init() throws Exception { Map config = STableManager.getConfig(SArroGantFly.class); + HashMap> map1 = new HashMap<>(); + HashMap> map2 = new HashMap<>(); for (SArroGantFly value : config.values()) { - List flyList = map.getOrDefault(value.getValues(), new ArrayList<>()); - flyList.add(value); - map.put(value.getValues(),flyList); + // 活动id + Map flyMap = map1.getOrDefault(value.getActivityId(), new HashMap<>()); + flyMap.put(value.getId(),value); + map1.put(value.getActivityId(),flyMap); + // 任务类型 + Map flyMap2 = map2.getOrDefault(value.getValues(), new HashMap<>()); + flyMap2.put(value.getId(),value); + map2.put(value.getValues(),flyMap2); } + activityMap.clear(); + activityMap = map1; + + taskTypeMap.clear(); + taskTypeMap = map2; } - public static Map> getMap() { - return map; + public static Map> getActivityMap() { + return activityMap; + } + + public static Map> getTaskTypeMap() { + return taskTypeMap; } public int getId() {