feat(可回溯): 回溯保存
调整逻辑
This commit is contained in:
+7
-5
@@ -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("-", ""));
|
||||||
|
|||||||
Reference in New Issue
Block a user