diff --git a/mallinkBApi/src/main/java/com/simple/controller/WxCouponOrderController.java b/mallinkBApi/src/main/java/com/simple/controller/WxCouponOrderController.java index 234a58173..3f855ff79 100644 --- a/mallinkBApi/src/main/java/com/simple/controller/WxCouponOrderController.java +++ b/mallinkBApi/src/main/java/com/simple/controller/WxCouponOrderController.java @@ -118,9 +118,9 @@ public class WxCouponOrderController extends BaseController { logger.error("couponOrderId参数不正确: " + paramMap.toString()); return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL); } + WxCouponOrder couponOrder = null; try { - ResultData rd = wxCouponOrderService.verify(couponOrderId, getUser().getId()); - return rd; + couponOrder = wxCouponOrderService.verify(couponOrderId, getUser().getId()); } catch (MallinkException e) { logger.error("核销异常: " + e.getMessage()); return new ResultData(e.getErrorCode(), e.getMessage()); @@ -128,6 +128,25 @@ public class WxCouponOrderController extends BaseController { logger.error("核销异常: " + e.getMessage()); return new ResultData(ErrorCode.VERIFY_ERROR, e.getMessage()); } + // 核销分账 + if (couponOrder != null) { + try { + wxCouponOrderService.shareAfterVerify(couponOrder); + } catch (Exception e) { + logger.error(e.getMessage()); + } + } + + // 核销发券 + if (couponOrder != null) { + try { + wxCouponOrderService.sendCouponAfterVerify(couponOrder, getUser()); + } catch (Exception e) { + logger.error(e.getMessage()); + } + } + + return new ResultData(couponOrder); } @ApiOperation(value = "根据couponOrderId查询接口", notes = "{\"couponOrderId\":\"string\"}") diff --git a/mallinkService/src/main/java/com/simple/service/WxCouponOrderService.java b/mallinkService/src/main/java/com/simple/service/WxCouponOrderService.java index bfc38c53b..d2805b1a9 100644 --- a/mallinkService/src/main/java/com/simple/service/WxCouponOrderService.java +++ b/mallinkService/src/main/java/com/simple/service/WxCouponOrderService.java @@ -63,9 +63,20 @@ public interface WxCouponOrderService { * @param couponOrderId * @param bUserId 核销人(登录用户) */ - ResultData verify(Long couponOrderId, Long bUserId); + WxCouponOrder verify(Long couponOrderId, Long bUserId); - ResultData couponOrderVerify(WxCouponOrder wxCouponOrder, WxMerchantBUser wxMerchantBUser, WxOrder wxOrder); + /** + * 核销发券 + * @param couponOrder + * @param bUser + */ + void sendCouponAfterVerify(WxCouponOrder couponOrder, WxMerchantBUser bUser); + + /** + * 核销分账 + * @param couponOrder + */ + void shareAfterVerify(WxCouponOrder couponOrder); /** * 根据日期 b用户查券list diff --git a/mallinkService/src/main/java/com/simple/service/impl/WxCouponOrderServiceImpl.java b/mallinkService/src/main/java/com/simple/service/impl/WxCouponOrderServiceImpl.java index 4eaf5aeed..cc745801a 100644 --- a/mallinkService/src/main/java/com/simple/service/impl/WxCouponOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/simple/service/impl/WxCouponOrderServiceImpl.java @@ -297,7 +297,26 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { @Override @Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class}) - public ResultData couponOrderVerify(WxCouponOrder wxCouponOrder, WxMerchantBUser wxMerchantBUser, WxOrder wxOrder) { + public WxCouponOrder verify(Long couponOrderId, Long bUserId) { + + WxCouponOrder wxCouponOrder = wxCouponOrderMapper.selectByPrimaryKey(couponOrderId); + if(wxCouponOrder == null){ + logger.error("券ID不存在:"+ couponOrderId); + throw new MallinkException(ErrorCode.COUPON_ORDER_IS_NULL); + } + + WxMerchantBUser wxMerchantBUser = wxMerchantBUserMapper.selectByPrimaryKey(bUserId.longValue()); + if(wxMerchantBUser == null){ + logger.error("核销员ID不存在:"+ bUserId); + throw new MallinkException(ErrorCode.COUPON_ORDER_IS_NULL); + } + + WxOrder wxOrder = wxOrderMapper.selectByPrimaryKey(wxCouponOrder.getOrderId()); + + if (!wxOrder.getMerchantId().equals(wxMerchantBUser.getMerchantId())){ + logger.error("券: couponMerchantId-" + wxOrder.getMerchantId()+"核销: couponMerchantId-"+wxMerchantBUser.getMerchantId()); + throw new MallinkException(ErrorCode.COUPON_ORDER_IS_NULL); + } if (wxCouponOrder.getCouponOrderStatus() == EnumCouponOrderStatus.COUPON_ORDER_OVER_TIME.getCode()) { logger.error("已过期: couponOrder-" + wxCouponOrder.getId()); throw new MallinkException(ErrorCode.COUPON_ORDER_IS_OVER_TIME); @@ -320,44 +339,18 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { throw new MallinkException(ErrorCode.DB_FAIL.getCode(), "DB FAILD " + e.getMessage()); } - return new ResultData(wxCouponOrder); - } - - @Override - public ResultData verify(Long couponOrderId, Long bUserId) { - - WxCouponOrder wxCouponOrder = wxCouponOrderMapper.selectByPrimaryKey(couponOrderId); - if(wxCouponOrder == null){ - logger.error("券ID不存在:"+ couponOrderId); - throw new MallinkException(ErrorCode.COUPON_ORDER_IS_NULL); - } - - WxMerchantBUser wxMerchantBUser = wxMerchantBUserMapper.selectByPrimaryKey(bUserId.longValue()); - if(wxMerchantBUser == null){ - logger.error("核销员ID不存在:"+ bUserId); - throw new MallinkException(ErrorCode.COUPON_ORDER_IS_NULL); - } - - WxOrder wxOrder = wxOrderMapper.selectByPrimaryKey(wxCouponOrder.getOrderId()); + return wxCouponOrder; - if (!wxOrder.getMerchantId().equals(wxMerchantBUser.getMerchantId())){ - logger.error("券: couponMerchantId-" + wxOrder.getMerchantId()+"核销: couponMerchantId-"+wxMerchantBUser.getMerchantId()); - throw new MallinkException(ErrorCode.COUPON_ORDER_IS_NULL); - } - - ResultData rd = couponOrderVerify(wxCouponOrder, wxMerchantBUser, wxOrder); - // 核销发券 - try { - wxCouponSendService.sendCouponToUser(wxMerchantBUser.getTenantId(), wxOrder.getCUserId(), EnumCouponSendType.COUPON_VERIFY.getCode()); - } catch (Exception e) { - logger.error("核销发券: " + e.getMessage()); - } + } + @Override + @Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class}) + public void shareAfterVerify(WxCouponOrder couponOrder) { // 微信分账 try { WxPayOrder wxPayOrder = new WxPayOrder(); - wxPayOrder.setOrderId(wxCouponOrder.getOrderId()); + wxPayOrder.setOrderId(couponOrder.getOrderId()); wxPayOrder.setPayOrderStatus(EnumPayStatus.PAY_WAY_SUCCESS.getCode()); wxPayOrder = wxPayOrderMapper.selectOne(wxPayOrder); if (wxPayOrder == null) @@ -367,10 +360,23 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { } catch (Exception e) { logger.error("微信分账: " + e.getMessage()); } + } - return rd; + @Override + public void sendCouponAfterVerify(WxCouponOrder couponOrder, WxMerchantBUser bUser) { + // 核销发券 + WxOrder wxOrder = wxOrderMapper.selectByPrimaryKey(couponOrder.getOrderId()); + if (wxOrder != null) { + try { + wxCouponSendService.sendCouponToUser(bUser.getTenantId(), wxOrder.getCUserId(), EnumCouponSendType.COUPON_VERIFY.getCode()); + } catch (Exception e) { + logger.error("核销发券: " + e.getMessage()); + } + } } + + @Override public List queryPriceTotalGroup(String tenantId, Date startTime, Date endTime) { return wxCouponOrderMapper.queryPriceTotalGroup(tenantId, startTime, endTime);