|
|
@@ -26,6 +26,7 @@ import com.fs.live.mapper.LiveOrderMapper;
|
|
|
import com.fs.store.domain.FsOrderExpressPush;
|
|
|
import com.fs.store.domain.FsStoreDelivers;
|
|
|
import com.fs.store.domain.FsStoreOrder;
|
|
|
+import com.fs.store.domain.FsWarehouses;
|
|
|
import com.fs.store.dto.ExpressAddressDTO;
|
|
|
import com.fs.store.dto.ExpressAddressDataDTO;
|
|
|
import com.fs.store.dto.ExpressInfoDTO;
|
|
|
@@ -34,6 +35,7 @@ import com.fs.store.enums.ShipperCodeEnum;
|
|
|
import com.fs.store.mapper.FsOrderExpressPushMapper;
|
|
|
import com.fs.store.mapper.FsStoreDeliversMapper;
|
|
|
import com.fs.store.mapper.FsStoreOrderMapper;
|
|
|
+import com.fs.store.mapper.FsWarehousesMapper;
|
|
|
import com.fs.store.param.FsStoreOrderExpressParam;
|
|
|
import com.fs.store.service.IFsStoreOrderService;
|
|
|
import com.hc.openapi.tool.util.ObjectUtils;
|
|
|
@@ -80,6 +82,8 @@ public class FsExpressServiceImpl implements IFsExpressService
|
|
|
private FsStoreDeliversMapper fsStoreDeliversMapper;
|
|
|
@Autowired
|
|
|
private LiveOrderMapper liveOrderMapper;
|
|
|
+ @Autowired
|
|
|
+ private FsWarehousesMapper fsWarehousesMapper;
|
|
|
|
|
|
|
|
|
/**
|
|
|
@@ -160,6 +164,32 @@ public class FsExpressServiceImpl implements IFsExpressService
|
|
|
public ExpressInfoDTO getExpressInfo(String OrderCode, String ShipperCode, String LogisticCode, String lastFourNumber) {
|
|
|
|
|
|
//处理顺丰查询轨迹需手机号码后4位
|
|
|
+ // 优先从仓库信息获取手机号后四位:先查商城订单,再查直播订单
|
|
|
+ if (ShipperCode.equals(ShipperCodeEnum.SF.getValue()) || ShipperCode.equals(ShipperCodeEnum.ZTO.getValue())) {
|
|
|
+ String storeHouseCode = null;
|
|
|
+ // 1. 查询商城订单
|
|
|
+ FsStoreOrder storeOrder = fsStoreOrderMapper.selectFsStoreOrderByOrderCode(OrderCode);
|
|
|
+ if (storeOrder != null && StringUtils.isNotBlank(storeOrder.getStoreHouseCode())) {
|
|
|
+ storeHouseCode = storeOrder.getStoreHouseCode();
|
|
|
+ } else {
|
|
|
+ // 2. 商城订单为空,查询直播订单
|
|
|
+ LiveOrder liveOrder = liveOrderMapper.selectLiveOrderByOrderCode(OrderCode);
|
|
|
+ if (liveOrder != null && StringUtils.isNotBlank(liveOrder.getStoreHouseCode())) {
|
|
|
+ storeHouseCode = liveOrder.getStoreHouseCode();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // 3. 根据仓库编码查询仓库信息,获取联系电话后四位
|
|
|
+ if (StringUtils.isNotBlank(storeHouseCode)) {
|
|
|
+ FsWarehouses warehouse = fsWarehousesMapper.selectByWarehouseCode(storeHouseCode);
|
|
|
+ if (warehouse != null && StringUtils.isNotBlank(warehouse.getContactPhone())) {
|
|
|
+ String phone = warehouse.getContactPhone();
|
|
|
+ if (phone.length() >= 4) {
|
|
|
+ lastFourNumber = phone.substring(phone.length() - 4);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
String requestData;
|
|
|
if (ShipperCode.equals(ShipperCodeEnum.SF.getValue()) || ShipperCode.equals(ShipperCodeEnum.ZTO.getValue())) {
|
|
|
requestData = "{'OrderCode':'" + OrderCode + "','ShipperCode':'" + ShipperCode + "','LogisticCode':'" + LogisticCode + "','CustomerName':'" + lastFourNumber + "'}";
|
|
|
@@ -207,7 +237,7 @@ public class FsExpressServiceImpl implements IFsExpressService
|
|
|
public void subscribeEspress(String orderCode, String deliverySn, String deliveryId, String userPhone) {
|
|
|
//处理顺丰查询轨迹需手机号码后4位
|
|
|
String requestData;
|
|
|
- if (ObjectUtils.equals(deliverySn,ShipperCodeEnum.SF.getValue())) {
|
|
|
+ if (ObjectUtils.equals(deliverySn,ShipperCodeEnum.SF.getValue()) || ObjectUtils.equals(deliverySn,ShipperCodeEnum.ZTO.getValue())) {
|
|
|
requestData = "{'OrderCode':'" + orderCode + "','ShipperCode':'" + deliverySn + "','LogisticCode':'" + deliveryId + "','CustomerName':'" + userPhone + "'}";
|
|
|
} else {
|
|
|
requestData = "{'OrderCode':'" + orderCode + "','ShipperCode':'" + deliverySn + "','LogisticCode':'" + deliveryId + "'}";
|
|
|
@@ -241,7 +271,7 @@ public class FsExpressServiceImpl implements IFsExpressService
|
|
|
public void subscribeEspress(String orderCode, String deliverySn, String deliveryId, String userPhone, Integer type) {
|
|
|
//处理顺丰查询轨迹需手机号码后4位
|
|
|
String requestData;
|
|
|
- if (ObjectUtils.equals(deliverySn,ShipperCodeEnum.SF.getValue())) {
|
|
|
+ if (ObjectUtils.equals(deliverySn,ShipperCodeEnum.SF.getValue()) || ObjectUtils.equals(deliverySn,ShipperCodeEnum.ZTO.getValue())) {
|
|
|
requestData = "{'OrderCode':'" + orderCode + "','ShipperCode':'" + deliverySn + "','LogisticCode':'" + deliveryId + "','CustomerName':'" + userPhone + "'}";
|
|
|
} else {
|
|
|
requestData = "{'OrderCode':'" + orderCode + "','ShipperCode':'" + deliverySn + "','LogisticCode':'" + deliveryId + "'}";
|
|
|
@@ -310,7 +340,7 @@ public class FsExpressServiceImpl implements IFsExpressService
|
|
|
if(order!=null){
|
|
|
|
|
|
String lastFourNumber = "";
|
|
|
- if (order.getDeliverySn().equals(ShipperCodeEnum.SF.getValue())) {
|
|
|
+ if (order.getDeliverySn().equals(ShipperCodeEnum.SF.getValue()) || order.getDeliverySn().equals(ShipperCodeEnum.ZTO.getValue())) {
|
|
|
lastFourNumber = order.getUserPhone();
|
|
|
if (lastFourNumber.length() == 11) {
|
|
|
lastFourNumber = StrUtil.sub(lastFourNumber, lastFourNumber.length(), -4);
|
|
|
@@ -319,7 +349,7 @@ public class FsExpressServiceImpl implements IFsExpressService
|
|
|
|
|
|
//处理顺丰查询轨迹需手机号码后4位
|
|
|
String requestData;
|
|
|
- if (order.getDeliverySn().equals(ShipperCodeEnum.SF.getValue())) {
|
|
|
+ if (order.getDeliverySn().equals(ShipperCodeEnum.SF.getValue()) || order.getDeliverySn().equals(ShipperCodeEnum.ZTO.getValue())) {
|
|
|
requestData = "{'OrderCode':'" + order.getOrderCode() + "','ShipperCode':'" + order.getDeliverySn() + "','LogisticCode':'" + param.getPackageno() + "','CustomerName':'" + lastFourNumber + "'}";
|
|
|
} else {
|
|
|
requestData = "{'OrderCode':'" + order.getOrderCode() + "','ShipperCode':'" + order.getDeliverySn() + "','LogisticCode':'" + param.getPackageno() + "'}";
|
|
|
@@ -367,7 +397,7 @@ public class FsExpressServiceImpl implements IFsExpressService
|
|
|
logger.info("查询到订单信息:{}", fsStoreOrder);
|
|
|
//顺丰轨迹查询处理
|
|
|
String lastFourNumber = "";
|
|
|
- if (StringUtils.equals(param.getDeliverSn(),ShipperCodeEnum.SF.getValue())) {
|
|
|
+ if (StringUtils.equals(param.getDeliverSn(),ShipperCodeEnum.SF.getValue()) || StringUtils.equals(param.getDeliverSn(),ShipperCodeEnum.ZTO.getValue())) {
|
|
|
lastFourNumber = PhoneUtils.getLastFourNum(fsStoreOrder.getUserPhone());
|
|
|
// 添加日志 - 顺丰单号
|
|
|
logger.info("顺丰单号处理,获取用户手机号后四位:{}", lastFourNumber);
|