From 19dc96e814330dd957515b5eb4a57396af41b3b3 Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期一, 13 一月 2025 15:10:19 +0800
Subject: [PATCH] 修改快递查询逻辑
---
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java | 56 +++++++++++++++++++++++++++++++++++++++++++++++---------
1 files changed, 47 insertions(+), 9 deletions(-)
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java
index f7f700e..843d6e9 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java
@@ -22,14 +22,12 @@
import com.ruoyi.order.model.OrderBalancePayment;
import com.ruoyi.order.model.OrderGood;
import com.ruoyi.order.model.RefundPass;
-import com.ruoyi.order.service.CommissionService;
-import com.ruoyi.order.service.OrderBalancePaymentService;
-import com.ruoyi.order.service.OrderService;
-import com.ruoyi.order.service.RefundPassService;
+import com.ruoyi.order.service.*;
import com.ruoyi.order.util.ExpressDeliveryUtil;
import com.ruoyi.order.util.payment.PaymentUtil;
import com.ruoyi.order.util.payment.model.RefundCallbackResult;
import com.ruoyi.order.util.payment.model.RefundResult;
+import com.ruoyi.order.util.vo.MapTrackKD100Vo;
import com.ruoyi.order.util.vo.QueryKD100Vo;
import com.ruoyi.order.vo.*;
import com.ruoyi.other.api.domain.*;
@@ -37,6 +35,7 @@
import com.ruoyi.system.api.domain.SysUser;
import com.ruoyi.system.api.feignClient.SysUserClient;
import com.ruoyi.system.api.model.LoginUser;
+import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -44,6 +43,7 @@
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.time.LocalDateTime;
+import java.time.ZoneOffset;
import java.time.format.DateTimeFormatter;
import java.util.*;
import java.util.stream.Collectors;
@@ -102,6 +102,12 @@
private TechnicianSubscribeClient technicianSubscribeClient;
@Resource
private ShopBalanceStatementClient shopBalanceStatementClient;
+
+ @Resource
+ private RedisTemplate redisTemplate;
+
+ @Resource
+ private SystemConfigClient systemConfigClient;
@@ -484,7 +490,6 @@
userPoint.setObjectId(order.getId());
userPointClient.saveUserPoint(userPoint);
appUserClient.editAppUserById(appUser);
-
}
if(3 == payMethod){
//开始运费退款,积分支付,运费是单独进行支付的,所以需要单独退款
@@ -655,9 +660,6 @@
userPoint.setAppUserId(order.getAppUserId());
userPoint.setObjectId(order.getId());
userPointClient.saveUserPoint(userPoint);
-
- order.setRefundStatus(2);
- order.setRefundTime(LocalDateTime.now());
return R.ok();
}
@@ -722,7 +724,7 @@
orderInfo.setUserName(appUser.getName());
orderInfo.setPhone(appUser.getPhone());
}
- orderInfo.setOrderType(order.getOrderType() == 1 ? "服务" : (StringUtils.isNotEmpty(order.getExpressJson()) ? "单品-快递配送" : "单品-自提"));
+ orderInfo.setOrderType(order.getOrderType() == 1 ? "服务" : (StringUtils.isNotEmpty(order.getAddressJson()) ? "单品-快递配送" : "单品-上门自提"));
Shop shop = shopClient.getShopById(order.getShopId()).getData();
if(null != shop){
orderInfo.setShopName(shop.getName());
@@ -811,4 +813,40 @@
public Integer getShopSaleNum(Integer shopId, Integer type) {
return this.baseMapper.getShopSaleNum(shopId, type);
}
+
+
+ /**
+ * 定时查询快递信息
+ */
+ @Override
+ public void taskExpress() {
+ Set<Long> order_express = redisTemplate.opsForZSet().rangeByScore("order_express", 0, LocalDateTime.now().toEpochSecond(ZoneOffset.UTC));
+ if(order_express.size() > 0){
+ for (Long id : order_express) {
+ Order order = this.getById(id);
+ if(order.getOrderStatus() != 2){
+ redisTemplate.opsForZSet().remove("order_express", id);
+ continue;
+ }
+ String expressJson = order.getExpressJson();
+ if(StringUtils.isEmpty(expressJson)){
+ redisTemplate.opsForZSet().remove("order_express", id);
+ continue;
+ }
+ //{"com":"jd","num":"JDV016336234367"}
+ JSONObject jsonObject = JSON.parseObject(expressJson);
+ String com = jsonObject.getString("com");
+ String num = jsonObject.getString("num");
+ UserAddress userAddress = JSON.parseObject(order.getAddressJson(), UserAddress.class);
+ MapTrackKD100Vo mapTrackKD100Vo = ExpressDeliveryUtil.kd100MapTrack(com, num, "", userAddress.getRecieveAddress());
+ order.setExpressResult(JSON.toJSONString(mapTrackKD100Vo));
+ this.updateById(order);
+ //延长时间x小时
+ SystemConfig systemConfig = systemConfigClient.getSystemConfig(3).getData();
+ JSONObject jsonObject1 = JSON.parseObject(systemConfig.getContent());
+ Integer waitTime = jsonObject1.getInteger("waitTime");
+ redisTemplate.opsForZSet().add("order_express", order.getId(), LocalDateTime.now().plusHours(waitTime).toEpochSecond(ZoneOffset.UTC));
+ }
+ }
+ }
}
--
Gitblit v1.7.1