Przeglądaj źródła

Merge remote-tracking branch 'origin/master'

Joburgess 5 lat temu
rodzic
commit
68d78dba19

+ 15 - 13
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupServiceImpl.java

@@ -1,6 +1,7 @@
 package com.ym.mec.biz.service.impl;
 
 import com.alibaba.fastjson.JSONObject;
+import com.alibaba.fastjson.TypeReference;
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.auth.api.entity.SysUserRole;
@@ -446,13 +447,14 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
             String goodsGroupIds = registerPayDto.getGoodsGroups().keySet().stream().map(Object::toString).collect(Collectors.joining(","));
             goodsGroups = musicGroupSubjectGoodsGroupService.findGoodsGroupByIds(goodsGroupIds);
             for (MusicGroupSubjectGoodsGroup goodsGroup : goodsGroups) {
-                Map groupType = JSONObject.parseObject(goodsGroup.getKitGroupPurchaseTypeJson(), HashMap.class);
+                Map<String, BigDecimal> groupType = JSONObject.parseObject(goodsGroup.getKitGroupPurchaseTypeJson(), new TypeReference<Map<String, BigDecimal>>() {
+                });
                 if (goodsGroup.getType().equals(GoodsType.INSTRUMENT) && registerPayDto.getGoodsGroups().get(goodsGroup.getId()).equals("GROUP")) {
                     if (!groupType.containsKey("GROUP")) {
                         throw new BizException("乐器提供方式不存在");
                     }
                     goodsGroup.setKitGroupPurchaseType(KitGroupPurchaseTypeEnum.GROUP);
-                    remitFee = new BigDecimal((String) groupType.get("GROUP"));
+                    remitFee = groupType.get("GROUP");
                 }
                 if (goodsGroup.getType().equals(GoodsType.INSTRUMENT) && registerPayDto.getGoodsGroups().get(goodsGroup.getId()).equals("LEASE")) {
                     if (!groupType.containsKey("LEASE")) {
@@ -460,14 +462,14 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
                     }
                     goodsGroup.setPrice(goodsGroup.getDepositFee());
                     goodsGroup.setKitGroupPurchaseType(KitGroupPurchaseTypeEnum.LEASE);
-                    remitFee = new BigDecimal((String) groupType.get("LEASE"));
+                    remitFee = groupType.get("LEASE");
                 }
                 if (goodsGroup.getType().equals(GoodsType.INSTRUMENT) && registerPayDto.getGoodsGroups().get(goodsGroup.getId()).equals("FREE")) {
                     if (!groupType.containsKey("FREE")) {
                         throw new BizException("乐器提供方式不存在");
                     }
                     goodsGroup.setPrice(new BigDecimal(0));
-                    remitFee = new BigDecimal((String) groupType.get("FREE"));
+                    remitFee = groupType.get("FREE");
                 }
                 if (goodsGroup.getType().equals(GoodsType.INSTRUMENT)) {
                     instrumentFee = instrumentFee.add(goodsGroup.getPrice());
@@ -627,7 +629,6 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         BigDecimal otherFee = BigDecimal.ZERO;
         BigDecimal remitFee = BigDecimal.ZERO;
 
-
         //乐器及打包辅件
         List<MusicGroupSubjectGoodsGroup> goodsGroups = new ArrayList<>();
         if (studentRegistration.getTemporaryCourseFee() != null) {
@@ -655,7 +656,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
                 }
                 orderAmount = orderAmount.add(orderDetail.getPrice());
             }
-        } else if (studentRegistration.getTemporaryCourseFee() == null && !registerPayDto.getGoodsGroupIds().equals("")) {
+        } else if (StringUtils.isNoneBlank(registerPayDto.getGoodsGroupIds())) {
             goodsGroups = musicGroupSubjectGoodsGroupService.findGoodsGroupByIds(registerPayDto.getGoodsGroupIds());
             for (MusicGroupSubjectGoodsGroup goodsGroup : goodsGroups) {
                 if (goodsGroup.getType().equals(GoodsType.INSTRUMENT) && musicOneSubjectClassPlan.getKitGroupPurchaseType().equals(KitGroupPurchaseTypeEnum.LEASE)) {
@@ -683,28 +684,29 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
             String goodsGroupIds = registerPayDto.getGoodsGroups().keySet().stream().map(Object::toString).collect(Collectors.joining(","));
             goodsGroups = musicGroupSubjectGoodsGroupService.findGoodsGroupByIds(goodsGroupIds);
             for (MusicGroupSubjectGoodsGroup goodsGroup : goodsGroups) {
-                Map groupType = JSONObject.parseObject(goodsGroup.getKitGroupPurchaseTypeJson(), HashMap.class);
-                if (registerPayDto.getGoodsGroups().get(goodsGroup.getId()).equals("GROUP")) {
+                Map<String, BigDecimal> groupType = JSONObject.parseObject(goodsGroup.getKitGroupPurchaseTypeJson(), new TypeReference<Map<String, BigDecimal>>() {
+                });
+                if (goodsGroup.getType().equals(GoodsType.INSTRUMENT) && registerPayDto.getGoodsGroups().get(goodsGroup.getId()).equals("GROUP")) {
                     if (!groupType.containsKey("GROUP")) {
                         throw new BizException("乐器提供方式不存在");
                     }
                     goodsGroup.setKitGroupPurchaseType(KitGroupPurchaseTypeEnum.GROUP);
-                    remitFee = new BigDecimal((String) groupType.get("GROUP"));
+                    remitFee = groupType.get("GROUP");
                 }
-                if (registerPayDto.getGoodsGroups().get(goodsGroup.getId()).equals("LEASE")) {
+                if (goodsGroup.getType().equals(GoodsType.INSTRUMENT) && registerPayDto.getGoodsGroups().get(goodsGroup.getId()).equals("LEASE")) {
                     if (!groupType.containsKey("LEASE")) {
                         throw new BizException("乐器提供方式不存在");
                     }
                     goodsGroup.setPrice(goodsGroup.getDepositFee());
                     goodsGroup.setKitGroupPurchaseType(KitGroupPurchaseTypeEnum.LEASE);
-                    remitFee = new BigDecimal((String) groupType.get("LEASE"));
+                    remitFee = groupType.get("LEASE");
                 }
-                if (registerPayDto.getGoodsGroups().get(goodsGroup.getId()).equals("FREE")) {
+                if (goodsGroup.getType().equals(GoodsType.INSTRUMENT) && registerPayDto.getGoodsGroups().get(goodsGroup.getId()).equals("FREE")) {
                     if (!groupType.containsKey("FREE")) {
                         throw new BizException("乐器提供方式不存在");
                     }
                     goodsGroup.setPrice(new BigDecimal(0));
-                    remitFee = new BigDecimal((String) groupType.get("FREE"));
+                    remitFee = groupType.get("FREE");
                 }
                 if (goodsGroup.getType().equals(GoodsType.INSTRUMENT)) {
                     instrumentFee = instrumentFee.add(goodsGroup.getPrice());