From 2ed3864e168370f68c80a0d5b5a6297cb52cc3a3 Mon Sep 17 00:00:00 2001 From: wangyuan Date: Tue, 3 Sep 2019 10:23:51 +0800 Subject: [PATCH] store --- .../com/ljsd/jieling/battle/actor/Scene.java | 7 +++ .../jieling/battle/statics/AnalysisData.java | 30 ++++++++++++ .../battle/statics/AnalysisEventType.java | 8 +++ .../battle/statics/AnalysisProcessor.java | 8 +++ .../battle/statics/AnalysisSourceData.java | 27 ++++++++++ .../statics/BattleAnalysisProcessor.java | 16 ++++++ .../statics/DiggerAnalysisProcessor.java | 12 +++++ .../battle/statics/MessageBoxUtils.java | 18 +++++++ .../jieling/config/SBloodyMessagesConfig.java | 49 +++++++++++++++++++ .../ljsd/jieling/logic/store/StoreLogic.java | 7 +-- 10 files changed, 179 insertions(+), 3 deletions(-) create mode 100644 serverlogic/src/main/java/com/ljsd/jieling/battle/statics/AnalysisData.java create mode 100644 serverlogic/src/main/java/com/ljsd/jieling/battle/statics/AnalysisEventType.java create mode 100644 serverlogic/src/main/java/com/ljsd/jieling/battle/statics/AnalysisProcessor.java create mode 100644 serverlogic/src/main/java/com/ljsd/jieling/battle/statics/AnalysisSourceData.java create mode 100644 serverlogic/src/main/java/com/ljsd/jieling/battle/statics/BattleAnalysisProcessor.java create mode 100644 serverlogic/src/main/java/com/ljsd/jieling/battle/statics/DiggerAnalysisProcessor.java create mode 100644 serverlogic/src/main/java/com/ljsd/jieling/battle/statics/MessageBoxUtils.java create mode 100644 serverlogic/src/main/java/com/ljsd/jieling/config/SBloodyMessagesConfig.java diff --git a/serverlogic/src/main/java/com/ljsd/jieling/battle/actor/Scene.java b/serverlogic/src/main/java/com/ljsd/jieling/battle/actor/Scene.java index c3ab65757..e38399619 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/battle/actor/Scene.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/battle/actor/Scene.java @@ -9,6 +9,7 @@ import com.ljsd.jieling.battle.match.MatchServerice; import com.ljsd.jieling.battle.room.BeanToProto; import com.ljsd.jieling.battle.room.Command; import com.ljsd.jieling.battle.room.SceneManager; +import com.ljsd.jieling.battle.statics.AnalysisData; import com.ljsd.jieling.config.SBloodyBattleSetting; import com.ljsd.jieling.db.mongo.MongoUtil; import com.ljsd.jieling.logic.OnlineUserManager; @@ -48,6 +49,8 @@ public class Scene implements Runnable{ return minealForPosMap.remove(pos); } + private Map analysisDataMap = new HashMap<>(); + public void randomMineralOfUserDeath(Creature creature,int totalMineal){ if(totalMineal <=0){ @@ -391,4 +394,8 @@ public class Scene implements Runnable{ public void setStartTime(long startTime) { this.startTime = startTime; } + + public Map getAnalysisDataMap() { + return analysisDataMap; + } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/battle/statics/AnalysisData.java b/serverlogic/src/main/java/com/ljsd/jieling/battle/statics/AnalysisData.java new file mode 100644 index 000000000..7fab4687f --- /dev/null +++ b/serverlogic/src/main/java/com/ljsd/jieling/battle/statics/AnalysisData.java @@ -0,0 +1,30 @@ +package com.ljsd.jieling.battle.statics; + +public class AnalysisData { + private int id; + private int killNums; // 杀敌次数 + private int deadNums; //死亡次数 + private int diggerTimes; // 连续挖矿次数 + private int continuousKillNums;//连续杀敌次数 + private int continuousDeadNums;//连续死亡次数 + + public AnalysisData(int id) { + this.id = id; + } + + public void win(){ + killNums++; + continuousKillNums++; + continuousDeadNums=0; + } + + public void fail(){ + deadNums++; + continuousKillNums=0; + continuousDeadNums=0; + } + + public void digger(){ + diggerTimes++; + } +} diff --git a/serverlogic/src/main/java/com/ljsd/jieling/battle/statics/AnalysisEventType.java b/serverlogic/src/main/java/com/ljsd/jieling/battle/statics/AnalysisEventType.java new file mode 100644 index 000000000..671780cb4 --- /dev/null +++ b/serverlogic/src/main/java/com/ljsd/jieling/battle/statics/AnalysisEventType.java @@ -0,0 +1,8 @@ +package com.ljsd.jieling.battle.statics; + +public enum AnalysisEventType { + BATTLE, + DIGGER, + + +} diff --git a/serverlogic/src/main/java/com/ljsd/jieling/battle/statics/AnalysisProcessor.java b/serverlogic/src/main/java/com/ljsd/jieling/battle/statics/AnalysisProcessor.java new file mode 100644 index 000000000..90d48b8cb --- /dev/null +++ b/serverlogic/src/main/java/com/ljsd/jieling/battle/statics/AnalysisProcessor.java @@ -0,0 +1,8 @@ +package com.ljsd.jieling.battle.statics; + +import com.ljsd.jieling.battle.actor.Scene; + +public interface AnalysisProcessor { + + void process(Scene scene,AnalysisSourceData analysisSourceData); +} diff --git a/serverlogic/src/main/java/com/ljsd/jieling/battle/statics/AnalysisSourceData.java b/serverlogic/src/main/java/com/ljsd/jieling/battle/statics/AnalysisSourceData.java new file mode 100644 index 000000000..e85b5bf42 --- /dev/null +++ b/serverlogic/src/main/java/com/ljsd/jieling/battle/statics/AnalysisSourceData.java @@ -0,0 +1,27 @@ +package com.ljsd.jieling.battle.statics; + +public class AnalysisSourceData { + + private int targetId; + private int caster; + + private int value; //参数 + + public AnalysisSourceData(int targetId, int caster, int value) { + this.targetId = targetId; + this.caster = caster; + this.value = value; + } + + public int getTargetId() { + return targetId; + } + + public int getCaster() { + return caster; + } + + public int getValue() { + return value; + } +} diff --git a/serverlogic/src/main/java/com/ljsd/jieling/battle/statics/BattleAnalysisProcessor.java b/serverlogic/src/main/java/com/ljsd/jieling/battle/statics/BattleAnalysisProcessor.java new file mode 100644 index 000000000..12f0623eb --- /dev/null +++ b/serverlogic/src/main/java/com/ljsd/jieling/battle/statics/BattleAnalysisProcessor.java @@ -0,0 +1,16 @@ +package com.ljsd.jieling.battle.statics; + +import com.ljsd.jieling.battle.actor.Scene; + +public class BattleAnalysisProcessor implements AnalysisProcessor{ + @Override + public void process(Scene scene, AnalysisSourceData analysisSourceData){ + AnalysisData analysisData = scene.getAnalysisDataMap().get(analysisSourceData.getTargetId()); + if(analysisSourceData.getValue() == 1){ + analysisData.win(); + }else{ + analysisData.fail(); + } + + } +} diff --git a/serverlogic/src/main/java/com/ljsd/jieling/battle/statics/DiggerAnalysisProcessor.java b/serverlogic/src/main/java/com/ljsd/jieling/battle/statics/DiggerAnalysisProcessor.java new file mode 100644 index 000000000..c76876aed --- /dev/null +++ b/serverlogic/src/main/java/com/ljsd/jieling/battle/statics/DiggerAnalysisProcessor.java @@ -0,0 +1,12 @@ +package com.ljsd.jieling.battle.statics; + +import com.ljsd.jieling.battle.actor.Scene; + +public class DiggerAnalysisProcessor implements AnalysisProcessor{ + + @Override + public void process(Scene scene, AnalysisSourceData analysisSourceData) { + AnalysisData analysisData = scene.getAnalysisDataMap().get(analysisSourceData.getTargetId()); + analysisData.digger(); + } +} diff --git a/serverlogic/src/main/java/com/ljsd/jieling/battle/statics/MessageBoxUtils.java b/serverlogic/src/main/java/com/ljsd/jieling/battle/statics/MessageBoxUtils.java new file mode 100644 index 000000000..529d98dd7 --- /dev/null +++ b/serverlogic/src/main/java/com/ljsd/jieling/battle/statics/MessageBoxUtils.java @@ -0,0 +1,18 @@ +package com.ljsd.jieling.battle.statics; + +import java.util.HashMap; +import java.util.Map; + +public class MessageBoxUtils { + private static Map analysisEventTypeIntegerMap = new HashMap<>(); + static { + //更新统计数据 数据汇总聚合 + analysisEventTypeIntegerMap.put(AnalysisEventType.BATTLE,new BattleAnalysisProcessor()); + analysisEventTypeIntegerMap.put(AnalysisEventType.DIGGER,new DiggerAnalysisProcessor()); + } + + + public static void onGameEvent(AnalysisEventType type){ + AnalysisProcessor analysisProcessor = analysisEventTypeIntegerMap.get(type); + } +} diff --git a/serverlogic/src/main/java/com/ljsd/jieling/config/SBloodyMessagesConfig.java b/serverlogic/src/main/java/com/ljsd/jieling/config/SBloodyMessagesConfig.java new file mode 100644 index 000000000..dedd4cdc1 --- /dev/null +++ b/serverlogic/src/main/java/com/ljsd/jieling/config/SBloodyMessagesConfig.java @@ -0,0 +1,49 @@ +package com.ljsd.jieling.config; + +import com.ljsd.jieling.logic.STableManager; +import com.ljsd.jieling.logic.Table; + +import java.util.Map; + +@Table(name ="BloodyMessagesConfig") +public class SBloodyMessagesConfig implements BaseConfig { + + private int id; + + private String name; + + private int type; + + private int count; + + private String message; + + + @Override + public void init() throws Exception { + + } + + + public int getId() { + return id; + } + + public String getName() { + return name; + } + + public int getType() { + return type; + } + + public int getCount() { + return count; + } + + public String getMessage() { + return message; + } + + +} \ No newline at end of file diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/StoreLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/StoreLogic.java index 19028e01d..e4ac7617e 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/StoreLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/StoreLogic.java @@ -87,9 +87,7 @@ public class StoreLogic { int uid = iSession.getUid(); User user = UserManager.getUser(uid); StoreManager storeManager = user.getStoreManager(); - if (storeManager.getStoreInfoMap().size() == 0){ - initStoreInfo(user,storeManager); - } + initStoreInfo(user,storeManager); PlayerInfoProto.GetStoreInfosResponse.Builder builder = PlayerInfoProto.GetStoreInfosResponse.newBuilder(); Map storeInfoMap = storeManager.getStoreInfoMap(); checkStoreRefresh(user,storeInfoMap); @@ -223,6 +221,9 @@ public class StoreLogic { Map sstoreTypeConfigMap = SStoreTypeConfig.getsStoreTypeConfigMap(); for ( Map.Entry entry :sstoreTypeConfigMap.entrySet()){ SStoreTypeConfig sStoreTypeConfig = entry.getValue(); + if(storeManager.getStoreInfoMap().containsKey(sStoreTypeConfig.getId())){ + continue; + } if (sStoreTypeConfig.getStoreOpenRule() == 1 && sStoreTypeConfig.getId() !=8){ //固定商店 Map itemNumMap = getStoreItem(sStoreTypeConfig.getId(),sStoreTypeConfig,user); long startTime = 0;