From 267f621cc08e9e932c67acf6251f357a18cedbc0 Mon Sep 17 00:00:00 2001 From: zhangshanxue Date: Mon, 24 Feb 2020 15:00:35 +0800 Subject: [PATCH 1/3] =?UTF-8?q?BUG=20=E3=80=90ID1006263=E3=80=91=20?= =?UTF-8?q?=E3=80=90=E4=BA=94=E6=98=9F=E6=88=90=E9=95=BF=E7=A4=BC=E3=80=91?= =?UTF-8?q?=E5=9C=A8=E7=A2=8E=E7=89=87=E5=90=88=E6=88=90=E6=97=B6=EF=BC=8C?= =?UTF-8?q?=E8=8E=B7=E5=BE=97=E4=BA=94=E6=98=9F=E7=8C=8E=E5=A6=96=E5=B8=88?= =?UTF-8?q?=EF=BC=8C=E5=81=B6=E5=B0=94=E6=B2=A1=E6=9C=89=E5=89=8D=E5=BE=80?= =?UTF-8?q?=E7=9A=84=E5=BC=B9=E7=AA=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ljsd/jieling/core/SimpleTransaction.java | 36 +++++++++++++++++-- .../com/ljsd/jieling/util/MessageUtil.java | 7 ++-- 2 files changed, 35 insertions(+), 8 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/core/SimpleTransaction.java b/serverlogic/src/main/java/com/ljsd/jieling/core/SimpleTransaction.java index e448633c8..c2ffbff9b 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/core/SimpleTransaction.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/core/SimpleTransaction.java @@ -4,6 +4,7 @@ import com.google.protobuf.GeneratedMessage; import com.ljsd.jieling.db.mongo.MongoUtil; import com.ljsd.jieling.logic.mission.event.MissionEventDistributor; import com.ljsd.jieling.network.session.ISession; +import com.ljsd.jieling.protocols.CommonProto; import com.ljsd.jieling.protocols.MessageTypeProto; import com.ljsd.jieling.protocols.PlayerInfoProto; import com.ljsd.jieling.util.MessageUtil; @@ -13,11 +14,12 @@ import java.util.*; /** * 伪事务 */ + public class SimpleTransaction { //当前过程的session private ISession session; private List tasks = new LinkedList<>(); - private Map> sendCacheMap = new HashMap<>(); + private Map> sendCacheMap = new HashMap<>(); private static final Map combineMsgId = new HashMap<>(); static { @@ -45,7 +47,35 @@ public class SimpleTransaction { combineMsgId.put(MessageTypeProto.MessageType.ALL_GIFTGOODS_INDICATION_VALUE, (MessageUtil.CombinePolicy< PlayerInfoProto.AllGiftGoodsIndication>) list -> { List combineList = new LinkedList<>(); if(list.size()>0){ - combineList.add(list.get(list.size()-1)); + if(list.size()>1){ + //修复连续获得多个英雄 前端无法处理问题 + HashMap giftId2startTimeMap = new HashMap<>(); + list.getFirst().getGiftGoodsInfoList().forEach(giftGoodsInfo -> { + if(giftGoodsInfo.getStartTime()!=0){ + giftId2startTimeMap.put(giftGoodsInfo.getGoodsId(),giftGoodsInfo.getStartTime()); + } + }); + + PlayerInfoProto.AllGiftGoodsIndication.Builder build = PlayerInfoProto.AllGiftGoodsIndication.newBuilder(); + list.getLast().getGiftGoodsInfoList().forEach(giftGoodsInfo -> { + if(giftId2startTimeMap.containsKey(giftGoodsInfo.getGoodsId())){ + CommonProto.GiftGoodsInfo.Builder builder = CommonProto.GiftGoodsInfo.newBuilder(); + builder.setStartTime(giftId2startTimeMap.get(giftGoodsInfo.getGoodsId())); + builder.setBuyTimes(giftGoodsInfo.getBuyTimes()); + builder.setEndTime(giftGoodsInfo.getEndTime()); + builder.setGoodsId(giftGoodsInfo.getGoodsId()); + builder.setDynamicBuyTimes(giftGoodsInfo.getDynamicBuyTimes()); + build.addGiftGoodsInfo(builder); + }else { + build.addGiftGoodsInfo(giftGoodsInfo); + } + }); + + combineList.add(build.build()); + }else { + combineList.add(list.getLast()); + } + } return combineList; }); @@ -61,7 +91,7 @@ public class SimpleTransaction { public void dealWhileCommit(TransTask transTask) { if (transTask instanceof SendTask && combineMsgId.keySet().contains(((SendTask) transTask).getMsgId())) { - List linkedList = sendCacheMap.getOrDefault(((SendTask) transTask).getMsgId(), null); + LinkedList linkedList = sendCacheMap.getOrDefault(((SendTask) transTask).getMsgId(), null); if (null == linkedList) { linkedList = new LinkedList<>(); sendCacheMap.put(((SendTask) transTask).getMsgId(), linkedList); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/util/MessageUtil.java b/serverlogic/src/main/java/com/ljsd/jieling/util/MessageUtil.java index 58f659ce2..7a38a101b 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/util/MessageUtil.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/util/MessageUtil.java @@ -25,10 +25,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.data.redis.core.ZSetOperations; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; -import java.util.Set; +import java.util.*; public class MessageUtil { @@ -343,7 +340,7 @@ public class MessageUtil { * @param list 移除被合并项 * @return 返回一个合并协议 */ - List combine(List list); + List combine(LinkedList list); } public static void checkAndSendMsg(){ From f41cf48f3b397930cdc7323e3d4e0459ac76e1c0 Mon Sep 17 00:00:00 2001 From: zhangshanxue Date: Mon, 24 Feb 2020 15:57:11 +0800 Subject: [PATCH 2/3] =?UTF-8?q?Task=E3=80=90ID1005747=E3=80=91=E3=80=90?= =?UTF-8?q?=E7=8C=8E=E5=A6=96=E4=B9=8B=E8=B7=AF=E4=BC=98=E5=8C=96=E3=80=91?= =?UTF-8?q?=E7=8C=8E=E5=A6=96=E4=B9=8B=E8=B7=AF=E4=BC=98=E5=8C=96=E5=86=85?= =?UTF-8?q?=E5=AE=B9=20=E5=8E=BB=E6=8E=89=E6=AF=8F=E6=97=A5=E6=88=98?= =?UTF-8?q?=E5=8A=9B=E5=BF=AB=E7=85=A7=20=E5=8F=96=E6=9C=80=E5=A4=A7?= =?UTF-8?q?=E6=88=98=E5=8A=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/ljsd/jieling/logic/dao/UserManager.java | 2 +- .../com/ljsd/jieling/logic/expedition/ExpeditionLogic.java | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/UserManager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/UserManager.java index 12bde5102..62f04de28 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/UserManager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/UserManager.java @@ -110,7 +110,7 @@ public class UserManager { teamPosManager.addTeamOfInitPlayer(teamHeros); int force = HeroLogic.getInstance().calTeamTotalForce(user, 1, true); playerManager.setMaxForce(force); - user.getExpeditionManager().setForceSnap(force); + // user.getExpeditionManager().setForceSnap(force); KtEventUtils.onKtEvent(user, ParamEventBean.UserRegister); } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/expedition/ExpeditionLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/expedition/ExpeditionLogic.java index 2d21e952f..55730f8da 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/expedition/ExpeditionLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/expedition/ExpeditionLogic.java @@ -64,7 +64,6 @@ public class ExpeditionLogic { //每日重置 public void flushUserdataEveryDay(User user) throws Exception { ExpeditionManager manager = user.getExpeditionManager(); - manager.setForceSnap(user.getPlayerInfoManager().getMaxForce()); takeAllReward(user); manager.clearExpeditionNodeInfos(); manager.setLay(1); @@ -215,7 +214,7 @@ public class ExpeditionLogic { } int minFoce = sExpeditionSetting.getMatchForce()[0]; int manFoce = sExpeditionSetting.getMatchForce()[1]; - int standerFoce = (int) (user.getExpeditionManager().getForceSnap() * (minFoce / 10000f) + nodeInfo.getLay() / size * (manFoce - minFoce)); + int standerFoce = (int) (user.getPlayerInfoManager().getMaxForce() * (minFoce / 10000f) + nodeInfo.getLay() / size * (manFoce - minFoce)); float randomForce = (standerFoce * ((sExpeditionSetting.getMatchForceRange()[0] + (int) (Math.random() * (sExpeditionSetting.getMatchForceRange()[1] - sExpeditionSetting.getMatchForceRange()[0]))) / 10000f)); if(nodeInfo.getType()==NODETYPE_ADVANCE){ From 257de4422f1932a6f5068844a427225d342abd14 Mon Sep 17 00:00:00 2001 From: wangyuan Date: Mon, 24 Feb 2020 16:21:10 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=B7=A5=E4=BC=9A?= =?UTF-8?q?=E6=88=98=E7=BC=96=E9=98=9Fid=E5=8F=AF=E5=8A=A8=E6=80=81?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/ljsd/jieling/core/GlobalsDef.java | 1 - .../handler/map/mapHandler/StartFightRequestHandler.java | 2 +- .../java/com/ljsd/jieling/logic/family/GuildFightLogic.java | 3 +-- 3 files changed, 2 insertions(+), 4 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/core/GlobalsDef.java b/serverlogic/src/main/java/com/ljsd/jieling/core/GlobalsDef.java index d2876ae45..f3c1bffa3 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/core/GlobalsDef.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/core/GlobalsDef.java @@ -86,7 +86,6 @@ public interface GlobalsDef { int TEAM_ARENA_ATTACH =201;//竞技场进攻编队 int BLOODY_TEAM =701; //血战队伍 int CHAMPION_ATTACK_TEAM =801; // - int GUILD_BOSS_TEAM =901; //工会boss队伍 //特权解锁类型 int LEVEL_UNLOCK_PRIVILEGE = 1; diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/mapHandler/StartFightRequestHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/mapHandler/StartFightRequestHandler.java index 4bd1f18de..24859165e 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/mapHandler/StartFightRequestHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/mapHandler/StartFightRequestHandler.java @@ -66,7 +66,7 @@ public class StartFightRequestHandler extends BaseHandler teamPosHeroInfos = user.getTeamPosManager().getTeamPosForHero().get(teamId); if (teamPosHeroInfos == null || teamPosHeroInfos.size() == 0) { throw new ErrorCodeException(ErrorCode.newDefineCode("阵容有误!!"));