mirror of
https://codeup.aliyun.com/67c68d4e484ca2f0a13ac3c1/ydc/jsowell-charger-web.git
synced 2026-05-08 03:50:13 +08:00
交易分账 重构
This commit is contained in:
@@ -697,12 +697,9 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService {
|
|||||||
dto.setOrderDetail(orderDetail);
|
dto.setOrderDetail(orderDetail);
|
||||||
transactionService.doUpdateOrder(dto);
|
transactionService.doUpdateOrder(dto);
|
||||||
|
|
||||||
// 订单支付结算and退款
|
// 订单支付结算and退款, delay商户部分解冻并退款, 非delay商户全部解冻并退款
|
||||||
orderPaymentSettlementAndRefund(orderBasicInfo);
|
orderPaymentSettlementAndRefund(orderBasicInfo);
|
||||||
|
|
||||||
// 记账
|
|
||||||
// doUpdateClearingBill(orderSettleResult);
|
|
||||||
|
|
||||||
// 将卡/vin状态解锁
|
// 将卡/vin状态解锁
|
||||||
if (!StringUtils.equals("0000000000000000", data.getLogicCard())) {
|
if (!StringUtils.equals("0000000000000000", data.getLogicCard())) {
|
||||||
cardStatusUnlocked(orderBasicInfo.getLogicCard());
|
cardStatusUnlocked(orderBasicInfo.getLogicCard());
|
||||||
@@ -790,20 +787,7 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService {
|
|||||||
return orderSettleResult;
|
return orderSettleResult;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* 不延迟商家订单处理逻辑
|
|
||||||
* 例如:希晓
|
|
||||||
* 相当于已经分账完成了
|
|
||||||
*
|
|
||||||
* @param orderBasicInfo 订单信息
|
|
||||||
* @param adapayMemberAccount 汇付用户信息
|
|
||||||
* @param wechatAppId 小程序appId
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
private OrderSettleResult notDelayMerchantOrderProcessingLogic(OrderBasicInfo orderBasicInfo, AdapayMemberAccount adapayMemberAccount, String wechatAppId) {
|
|
||||||
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 冻结订单金额
|
* 冻结订单金额
|
||||||
@@ -852,16 +836,23 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService {
|
|||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
private OrderSettleResult delayMerchantOrderProcessingLogic(OrderBasicInfo orderBasicInfo, AdapayMemberAccount adapayMemberAccount, String wechatAppId) {
|
private OrderSettleResult delayMerchantOrderProcessingLogic(OrderBasicInfo orderBasicInfo, AdapayMemberAccount adapayMemberAccount, String wechatAppId) {
|
||||||
OrderSettleResult orderSettleResult;
|
|
||||||
// 延时分账的处理逻辑
|
return null;
|
||||||
if (OrderPayModeEnum.PAYMENT_OF_BALANCE.getValue().equals(orderBasicInfo.getPayMode())) {
|
}
|
||||||
// 余额支付的订单
|
|
||||||
orderSettleResult = doBalancePaymentWithDelay(orderBasicInfo, adapayMemberAccount, wechatAppId);
|
/**
|
||||||
} else {
|
* 不延迟商家订单处理逻辑
|
||||||
// 在线支付,进行支付确认分账
|
* 例如:希晓
|
||||||
orderSettleResult = doPaymentConfirmWithDelay(orderBasicInfo, adapayMemberAccount, wechatAppId);
|
* 相当于已经分账完成了
|
||||||
}
|
*
|
||||||
return orderSettleResult;
|
* @param orderBasicInfo 订单信息
|
||||||
|
* @param adapayMemberAccount 汇付用户信息
|
||||||
|
* @param wechatAppId 小程序appId
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
private OrderSettleResult notDelayMerchantOrderProcessingLogic(OrderBasicInfo orderBasicInfo, AdapayMemberAccount adapayMemberAccount, String wechatAppId) {
|
||||||
|
|
||||||
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -1157,6 +1148,7 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService {
|
|||||||
principalPay = principalPayRecord.getPayAmount();
|
principalPay = principalPayRecord.getPayAmount();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 计算需要退回的金额
|
||||||
Map<String, BigDecimal> returnAmountMap = calculateReturnAmount(principalPay, null, orderAmount);
|
Map<String, BigDecimal> returnAmountMap = calculateReturnAmount(principalPay, null, orderAmount);
|
||||||
logger.info("结算订单:{}, 剩余金额退回余额, 订单消费金额:{}, 本金支付金额:{}, 赠送支付金额:{}, 退回金额map:{}",
|
logger.info("结算订单:{}, 剩余金额退回余额, 订单消费金额:{}, 本金支付金额:{}, 赠送支付金额:{}, 退回金额map:{}",
|
||||||
orderCode, orderAmount, principalPay, null, JSONObject.toJSONString(returnAmountMap));
|
orderCode, orderAmount, principalPay, null, JSONObject.toJSONString(returnAmountMap));
|
||||||
@@ -1174,6 +1166,11 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService {
|
|||||||
.build();
|
.build();
|
||||||
memberBasicInfoService.updateMemberBalance(updateMemberBalanceDTO);
|
memberBasicInfoService.updateMemberBalance(updateMemberBalanceDTO);
|
||||||
|
|
||||||
|
// TODO 更新member_adapay_record
|
||||||
|
for (OrderPayRecord record : payRecordList) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
// 更新order_pay_record
|
// 更新order_pay_record
|
||||||
// 更新订单支付记录
|
// 更新订单支付记录
|
||||||
// List<OrderPayRecord> updatePayRecordList = Lists.newArrayList();
|
// List<OrderPayRecord> updatePayRecordList = Lists.newArrayList();
|
||||||
@@ -1248,15 +1245,15 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService {
|
|||||||
for (OrderBasicInfo orderBasicInfo : orderBasicInfos) {
|
for (OrderBasicInfo orderBasicInfo : orderBasicInfos) {
|
||||||
try {
|
try {
|
||||||
OrderSettleResult orderSettleResult;
|
OrderSettleResult orderSettleResult;
|
||||||
// if (OrderPayModeEnum.PAYMENT_OF_BALANCE.getValue().equals(orderBasicInfo.getPayMode())) {
|
if (OrderPayModeEnum.PAYMENT_OF_BALANCE.getValue().equals(orderBasicInfo.getPayMode())) {
|
||||||
// // 余额支付的订单
|
// 余额支付的订单
|
||||||
// orderSettleResult = doBalancePaymentWithDelay(orderBasicInfo, adapayMemberAccount, appId);
|
orderSettleResult = doBalancePaymentWithDelay(orderBasicInfo, adapayMemberAccount, appId);
|
||||||
// } else {
|
} else {
|
||||||
// // 在线支付,进行支付确认分账
|
// 在线支付,进行支付确认分账
|
||||||
// orderSettleResult = doPaymentConfirmWithDelay(orderBasicInfo, adapayMemberAccount, appId);
|
orderSettleResult = doPaymentConfirmWithDelay(orderBasicInfo, adapayMemberAccount, appId);
|
||||||
// }
|
}
|
||||||
|
|
||||||
orderSettleResult = delayMerchantOrderProcessingLogic(orderBasicInfo, adapayMemberAccount, appId);
|
// orderSettleResult = delayMerchantOrderProcessingLogic(orderBasicInfo, adapayMemberAccount, appId);
|
||||||
|
|
||||||
if (orderSettleResult != null && AdapayStatusEnum.SUCCEEDED.getValue().equals(orderSettleResult.getStatus())) {
|
if (orderSettleResult != null && AdapayStatusEnum.SUCCEEDED.getValue().equals(orderSettleResult.getStatus())) {
|
||||||
// 应收金额 = 订单结算金额汇总
|
// 应收金额 = 订单结算金额汇总
|
||||||
|
|||||||
Reference in New Issue
Block a user