From 4a7b06553af96993b2c0db86dd60ef6768b3b561 Mon Sep 17 00:00:00 2001 From: lvxinran Date: Wed, 29 Jul 2020 09:01:04 +0800 Subject: [PATCH 1/6] =?UTF-8?q?=E8=8B=B1=E9=9B=84=E5=BD=92=E5=85=83?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ljsd/jieling/logic/hero/HeroLogic.java | 20 ++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/hero/HeroLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/hero/HeroLogic.java index a43b27233..41195cd12 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/hero/HeroLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/hero/HeroLogic.java @@ -2347,11 +2347,11 @@ public class HeroLogic{ throw new ErrorCodeException(ErrorCode.HERO_ITEM_NOT); } - heroManager.removeHero(uid,heroId); +// heroManager.removeHero(uid,heroId); int[][] returnMaterials = sHeroReturn.getRankupReturn(); SHeroLevlConfig sHeroLevlConfig = SHeroLevlConfig.getsHeroLevlConfigMap().get(hero.getLevel()); int[][] levelReturn = ItemLogic.getInstance().itemReturnPercent(sHeroLevlConfig.getSumConsume(), returnPercent); - int returnHero = sHeroReturn.getHeroId(); +// int returnHero = sHeroReturn.getHeroId(); //进阶材料返还乘万分比 Map returnItemMap = new HashMap<>(); for(int i = 0 ; i entry:returnItemMap.entrySet()){ @@ -2368,12 +2368,14 @@ public class HeroLogic{ index++; } CommonProto.Drop.Builder drop = ItemUtil.drop(user, resultDrop, BIReason.HERO_BACK_REWARD); - CommonProto.Hero.Builder heroProto = drop.getHero(0).toBuilder(); - String createHeroId = heroProto.getId(); - heroProto.setStar(star); - drop.setHero(0,heroProto.build()); - Hero newHero = user.getHeroManager().getHeroMap().get(createHeroId); - newHero.setStar(star); + hero.setLevel(user,1); + hero.setBreakId(0); +// CommonProto.Hero.Builder heroProto = drop.getHero(0).toBuilder(); +// String createHeroId = heroProto.getId(); +// heroProto.setStar(star); +// drop.setHero(0,heroProto.build()); +// Hero newHero = user.getHeroManager().getHeroMap().get(createHeroId); +// newHero.setStar(star); HeroInfoProto.HeroReturnResponse build = HeroInfoProto.HeroReturnResponse.newBuilder().setDrop(drop).build(); MessageUtil.sendMessage(session,1,responseMsgId,build,true); From 25f6ba079695b1e18e9b56770e1e22b98937f390 Mon Sep 17 00:00:00 2001 From: lvxinran Date: Thu, 30 Jul 2020 02:49:32 +0800 Subject: [PATCH 2/6] =?UTF-8?q?=E8=81=8A=E5=A4=A9=E4=BF=A1=E6=81=AF?= =?UTF-8?q?=E7=AE=A1=E7=90=86=E5=90=8E=E5=8F=B0=E4=BB=A3=E7=A0=81=E6=8F=90?= =?UTF-8?q?=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ljsd/jieling/chat/logic/ChatLogic.java | 19 +++++++++++++++++++ .../com/ljsd/jieling/db/redis/RedisKey.java | 1 + 2 files changed, 20 insertions(+) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/chat/logic/ChatLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/chat/logic/ChatLogic.java index 1715dc553..75aeffa74 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/chat/logic/ChatLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/chat/logic/ChatLogic.java @@ -1,7 +1,9 @@ package com.ljsd.jieling.chat.logic; +import com.google.gson.Gson; import com.ljsd.GameApplication; +import com.ljsd.jieling.chat.ChatRedisEntity; import com.ljsd.jieling.chat.messge.MessageCache; import com.ljsd.jieling.core.GlobalsDef; import com.ljsd.jieling.dataReport.reportBeans_37.ChatContentType; @@ -27,6 +29,7 @@ import com.ljsd.jieling.util.CBean2Proto; import com.ljsd.jieling.util.MessageUtil; import com.ljsd.jieling.util.SensitivewordFilter; import com.ljsd.jieling.util.ShieldedWordUtils; +import util.TimeUtils; import java.util.ArrayList; import java.util.List; @@ -42,6 +45,8 @@ public class ChatLogic { return ChatLogic.Instance.instance; } + private Gson gson = new Gson(); + /** * 获取聊天信息 @@ -196,10 +201,24 @@ public class ChatLogic { break; } + onSendChatSuccess(user,chatType,message); ReportUtil.onReportEvent(user, ReportEventEnum.SEND_MESSAGE.getType(),String.valueOf(chatType),message); MessageUtil.sendMessage(iSession, 1, msgId, null, true); } + //记录聊天信息 + private void onSendChatSuccess(User user,int chatType,String message){ + RedisUtil redisUtil = RedisUtil.getInstence(); + String key = RedisKey.getKey(RedisKey.CHAT_INFO_CACHE, String.valueOf(chatType), false); + ChatRedisEntity chatRedisEntity = new ChatRedisEntity(user.getId(), user.getPlayerInfoManager().getNickName(), chatType, message, TimeUtils.now(), user.getPlayerInfoManager().getSilence()); + String chatInfo = gson.toJson(chatRedisEntity); + + long l = redisUtil.lGetListSize(key); + if(l>1000){ + redisUtil.lPop(key); + } + redisUtil.lSet(key,chatInfo); + } /** * 系统消息 diff --git a/serverlogic/src/main/java/com/ljsd/jieling/db/redis/RedisKey.java b/serverlogic/src/main/java/com/ljsd/jieling/db/redis/RedisKey.java index 3948db1c4..5c5686b84 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/db/redis/RedisKey.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/db/redis/RedisKey.java @@ -266,6 +266,7 @@ public class RedisKey { public final static String USER_LEVEL_GUILD_INFO = "USER_LEVEL_GUILD_INFO"; //车迟玩法挑战记录 + public static final String CHAT_INFO_CACHE = "CHAT_INFO_CACHE";//聊天信息缓存,gm后台使用 From abadfaece888ff08b9efdfc0a31267415df592db Mon Sep 17 00:00:00 2001 From: lvxinran Date: Thu, 30 Jul 2020 02:50:37 +0800 Subject: [PATCH 3/6] =?UTF-8?q?=E5=88=9B=E8=A7=92=E6=89=93=E7=82=B9?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=EF=BC=8C=E7=AD=89=E7=BA=A7=E6=8F=90=E5=8D=87?= =?UTF-8?q?=E6=89=93=E7=82=B9=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jieling/handler/LoginRequestHandler.java | 4 ++-- .../ljsd/jieling/ktbeans/ReportEventEnum.java | 4 ++-- .../reportEvent/CreateRoleEventHandler.java | 6 +++++ .../ljsd/jieling/logic/dao/PlayerManager.java | 24 +++++++++++++++++++ .../ljsd/jieling/logic/dao/UserManager.java | 12 ++++++---- 5 files changed, 41 insertions(+), 9 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/LoginRequestHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/LoginRequestHandler.java index 5eb75c6b0..7cdada9a9 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/LoginRequestHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/LoginRequestHandler.java @@ -123,9 +123,9 @@ public class LoginRequestHandler extends BaseHandler=2){ String openId = split[0]; String chanel = split[1]; - user = UserManager.userLogin(userId,openId,chanel,pid,gid); + user = UserManager.userLogin(userId,openId,chanel,pid,gid,loginRequest.getPlatformS(),loginRequest.getIpS()); }else{ - user = UserManager.userLogin(userId,openIdFront,"",pid,gid); + user = UserManager.userLogin(userId,openIdFront,"",pid,gid,loginRequest.getPlatformS(),loginRequest.getIpS()); } // String newToken = UserManager.getNewToken(userId); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/ktbeans/ReportEventEnum.java b/serverlogic/src/main/java/com/ljsd/jieling/ktbeans/ReportEventEnum.java index 979ebd793..0dc2c8d4d 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/ktbeans/ReportEventEnum.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/ktbeans/ReportEventEnum.java @@ -14,9 +14,9 @@ public enum ReportEventEnum { CREATE_ACCOUNT(1,"create_account", new CreateRoleEventHandler(),new String[]{""}), APP_LOGIN(2,"app_login", new LoginEventHandler(),new String[]{""}), - CREATE_ROLE(3,"create_role ", new CreateRoleEventHandler(),new String[]{"role_name"}), + CREATE_ROLE(3,"create_role", new CreateRoleEventHandler(),new String[]{"role_name"}), GUILD(4,"guild", new CommonEventHandler(),new String[]{"step_id","step_name","rewards_list","guild_start_time"}), - LEVEL_UP(5,"level_up", new UserLevelUpEventHandler(),new String[]{"promotion_level","improved_level"}), + LEVEL_UP(5,"level_up", new UserLevelUpEventHandler(),new String[]{"level","promotion_level","improved_level"}), MISSION_START(6,"mission_start", new CommonEventHandler(),new String[]{"mission_id","mission_name"}), MISSION_COMPLETE(7,"mission_complete", new CommonEventHandler(),new String[]{"mission_id","mission_name","reward_list","mission_start_time"}), JOIN_ACTIVITY(8,"join_activity", new CommonEventHandler(),new String[]{"activity_id","activity_name"}), diff --git a/serverlogic/src/main/java/com/ljsd/jieling/ktbeans/reportEvent/CreateRoleEventHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/ktbeans/reportEvent/CreateRoleEventHandler.java index a14396e1b..911ab1caf 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/ktbeans/reportEvent/CreateRoleEventHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/ktbeans/reportEvent/CreateRoleEventHandler.java @@ -1,5 +1,6 @@ package com.ljsd.jieling.ktbeans.reportEvent; +import com.ljsd.GameApplication; import com.ljsd.jieling.logic.dao.root.User; import java.util.Date; @@ -20,6 +21,11 @@ public class CreateRoleEventHandler extends CommonEventHandler{ setProperties.put("role_name",user.getPlayerInfoManager().getNickName()); setOnceProperties.put("role_create_time",new Date()); + setOnceProperties.put("server_id",String.valueOf(GameApplication.serverId)); + setOnceProperties.put("channel_id",user.getPlayerInfoManager().getChannel()); + setOnceProperties.put("platform_id",user.getPlayerInfoManager().getPlatform()); + setOnceProperties.put("reg_ip",user.getPlayerInfoManager().getIp()); + userProperties.put(1,setProperties); userProperties.put(2,setOnceProperties); return userProperties; diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/PlayerManager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/PlayerManager.java index aa8d4c9bf..db129a226 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/PlayerManager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/PlayerManager.java @@ -108,6 +108,11 @@ public class PlayerManager extends MongoBase { private int luckWheelLimitTime; private int luckAdvanceWheelLimitTime; + private String platform; + + private String ip; + + public PlayerManager(){ this.setRootCollection(User._COLLECTION_NAME); } @@ -727,4 +732,23 @@ public class PlayerManager extends MongoBase { updateString("luckAdvanceWheelLimitTime",luckAdvanceWheelLimitTime); this.luckAdvanceWheelLimitTime = luckAdvanceWheelLimitTime; } + + public String getPlatform() { + return platform; + } + + public void setPlatform(String platform) { + this.platform = platform; + updateString("platform",platform); + + } + + public String getIp() { + return ip; + } + + public void setIp(String ip) { + this.ip = ip; + updateString("ip",ip); + } } 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 8ad89a747..aab1956f7 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 @@ -41,12 +41,12 @@ public class UserManager { return userMap.containsKey(uid); } - public static User userLogin(int uid,String openId,String channel,int pid,int gid) throws Exception { + public static User userLogin(int uid,String openId,String channel,int pid,int gid,String platform,String ip) throws Exception { User user = null; if (!UserManager.isUserExist(uid)){ user = MongoUtil.getInstence().getMyMongoTemplate().findById(User.getCollectionName(), uid, User.class); if (user == null) { - user = registerUser(uid,openId,channel,pid,gid); + user = registerUser(uid,openId,channel,pid,gid,platform,ip); } UserManager.addUser(user); }else{ @@ -58,17 +58,17 @@ public class UserManager { } - private static User registerUser(int uid,String openId,String channel,int pid,int gid) throws Exception { + private static User registerUser(int uid,String openId,String channel,int pid,int gid,String platform,String ip) throws Exception { User user = new User(uid); UserManager.addUser(user); - initPlayer(user,openId,channel,pid,gid); + initPlayer(user,openId,channel,pid,gid,platform,ip); MongoUtil.getInstence().getMyMongoTemplate().save(user); PlayerLogic.getInstance().sendTestWelfareMail(user,1,1); ReportUtil.onReportEvent(user, ReportEventEnum.CREATE_ROLE.getType()); return user; } - private static void initPlayer(User user,String openId,String channel,int pid,int gid) throws Exception { + private static void initPlayer(User user,String openId,String channel,int pid,int gid,String platform,String ip) throws Exception { SGameSetting gameSetting = STableManager.getFigureConfig(CommonStaticConfig.class).getGameSetting(); PlayerManager playerManager = user.getPlayerInfoManager(); long now = TimeUtils.now(); @@ -89,6 +89,8 @@ public class UserManager { playerManager.setChannel(channel); playerManager.setPid(pid); playerManager.setGid(gid); + playerManager.setPlatform(platform); + playerManager.setIp(ip); playerManager.setHeadFrame(STableManager.getFigureConfig(CommonStaticConfig.class).getGameSetting().getDefaultPicture()); SPlayerLevelConfig sPlayerLevelConfig = SPlayerLevelConfig.getsPlayerLevelConfigMap().get(1); playerManager.setMaxStamina(sPlayerLevelConfig.getMaxEnergy()); From 66eb4711b2655746e22831e71dbb5f8b0c511b2e Mon Sep 17 00:00:00 2001 From: lvxinran Date: Thu, 30 Jul 2020 02:51:09 +0800 Subject: [PATCH 4/6] =?UTF-8?q?=E8=81=8A=E5=A4=A9=E5=90=8E=E5=8F=B0entity?= =?UTF-8?q?=E5=AF=B9=E8=B1=A1=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ljsd/jieling/chat/ChatRedisEntity.java | 80 +++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 serverlogic/src/main/java/com/ljsd/jieling/chat/ChatRedisEntity.java diff --git a/serverlogic/src/main/java/com/ljsd/jieling/chat/ChatRedisEntity.java b/serverlogic/src/main/java/com/ljsd/jieling/chat/ChatRedisEntity.java new file mode 100644 index 000000000..1a7e4256e --- /dev/null +++ b/serverlogic/src/main/java/com/ljsd/jieling/chat/ChatRedisEntity.java @@ -0,0 +1,80 @@ +package com.ljsd.jieling.chat; + +/** + * @author lvxinran + * @date 2020/7/22 + * @discribe + */ +public class ChatRedisEntity { + + private int uid; + + private String name; + + private int type; + + private String message; + + private Long time; + + private int status; + + public ChatRedisEntity(){}; + + public ChatRedisEntity(int uid, String name, int type, String message, Long time, int status) { + this.uid = uid; + this.name = name; + this.type = type; + this.message = message; + this.time = time; + this.status = status; + } + + public int getUid() { + return uid; + } + + public void setUid(int uid) { + this.uid = uid; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public int getType() { + return type; + } + + public void setType(int type) { + this.type = type; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public Long getTime() { + return time; + } + + public void setTime(Long time) { + this.time = time; + } + + public int getStatus() { + return status; + } + + public void setStatus(int status) { + this.status = status; + } +} From 4c3f272357db2de60e15db3c6460674cfc04d616 Mon Sep 17 00:00:00 2001 From: lvxinran Date: Wed, 29 Jul 2020 20:04:00 +0800 Subject: [PATCH 5/6] =?UTF-8?q?=E6=95=B0=E6=95=B0=E6=89=93=E7=82=B9?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/ljsd/jieling/ktbeans/ReportEventEnum.java | 4 +++- .../jieling/ktbeans/reportEvent/CreateRoleEventHandler.java | 2 +- .../java/com/ljsd/jieling/logic/player/PlayerLogic.java | 3 +++ .../java/com/ljsd/jieling/logic/store/BuyGoodsLogic.java | 6 ++++-- 4 files changed, 11 insertions(+), 4 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/ktbeans/ReportEventEnum.java b/serverlogic/src/main/java/com/ljsd/jieling/ktbeans/ReportEventEnum.java index 0dc2c8d4d..19ada2af4 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/ktbeans/ReportEventEnum.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/ktbeans/ReportEventEnum.java @@ -39,12 +39,14 @@ public enum ReportEventEnum { JOIN_GUILD(25,"join_guild", new CommonEventHandler(),new String[]{"guild_id","guild_name","guild_level","guild_people_num","guild_fighting_capacity","guild_create_time"}), QUIT_GUILD(26,"quit_guild", new CommonEventHandler(),new String[]{"guild_id","guild_name","guild_level","guild_people_num","guild_fighting_capacity","guild_create_time"}), CREATE_ORDER(27,"create_order", new CommonEventHandler(),new String[]{"order_id","order_money_amount","Bundle_id","entrance","item_id","item_name","goods_id","item_list"}), - ORDER_COMPLETE(28,"order_complete", new ChargeAmountEventHandler(),new String[]{"order_id","order_money_amount","Bundle_id","entrance","item_id","item_name","goods_id","item_list"}), + ORDER_COMPLETE(28,"order_complete", new ChargeAmountEventHandler(),new String[]{"order_id","order_money_amount","Bundle_id","channel_id","server_id","goods_id","goods_name","item_id","item_num"}), CHECK_RANKING(29,"check_ranking", new CommonEventHandler(),new String[]{"ranking_type"}), ASK_FOR_BEING_FRIENDS(30,"ask_for_being_friends", new CommonEventHandler(),new String[]{"target_id","target_name","target_level","entrance"}), ALLOW_FRIENDS_ASK(31,"allow_friends_ask", new CommonEventHandler(),new String[]{"target_id","target_name","target_level","entrance"}), SEND_MESSAGE(32,"send_message", new CommonEventHandler(),new String[]{"message_type","message_content"}), OPEN_MAIL(33,"open_mail", new CommonEventHandler(),new String[]{""}), + GUIDE(34,"guide", new CommonEventHandler(),new String[]{"step_id"}), + VIP_LEVEL_UP(100,"", new VipLevelUpEventHandler(),new String[]{""}); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/ktbeans/reportEvent/CreateRoleEventHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/ktbeans/reportEvent/CreateRoleEventHandler.java index 911ab1caf..598d492f6 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/ktbeans/reportEvent/CreateRoleEventHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/ktbeans/reportEvent/CreateRoleEventHandler.java @@ -22,7 +22,7 @@ public class CreateRoleEventHandler extends CommonEventHandler{ setProperties.put("role_name",user.getPlayerInfoManager().getNickName()); setOnceProperties.put("role_create_time",new Date()); setOnceProperties.put("server_id",String.valueOf(GameApplication.serverId)); - setOnceProperties.put("channel_id",user.getPlayerInfoManager().getChannel()); + setOnceProperties.put("channel_id",user.getPlayerInfoManager().getPid()); setOnceProperties.put("platform_id",user.getPlayerInfoManager().getPlatform()); setOnceProperties.put("reg_ip",user.getPlayerInfoManager().getIp()); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/player/PlayerLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/player/PlayerLogic.java index e4bd2ca6c..208559766 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/player/PlayerLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/player/PlayerLogic.java @@ -104,6 +104,9 @@ public class PlayerLogic { int uid = session.getUid(); User user = UserManager.getUser(uid); user.getPlayerInfoManager().updateGuidePoint(type,id); + if(type==1){ + ReportUtil.onReportEvent(user,ReportEventEnum.GUILD.getType(),String.valueOf(id)); + } MessageUtil.sendMessage(session,1, MessageTypeProto.MessageType.SAVE_NEW_PLAYER_GUIDE_POINT_RESPONSE_VALUE,null,true); } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsLogic.java index 544ca7de2..3a3470463 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsLogic.java @@ -1,5 +1,6 @@ package com.ljsd.jieling.logic.store; +import com.ljsd.GameApplication; import com.ljsd.jieling.config.clazzStaticCfg.CommonStaticConfig; import com.ljsd.jieling.config.reportData.DataMessageUtils; import com.ljsd.jieling.core.GlobalsDef; @@ -81,7 +82,6 @@ public class BuyGoodsLogic { for(int[] item:sRechargeCommodityConfig.getBaseReward()){ itemList.add(item[0]); } - ReportUtil.onReportEvent(user, ReportEventEnum.ORDER_COMPLETE.getType(),"",price,"","","","",String.valueOf(goodsId),itemList); // KtEventUtils.onKtEvent(user, ParamEventBean.UserPayEvent,goodsId,System.currentTimeMillis()+"",result.getResultCode(),price*10); } @@ -352,12 +352,14 @@ public class BuyGoodsLogic { rechargeInfo.updateRefreshMapByKey(sRechargeCommodityConfig.getId(),TimeUtils.now()+sRechargeCommodityConfig.getDailyUpdate()*TimeUtils.DAY); } resultRes.setResultCode(1); - KtEventUtils.onKtEvent(user, ParamEventBean.UserPayEvent,goodsId,orderId,resultRes.getResultCode(),price); +// KtEventUtils.onKtEvent(user, ParamEventBean.UserPayEvent,goodsId,orderId,resultRes.getResultCode(),price); notifyPaySuccessFul(uid,goodsId,amount != -999); // Poster.getPoster().dispatchEvent(new NewWelfareEvent(user, NewWelfareTypeEnum.RECHARGE_BUY.getType(),goodsId)); MongoUtil.getLjsdMongoTemplate().lastUpdate(); sendGiftGooodsIndication(uid); onChargeSuccess(uid,sRechargeCommodityConfig.getPrice(),0);//充值成功上报 + Map mapReward = ItemUtil.arrayToMap(baseReward); + ReportUtil.onReportEvent(user, ReportEventEnum.ORDER_COMPLETE.getType(),orderId,price,user.getPlayerInfoManager().getGid(),user.getPlayerInfoManager().getPid(),String.valueOf(GameApplication.serverId),String.valueOf(goodsId),sRechargeCommodityConfig.getName(),mapReward.keySet(),mapReward.values()); return resultRes; } From c525e3e42924e809e02de76cfb3c0875a939d4b5 Mon Sep 17 00:00:00 2001 From: lvxinran Date: Wed, 29 Jul 2020 20:11:06 +0800 Subject: [PATCH 6/6] =?UTF-8?q?=E8=8B=B1=E9=9B=84=E5=88=86=E8=A7=A3?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=20=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../clazzStaticCfg/HeroStaticConfig.java | 12 +++++ .../ljsd/jieling/logic/item/ItemLogic.java | 48 +++++-------------- .../java/com/ljsd/jieling/util/ItemUtil.java | 23 ++++++++- .../src/main/java/config/SHeroSacrifice.java | 43 +++++++++++++++++ 4 files changed, 89 insertions(+), 37 deletions(-) create mode 100644 tablemanager/src/main/java/config/SHeroSacrifice.java diff --git a/serverlogic/src/main/java/com/ljsd/jieling/config/clazzStaticCfg/HeroStaticConfig.java b/serverlogic/src/main/java/com/ljsd/jieling/config/clazzStaticCfg/HeroStaticConfig.java index 92b1a09b6..f2efa9f4b 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/config/clazzStaticCfg/HeroStaticConfig.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/config/clazzStaticCfg/HeroStaticConfig.java @@ -2,6 +2,7 @@ package com.ljsd.jieling.config.clazzStaticCfg; import com.ljsd.jieling.core.GlobalsDef; import config.SCHeroRankUpConfig; +import config.SHeroSacrifice; import config.SLotterySetting; import manager.AbstractClassStaticConfig; import manager.STableManager; @@ -19,6 +20,7 @@ public class HeroStaticConfig extends AbstractClassStaticConfig { private Map>> scHeroRankUpConfigByShow; private Map>> scHeroRankUpConfigByType; + private Map> sHeroSacrificeMap; private Set randomHeroIds; private Map randomPoolByType; @@ -69,6 +71,12 @@ public class HeroStaticConfig extends AbstractClassStaticConfig { } scHeroRankUpConfigByShow = result; scHeroRankUpConfigByType = calc; + Map> sHeroSacrificeMapTemp = new HashMap<>(); + Map sHeroSacrificeConfig = STableManager.getConfig(SHeroSacrifice.class); + for(SHeroSacrifice sacrificeconfig:sHeroSacrificeConfig.values()){ + sHeroSacrificeMapTemp.computeIfAbsent(sacrificeconfig.getType(),n->new HashMap<>()).put(sacrificeconfig.getKey(),sacrificeconfig); + } + sHeroSacrificeMap = sHeroSacrificeMapTemp; } catch (Exception e) { LOGGER.error("SCHeroRankUpConfig init fail"); @@ -98,6 +106,10 @@ public class HeroStaticConfig extends AbstractClassStaticConfig { return scHeroRankUpConfigByType.get(type).get(heroInitStar); } + public SHeroSacrifice getsHeroSacrificeMap(int type,int param) { + return sHeroSacrificeMap.get(type).get(param); + } + public Set getRandomHeroIds() { return randomHeroIds; } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/item/ItemLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/item/ItemLogic.java index c01a1f086..7af213d71 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/item/ItemLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/item/ItemLogic.java @@ -2,6 +2,7 @@ package com.ljsd.jieling.logic.item; import com.ljsd.jieling.chat.logic.ChatLogic; import com.ljsd.jieling.config.clazzStaticCfg.CommonStaticConfig; +import com.ljsd.jieling.config.clazzStaticCfg.HeroStaticConfig; import com.ljsd.jieling.exception.ErrorCode; import com.ljsd.jieling.exception.ErrorCodeException; import com.ljsd.jieling.globals.BIReason; @@ -367,7 +368,6 @@ public class ItemLogic { CommonProto.Drop.Builder baseBuilder = CommonProto.Drop.newBuilder(); User user = UserManager.getUser(uid); HeroManager heroManager = user.getHeroManager(); - StringBuilder reward = new StringBuilder(); ErrorCode erroMags = checkHeroResolve(heroIdsList,user); if (null!=erroMags){ throw new ErrorCodeException(erroMags); @@ -377,46 +377,25 @@ public class ItemLogic { //1裸角色卡(没有突破过的角色卡)熔炼后返还的材料=当前等级返还升级材料+item表返还材料 //2有过突破的卡 =当前等级返还升级材料+突破表返还材料 Map baseItemMap = new HashMap<>(); - Map baseCardMap = new HashMap<>(); - Map baseEquipMap = new HashMap<>(); - Map baseRandomMap = new HashMap<>(); int rankUpReturnPercent= SSpecialConfig.getIntegerValue(SSpecialConfig.HERO_SACRIFICE_PERCENT); for (String heroId : heroIdsList) { Hero hero = heroManager.getHeroMap().get(heroId); heroManager.removeHero(uid,heroId); int[][] sumConsume = SHeroLevlConfig.getsHeroLevlConfigMap().get(hero.getLevel()).getSumConsume(); - - ItemUtil.combineReward(itemReturnPercent(sumConsume,rankUpReturnPercent),baseItemMap,baseCardMap,baseEquipMap,baseRandomMap); - int breakId = hero.getBreakId(); - int starBreakId = hero.getStarBreakId(); - if(breakId!=0 || starBreakId!=0){ - SCHeroRankUpConfig scHeroRankUpConfig = STableManager.getConfig(SCHeroRankUpConfig.class).get(breakId); - if(scHeroRankUpConfig!=null){ - int[][] levelUpReturn = scHeroRankUpConfig.getSumConsume(); - ItemUtil.combineReward(itemReturnPercent(levelUpReturn,rankUpReturnPercent),baseItemMap,baseCardMap,baseEquipMap,baseRandomMap); - } - scHeroRankUpConfig = STableManager.getConfig(SCHeroRankUpConfig.class).get(starBreakId); - if(scHeroRankUpConfig!=null){ - int[][] levelUpReturn = scHeroRankUpConfig.getSumConsume(); - ItemUtil.combineReward(itemReturnPercent(levelUpReturn,rankUpReturnPercent),baseItemMap,baseCardMap,baseEquipMap,baseRandomMap); - } - - continue; + SHeroSacrifice starSHeroSacrifice = STableManager.getFigureConfig(HeroStaticConfig.class).getsHeroSacrificeMap(1, hero.getStar()); + SHeroSacrifice breakSHeroSacrifice = STableManager.getFigureConfig(HeroStaticConfig.class).getsHeroSacrificeMap(2, hero.getBreakId()); + for(int[] item:sumConsume){ + baseItemMap.put(item[0],baseItemMap.getOrDefault(item[0],0)+item[1]); } - SItem sItem = SItem.getsItemMap().get(hero.getTemplateId()); - - if(null==filterItem){ - if (reward.length() == 0) { - reward = new StringBuilder(sItem.getResolveReward()); - } else { - reward.append("#").append(sItem.getResolveReward()); - } + for(int[] item:starSHeroSacrifice.getValue()){ + baseItemMap.put(item[0],baseItemMap.getOrDefault(item[0],0)+item[1]); + } + for(int[] item:breakSHeroSacrifice.getValue()){ + baseItemMap.put(item[0],baseItemMap.getOrDefault(item[0],0)+item[1]); } - } - ItemUtil.combineReward(user,false, StringUtil.parseFiledInt(reward.toString()),1,baseItemMap,baseCardMap,baseEquipMap,baseRandomMap,-1); - + int[][] itemArray = ItemUtil.mapToArray(baseItemMap); int reson = BIReason.DECOMPOS_HERO_REWARD; if(null!=filterItem){ reson= BIReason.UPHERO_DECOMPOS_HERO_REWARD; @@ -428,10 +407,7 @@ public class ItemLogic { }else { user.getUserMissionManager().onGameEvent(user,GameEvent.DESPOSE_HERO,heroIdsList.size()); } - - - ItemUtil.drop(user,baseBuilder,baseItemMap,baseCardMap,baseEquipMap,baseRandomMap, reson); - return baseBuilder; + return ItemUtil.drop(user,itemReturnPercent(itemArray,rankUpReturnPercent),reson); } /** diff --git a/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java b/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java index 3065f7f87..085d72f22 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java @@ -672,7 +672,7 @@ public class ItemUtil { } playerInfoManager.setExp(curExp); if (playerInfoManager.getLevel() > oldLevel) { - ReportUtil.onReportEvent(user, ReportEventEnum.LEVEL_UP.getType(),1,playerInfoManager.getLevel()); + ReportUtil.onReportEvent(user, ReportEventEnum.LEVEL_UP.getType(),oldLevel,playerInfoManager.getLevel()-oldLevel,playerInfoManager.getLevel()); user.getUserMissionManager().onGameEvent(user, GameEvent.USER_LEVELUP,oldLevel+1,playerInfoManager.getLevel()); } @@ -1463,6 +1463,27 @@ public class ItemUtil { } return sourceNum; } + public static int[][] mapToArray(Map map){ + + int[][] itemArray = new int[map.size()][]; + int i = 0 ; + for(Map.Entry entry:map.entrySet()){ + itemArray[i] = new int[]{entry.getKey(),entry.getValue()}; + i++; + } + return itemArray; + + } + public static Map arrayToMap(int[][] array){ + + Map map = new HashMap<>(array.length); + for(int[] itemArray:array ){ + map.put(itemArray[0],map.getOrDefault(itemArray[0],0)+itemArray[1]); + } + return map; + + } + private static int parseTheValueByPrivilegeMap(User user,int sourceNum,int privigeId){ int privigeValue = PlayerLogic.getInstance().getMaxCountByPrivilegeType(user,privigeId); diff --git a/tablemanager/src/main/java/config/SHeroSacrifice.java b/tablemanager/src/main/java/config/SHeroSacrifice.java new file mode 100644 index 000000000..dab45d4a8 --- /dev/null +++ b/tablemanager/src/main/java/config/SHeroSacrifice.java @@ -0,0 +1,43 @@ +package config; + +import manager.STableManager; +import manager.Table; + +import java.util.Map; + +@Table(name ="HeroSacrifice") +public class SHeroSacrifice implements BaseConfig { + + private int id; + + private int type; + + private int key; + + private int[][] value; + + + @Override + public void init() throws Exception { + + } + + + public int getId() { + return id; + } + + public int getType() { + return type; + } + + public int getKey() { + return key; + } + + public int[][] getValue() { + return value; + } + + +} \ No newline at end of file