From b329d87e1f142852df40810b0aa79cc0f2041d53 Mon Sep 17 00:00:00 2001 From: Stormeye Wu Date: Sat, 22 Dec 2018 14:14:37 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8D=A1=E6=94=AF=E4=BB=98=E5=88=86=E8=B4=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/WxCardPayController.java | 2 +- .../java/com/iformall/common/ErrorCode.java | 1 + .../service/impl/WxCardSpendServiceImpl.java | 25 +++++++++++++------ 3 files changed, 19 insertions(+), 9 deletions(-) diff --git a/mallinkCApi/src/main/java/com/iformall/controller/WxCardPayController.java b/mallinkCApi/src/main/java/com/iformall/controller/WxCardPayController.java index 09a4955f7..063771130 100644 --- a/mallinkCApi/src/main/java/com/iformall/controller/WxCardPayController.java +++ b/mallinkCApi/src/main/java/com/iformall/controller/WxCardPayController.java @@ -27,7 +27,7 @@ import java.util.Map; */ @RestController @Api(description = "C端扫B端商户码储值卡支付") -@RequestMapping("/api/carday") +@RequestMapping("/api/cardPay") public class WxCardPayController extends BaseController { private final Logger logger = LoggerFactory.getLogger(this.getClass()); diff --git a/mallinkService/src/main/java/com/iformall/common/ErrorCode.java b/mallinkService/src/main/java/com/iformall/common/ErrorCode.java index f719dd8af..62b68fbd9 100644 --- a/mallinkService/src/main/java/com/iformall/common/ErrorCode.java +++ b/mallinkService/src/main/java/com/iformall/common/ErrorCode.java @@ -206,6 +206,7 @@ public enum ErrorCode{ PROFIT_SHARING_QUERY_RETURN_INVALID(12036, "分账查询返回校验失败"), PROFIT_SHARING_RECEIVER_ADD_FAILED(12037, "分账账户添加失败"), PROFIT_SHARING_RECEIVER_DEL_FAILED(12038, "分账账户删除失败"), + PROFIT_SHARING_NUM_UP_LIMIT(12039, "分账次数超限"), /** * 核销 */ 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 d125235c1..e277c863d 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCardSpendServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCardSpendServiceImpl.java @@ -8,6 +8,7 @@ import com.iformall.domain.dto.WxSharingOrderDto; import com.iformall.domain.po.*; import com.iformall.domain.vo.WxCardSpendVo; import com.iformall.enums.*; +import com.iformall.exception.MallinkException; import com.iformall.mapper.*; import com.iformall.service.WxCardSpendService; import com.iformall.service.WxProfitSharingOrderService; @@ -135,6 +136,14 @@ public class WxCardSpendServiceImpl implements WxCardSpendService { return new ResultData(ErrorCode.DB_FAIL.getCode(), "card spend 插入出错!"); } + // 9. 分账 + try { + shareForCardPay(record.getTenantId(), record.getCardId(), record.getOrderId(), record.getId()); + } catch (MallinkException e) { + logger.error("分账失败"+ e.getMessage()); + return new ResultData(e.getErrorCode(), e.getMessage()); + } + // 7. update card info cardInfo.setRemainingAmount(remaingAmount); cardInfo.setRemainingShareFeeAmount(remain_real_pament); @@ -181,12 +190,7 @@ public class WxCardSpendServiceImpl implements WxCardSpendService { return new ResultData(ErrorCode.DB_FAIL.getCode(), "merchantSubsidy info 插入出错!"); } } - // 9. 分账 - try { - shareForCardPay(record.getTenantId(), record.getCardId(), record.getOrderId(), record.getId()); - } catch (Exception e) { - logger.error("分账失败"); - } + return new ResultData(record); } @@ -249,10 +253,11 @@ public class WxCardSpendServiceImpl implements WxCardSpendService { psNum = wxCardSpendMapper.selectCount(cardSpendQ); if (psNum >= 20) { logger.error("微信分账已超过限制次数-20次"); - return; + throw new MallinkException(ErrorCode.PROFIT_SHARING_NUM_UP_LIMIT); } } catch (Exception e) { logger.error(e.getMessage()); + throw new MallinkException(ErrorCode.DB_FAIL); } // 微信分账 try { @@ -278,7 +283,11 @@ public class WxCardSpendServiceImpl implements WxCardSpendService { shareOrder.setTenantId(tenantId); shareOrder.setTransactionId(cardInfo.getTransactionId()); shareOrder.setShareAmount(cardSpend.getRealPayment()); - profitSharingOrderService.createSharingOrder(shareOrder); + ResultData resultData = profitSharingOrderService.createSharingOrder(shareOrder); + if(resultData.code != 200) { + // 分账异常 + throw new MallinkException(resultData.code, resultData.message); + } if(cardSpend.getCardRemainAmount().equals(0)) { if (cardSpend.getCardRemainRealAmount() > 0) { // 卡已被抵扣,但是分账还有余额