feat(可回溯): 重构
处理类型映射
This commit is contained in:
+8
-6
@@ -15,7 +15,9 @@ import com.wabestway.recall.trace.entity.RecallOrderEntity;
|
||||
import com.wabestway.recall.trace.entity.RecallRecordEntity;
|
||||
import com.wabestway.recall.trace.service.RecallOrderService;
|
||||
import com.wabestway.recall.trace.service.RecallRecordService;
|
||||
import com.wabestway.recall.trace.vo.RecallRecordVO;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import com.wabestway.recall.trace.dto.RecallOrderDTO;
|
||||
import com.wabestway.recall.trace.vo.RecallOrderVO;
|
||||
@@ -55,13 +57,13 @@ public class RecallOrderApiServiceImpl implements RecallOrderApiService {
|
||||
|
||||
@Override
|
||||
public ResObj<RecallOrderVO> getRecallOrderByOrderId(String orderId) {
|
||||
RecallOrderVO recallOrderVO = recallOrderService.queryRecallOrderById(orderId);
|
||||
if (recallOrderVO != null) {
|
||||
LambdaQueryWrapper<RecallRecordEntity> recordQuery = Wrappers.lambdaQuery();
|
||||
recordQuery.eq(RecallRecordEntity::getTraceId, recallOrderVO.getTraceId());
|
||||
recordQuery.orderByAsc(RecallRecordEntity::getCreateTime);
|
||||
List<RecallRecordEntity> recordList = recallRecordService.getBaseMapper().selectList(recordQuery);
|
||||
RecallOrderVO recallOrderVO = new RecallOrderVO();
|
||||
RecallOrderEntity recallOrderEntity = recallOrderService.queryRecallOrderByOrderId(orderId);
|
||||
if (recallOrderEntity != null) {
|
||||
BeanUtils.copyProperties(recallOrderEntity, recallOrderVO);
|
||||
|
||||
List<RecallRecordVO> recordList = recallRecordService.queryTraceRecords(recallOrderEntity.getTraceId());
|
||||
log.info(JSON.toJSONString(recordList));
|
||||
List<String> events = recordList.stream()
|
||||
.flatMap(entity -> entity.getEvents().stream())
|
||||
.collect(Collectors.toList());
|
||||
|
||||
+14
-18
@@ -2,6 +2,7 @@ package com.wabestway.recall.trace.service.impl;
|
||||
|
||||
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
|
||||
import com.wabestway.commons.http.ResObj;
|
||||
import com.wabestway.recall.trace.dto.TraceDTO;
|
||||
import com.wabestway.recall.trace.entity.RecallOrderEntity;
|
||||
@@ -14,6 +15,7 @@ import org.springframework.beans.factory.annotation.Autowired;
|
||||
import com.wabestway.recall.trace.service.RecallRecordApiService;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.Objects;
|
||||
import java.util.Optional;
|
||||
import java.util.UUID;
|
||||
|
||||
@@ -33,18 +35,15 @@ public class RecallRecordApiServiceImpl implements RecallRecordApiService {
|
||||
|
||||
@Override
|
||||
public ResObj save(TraceDTO record) {
|
||||
String orderId = record.getOrderId();
|
||||
String traceId = Optional.ofNullable(orderId)
|
||||
.map(recallOrderService::queryRecallOrderByOrderId)
|
||||
.map(RecallOrderEntity::getTraceId)
|
||||
.orElse(UUID.randomUUID().toString().replace("-", ""));
|
||||
log.info(traceId);
|
||||
record.setTraceId(traceId);
|
||||
boolean isLastEvent = record.isLast();
|
||||
Objects.requireNonNull(record);
|
||||
|
||||
RecallOrderEntity order = Optional.ofNullable(orderId)
|
||||
.flatMap(id -> Optional.ofNullable(recallOrderService.queryRecallOrderByOrderId(id)))
|
||||
.orElseGet(() -> {
|
||||
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))
|
||||
.orElseGet(() -> Optional.ofNullable(recallOrderService.queryRecallOrderByTraceId(traceId)).orElseGet(() -> {
|
||||
RecallOrderEntity newOrder = new RecallOrderEntity();
|
||||
newOrder.setId(UUID.randomUUID().toString().replace("-", ""));
|
||||
newOrder.setOrderId(orderId);
|
||||
@@ -60,19 +59,16 @@ public class RecallRecordApiServiceImpl implements RecallRecordApiService {
|
||||
newOrder.setCompleteDate(System.currentTimeMillis());
|
||||
}
|
||||
recallOrderService.save(newOrder);
|
||||
|
||||
record.setTraceId(traceId);
|
||||
record.setOrderId(orderId);
|
||||
return newOrder;
|
||||
});
|
||||
|
||||
if (isLastEvent) {
|
||||
}));
|
||||
if (isLastEvent && !"1".equals(order.getComplete())) {
|
||||
order.setComplete("1");
|
||||
order.setCompleteDate(System.currentTimeMillis());
|
||||
order.setUpdateTime(System.currentTimeMillis());
|
||||
recallOrderService.updateRecallOrderById(order);
|
||||
}
|
||||
|
||||
record.setTraceId(traceId);
|
||||
record.setOrderId(orderId);
|
||||
RecallRecordEntity recallRecord = new RecallRecordEntity();
|
||||
BeanUtils.copyProperties(record, recallRecord);
|
||||
recallRecord.setId(UUID.randomUUID().toString().replace("-", ""));
|
||||
|
||||
Reference in New Issue
Block a user