|
|
@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
|
|
|
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import com.study.mall.common.exception.BizCodeEnum;
|
|
|
import com.study.mall.common.exception.RRException;
|
|
|
@@ -34,6 +35,7 @@ import com.study.mall.service.GoodsService;
|
|
|
import com.study.mall.service.GoodsSkuService;
|
|
|
import com.study.mall.service.OrderConsigneeInfoService;
|
|
|
import com.study.mall.service.OrderDetailService;
|
|
|
+import com.study.mall.service.OrderExpressInfoService;
|
|
|
import com.study.mall.service.OrderInfoService;
|
|
|
import com.study.mall.service.PayOrderService;
|
|
|
import com.study.mall.service.UserAddressService;
|
|
|
@@ -66,6 +68,7 @@ import java.util.UUID;
|
|
|
import java.util.concurrent.TimeUnit;
|
|
|
import java.util.concurrent.locks.Lock;
|
|
|
import java.util.concurrent.locks.ReentrantLock;
|
|
|
+import java.util.function.Function;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
@Slf4j
|
|
|
@@ -80,6 +83,7 @@ public class OrderInfoServiceImpl extends ServiceImpl<OrderInfoDao, OrderInfoEnt
|
|
|
private final GoodsService goodsService;
|
|
|
private final GoodsSkuService goodsSkuService;
|
|
|
private final UserAddressService userAddressService;
|
|
|
+ private final OrderExpressInfoService orderExpressInfoService;
|
|
|
private final StringRedisTemplate redisTemplate;
|
|
|
private final RabbitTemplate rabbitTemplate;
|
|
|
|
|
|
@@ -480,6 +484,30 @@ public class OrderInfoServiceImpl extends ServiceImpl<OrderInfoDao, OrderInfoEnt
|
|
|
.build();
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public void autoDelivery() {
|
|
|
+ LambdaQueryWrapper<OrderInfoEntity> queryWrapper = Wrappers.lambdaQuery();
|
|
|
+ queryWrapper.eq(OrderInfoEntity::getState, "3");
|
|
|
+ List<OrderInfoEntity> orderInfoList = list(queryWrapper);
|
|
|
+
|
|
|
+ if (orderInfoList.size() > 0) {
|
|
|
+ // 查询物流信息
|
|
|
+ List<Long> finishIds = orderExpressInfoService.getFinishIdsByOrderIds(orderInfoList.stream().map(OrderInfoEntity::getId).collect(Collectors.toList()));
|
|
|
+
|
|
|
+ Map<Long, OrderInfoEntity> ordersMap = orderInfoList.stream().collect(Collectors.toMap(OrderInfoEntity::getId, Function.identity()));
|
|
|
+
|
|
|
+ List<OrderInfoEntity> deliveryOrders = finishIds.stream().map(orderId -> {
|
|
|
+ OrderInfoEntity orderInfo = ordersMap.get(orderId);
|
|
|
+ orderInfo.setState("4");
|
|
|
+ return orderInfo;
|
|
|
+ }).collect(Collectors.toList());
|
|
|
+
|
|
|
+ if (deliveryOrders.size() > 0) {
|
|
|
+ updateBatchById(deliveryOrders);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 创建订单
|
|
|
* @param dto
|