From 6b5db0b9a319ac0ff910bbe2bae0c148e6d477c0 Mon Sep 17 00:00:00 2001 From: Junling Bu Date: Sun, 22 Dec 2019 15:44:09 +0800 Subject: [PATCH] =?UTF-8?q?fix[litemall-wx-api]:=20mysql=E9=BB=98=E8=AE=A4?= =?UTF-8?q?=E4=BA=8B=E5=8A=A1=E9=9A=94=E7=A6=BB=E7=BA=A7=E5=88=AB=E6=98=AF?= =?UTF-8?q?=E5=8F=AF=E9=87=8D=E5=A4=8D=E8=AF=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../litemall/wx/service/WxOrderService.java | 18 +----------------- 1 file changed, 1 insertion(+), 17 deletions(-) diff --git a/litemall-wx-api/src/main/java/org/linlinjava/litemall/wx/service/WxOrderService.java b/litemall-wx-api/src/main/java/org/linlinjava/litemall/wx/service/WxOrderService.java index 31630723..a668b7d7 100644 --- a/litemall-wx-api/src/main/java/org/linlinjava/litemall/wx/service/WxOrderService.java +++ b/litemall-wx-api/src/main/java/org/linlinjava/litemall/wx/service/WxOrderService.java @@ -730,23 +730,7 @@ public class WxOrderService { order.setPayTime(LocalDateTime.now()); order.setOrderStatus(OrderUtil.STATUS_PAY); if (orderService.updateWithOptimisticLocker(order) == 0) { - // 这里可能存在这样一个问题,用户支付和系统自动取消订单发生在同时 - // 如果数据库首先因为系统自动取消订单而更新了订单状态; - // 此时用户支付完成回调这里也要更新数据库,而由于乐观锁机制这里的更新会失败 - // 因此,这里会重新读取数据库检查状态是否是订单自动取消,如果是则更新成支付状态。 - order = orderService.findBySn(orderSn); - int updated = 0; - if (OrderUtil.isAutoCancelStatus(order)) { - order.setPayId(payId); - order.setPayTime(LocalDateTime.now()); - order.setOrderStatus(OrderUtil.STATUS_PAY); - updated = orderService.updateWithOptimisticLocker(order); - } - - // 如果updated是0,那么数据库更新失败 - if (updated == 0) { - return WxPayNotifyResponse.fail("更新数据已失效"); - } + return WxPayNotifyResponse.fail("更新数据已失效"); } // 支付成功,有团购信息,更新团购信息