application
Request
@Data
public class CheckIfOnTransitOrderRequest {
private String storeId;
private String queryTime;
}
Command
@Data
public class CheckIfOnTransitOrderCommand {
private String storeId;
private String queryTime;
}
appservice
@Service
public class SendOrderAppService {
@Autowired
ISendOrderRepository sendOrderRepository;
public String checkIfOnTransitOrdersExist(CheckIfOnTransitOrderRequest request) {
String queryTime = request.getQueryTime();
if (queryTime == null) {
queryTime = calculateSixMonthsAgo();
}
request.setQueryTime(queryTime);
CheckIfOnTransitOrderCommand checkIfOnTransitOrderCommand = new CheckIfOnTransitOrderCommand();
BeanUtils.copyProperties(request, checkIfOnTransitOrderCommand);
return sendOrderRepository.checkIfOnTransitOrdersExist(checkIfOnTransitOrderCommand);
}
/**
* 计算半年前的时间
*
* @return
*/
private String calculateSixMonthsAgo() {
// 获取当前时间
LocalDateTime now = LocalDateTime.now();
// 计算半年前的时间
LocalDateTime halfYearAgo = now.minusMonths(6);
// 定义日期时间格式
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
// 将LocalDateTime转换为字符串
return halfYearAgo.format(formatter);
}
}
domain
public interface ISendOrderRepository {
String checkIfOnTransitOrdersExist(CheckIfOnTransitOrderCommand command);
}
infrastructure
dao
@Mapper
public interface SendOrderDao {
List<SendOrder> getOnTransitOrders(@Param("storeId") String storeId, @Param("queryTime") String startTime);
}
entity
@Data
@Builder
public class SendOrder {
/**
* 寄送单ID
*/
private int id;
/**
* 寄送单号
*/
private String sendNo;
/**
* 寄件人姓名
*/
private String senderName;
/**
* 寄件人地址
*/
private String senderAddress;
/**
* 收件人姓名
*/
private String receiverName;
/**
* 收件人地址
*/
private String receiverAddress;
/**
* 寄送单状态:0-草稿状态,1-等待揽件,2-揽件中,3-运输中,4-派送中,5-签收关闭,6-高维门店签收关闭,7-异常处理
*/
private String status;
/**
* 门店编号
*/
private String storeId;
/**
* 创建时间
*/
private LocalDateTime createdAt;
/**
* 最后更新时间
*/
private LocalDateTime updatedAt;
}
repository
@Repository
public class SendOrderRepository implements ISendOrderRepository {
@Autowired
SendOrderDao sendOrderDao;
@Override
public String checkIfOnTransitOrdersExist(CheckIfOnTransitOrderCommand command) {
String storeId = command.getStoreId();
String queryTime = command.getQueryTime();
List<SendOrder> onTransitOrders = sendOrderDao.getOnTransitOrders(storeId, queryTime);
return onTransitOrders.isEmpty() ? "N" : "Y";
}
}