|
|
|
@@ -705,6 +705,7 @@ public class WxOrderServiceImpl implements WxOrderService { |
|
|
|
cardInfo.setRemainingAmount(coupon.getPrice()); |
|
|
|
|
|
|
|
if (!coupon.checkIsFree()) { |
|
|
|
// 有价卡 |
|
|
|
try { |
|
|
|
WxPayOrder payOrderQ = new WxPayOrder(); |
|
|
|
payOrderQ.setTenantId(user.getTenantId()); |
|
|
|
@@ -714,16 +715,36 @@ public class WxOrderServiceImpl implements WxOrderService { |
|
|
|
} catch (Exception e) { |
|
|
|
logger.error("payOrder not found:" + e.getMessage()); |
|
|
|
} |
|
|
|
cardInfo.setTransactionId(payOrder.getTransactionId()); |
|
|
|
if (payOrder.getShareAmount() != null) { |
|
|
|
// 开启分账 |
|
|
|
fee = payOrder.getPayAmount() - payOrder.getShareAmount(); |
|
|
|
cardInfo.setShareFeeAmount(payOrder.getShareAmount()); |
|
|
|
cardInfo.setRemainingShareFeeAmount(payOrder.getShareAmount()); |
|
|
|
cardInfo.setRateAmount(payOrder.getRateAmount()); |
|
|
|
} else { |
|
|
|
fee = payOrder.getPayAmount(); |
|
|
|
// 未开启分账 |
|
|
|
WxPayAccount payAccount = null; |
|
|
|
WxPayAccount payAccountQ = new WxPayAccount(); |
|
|
|
payAccountQ.setTenantId(cardInfo.getTenantId()); |
|
|
|
try { |
|
|
|
payAccount = wxPayAccountMapper.selectOne(payAccountQ); |
|
|
|
fee = PayUtils.getPayRate(payOrder.getPayAmount(), payAccount.getRate(), false); |
|
|
|
Integer shareAmount = payOrder.getPayAmount() - fee; |
|
|
|
cardInfo.setShareFeeAmount(shareAmount); |
|
|
|
cardInfo.setRemainingShareFeeAmount(shareAmount); |
|
|
|
if(payAccount.getRealRate() != null) { |
|
|
|
int iRealChargeFee = PayUtils.getPayRate(payOrder.getPayAmount(), payAccount.getRealRate(), true); |
|
|
|
if(fee > iRealChargeFee) { |
|
|
|
cardInfo.setRateAmount(fee - iRealChargeFee); |
|
|
|
} |
|
|
|
} |
|
|
|
} catch (Exception e) { |
|
|
|
logger.error("获取payAccount error: " + cardInfo.getTenantId()); |
|
|
|
} |
|
|
|
} |
|
|
|
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); |
|
|
|
|