diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/MailingSystemManager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/MailingSystemManager.java index bc0f375ac..16e0d295e 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/MailingSystemManager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/MailingSystemManager.java @@ -23,7 +23,7 @@ public class MailingSystemManager { //初始化系统邮件信息 MailingSystem mailingSystem = ljsdMongoTemplate.findById(MailingSystem.getCollectionName(), Integer.toString(1), MailingSystem.class); if (mailingSystem == null){ - mailingSystem = new MailingSystem(); + mailingSystem = new MaXilingSystem(); addMailingSystem(mailingSystem); int nowTime = (int)(TimeUtils.now()/1000); mailingSystem.getSysMailManager().addSystemMail(new SysMail(1)); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/util/CBean2Proto.java b/serverlogic/src/main/java/com/ljsd/jieling/util/CBean2Proto.java index 350aacb09..0a666b414 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/util/CBean2Proto.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/util/CBean2Proto.java @@ -76,6 +76,13 @@ public class CBean2Proto { return equips; } + public static CommonProto.Equip getEquipProto(Equip equip){ + CommonProto.Equip equipProto =CommonProto.Equip.newBuilder() + .setEquipId(equip.getEquipId()) + .build(); + return equipProto; + } + } 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 25fc30751..5d3c7c066 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java @@ -51,6 +51,15 @@ public class ItemUtil { addCard(user,cardMap,dropBuilder); return dropBuilder; } + public static CommonProto.Drop.Builder drop(User user, Map dropGroupAndRatioMap) throws Exception { + CommonProto.Drop.Builder dropBuilder = CommonProto.Drop.newBuilder(); + for (Map.Entry entry :dropGroupAndRatioMap.entrySet()){ + int[] dropGroupIds = entry.getKey(); + float dropRatio = entry.getValue(); + dropBuilder = drop(user, dropGroupIds, dropRatio); + } + return dropBuilder; + } private static void selectDrop(SRewardGroup sRewardGroup,Map itemMap, Map cardMap,Map equipMap,float dropRatio) { int[] rewardItem = sRewardGroup.getRewardItem(); StringBuilder rewardStr = new StringBuilder(); @@ -132,7 +141,7 @@ public class ItemUtil { SItem sItem = SItem.getsItemMap().get(itemId); switch (sItem.getItemType()) { case GlobalItemType.ITEM: - putcountMap(itemId, (int) (itemNum * dropRatio), itemMap); + putcountMap(itemId,MathUtils.numRount((itemNum * dropRatio)) , itemMap); break; case GlobalItemType.CARD: putcountMap(itemId, itemNum, cardMap); @@ -218,7 +227,7 @@ public class ItemUtil { * @param equipMap * @param dropBuilder */ - private static void addEquip(User user, Map equipMap, CommonProto.Drop.Builder dropBuilder) { + private static void addEquip(User user, Map equipMap, CommonProto.Drop.Builder dropBuilder) throws Exception { List equipList = new CopyOnWriteArrayList<>(); for (Map.Entry entry : equipMap.entrySet()) { int count = entry.getValue(); @@ -228,7 +237,11 @@ public class ItemUtil { } dropBuilder.addAllEquipId(equipList); } - private static void addEquip(User user,int equipId ,List equipList) { + private static void addEquip(User user,int equipId ,List equipList) throws Exception { + EquipManager equipManager = user.getEquipManager(); + Equip equip = new Equip(user.getId(),equipId); + equipManager.addEquip(equip); + equipList.add(CBean2Proto.getEquipProto(equip)); } /** diff --git a/serverlogic/src/main/java/com/ljsd/jieling/util/MailUtil.java b/serverlogic/src/main/java/com/ljsd/jieling/util/MailUtil.java index 19286b1af..2c57ccc23 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/util/MailUtil.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/util/MailUtil.java @@ -152,18 +152,23 @@ public class MailUtil { //领取附件 public CommonProto.Drop.Builder takeMail(List mailIdsList, int userId) throws Exception { - CommonProto.Drop.Builder dropBuilder = CommonProto.Drop.newBuilder(); User user = UserManager.getUser(userId); MailManager mailManager = user.getMailManager(); + StringBuilder mailItem = new StringBuilder(); for (String mailId : mailIdsList){ Mail mail = mailManager.getMail(mailId); if (mail == null){ continue; } - String mailItem = mail.getMailItem(); - int[][] itemArr = StringUtil.parseFiledInt2(mailItem); - dropBuilder = ItemUtil.drop(user, itemArr); + if (mailItem.length() == 0){ + mailItem = new StringBuilder(mail.getMailItem()); + }else{ + mailItem.append("|").append(mail.getMailItem()); + } + } + int[][] itemArr = StringUtil.parseFiledInt2(mailItem.toString()); + CommonProto.Drop.Builder dropBuilder = ItemUtil.drop(user, itemArr); return dropBuilder; } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/util/MathUtils.java b/serverlogic/src/main/java/com/ljsd/jieling/util/MathUtils.java index cb2975f9e..bf9ebeb14 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/util/MathUtils.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/util/MathUtils.java @@ -89,4 +89,9 @@ public class MathUtils { return random.nextInt(n); } + + public static int numRount(float num){ + return Math.round(num); + } + }