Commit 9bb231eb7338f7dc4649d0f8ef219de43f1ed259

Authored by YunaiV
1 parent 456b54d4

【代码优化】商城:查询 SF 物流,需要 CustomerName 的情况

yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/framework/delivery/core/client/dto/ExpressTrackQueryReqDTO.java
1 1 package cn.iocoder.yudao.module.trade.framework.delivery.core.client.dto;
2 2  
3   -import cn.hutool.core.util.StrUtil;
4 3 import cn.iocoder.yudao.module.trade.dal.dataobject.delivery.DeliveryExpressDO;
5 4 import lombok.Data;
6 5  
... ... @@ -34,21 +33,4 @@ public class ExpressTrackQueryReqDTO {
34 33 */
35 34 private String customerName;
36 35  
37   - public ExpressTrackQueryReqDTO setExpressCode(String expressCode) {
38   - this.expressCode = expressCode;
39   - updateCustomerName();
40   - return this; // 返回实体对象
41   - }
42   -
43   - public ExpressTrackQueryReqDTO setPhone(String phone) {
44   - this.phone = phone;
45   - updateCustomerName();
46   - return this; // 返回实体对象
47   - }
48   -
49   - private void updateCustomerName() {
50   - if ("SF".equals(expressCode) && phone != null && phone.length() >= 4) {
51   - this.customerName = phone.substring(phone.length() - 4);
52   - }
53   - }
54 36 }
... ...
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/framework/delivery/core/client/impl/kdniao/KdNiaoExpressClient.java
... ... @@ -3,6 +3,8 @@ package cn.iocoder.yudao.module.trade.framework.delivery.core.client.impl.kdniao
3 3 import cn.hutool.core.codec.Base64;
4 4 import cn.hutool.core.collection.CollUtil;
5 5 import cn.hutool.core.net.URLEncodeUtil;
  6 +import cn.hutool.core.util.ObjUtil;
  7 +import cn.hutool.core.util.StrUtil;
6 8 import cn.hutool.crypto.digest.DigestUtil;
7 9 import cn.iocoder.yudao.framework.common.util.json.JsonUtils;
8 10 import cn.iocoder.yudao.module.trade.framework.delivery.config.TradeExpressProperties;
... ... @@ -60,6 +62,11 @@ public class KdNiaoExpressClient implements ExpressClient {
60 62 // 发起请求
61 63 KdNiaoExpressQueryReqDTO requestDTO = INSTANCE.convert(reqDTO)
62 64 .setExpressCode(reqDTO.getExpressCode().toUpperCase());
  65 + if (ObjUtil.equal(requestDTO.getExpressCode(), "SF")
  66 + && StrUtil.isBlank(reqDTO.getCustomerName())
  67 + && StrUtil.length(reqDTO.getPhone()) >= 4) {
  68 + requestDTO.setCustomerName(StrUtil.subSufByLength(reqDTO.getPhone(), 4));
  69 + }
63 70 KdNiaoExpressQueryRespDTO respDTO = httpRequest(REAL_TIME_QUERY_URL, REAL_TIME_FREE_REQ_TYPE,
64 71 requestDTO, KdNiaoExpressQueryRespDTO.class);
65 72  
... ...
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/order/TradeOrderQueryServiceImpl.java
... ... @@ -217,13 +217,8 @@ public class TradeOrderQueryServiceImpl implements TradeOrderQueryService {
217 217 @Cacheable(cacheNames = RedisKeyConstants.EXPRESS_TRACK, key = "#code + '-' + #logisticsNo + '-' + #receiverMobile",
218 218 condition = "#result != null && #result.length() > 0")
219 219 public List<ExpressTrackRespDTO> getExpressTrackList(String code, String logisticsNo, String receiverMobile) {
220   - return expressClientFactory.getDefaultExpressClient()
221   - .getExpressTrackList(
222   - new ExpressTrackQueryReqDTO()
223   - .setExpressCode(code)
224   - .setLogisticsNo(logisticsNo)
225   - .setPhone(receiverMobile)
226   - );
  220 + return expressClientFactory.getDefaultExpressClient().getExpressTrackList(new ExpressTrackQueryReqDTO()
  221 + .setExpressCode(code).setLogisticsNo(logisticsNo).setPhone(receiverMobile));
227 222 }
228 223  
229 224 // =================== Order Item ===================
... ...