Pārlūkot izejas kodu

接口—验证付款,剔除日限额、月限额重复的

ZhangWenQiang 3 gadi atpakaļ
vecāks
revīzija
d61b1171ce

+ 12 - 6
happy-cloud-wisdom/happy-cloud-wisdom-biz/src/main/java/org/jeecg/modules/hlwpayment/service/impl/HlwPaymentDetailServiceImpl.java

@@ -40,6 +40,7 @@ import org.springframework.transaction.annotation.Transactional;
 
 import java.math.BigDecimal;
 import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * @Description: 付款明细表
@@ -400,7 +401,7 @@ public class HlwPaymentDetailServiceImpl extends ServiceImpl<HlwPaymentDetailMap
         queryWrapper.eq("payment_id", paymentId);
         List<HlwPaymentDetail> list = this.list(queryWrapper);
         // 错误信息集合
-        List errorList = new ArrayList<>();
+        List<Map<String, Object>> errorList = new ArrayList<>();
         /**
          * 2、拦截日限额
          */
@@ -436,8 +437,13 @@ public class HlwPaymentDetailServiceImpl extends ServiceImpl<HlwPaymentDetailMap
             }
         }
         if (errorList != null && errorList.size() > 0) {
-            JSONArray jsonArray = new JSONArray(errorList);
-            return Result.error(jsonArray.toString());
+            // 根据身份证号去重
+            // (k1, k2) -> k1 表示,如果有重复的key,则保留第一个,舍弃第二个
+            // 最后map再通过流化重新转成list
+            errorList = errorList.stream().collect(
+                    Collectors.toMap(m -> m.get("idcardNumber"), m -> m, (k1, k2) -> k1))
+                    .values().stream().collect(Collectors.toList());
+            return Result.error(errorList.toString());
         }
         //判断付款账户金额是否够支付
         Integer applicationId = jsonObject.getInteger("applicationId");
@@ -450,8 +456,8 @@ public class HlwPaymentDetailServiceImpl extends ServiceImpl<HlwPaymentDetailMap
         HlwCompanyAccount hlwCompanyAccount = hlwCompanyAccountService.getOne(queryWrapper1);
         //-1小于;0等于;1:大于
         Double totalPayment = jsonObject.getDouble("totalPayment");
-        if(hlwCompanyAccount.getBalance().compareTo(totalPayment)==-1){
-            Result result=new Result();
+        if (hlwCompanyAccount.getBalance().compareTo(totalPayment) == -1) {
+            Result result = new Result();
             result.setSuccess(false);
             result.setCode(610);
             result.setMessage("当前余额不足,请充值后再试,如果已经充值可刷新余额显示!");
@@ -482,7 +488,7 @@ public class HlwPaymentDetailServiceImpl extends ServiceImpl<HlwPaymentDetailMap
         }
         HlwCompanyAccount hlwCompanyAccount = hlwCompanyAccountService.getOne(queryWrapper1);
         //-1小于;0等于;1:大于
-        if(hlwCompanyAccount.getBalance().compareTo(totalPayment)==-1){
+        if (hlwCompanyAccount.getBalance().compareTo(totalPayment) == -1) {
             return Result.error("当前余额不足,请充值后再试,如果已经充值可刷新余额显示!");
         }