From 5e41b7aad0863d37d9bd5352e9570842f7123b37 Mon Sep 17 00:00:00 2001 From: Stormeye Wu Date: Fri, 11 Jan 2019 00:33:20 +0800 Subject: [PATCH] =?UTF-8?q?[=E8=B4=AD=E5=88=B8=E5=BC=82=E5=B8=B8=E5=A4=84?= =?UTF-8?q?=E7=90=86][=E4=BF=AE=E6=94=B9]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/WxCouponInjectServiceImpl.java | 1 + .../service/impl/WxCouponSendServiceImpl.java | 18 ++++++++++++------ .../service/impl/WxOrderServiceImpl.java | 11 ++++++++--- .../service/impl/WxPayOrderServiceImpl.java | 5 +---- 4 files changed, 22 insertions(+), 13 deletions(-) diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponInjectServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponInjectServiceImpl.java index 9a29181a4..77e0103bd 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponInjectServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponInjectServiceImpl.java @@ -239,6 +239,7 @@ public class WxCouponInjectServiceImpl implements WxCouponInjectService { couponOrder = wxOrderService.sendFreeCouponToUser(tempCUser.getId(), wxCoupon.getId()); } catch (MallinkException e) { logger.error(e.getMessage()); + return false; } if (couponOrder != null) { wxCouponActionLogService.addOne(tempCUser.getTenantId(), wxCoupon.getId(), couponOrder.getId(), EnumCouponSendSendType.INJECT.getCode(), couponInjectId); diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponSendServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponSendServiceImpl.java index 232257648..fae234e26 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponSendServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponSendServiceImpl.java @@ -15,6 +15,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; import java.util.Date; @@ -103,7 +104,7 @@ public class WxCouponSendServiceImpl implements WxCouponSendService { } @Override - @Transactional + @Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class}) public boolean sendCouponToUser(EnumCouponSendSendType type, Object param) { String tenantId; @@ -177,12 +178,17 @@ public class WxCouponSendServiceImpl implements WxCouponSendService { continue; // 发放免费券 - WxCouponOrder couponOrder = wxOrderService.sendFreeCouponToUser(cUserId, send.getCouponId()); - if (couponOrder != null) { - wxCouponActionLogService.addOne(tenantId, send.getCouponId(), couponOrder.getId(), type.getCode(), send.getId()); - bRet = true; + WxCouponOrder couponOrder = null; + try { + couponOrder = wxOrderService.sendFreeCouponToUser(cUserId, send.getCouponId()); + if (couponOrder != null) { + wxCouponActionLogService.addOne(tenantId, send.getCouponId(), couponOrder.getId(), type.getCode(), send.getId()); + bRet = true; + } + // wxCouponService.reduceInventory(send.getCouponId(), 1); + } catch (Exception e) { + logger.error(e.getMessage()); } - wxCouponService.reduceInventory(send.getCouponId(), 1); } return bRet; diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java index 7dd8e58a5..dfbf97634 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java @@ -614,7 +614,12 @@ public class WxOrderServiceImpl implements WxOrderService { } // 减库存操作 - stockReduce(user, coupon, couponIdStr); + try { + stockReduce(user, coupon, couponIdStr); + } catch (Exception e) { + logger.error(e.getMessage()); + } + int payment = coupon.getSalePrice(); @@ -665,7 +670,7 @@ public class WxOrderServiceImpl implements WxOrderService { } @Override - @Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class}) + @Transactional(propagation = Propagation.NESTED, readOnly = false, rollbackFor = {Exception.class}) public WxCouponOrder sendFreeCouponToUser(Long userId, Long couponId) { // check 用户状态 WxCUser user = null; @@ -771,7 +776,7 @@ public class WxOrderServiceImpl implements WxOrderService { updateOrder.setUpdateDate(currentDate); int ret = 0; try { - ret = wxOrderMapper.updateByPrimaryKey(updateOrder); + wxOrderMapper.updateByPrimaryKey(updateOrder); } catch (Exception e) { logger.error("订单更新失败:" + e.getMessage()); throw new MallinkException(ErrorCode.ORDER_UPDATE_ERR); diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxPayOrderServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxPayOrderServiceImpl.java index 6e4df88aa..b863ddb72 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxPayOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxPayOrderServiceImpl.java @@ -1191,10 +1191,7 @@ public class WxPayOrderServiceImpl implements WxPayOrderService { // 修改订单状态 try { - int _count = wxOrderService.couponOrderSuccess(order); - if (_count > 1) { - throw new MallinkException(ErrorCode.ORDER_IS_FAIL); - } + wxOrderService.couponOrderSuccess(order); } catch (Exception e) { logger.error(e.getMessage()); throw new MallinkException(ErrorCode.DB_FAIL.getCode(), "订单更新");