feat(可回溯): 回溯保存

调整逻辑
This commit is contained in:
BrandWang
2023-05-18 10:51:54 +08:00
parent 2888581b7e
commit 9a698124ac
@@ -40,16 +40,17 @@ public class RecallRecordApiServiceImpl implements RecallRecordApiService {
public ResObj save(TraceDTO record) { public ResObj save(TraceDTO record) {
Objects.requireNonNull(record); Objects.requireNonNull(record);
String orderId = StringUtils.isBlank(record.getOrderId()) ? UUID.randomUUID().toString().replace("-", "") : record.getOrderId();
String traceId = StringUtils.isBlank(record.getTraceId()) ? UUID.randomUUID().toString().replace("-", "") : record.getTraceId(); String traceId = StringUtils.isBlank(record.getTraceId()) ? UUID.randomUUID().toString().replace("-", "") : record.getTraceId();
boolean isLastEvent = record.isLast(); boolean isLastEvent = record.isLast();
RecallOrderEntity order = Optional.ofNullable(recallOrderService.queryRecallOrderByOrderId(orderId)) RecallOrderEntity order = Optional.ofNullable(Optional.ofNullable(record.getOrderId())
.map(recallOrderService::queryRecallOrderByOrderId)
.orElse(null))
.orElseGet(() -> Optional.ofNullable(recallOrderService.queryRecallOrderByTraceId(traceId)).orElseGet(() -> { .orElseGet(() -> Optional.ofNullable(recallOrderService.queryRecallOrderByTraceId(traceId)).orElseGet(() -> {
RecallOrderEntity newOrder = new RecallOrderEntity(); RecallOrderEntity newOrder = new RecallOrderEntity();
newOrder.setId(UUID.randomUUID().toString().replace("-", "")); newOrder.setId(UUID.randomUUID().toString().replace("-", ""));
newOrder.setOrderId(record.getOrderId()); Optional.ofNullable(record.getOrderId())
.ifPresent(newOrder::setOrderId);
newOrder.setTraceId(traceId); newOrder.setTraceId(traceId);
newOrder.setProductCode(record.getProductCode()); newOrder.setProductCode(record.getProductCode());
newOrder.setProductName(record.getProductName()); newOrder.setProductName(record.getProductName());
@@ -75,7 +76,8 @@ public class RecallRecordApiServiceImpl implements RecallRecordApiService {
recallOrderService.updateRecallOrderById(order); recallOrderService.updateRecallOrderById(order);
} }
record.setTraceId(traceId); record.setTraceId(traceId);
record.setOrderId(record.getOrderId()); Optional.ofNullable(record.getOrderId())
.ifPresent(record::setOrderId);
RecallRecordEntity recallRecord = new RecallRecordEntity(); RecallRecordEntity recallRecord = new RecallRecordEntity();
BeanUtils.copyProperties(record, recallRecord); BeanUtils.copyProperties(record, recallRecord);
recallRecord.setId(UUID.randomUUID().toString().replace("-", "")); recallRecord.setId(UUID.randomUUID().toString().replace("-", ""));