比较订单分账记录

This commit is contained in:
Guoqs
2025-10-11 16:20:04 +08:00
parent 2b9801228d
commit 882fc0bd13
3 changed files with 40 additions and 6 deletions

View File

@@ -143,5 +143,13 @@ public interface OrderSplitRecordService {
* 根据订单号查询订单分账记录
*/
List<OrderSplitRecord> queryOrderSplitRecordByOrderCode(String orderCode);
/**
* 比较订单分账记录
* @param generatedOrderSplitRecordList 生成的订单分账记录
* @param queryOrderSplitRecordList 查询的订单分账记录
* @return 订单分账记录是否一致 true一致 false不一致
*/
boolean compareOrderSplitRecord(List<OrderSplitRecord> generatedOrderSplitRecordList, List<OrderSplitRecord> queryOrderSplitRecordList);
}

View File

@@ -5843,14 +5843,19 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService {
// 获取计算出来的订单分账记录
OrderInfoDetailVO orderInfoDetailVO = getOrderInfoDetailVO(orderCode);
List<OrderSplitRecord> orderSplitRecords = orderSplitRecordService.generatedOrderSplitRecordList(param, paymentConfirmInfo, splitDataList, orderInfoDetailVO);
logger.info("realTimeOrderSplit-订单:{}, 获取计算出来的订单分账记录:{}", orderCode, JSON.toJSONString(orderSplitRecords));
List<OrderSplitRecord> generatedOrderSplitRecordList = orderSplitRecordService.generatedOrderSplitRecordList(param, paymentConfirmInfo, splitDataList, orderInfoDetailVO);
logger.info("realTimeOrderSplit-订单:{}, 获取计算出来的订单分账记录:{}", orderCode, JSON.toJSONString(generatedOrderSplitRecordList));
// 查询数据库中该订单的分账记录
List<OrderSplitRecord> splitRecordInfoVOS = orderSplitRecordService.queryOrderSplitRecordByOrderCode(orderCode);
logger.info("realTimeOrderSplit-订单:{}, 数据库中的订单分账记录:{}", orderCode, JSON.toJSONString(splitRecordInfoVOS));
// 对比分账记录
List<OrderSplitRecord> queryOrderSplitRecordList = orderSplitRecordService.queryOrderSplitRecordByOrderCode(orderCode);
logger.info("realTimeOrderSplit-订单:{}, 数据库中的订单分账记录:{}", orderCode, JSON.toJSONString(queryOrderSplitRecordList));
// 对比分账记录 判断是否一致 不一致则保存 否则不保存 true-一致 false-不一致
boolean bool = orderSplitRecordService.compareOrderSplitRecord(generatedOrderSplitRecordList, queryOrderSplitRecordList);
if (!bool) {
// 保存orderSplitRecords到数据库
orderSplitRecordService.batchInsert(generatedOrderSplitRecordList);
}
}
}

View File

@@ -60,6 +60,9 @@ public class OrderSplitRecordServiceImpl implements OrderSplitRecordService {
@Override
public int batchInsert(List<OrderSplitRecord> list) {
if (CollectionUtils.isEmpty(list)) {
return 0;
}
return orderSplitRecordMapper.batchInsert(list);
}
@@ -770,6 +773,24 @@ public class OrderSplitRecordServiceImpl implements OrderSplitRecordService {
return null;
}
/**
* 对比生成的分账记录和查询的分账记录是否一致
* @return true:一致; false:不一致
*/
public boolean compareOrderSplitRecord(List<OrderSplitRecord> generatedOrderSplitRecordList, List<OrderSplitRecord> queryOrderSplitRecordList) {
if (generatedOrderSplitRecordList.size() != queryOrderSplitRecordList.size()) {
return false;
}
// generatedOrderSplitRecordList转为map, key为adapayMemberId, value为分账记录
Map<String, OrderSplitRecord> generatedMap = generatedOrderSplitRecordList.stream()
.collect(Collectors.toMap(OrderSplitRecord::getAdapayMemberId, v -> v));
// queryOrderSplitRecordList转为map, key为adapayMemberId, value为分账记录
Map<String, OrderSplitRecord> queryMap = queryOrderSplitRecordList.stream()
.collect(Collectors.toMap(OrderSplitRecord::getAdapayMemberId, v -> v));
return true;
}
}