首先autoTakeDelivery() 方法实现了订单的自动收货功能,当订单达到设定的自动收货时间后,系统会自动将订单状态更新为已收货。
执行流程详解:
1. 获取自动收货配置

默认设置自动收货时间为14天
从系统配置中获取自定义的自动收货天数,如果配置有效则使用配置值
2. 查询待收货订单
DateTime nowDate = DateUtil.date();
DateTime dateTime = DateUtil.offsetDay(nowDate, -day);
List<Order> orderList = orderService.findAwaitTakeDeliveryOrderList(dateTime.toString());计算自动收货的时间节点(当前时间减去配置的天数)
调用 orderService.findAwaitTakeDeliveryOrderList() 查询所有到达自动收货时间的订单
3. 过滤秒杀订单
orderList = orderList.stream().filter(order -> !order.getType().equals(1)).collect(Collectors.toList());过滤掉类型为1的订单(秒杀订单),秒杀订单不参与自动收货
只需要做如下修改就可以不过滤秒杀订单


