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) {
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();
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(() -> {
RecallOrderEntity newOrder = new RecallOrderEntity();
newOrder.setId(UUID.randomUUID().toString().replace("-", ""));
newOrder.setOrderId(record.getOrderId());
Optional.ofNullable(record.getOrderId())
.ifPresent(newOrder::setOrderId);
newOrder.setTraceId(traceId);
newOrder.setProductCode(record.getProductCode());
newOrder.setProductName(record.getProductName());
@@ -75,7 +76,8 @@ public class RecallRecordApiServiceImpl implements RecallRecordApiService {
recallOrderService.updateRecallOrderById(order);
}
record.setTraceId(traceId);
record.setOrderId(record.getOrderId());
Optional.ofNullable(record.getOrderId())
.ifPresent(record::setOrderId);
RecallRecordEntity recallRecord = new RecallRecordEntity();
BeanUtils.copyProperties(record, recallRecord);
recallRecord.setId(UUID.randomUUID().toString().replace("-", ""));