ソースを参照

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

ZhangWenQiang 3 年 前
コミット
2d7606f7ef

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

@@ -401,7 +401,7 @@ public class HlwPaymentDetailServiceImpl extends ServiceImpl<HlwPaymentDetailMap
         queryWrapper.eq("payment_id", paymentId);
         List<HlwPaymentDetail> list = this.list(queryWrapper);
         // 错误信息集合
-        List<Map<String, Object>> errorList = new ArrayList<>();
+        List errorList = new ArrayList<>();
         /**
          * 2、拦截日限额
          */
@@ -417,18 +417,17 @@ public class HlwPaymentDetailServiceImpl extends ServiceImpl<HlwPaymentDetailMap
                 map.put("idcardNumber", hlwPaymentDetail.getIdcardNumber());
                 map.put("reason", "超出日限额上限");
                 errorList.add(map);
+                continue;
             }
-        }
-        /**
-         * 3、拦截月限额
-         */
-        for (HlwPaymentDetail hlwPaymentDetail : list) {
+            /**
+             * 3、拦截月限额
+             */
             // 查询用户当月付款金额总和
             Double currentUserMonthlyAmount = baseMapper.getCurrentUserMonthlyAmount(hlwPaymentDetail.getIdcardNumber());
             currentUserMonthlyAmount = businessAccountUtils.add(currentUserMonthlyAmount, hlwPaymentDetail.getNetPayment());
             // 比较double大小
-            BigDecimal data = BigDecimal.valueOf(currentUserMonthlyAmount);
-            if (bigMonthlyLimit.compareTo(data) == -1) {
+            BigDecimal data1 = BigDecimal.valueOf(currentUserMonthlyAmount);
+            if (bigMonthlyLimit.compareTo(data1) == -1) {
                 Map<String, Object> map = new HashMap<>();
                 map.put("userName", hlwPaymentDetail.getUserName());
                 map.put("idcardNumber", hlwPaymentDetail.getIdcardNumber());
@@ -437,13 +436,8 @@ public class HlwPaymentDetailServiceImpl extends ServiceImpl<HlwPaymentDetailMap
             }
         }
         if (errorList != null && errorList.size() > 0) {
-            // 根据身份证号去重
-            // (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());
+            JSONArray jsonArray = new JSONArray(errorList);
+            return Result.error(jsonArray.toString());
         }
         //判断付款账户金额是否够支付
         Integer applicationId = jsonObject.getInteger("applicationId");