mirror of
https://codeup.aliyun.com/67c68d4e484ca2f0a13ac3c1/ydc/jsowell-charger-web.git
synced 2026-06-24 00:59:43 +08:00
update
This commit is contained in:
@@ -1666,7 +1666,11 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService {
|
|||||||
|
|
||||||
// 订单退款,汇付退款
|
// 订单退款,汇付退款
|
||||||
refundMethod(afterSettleOrderDTO);
|
refundMethod(afterSettleOrderDTO);
|
||||||
return null;
|
|
||||||
|
// 组装结果集
|
||||||
|
OrderSplitResult result = new OrderSplitResult();
|
||||||
|
result.setOrderCode(afterSettleOrderDTO.getOrderCode());
|
||||||
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -1714,11 +1718,58 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService {
|
|||||||
// 根据站点id查询分账配置
|
// 根据站点id查询分账配置
|
||||||
List<StationSplitConfig> stationSplitConfigList = stationSplitConfigService.queryByStationId(afterSettleOrderDTO.getStationId());
|
List<StationSplitConfig> stationSplitConfigList = stationSplitConfigService.queryByStationId(afterSettleOrderDTO.getStationId());
|
||||||
|
|
||||||
// 订单分账
|
// 计算每个参与分账的用户, 应分多少钱
|
||||||
calculationOfSplitAmount(stationSplitConfigList, afterSettleOrderDTO);
|
List<DivMember> divMemberList = calculationOfSplitAmount(stationSplitConfigList, afterSettleOrderDTO);
|
||||||
|
|
||||||
|
// 执行分账
|
||||||
|
if (CollectionUtils.isEmpty(divMemberList)) {
|
||||||
|
logger.info("分账信息为空");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
String orderCode = afterSettleOrderDTO.getOrderCode();
|
||||||
|
|
||||||
|
// 查询订单支付记录
|
||||||
|
List<OrderPayRecord> orderPayRecordList = orderPayRecordService.getOrderPayRecordList(orderCode);
|
||||||
|
|
||||||
|
// 选出需要分账的支付id
|
||||||
|
List<PaymentInfo> paymentInfos = Lists.newArrayList();
|
||||||
|
for (OrderPayRecord orderPayRecord : orderPayRecordList) {
|
||||||
|
BigDecimal payAmount = orderPayRecord.getPayAmount();
|
||||||
|
BigDecimal refundAmount = orderPayRecord.getRefundAmount() == null ? BigDecimal.ZERO : orderPayRecord.getRefundAmount();
|
||||||
|
// 如果相减等于0,说明这笔支付单退完了,就不用分账了
|
||||||
|
BigDecimal subtract = payAmount.subtract(refundAmount);
|
||||||
|
if (subtract.compareTo(BigDecimal.ZERO) > 0) {
|
||||||
|
paymentInfos.addAll(orderPayRecordService.parseDeductionRecord(orderPayRecord.getDeductionRecord()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 支付id
|
||||||
|
String paymentId = paymentInfos.get(0).getPaymentId();
|
||||||
|
|
||||||
|
// 运营商id
|
||||||
|
String merchantId = afterSettleOrderDTO.getMerchantId();
|
||||||
|
|
||||||
|
// 根据运营商id 查询appId
|
||||||
|
String appId = pileMerchantInfoService.queryAppIdByMerchantId(merchantId);
|
||||||
|
|
||||||
|
PaymentConfirmParam param = PaymentConfirmParam.builder()
|
||||||
|
.paymentId(paymentId)
|
||||||
|
.divMemberList(divMemberList)
|
||||||
|
.confirmAmt(orderSettleAmount)
|
||||||
|
.orderCode(orderCode)
|
||||||
|
.wechatAppId(appId)
|
||||||
|
.build();
|
||||||
|
adapayService.createPaymentConfirmRequest(param);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 计算每个账户需要分账的金额
|
||||||
|
* @param stationSplitConfigList 参与分账的账户信息
|
||||||
|
* @param afterSettleOrderDTO 订单结算信息
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
@Override
|
@Override
|
||||||
public List<DivMember> calculationOfSplitAmount(List<StationSplitConfig> stationSplitConfigList, AfterSettleOrderDTO afterSettleOrderDTO) {
|
public List<DivMember> calculationOfSplitAmount(List<StationSplitConfig> stationSplitConfigList, AfterSettleOrderDTO afterSettleOrderDTO) {
|
||||||
return calculationOfSplitAmount(stationSplitConfigList, afterSettleOrderDTO, null);
|
return calculationOfSplitAmount(stationSplitConfigList, afterSettleOrderDTO, null);
|
||||||
@@ -3483,8 +3534,6 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService {
|
|||||||
orderInfo.setRemedialAmount(remedialAmount.subtract(payAmount));
|
orderInfo.setRemedialAmount(remedialAmount.subtract(payAmount));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
this.updateOrderBasicInfo(orderInfo);
|
this.updateOrderBasicInfo(orderInfo);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user