lyhzzz vor 2 Jahren
Ursprung
Commit
615b76444b

+ 1 - 1
src/main/java/com/fdkankan/pay/service/IOrderService.java

@@ -19,5 +19,5 @@ public interface IOrderService extends IService<Order> {
 
     Order createOrder(Order order);
 
-    void payResult(Integer orderId, Boolean payFlag, String trade_no,String openId);
+    void payResult(Order order, Boolean payFlag, String trade_no,String openId);
 }

+ 10 - 9
src/main/java/com/fdkankan/pay/service/impl/OrderServiceImpl.java

@@ -69,15 +69,16 @@ public class OrderServiceImpl extends ServiceImpl<IOrderMapper, Order> implement
     }
 
     @Override
-    public void payResult(Integer orderId, Boolean payFlag, String trade_no,String openId) {
-        LambdaUpdateWrapper<Order> wrapper = new LambdaUpdateWrapper<>();
-        wrapper.eq(Order::getOrderId,orderId);
-        wrapper.set(Order::getPayStatus,payFlag ? 1:2);
-        wrapper.set(Order::getTradeNo,trade_no);
-        wrapper.set(Order::getOpenId,openId);
-        wrapper.set(Order::getPayTime,new Date());
-        this.update(wrapper);
-        Order order = this.getById(orderId);
+    public void payResult(Order order, Boolean payFlag, String trade_no,String openId) {
+        if(order.getPayStatus() != 0){
+            return;
+        }
+        order.setPayStatus(payFlag ? 1:2);
+        order.setTradeNo(trade_no);
+        order.setOpenId(openId);
+        order.setPayTime(new Date());
+        order.setUpdateTime(new Date());
+        this.updateById(order);
         rabbitMqProducer.sendByWorkQueue(CacheUtil.orderPayResultQueue,JSONObject.toJSONString(order));
     }
 }

+ 3 - 0
src/main/java/com/fdkankan/pay/service/impl/PayOrderService.java

@@ -62,6 +62,9 @@ public class PayOrderService {
         if(order == null){
             throw new BusinessException(ResultCode.ORDER_NOT_EXIST);
         }
+        if(order.getPayStatus() != 0){
+            return;
+        }
         //微信支付回调
         if(order.getPayType() == 0 || order.getPayType() == 1 || order.getPayType() == 2){
              wechatPayService.callBack(request,response,order);

+ 1 - 1
src/main/java/com/fdkankan/pay/util/alipay/sdk/AlipayService.java

@@ -363,7 +363,7 @@ public class AlipayService {
             log.error("支付宝回调签名认证失败", e);
         }finally {
             if(order!= null){
-                orderService.payResult(order.getOrderId(),payFlag,trade_no,openId);
+                orderService.payResult(order,payFlag,trade_no,openId);
             }
         }
     }

+ 1 - 1
src/main/java/com/fdkankan/pay/util/paypal/sdk/PaypalService.java

@@ -129,7 +129,7 @@ public class PaypalService {
         }catch (Exception e) {
             log.error("paypal支付回调异常,errorMsg:{}", e.getMessage());
         }finally {
-            orderService.payResult(order.getOrderId(),payFlag,trade_no,openId);
+            orderService.payResult(order,payFlag,trade_no,openId);
         }
     }
 

+ 1 - 1
src/main/java/com/fdkankan/pay/util/wx/WechatPayService.java

@@ -238,7 +238,7 @@ public class WechatPayService {
             log.error("微信支付回调数据异常, error:", e);
         }finally {
             if(order!= null){
-                orderService.payResult(order.getOrderId(),payFlag,trade_no,openId);
+                orderService.payResult(order,payFlag,trade_no,openId);
             }
         }
     }