mirror of
https://codeup.aliyun.com/67c68d4e484ca2f0a13ac3c1/ydc/jsowell-charger-web.git
synced 2026-05-08 20:10:16 +08:00
update 检查订单分账记录
This commit is contained in:
@@ -989,7 +989,7 @@ public class TempController extends BaseController {
|
|||||||
try {
|
try {
|
||||||
List<String> orderCodeList = dto.getOrderCodeList();
|
List<String> orderCodeList = dto.getOrderCodeList();
|
||||||
for (String orderCode : orderCodeList) {
|
for (String orderCode : orderCodeList) {
|
||||||
tempService.handleOrderSplitRecord(orderCode);
|
tempService.checkOrderSplitRecord(orderCode);
|
||||||
}
|
}
|
||||||
response = new RestApiResponse<>();
|
response = new RestApiResponse<>();
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
|
|||||||
@@ -1397,34 +1397,6 @@ public class TempService {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* 处理OrderSplitRecord中值为0的数据
|
|
||||||
* @throws BaseAdaPayException
|
|
||||||
*/
|
|
||||||
public void handleOrderSplitRecord(String orderCode) {
|
|
||||||
// 根据订单号查询订单信息
|
|
||||||
OrderBasicInfo orderBasicInfo = orderBasicInfoService.getOrderInfoByOrderCode(orderCode);
|
|
||||||
OrderDetail orderDetail = orderBasicInfoService.getOrderDetailByOrderCode(orderCode);
|
|
||||||
|
|
||||||
// 组装after参数
|
|
||||||
AfterSettleOrderDTO afterSettleOrderDTO = AfterSettleOrderDTO.builder()
|
|
||||||
.orderCode(orderBasicInfo.getOrderCode())
|
|
||||||
.merchantId(orderBasicInfo.getMerchantId())
|
|
||||||
.stationId(orderBasicInfo.getStationId())
|
|
||||||
.orderPayAmount(orderBasicInfo.getPayAmount()) // 支付金额
|
|
||||||
.orderConsumeAmount(orderBasicInfo.getOrderAmount()) // 消费金额
|
|
||||||
.orderSettleAmount(orderBasicInfo.getSettleAmount()) // 结算金额
|
|
||||||
.orderElectricityAmount(orderDetail.getTotalElectricityAmount()) // 电费金额
|
|
||||||
.orderElectricityDiscountAmount(orderDetail.getDiscountElectricityAmount()) // 电费折扣金额
|
|
||||||
.orderServiceAmount(orderDetail.getTotalServiceAmount()) // 服务费金额
|
|
||||||
.orderServiceDiscountAmount(orderDetail.getDiscountServiceAmount()) // 服务费折扣金额
|
|
||||||
.orderRefundAmount(orderBasicInfo.getRefundAmount()) // 退款金额
|
|
||||||
.orderBasicInfo(orderBasicInfo)
|
|
||||||
.build();
|
|
||||||
|
|
||||||
orderBasicInfoService.checkOrUpdateOrderSplitRecord(afterSettleOrderDTO);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 检查订单分账记录
|
* 检查订单分账记录
|
||||||
* @param orderCode
|
* @param orderCode
|
||||||
|
|||||||
@@ -5765,7 +5765,7 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService {
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void checkOrUpdateOrderSplitRecord(AfterSettleOrderDTO afterSettleOrderDTO) {
|
public void checkOrUpdateOrderSplitRecord(AfterSettleOrderDTO afterSettleOrderDTO) {
|
||||||
logger.info("处理OrderSplitRecord中值为0的数据, orderCode:{}, 分账金额:{}",
|
logger.info("校验或更新订单分账信息, orderCode:{}, 分账金额:{}",
|
||||||
afterSettleOrderDTO.getOrderCode(), afterSettleOrderDTO.getOrderSettleAmount());
|
afterSettleOrderDTO.getOrderCode(), afterSettleOrderDTO.getOrderSettleAmount());
|
||||||
|
|
||||||
// 结算金额
|
// 结算金额
|
||||||
@@ -5781,14 +5781,14 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService {
|
|||||||
|
|
||||||
// 订单是否需要分账, 结算金额必须大于0
|
// 订单是否需要分账, 结算金额必须大于0
|
||||||
if (orderSettleAmount == null || orderSettleAmount.compareTo(BigDecimal.ZERO) <= 0) {
|
if (orderSettleAmount == null || orderSettleAmount.compareTo(BigDecimal.ZERO) <= 0) {
|
||||||
logger.info("realTimeOrderSplit-订单[{}]结算金额[{}]必须大于0", afterSettleOrderDTO.getOrderCode(), orderSettleAmount);
|
logger.info("校验或更新订单分账信息-订单[{}]结算金额[{}]必须大于0", afterSettleOrderDTO.getOrderCode(), orderSettleAmount);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 获取订单待分账信息
|
// 获取订单待分账信息
|
||||||
List<PaymentInfo> paymentInfos = getOrderPaymentInfoList(afterSettleOrderDTO);
|
List<PaymentInfo> paymentInfos = getOrderPaymentInfoList(afterSettleOrderDTO);
|
||||||
if (CollectionUtils.isEmpty(paymentInfos)) {
|
if (CollectionUtils.isEmpty(paymentInfos)) {
|
||||||
logger.info("realTimeOrderSplit-订单[{}]没有待分账的支付记录", afterSettleOrderDTO.getOrderCode());
|
logger.info("校验或更新订单分账信息-订单[{}]没有待分账的支付记录", afterSettleOrderDTO.getOrderCode());
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -5805,11 +5805,11 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService {
|
|||||||
// 计算每个参与分账的用户, 应分多少钱
|
// 计算每个参与分账的用户, 应分多少钱
|
||||||
List<SplitData> splitDataList = calculationSplitDataList(stationSplitConfigList, afterSettleOrderDTO);
|
List<SplitData> splitDataList = calculationSplitDataList(stationSplitConfigList, afterSettleOrderDTO);
|
||||||
List<DivMember> divMemberList = transformDivMemberList(splitDataList);
|
List<DivMember> divMemberList = transformDivMemberList(splitDataList);
|
||||||
logger.info("realTimeOrderSplit-订单:{}, 分账信息:{}", orderCode, JSON.toJSONString(splitDataList));
|
logger.info("校验或更新订单分账信息-订单:{}, 分账信息:{}", orderCode, JSON.toJSONString(splitDataList));
|
||||||
|
|
||||||
// 执行分账
|
// 执行分账
|
||||||
if (CollectionUtils.isEmpty(divMemberList)) {
|
if (CollectionUtils.isEmpty(divMemberList)) {
|
||||||
logger.info("realTimeOrderSplit-订单[{}]分账信息为空", orderCode);
|
logger.info("校验或更新订单分账信息-订单[{}]分账信息为空", orderCode);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -5845,16 +5845,19 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService {
|
|||||||
OrderInfoDetailVO orderInfoDetailVO = getOrderInfoDetailVO(orderCode);
|
OrderInfoDetailVO orderInfoDetailVO = getOrderInfoDetailVO(orderCode);
|
||||||
|
|
||||||
List<OrderSplitRecord> generatedOrderSplitRecordList = orderSplitRecordService.generatedOrderSplitRecordList(param, paymentConfirmInfo, splitDataList, orderInfoDetailVO);
|
List<OrderSplitRecord> generatedOrderSplitRecordList = orderSplitRecordService.generatedOrderSplitRecordList(param, paymentConfirmInfo, splitDataList, orderInfoDetailVO);
|
||||||
logger.info("realTimeOrderSplit-订单:{}, 获取计算出来的订单分账记录:{}", orderCode, JSON.toJSONString(generatedOrderSplitRecordList));
|
logger.info("校验或更新订单分账信息-订单:{}, 获取计算出来的订单分账记录:{}", orderCode, JSON.toJSONString(generatedOrderSplitRecordList));
|
||||||
// 查询数据库中该订单的分账记录
|
// 查询数据库中该订单的分账记录
|
||||||
List<OrderSplitRecord> queryOrderSplitRecordList = orderSplitRecordService.queryOrderSplitRecordByOrderCode(orderCode);
|
List<OrderSplitRecord> queryOrderSplitRecordList = orderSplitRecordService.queryOrderSplitRecordByOrderCode(orderCode);
|
||||||
logger.info("realTimeOrderSplit-订单:{}, 数据库中的订单分账记录:{}", orderCode, JSON.toJSONString(queryOrderSplitRecordList));
|
logger.info("校验或更新订单分账信息-订单:{}, 数据库中的订单分账记录:{}", orderCode, JSON.toJSONString(queryOrderSplitRecordList));
|
||||||
|
|
||||||
// 对比分账记录 判断是否一致 不一致则保存 否则不保存 true-一致 false-不一致
|
// 对比分账记录 判断是否一致 不一致则保存 否则不保存 true-一致 false-不一致
|
||||||
boolean bool = orderSplitRecordService.compareOrderSplitRecord(generatedOrderSplitRecordList, queryOrderSplitRecordList);
|
boolean bool = orderSplitRecordService.compareOrderSplitRecord(generatedOrderSplitRecordList, queryOrderSplitRecordList);
|
||||||
if (!bool) {
|
if (!bool) {
|
||||||
|
logger.info("校验或更新订单分账信息-订单:{}, 分账记录不一致, 保存分账记录", orderCode);
|
||||||
// 保存orderSplitRecords到数据库
|
// 保存orderSplitRecords到数据库
|
||||||
orderSplitRecordService.batchInsert(generatedOrderSplitRecordList);
|
orderSplitRecordService.batchInsert(generatedOrderSplitRecordList);
|
||||||
|
} else {
|
||||||
|
logger.info("校验或更新订单分账信息-订单:{}, 分账记录一致, 不保存分账记录", orderCode);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user