diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxCoupon.java b/mallinkService/src/main/java/com/iformall/domain/po/WxCoupon.java index 8175d4c26..35817be93 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxCoupon.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxCoupon.java @@ -276,4 +276,15 @@ public class WxCoupon extends BaseEntity { return false; } + public boolean checkIsFree() { + if(salePrice!= null) { + if (salePrice.equals(0)) { + return true; + } else { + return false; + } + } + return false; + } + } 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 b02b5cfb6..389bd386f 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java @@ -693,30 +693,37 @@ public class WxOrderServiceImpl implements WxOrderService { /// 储值卡信息添加 if (isCard) { WxPayOrder payOrder = null; - try { - WxPayOrder payOrderQ = new WxPayOrder(); - payOrderQ.setTenantId(user.getTenantId()); - payOrderQ.setOrderId(order.getId()); - payOrderQ.setPayOrderStatus(EnumPayStatus.PAY_STATUS_SUCCESS.getCode()); - payOrder = wxPayOrderMapper.selectOne(new QueryWrapper(payOrderQ)); - } catch (Exception e) { - logger.error("payOrder not found:" + e.getMessage()); - } - - Integer fee = payOrder.getPayAmount() - payOrder.getShareAmount(); - + Integer fee = 0; WxCardInfo cardInfo = new WxCardInfo(); cardInfo.setId(couponOrder.getId()); cardInfo.setTenantId(user.getTenantId()); cardInfo.setCouponId(order.getProductId()); - cardInfo.setTransactionId(payOrder.getTransactionId()); cardInfo.setAmount(coupon.getPrice()); cardInfo.setSaleAmount(coupon.getSalePrice()); cardInfo.setRemainingAmount(coupon.getPrice()); + + if (!coupon.checkIsFree()) { + try { + WxPayOrder payOrderQ = new WxPayOrder(); + payOrderQ.setTenantId(user.getTenantId()); + payOrderQ.setOrderId(order.getId()); + payOrderQ.setPayOrderStatus(EnumPayStatus.PAY_STATUS_SUCCESS.getCode()); + payOrder = wxPayOrderMapper.selectOne(new QueryWrapper(payOrderQ)); + } catch (Exception e) { + logger.error("payOrder not found:" + e.getMessage()); + } + fee = payOrder.getPayAmount() - payOrder.getShareAmount(); + cardInfo.setTransactionId(payOrder.getTransactionId()); + cardInfo.setShareFeeAmount(payOrder.getShareAmount()); + cardInfo.setRemainingShareFeeAmount(payOrder.getShareAmount()); + cardInfo.setRateAmount(payOrder.getRateAmount()); + } else { + cardInfo.setShareFeeAmount(0); + cardInfo.setRemainingShareFeeAmount(0); + cardInfo.setRateAmount(0); + } + cardInfo.setServiceFeeAmount(fee); - cardInfo.setShareFeeAmount(payOrder.getShareAmount()); - cardInfo.setRemainingShareFeeAmount(payOrder.getShareAmount()); - cardInfo.setRateAmount(payOrder.getRateAmount()); cardInfo.setCreateDate(curr); cardInfo.setUpdateDate(curr); cardInfo.setSupportTransfer(coupon.getSupportTransfer());