瀏覽代碼

Merge branch 'maintenance_feature' into test

周箭河 4 年之前
父節點
當前提交
d0c12ceabc
共有 1 個文件被更改,包括 12 次插入6 次删除
  1. 12 6
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentRepairServiceImpl.java

+ 12 - 6
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentRepairServiceImpl.java

@@ -421,12 +421,6 @@ public class StudentRepairServiceImpl extends BaseServiceImpl<Integer, StudentRe
             });
             repairInfo.setGoodsJson(JSONObject.toJSONString(repairGoodsDtos));
         }
-        studentRepairDao.insert(repairInfo);
-        if (repairInfo.getType() == 1) {
-            Map<String, Object> repairInfoMap = new HashMap<>();
-            MapUtil.populateMap(repairInfoMap, repairInfo);
-            return repairInfoMap;
-        }
 
         if (StringUtils.isNoneBlank(repairInfo.getGoodsJson())) {
             JSONArray goods = JSON.parseArray(repairInfo.getGoodsJson());
@@ -439,6 +433,16 @@ public class StudentRepairServiceImpl extends BaseServiceImpl<Integer, StudentRe
             }
         }
         amount = amount.subtract(repairInfo.getExemptionAmount());
+        if (amount.compareTo(BigDecimal.ZERO) < 0) {
+            throw new BizException("特权减免金额不能大于总金额");
+        }
+
+        studentRepairDao.insert(repairInfo);
+        if (repairInfo.getType() == 1) {
+            Map<String, Object> repairInfoMap = new HashMap<>();
+            MapUtil.populateMap(repairInfoMap, repairInfo);
+            return repairInfoMap;
+        }
 
         repairInfo.setPayStatus(1);
         String channelType = "";
@@ -583,6 +587,8 @@ public class StudentRepairServiceImpl extends BaseServiceImpl<Integer, StudentRe
             BigDecimal reduce = repairGoodsDtos.stream().map(e -> e.getGroupPurchasePrice()).reduce(BigDecimal.ZERO, BigDecimal::add);
             amount = amount.add(reduce);
         }
+        amount = amount.subtract(repairInfo.getExemptionAmount());
+
         String orderNo = idGeneratorService.generatorId("payment") + "";
         studentRepair.setIsUseBalancePayment(repairInfo.getIsUseBalancePayment());
         studentRepair.setTransNo(orderNo);