diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxCardInfo.java b/mallinkService/src/main/java/com/iformall/domain/po/WxCardInfo.java index 172354dd6..89a2ce960 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxCardInfo.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxCardInfo.java @@ -58,5 +58,9 @@ public class WxCardInfo extends TenantEntity { @io.swagger.annotations.ApiModelProperty(value = "是否支持转送(0:不支持,1支持)", name = "supportTransfer") private Integer supportTransfer; + public boolean isBuyed() { + return saleAmount > 0; + } + } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxCardSpendServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxCardSpendServiceImpl.java index 64c0466c5..6decd9519 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCardSpendServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCardSpendServiceImpl.java @@ -246,27 +246,30 @@ public class WxCardSpendServiceImpl implements WxCardSpendService { } if (payAccount.checkShare()) { - // 9. 分账 - try { - shareForCardPay(record, record.getCardId(), record.getOrderId(), record.getId()); - } catch (MallinkException e) { - logger.error(e.getMessage()); - if (ErrorCode.PROFIT_SHARING_NUM_UP_LIMIT.getCode() == e.getErrorCode() || - ErrorCode.PROFIT_SHARING_TIME_EXPIRED.getCode() == e.getErrorCode()) { - // 分账已到20次限制,后面只记录,不分账 - // 分账已过期,后面只记录,不分账 - logger.error("分账已到20次限制,后面只记录,无法分账"); - try { - creteMerchantSubsidy(record, curDate, idWorker, coupon, payment); - } catch (Exception ex) { - logger.error("分账已到20次限制,记录到结算表失败"); + if (cardInfo.isBuyed()) { + // 9. 有价卡分账 + try { + shareForCardPay(record, record.getCardId(), record.getOrderId(), record.getId()); + } catch (MallinkException e) { + logger.error(e.getMessage()); + if (ErrorCode.PROFIT_SHARING_NUM_UP_LIMIT.getCode() == e.getErrorCode() || + ErrorCode.PROFIT_SHARING_TIME_EXPIRED.getCode() == e.getErrorCode()) { + // 分账已到20次限制,后面只记录,不分账 + // 分账已过期,后面只记录,不分账 + logger.error("分账已到20次限制,后面只记录,无法分账"); + try { + creteMerchantSubsidy(record, curDate, idWorker, coupon, payment); + } catch (Exception ex) { + logger.error("分账已到20次限制,记录到结算表失败"); + } + } else { + throw new MallinkException(e.getErrorCode(), e.getMessage()); } - } else { - throw new MallinkException(e.getErrorCode(), e.getMessage()); } } } else { - if (cardInfo.getSaleAmount() > 0 && payment > 0) { + // 有价储值卡-补贴 + if (cardInfo.isBuyed() && payment > 0) { try { creteMerchantSubsidy(record, curDate, idWorker, coupon, payment); } catch (Exception ex) {