From abb22b16b65afa853d5ab2fa64a7b54a60b318f3 Mon Sep 17 00:00:00 2001 From: Stormeye Wu Date: Thu, 30 Jan 2020 17:46:33 +0800 Subject: [PATCH] =?UTF-8?q?[=E5=88=86=E8=B4=A6=E8=BF=87=E6=9C=9F=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 --- .../java/com/iformall/common/ErrorCode.java | 1 + .../service/impl/WxCardSpendServiceImpl.java | 23 ++++++++++++++++--- 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/mallinkService/src/main/java/com/iformall/common/ErrorCode.java b/mallinkService/src/main/java/com/iformall/common/ErrorCode.java index bace7ceb7..ae38476fc 100644 --- a/mallinkService/src/main/java/com/iformall/common/ErrorCode.java +++ b/mallinkService/src/main/java/com/iformall/common/ErrorCode.java @@ -316,6 +316,7 @@ public enum ErrorCode{ PROFIT_SHARING_NUM_UP_LIMIT(12039, "分账次数超限"), PROFIT_SHARING_QUERY_UNKNOWN_TYPE(12040, "分账查询类型不支持"), PROFIT_SHARING_RECEIVER_UNKNOWN(12041, "收款方账户异常"), + PROFIT_SHARING_TIME_EXPIRED(12042, "分账已过期"), /** * 核销 */ 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 4d15a7d22..d93c8043d 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCardSpendServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCardSpendServiceImpl.java @@ -251,8 +251,10 @@ public class WxCardSpendServiceImpl implements WxCardSpendService { 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()) { - // 分账已到20次限制,后面只记录,无法分账 + 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); @@ -467,6 +469,12 @@ public class WxCardSpendServiceImpl implements WxCardSpendService { logger.error(e.getMessage()); throw new MallinkException(ErrorCode.DB_FAIL); } + // 分账时间检查 + WxCouponOrder couponOrder = wxCouponOrderMapper.selectById(cardId); + if (couponOrder.getExpiredTime().before(new Date())) { + throw new MallinkException(ErrorCode.PROFIT_SHARING_TIME_EXPIRED); + } + // 微信分账 try { WxCardSpend cardSpend = new WxCardSpend(); @@ -862,9 +870,18 @@ public class WxCardSpendServiceImpl implements WxCardSpendService { 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()) { + 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()); }