Jelajahi Sumber

生成付款链接bugfix

chao 3 tahun lalu
induk
melakukan
2e72123bf4

+ 9 - 11
src/main/java/com/caimei365/order/service/impl/PayOrderServiceImpl.java

@@ -298,10 +298,10 @@ public class PayOrderServiceImpl implements PayOrderService {
         OrderPayLinkVo orderPayLink = payOrderMapper.getOrderPayLink(payLinkDto.getOrderId(), null);
         if (null == orderPayLink) {
             orderPayLink = new OrderPayLinkVo();
-            orderPayLink.setOrderId(payLinkDto.getOrderId());
-            orderPayLink.setPayType(payLinkDto.getPayType());
-            orderPayLink.setUnpaidAmount(payLinkDto.getUnpaidAmount());
         }
+        orderPayLink.setOrderId(payLinkDto.getOrderId());
+        orderPayLink.setPayType(payLinkDto.getPayType());
+        orderPayLink.setUnpaidAmount(payLinkDto.getUnpaidAmount());
         orderPayLink.setRedirectLink(redirectLink);
         orderPayLink.setLinkLogo(linkLogo);
         orderPayLink.setGenerateTime(date);
@@ -611,15 +611,13 @@ public class PayOrderServiceImpl implements PayOrderService {
         }
         // 支付记录
         List<DiscernReceiptVo> discernReceiptList = orderCommonMapper.getDiscernReceipt(order.getOrderId(), order.getShopOrderIds());
-        if (!discernReceiptList.isEmpty()) {
-            AtomicDouble receiptAmount = new AtomicDouble(0d);
-            discernReceiptList.forEach(discernReceipt -> {
-                if (3 == discernReceipt.getReceiptStatus()) {
-                    receiptAmount.set(MathUtil.add(receiptAmount.get(), discernReceipt.getAssociateAmount()).doubleValue());
-                }
-            });
-            order.setReceiptAmount(receiptAmount.get());
+        double receiptAmount = 0d;
+        if (null != discernReceiptList && discernReceiptList.size() > 0) {
+            for (DiscernReceiptVo discernReceipt : discernReceiptList) {
+                receiptAmount = MathUtil.add(receiptAmount, discernReceipt.getAssociateAmount()).doubleValue();
+            }
         }
+        order.setReceiptAmount(receiptAmount);
         log.info("【支付异步回调】>>>>>>>>>>>>>>已付金额+本次支付金额:" + order.getReceiptAmount());
         Date date = new Date();
         String curDateStr = (new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")).format(date);

+ 1 - 1
src/main/resources/mapper/OrderCommonMapper.xml

@@ -125,7 +125,7 @@
         FROM cm_receipt_order_relation cror
         LEFT JOIN cm_discern_receipt cdr ON cror.receiptID = cdr.id
         WHERE ((cror.orderID = #{orderId} AND cror.relationType = '2') OR (cror.orderID = #{shopOrderId} AND cror.relationType = '1'))
-        AND cror.delFlag = '0' AND cdr.delFlag = '0' AND cdr.receiptStatus = '3' AND cdr.payType != '16'
+        AND cror.delFlag = '0' AND cdr.delFlag = '0' AND cdr.receiptStatus = '3' AND cdr.payType != '16' AND cdr.receiptStatus IN(2,3)
         ORDER BY cdr.receiptDate DESC
     </select>
     <select id="getRebateAmountByShopOrder" resultType="java.lang.Double">