mirror of
https://codeup.aliyun.com/67c68d4e484ca2f0a13ac3c1/ydc/jsowell-charger-web.git
synced 2026-04-21 11:35:12 +08:00
交易分账 重构
This commit is contained in:
@@ -32,7 +32,7 @@ public class MemberAdapayRecord {
|
||||
private String paymentId;
|
||||
|
||||
/**
|
||||
* 汇付支付单号
|
||||
* 汇付支付单号(支付宝/微信 订单号)
|
||||
*/
|
||||
private String paymentOrderNo;
|
||||
|
||||
@@ -51,6 +51,11 @@ public class MemberAdapayRecord {
|
||||
*/
|
||||
private BigDecimal spendAmt;
|
||||
|
||||
/**
|
||||
* 冻结金额
|
||||
*/
|
||||
private BigDecimal freezeAmt;
|
||||
|
||||
/**
|
||||
* 剩余金额
|
||||
*/
|
||||
|
||||
@@ -760,15 +760,20 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService {
|
||||
|
||||
未使用延时分账的一级运营商
|
||||
*/
|
||||
OrderSettleResult orderSettleResult = null;
|
||||
if (StringUtils.equals(delayMode, Constants.ADAPAY_PAY_MODE_DELAY)) {
|
||||
// 延迟商家订单处理逻辑
|
||||
orderSettleResult = delayMerchantOrderProcessingLogic(orderBasicInfo, adapayMemberAccount, appId);
|
||||
} else {
|
||||
// 不延迟商家订单处理逻辑 不使用延时分账的汇付商户,钱已经到基本账户中了,只需要退款就可以
|
||||
orderSettleResult = notDelayMerchantOrderProcessingLogic(orderBasicInfo, adapayMemberAccount, appId);
|
||||
// 记账 冻结金额
|
||||
|
||||
}
|
||||
|
||||
OrderSettleResult orderSettleResult = null;
|
||||
// if (StringUtils.equals(delayMode, Constants.ADAPAY_PAY_MODE_DELAY)) {
|
||||
// // 延迟商家订单处理逻辑
|
||||
// orderSettleResult = delayMerchantOrderProcessingLogic(orderBasicInfo, adapayMemberAccount, appId);
|
||||
// } else {
|
||||
// // 不延迟商家订单处理逻辑 不使用延时分账的汇付商户,钱已经到基本账户中了,只需要退款就可以
|
||||
// orderSettleResult = notDelayMerchantOrderProcessingLogic(orderBasicInfo, adapayMemberAccount, appId);
|
||||
// }
|
||||
|
||||
// 退款逻辑/需要退款的情况
|
||||
BigDecimal residue = orderBasicInfo.getRefundAmount();
|
||||
if (residue.compareTo(BigDecimal.ZERO) > 0) {
|
||||
@@ -787,6 +792,7 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService {
|
||||
* 不延迟商家订单处理逻辑
|
||||
* 例如:希晓
|
||||
* 相当于已经分账完成了
|
||||
*
|
||||
* @param orderBasicInfo 订单信息
|
||||
* @param adapayMemberAccount 汇付用户信息
|
||||
* @param wechatAppId 小程序appId
|
||||
@@ -797,6 +803,26 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService {
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* 冻结订单金额
|
||||
* 记一笔账,还没有到分账时间,把订单消费金额在支付单里冻结,退款的时候不能动这些钱
|
||||
*/
|
||||
private void freezeAmount(OrderBasicInfo orderBasicInfo) {
|
||||
String orderCode = orderBasicInfo.getOrderCode();
|
||||
// 查询这笔订单的支付id/查询该笔订单的支付交易回调
|
||||
AdapayCallbackRecord adapayCallbackRecord = selectAdapayCallbackRecord(orderCode);
|
||||
|
||||
}
|
||||
|
||||
private AdapayCallbackRecord selectAdapayCallbackRecord(String orderCode) {
|
||||
AdapayCallbackRecord adapayCallbackRecord = adapayCallbackRecordService.selectByOrderCode(orderCode);
|
||||
if (adapayCallbackRecord == null) {
|
||||
logger.error("根据订单号:{}, 未查询到汇付支付回调信息", orderCode);
|
||||
throw new BusinessException(ReturnCodeEnum.CODE_ADAPAY_CALLBACK_IS_NULL_ERROR);
|
||||
}
|
||||
return adapayCallbackRecord;
|
||||
}
|
||||
|
||||
/**
|
||||
* 延迟商家订单处理逻辑
|
||||
* 例如:举视以及下面的二级运营商
|
||||
@@ -1328,11 +1354,7 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService {
|
||||
public OrderSettleResult doPaymentConfirmWithDelay(OrderBasicInfo orderBasicInfo, AdapayMemberAccount adapayMemberAccount, String wechatAppId) {
|
||||
String orderCode = orderBasicInfo.getOrderCode();
|
||||
// 查询该笔订单的支付交易回调
|
||||
AdapayCallbackRecord adapayCallbackRecord = adapayCallbackRecordService.selectByOrderCode(orderCode);
|
||||
if (adapayCallbackRecord == null) {
|
||||
logger.error("根据订单号:{}, 未查询到汇付支付回调信息", orderCode);
|
||||
throw new BusinessException(ReturnCodeEnum.CODE_ADAPAY_CALLBACK_IS_NULL_ERROR);
|
||||
}
|
||||
AdapayCallbackRecord adapayCallbackRecord = selectAdapayCallbackRecord(orderCode);
|
||||
// 支付id
|
||||
String paymentId = adapayCallbackRecord.getPaymentId();
|
||||
|
||||
@@ -2857,10 +2879,7 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService {
|
||||
BigDecimal refundAmount = orderBasicInfo.getRefundAmount();
|
||||
|
||||
// 查到原汇付支付id
|
||||
AdapayCallbackRecord adapayCallbackRecord = adapayCallbackRecordService.selectByOrderCode(orderCode);
|
||||
if (adapayCallbackRecord == null) {
|
||||
throw new BusinessException(ReturnCodeEnum.CODE_ADAPAY_CALLBACK_IS_NULL_ERROR);
|
||||
}
|
||||
AdapayCallbackRecord adapayCallbackRecord = selectAdapayCallbackRecord(orderCode);
|
||||
|
||||
// 获取appId
|
||||
String wechatAppId = pileMerchantInfoService.queryAppIdByMerchantId(orderBasicInfo.getMerchantId());
|
||||
|
||||
Reference in New Issue
Block a user