diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxProfitSharingOrderServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxProfitSharingOrderServiceImpl.java index 10e7ec24e..235c3726c 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxProfitSharingOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxProfitSharingOrderServiceImpl.java @@ -255,23 +255,22 @@ public class WxProfitSharingOrderServiceImpl implements WxProfitSharingOrderServ psReceiverQ.setStatus(EnumProfitSharingReceiverStatus.PROFIT_SHARING_RECEIVER_STATUS_VALID.getCode()); List psReceiverList = wxProfitSharingReceiverMapper.findList(psReceiverQ); if (psReceiverList.size() < 0 || psReceiverList.size() > 50) { - throw new MallinkException(ErrorCode.PROFIT_SHARING_RECEIVER_INVALID); + return new ResultData(ErrorCode.PROFIT_SHARING_RECEIVER_INVALID); } - if (psReceiverList.size() == 0) { //没有分账账户,直接分入商户号 - WxProfitSharingReceiver receiver = new WxProfitSharingReceiver(); - receiver.setReceiverAccount(payAccount.getSubMchId()); - receiver.setReceiverType(EnumProfitSharingReceiverType.PROFIT_SHARING_RECEIVER_MERCHANT_ID.getCode()); - receiver.setSharingAmount(sharingOrderDto.getShareAmount()); - receiver.setParameter(null); - receiver.setId(0L); - psReceiverList.add(receiver); + if (psReceiverList.size() == 0) { //没有分账账户,直接结束分账 + if (sharingOrderDto.getType().equals(EnumProfitSharingOrderType.PROFIT_SHARING_SINGLE.getCode())) + sharingOrderDto.setType(EnumProfitSharingOrderType.PROFIT_SHARING_SINGLE_FINISH.getCode()); + if (sharingOrderDto.getType().equals(EnumProfitSharingOrderType.PROFIT_SHARING_MULTI.getCode())) + return new ResultData(ErrorCode.PROFIT_SHARING_RECEIVER_INVALID); + + return finishSharingOrder(sharingOrderDto); } //计算分账账户合法性 if (psReceiverList.size() > 1 && psReceiverList.stream().filter(r->(r.getParameter() == null)).count() > 0) { - throw new MallinkException(ErrorCode.PROFIT_SHARING_RECEIVER_INVALID); + return new ResultData(ErrorCode.PROFIT_SHARING_RECEIVER_INVALID); } //计算分账金额合法性 @@ -284,7 +283,7 @@ public class WxProfitSharingOrderServiceImpl implements WxProfitSharingOrderServ } }); if (psReceiverList.stream().mapToInt(r->r.getSharingAmount()).sum() > sharingOrderDto.getShareAmount()){ - throw new MallinkException(ErrorCode.PROFIT_SHARING_RECEIVER_INVALID); + return new ResultData(ErrorCode.PROFIT_SHARING_RECEIVER_INVALID); } //单次分账检查是否已创建分账订单