|
|
@@ -4,17 +4,20 @@ import cn.hutool.core.collection.CollUtil;
|
|
|
import cn.hutool.core.util.NumberUtil;
|
|
|
import com.alibaba.fastjson2.JSON;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
+import com.sckw.core.common.enums.enums.DictTypeEnum;
|
|
|
import com.sckw.core.exception.BusinessException;
|
|
|
import com.sckw.core.model.constant.Global;
|
|
|
import com.sckw.core.model.enums.LogisticsOrderV1Enum;
|
|
|
import com.sckw.core.utils.DateUtils;
|
|
|
import com.sckw.core.web.constant.HttpStatus;
|
|
|
import com.sckw.core.web.response.BaseResult;
|
|
|
+import com.sckw.order.api.model.TradeOrderDto;
|
|
|
import com.sckw.order.dao.KwoTradeOrderGoodsMapper;
|
|
|
import com.sckw.order.dao.KwoTradeOrderMapper;
|
|
|
import com.sckw.order.dao.KwoTradeOrderUnitMapper;
|
|
|
import com.sckw.order.enums.TradeOrderStatusEnum;
|
|
|
import com.sckw.order.model.KwoTradeOrder;
|
|
|
+import com.sckw.order.model.KwoTradeOrderArchive;
|
|
|
import com.sckw.order.model.KwoTradeOrderGoods;
|
|
|
import com.sckw.order.model.KwoTradeOrderUnit;
|
|
|
import com.sckw.order.serivce.KwoTradeOrderArchiveService;
|
|
|
@@ -22,7 +25,9 @@ import com.sckw.payment.api.dubbo.PaymentDubboService;
|
|
|
import com.sckw.payment.api.feign.PaymentFeignService;
|
|
|
import com.sckw.payment.api.model.feign.WalletPrepaidDto;
|
|
|
import com.sckw.product.api.dubbo.GoodsInfoService;
|
|
|
+import com.sckw.product.api.model.KwpGoods;
|
|
|
import com.sckw.system.api.RemoteSystemService;
|
|
|
+import com.sckw.system.api.model.dto.res.DictProduct;
|
|
|
import com.sckw.transport.api.dubbo.TransportRemoteService;
|
|
|
import com.sckw.transport.api.model.param.OrderFinishParam;
|
|
|
import com.sckw.transport.api.model.vo.KwtLogisticsOrderVO;
|
|
|
@@ -34,7 +39,10 @@ import org.springframework.scheduling.annotation.Scheduled;
|
|
|
import org.springframework.stereotype.Component;
|
|
|
|
|
|
import java.math.BigDecimal;
|
|
|
-import java.util.*;
|
|
|
+import java.util.Date;
|
|
|
+import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
+import java.util.Objects;
|
|
|
import java.util.concurrent.LinkedBlockingQueue;
|
|
|
import java.util.concurrent.ThreadPoolExecutor;
|
|
|
import java.util.concurrent.TimeUnit;
|
|
|
@@ -69,6 +77,42 @@ public class TradeOrderTask {
|
|
|
private PaymentFeignService paymentFeignService;
|
|
|
private final ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(1, 2, 1, TimeUnit.MINUTES, new LinkedBlockingQueue<>(20));
|
|
|
|
|
|
+ @Scheduled(cron = "0 0/10 * * * ?")
|
|
|
+ public void task2() {
|
|
|
+ List<TradeOrderDto> tradeOrderDtos = kwoTradeOrderMapper.joinSelect();
|
|
|
+ if (CollUtil.isNotEmpty(tradeOrderDtos)) {
|
|
|
+ Map<String, Map<String, String>> dict = remoteSystemService.queryDictByType(List.of(DictTypeEnum.GOODS_SPEC.getType()));
|
|
|
+ Map<String, String> goodsSpecMap = dict.get(DictTypeEnum.GOODS_SPEC.getType());
|
|
|
+
|
|
|
+ Map<Long, KwpGoods> goodsByIds = goodsInfoService.getGoodsByIds(tradeOrderDtos.stream().map(TradeOrderDto::getGoodsId).toList());
|
|
|
+ List<KwoTradeOrderArchive> list = tradeOrderDtos.stream().map(d -> {
|
|
|
+ KwoTradeOrderArchive kwoTradeOrderArchive = new KwoTradeOrderArchive();
|
|
|
+ kwoTradeOrderArchive.setTradeOrderId(d.getId());
|
|
|
+ kwoTradeOrderArchive.setGoodsId(d.getGoodsId());
|
|
|
+ KwpGoods kwpGoods = goodsByIds.get(d.getGoodsId());
|
|
|
+ if (Objects.nonNull(kwpGoods)) {
|
|
|
+ DictProduct dictProduct = remoteSystemService.queryProductName(kwpGoods.getGoodsType());
|
|
|
+ if (Objects.nonNull(dictProduct)) {
|
|
|
+ kwoTradeOrderArchive.setProductName(dictProduct.getLabel());
|
|
|
+ }
|
|
|
+ kwoTradeOrderArchive.setProductSpec(goodsSpecMap.get(kwpGoods.getSpec()));
|
|
|
+ }
|
|
|
+
|
|
|
+ kwoTradeOrderArchive.setUnitPrice(d.getUnitPrice());
|
|
|
+ kwoTradeOrderArchive.setAmount(d.getAmount());
|
|
|
+ return kwoTradeOrderArchive;
|
|
|
+
|
|
|
+ }).toList();
|
|
|
+ kwoTradeOrderArchiveService.saveBatch(list);
|
|
|
+ for (TradeOrderDto tradeOrderDto : tradeOrderDtos) {
|
|
|
+ KwoTradeOrder kwoTradeOrder = new KwoTradeOrder();
|
|
|
+ kwoTradeOrder.setId(tradeOrderDto.getId());
|
|
|
+ kwoTradeOrder.setArchiveFlag(1);
|
|
|
+ kwoTradeOrderMapper.updateById(kwoTradeOrder);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
@Scheduled(cron = "0 0/5 * * * ?")
|
|
|
public void task() {
|
|
|
log.info("定时任务");
|