顺丰轨迹查询处理
This commit is contained in:
@ -93,4 +93,3 @@ file:
|
||||
maxSize: 100
|
||||
avatarMaxSize: 5
|
||||
|
||||
|
||||
|
@ -13,6 +13,7 @@ import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import co.yixiang.api.ApiResult;
|
||||
import co.yixiang.api.YshopException;
|
||||
import co.yixiang.enums.ShipperCodeEnum;
|
||||
import co.yixiang.logging.aop.log.AppLog;
|
||||
import co.yixiang.common.aop.NoRepeatSubmit;
|
||||
import co.yixiang.common.bean.LocalUser;
|
||||
@ -33,6 +34,7 @@ import co.yixiang.modules.order.param.ProductOrderParam;
|
||||
import co.yixiang.modules.order.param.ProductReplyParam;
|
||||
import co.yixiang.modules.order.param.RefundParam;
|
||||
import co.yixiang.modules.order.service.YxStoreOrderService;
|
||||
import co.yixiang.modules.order.service.dto.YxStoreOrderDto;
|
||||
import co.yixiang.modules.order.vo.ComputeVo;
|
||||
import co.yixiang.modules.order.vo.ConfirmOrderVo;
|
||||
import co.yixiang.modules.order.vo.OrderCartInfoVo;
|
||||
@ -384,9 +386,21 @@ public class StoreOrderController {
|
||||
@PostMapping("/order/express")
|
||||
@ApiOperation(value = "获取物流信息",notes = "获取物流信息")
|
||||
public ApiResult<ExpressInfo> express( @RequestBody ExpressParam expressInfoDo){
|
||||
|
||||
//顺丰轨迹查询处理
|
||||
String lastFourNumber = "";
|
||||
if (expressInfoDo.getShipperCode().equals(ShipperCodeEnum.SF.getValue())) {
|
||||
YxStoreOrderDto yxStoreOrderDto;
|
||||
yxStoreOrderDto = storeOrderService.getOrderDetail(Long.valueOf(expressInfoDo.getOrderCode()));
|
||||
lastFourNumber = yxStoreOrderDto.getUserPhone();
|
||||
if (lastFourNumber.length()==11) {
|
||||
lastFourNumber = StrUtil.sub(lastFourNumber,lastFourNumber.length(),-4);
|
||||
}
|
||||
}
|
||||
|
||||
ExpressService expressService = ExpressAutoConfiguration.expressService();
|
||||
ExpressInfo expressInfo = expressService.getExpressInfo(expressInfoDo.getOrderCode(),
|
||||
expressInfoDo.getShipperCode(), expressInfoDo.getLogisticCode());
|
||||
expressInfoDo.getShipperCode(), expressInfoDo.getLogisticCode(),lastFourNumber);
|
||||
if(!expressInfo.isSuccess()) {
|
||||
throw new YshopException(expressInfo.getReason());
|
||||
}
|
||||
|
@ -0,0 +1,18 @@
|
||||
package co.yixiang.enums;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
|
||||
/**
|
||||
* @author hupeng
|
||||
* 快递公司编码相关枚举
|
||||
*/
|
||||
@Getter
|
||||
@AllArgsConstructor
|
||||
public enum ShipperCodeEnum {
|
||||
|
||||
SF("SF","顺丰速运");
|
||||
|
||||
private String value;
|
||||
private String desc;
|
||||
}
|
@ -232,8 +232,9 @@ public class YxStoreProductServiceImpl extends BaseServiceImpl<StoreProductMappe
|
||||
@Override
|
||||
public List<YxStoreProductQueryVo> getGoodsList(YxStoreProductQueryParam productQueryParam) {
|
||||
|
||||
LambdaQueryWrapper<YxStoreProduct> wrapper = new LambdaQueryWrapper<>();
|
||||
LambdaQueryWrapper<YxStoreProduct> wrapper = new LambdaQueryWrapper<>();
|
||||
wrapper.eq(YxStoreProduct::getIsShow, CommonEnum.SHOW_STATUS_1.getValue());
|
||||
wrapper.eq(YxStoreProduct::getIsDel, CommonEnum.DEL_STATUS_0.getValue());
|
||||
|
||||
//多字段模糊查询分类搜索
|
||||
if (StrUtil.isNotBlank(productQueryParam.getSid()) &&
|
||||
|
@ -16,6 +16,7 @@ import co.yixiang.annotation.AnonymousAccess;
|
||||
import co.yixiang.dozer.service.IGenerator;
|
||||
import co.yixiang.enums.OrderInfoEnum;
|
||||
import co.yixiang.enums.OrderLogEnum;
|
||||
import co.yixiang.enums.ShipperCodeEnum;
|
||||
import co.yixiang.enums.ShopCommonEnum;
|
||||
import co.yixiang.exception.BadRequestException;
|
||||
import co.yixiang.logging.aop.log.Log;
|
||||
@ -317,9 +318,21 @@ public class StoreOrderController {
|
||||
@PostMapping("/yxStoreOrder/express")
|
||||
@ApiOperation(value = "获取物流信息",notes = "获取物流信息",response = ExpressParam.class)
|
||||
public ResponseEntity express( @RequestBody ExpressParam expressInfoDo){
|
||||
|
||||
//顺丰轨迹查询处理
|
||||
String lastFourNumber = "";
|
||||
if (expressInfoDo.getShipperCode().equals(ShipperCodeEnum.SF.getValue())) {
|
||||
YxStoreOrderDto yxStoreOrderDto;
|
||||
yxStoreOrderDto = yxStoreOrderService.getOrderDetail(Long.valueOf(expressInfoDo.getOrderCode()));
|
||||
lastFourNumber = yxStoreOrderDto.getUserPhone();
|
||||
if (lastFourNumber.length()==11) {
|
||||
lastFourNumber = StrUtil.sub(lastFourNumber,lastFourNumber.length(),-4);
|
||||
}
|
||||
}
|
||||
|
||||
ExpressService expressService = ExpressAutoConfiguration.expressService();
|
||||
ExpressInfo expressInfo = expressService.getExpressInfo(expressInfoDo.getOrderCode(),
|
||||
expressInfoDo.getShipperCode(), expressInfoDo.getLogisticCode());
|
||||
expressInfoDo.getShipperCode(), expressInfoDo.getLogisticCode(),lastFourNumber);
|
||||
if(!expressInfo.isSuccess()) {
|
||||
throw new BadRequestException(expressInfo.getReason());
|
||||
}
|
||||
|
@ -6,6 +6,7 @@
|
||||
package co.yixiang.tools.express;
|
||||
|
||||
import cn.hutool.http.HttpUtil;
|
||||
import co.yixiang.enums.ShipperCodeEnum;
|
||||
import co.yixiang.tools.express.config.ExpressProperties;
|
||||
import co.yixiang.tools.express.dao.ExpressInfo;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
@ -62,9 +63,9 @@ public class ExpressService implements Serializable {
|
||||
* @param ShipperCode
|
||||
* @return
|
||||
*/
|
||||
public ExpressInfo getExpressInfo(String OrderCode,String ShipperCode, String LogisticCode) {
|
||||
public ExpressInfo getExpressInfo(String OrderCode,String ShipperCode, String LogisticCode,String lastFourNumber) {
|
||||
try {
|
||||
String result = getOrderTracesByJson(OrderCode,ShipperCode, LogisticCode);
|
||||
String result = getOrderTracesByJson(OrderCode,ShipperCode, LogisticCode,lastFourNumber);
|
||||
ObjectMapper objMap = new ObjectMapper();
|
||||
ExpressInfo ei = objMap.readValue(result, ExpressInfo.class);
|
||||
ei.setShipperName(getVendorName(ShipperCode));
|
||||
@ -81,12 +82,18 @@ public class ExpressService implements Serializable {
|
||||
*
|
||||
* @throws Exception
|
||||
*/
|
||||
private String getOrderTracesByJson(String OrderCode,String ShipperCode, String LogisticCode) throws Exception {
|
||||
private String getOrderTracesByJson(String OrderCode,String ShipperCode, String LogisticCode,String lastFourNumber) throws Exception {
|
||||
if (!properties.isEnable()) {
|
||||
return null;
|
||||
}
|
||||
|
||||
String requestData = "{'OrderCode':'"+OrderCode+"','ShipperCode':'" + ShipperCode + "','LogisticCode':'" + LogisticCode + "'}";
|
||||
//处理顺丰查询轨迹需手机号码后4位
|
||||
String requestData;
|
||||
if (ShipperCode.equals(ShipperCodeEnum.SF.getValue())) {
|
||||
requestData = "{'OrderCode':'" + OrderCode + "','ShipperCode':'" + ShipperCode + "','LogisticCode':'" + LogisticCode + "','CustomerName':'" + lastFourNumber + "'}";
|
||||
} else {
|
||||
requestData = "{'OrderCode':'" + OrderCode + "','ShipperCode':'" + ShipperCode + "','LogisticCode':'" + LogisticCode + "'}";
|
||||
}
|
||||
|
||||
Map<String, Object> params = new HashMap<>();
|
||||
params.put("RequestData", URLEncoder.encode(requestData, "UTF-8"));
|
||||
|
Reference in New Issue
Block a user