顺丰轨迹查询处理
This commit is contained in:
@ -93,4 +93,3 @@ file:
|
|||||||
maxSize: 100
|
maxSize: 100
|
||||||
avatarMaxSize: 5
|
avatarMaxSize: 5
|
||||||
|
|
||||||
|
|
||||||
|
@ -13,6 +13,7 @@ import cn.hutool.core.util.ObjectUtil;
|
|||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import co.yixiang.api.ApiResult;
|
import co.yixiang.api.ApiResult;
|
||||||
import co.yixiang.api.YshopException;
|
import co.yixiang.api.YshopException;
|
||||||
|
import co.yixiang.enums.ShipperCodeEnum;
|
||||||
import co.yixiang.logging.aop.log.AppLog;
|
import co.yixiang.logging.aop.log.AppLog;
|
||||||
import co.yixiang.common.aop.NoRepeatSubmit;
|
import co.yixiang.common.aop.NoRepeatSubmit;
|
||||||
import co.yixiang.common.bean.LocalUser;
|
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.ProductReplyParam;
|
||||||
import co.yixiang.modules.order.param.RefundParam;
|
import co.yixiang.modules.order.param.RefundParam;
|
||||||
import co.yixiang.modules.order.service.YxStoreOrderService;
|
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.ComputeVo;
|
||||||
import co.yixiang.modules.order.vo.ConfirmOrderVo;
|
import co.yixiang.modules.order.vo.ConfirmOrderVo;
|
||||||
import co.yixiang.modules.order.vo.OrderCartInfoVo;
|
import co.yixiang.modules.order.vo.OrderCartInfoVo;
|
||||||
@ -384,9 +386,21 @@ public class StoreOrderController {
|
|||||||
@PostMapping("/order/express")
|
@PostMapping("/order/express")
|
||||||
@ApiOperation(value = "获取物流信息",notes = "获取物流信息")
|
@ApiOperation(value = "获取物流信息",notes = "获取物流信息")
|
||||||
public ApiResult<ExpressInfo> express( @RequestBody ExpressParam expressInfoDo){
|
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();
|
ExpressService expressService = ExpressAutoConfiguration.expressService();
|
||||||
ExpressInfo expressInfo = expressService.getExpressInfo(expressInfoDo.getOrderCode(),
|
ExpressInfo expressInfo = expressService.getExpressInfo(expressInfoDo.getOrderCode(),
|
||||||
expressInfoDo.getShipperCode(), expressInfoDo.getLogisticCode());
|
expressInfoDo.getShipperCode(), expressInfoDo.getLogisticCode(),lastFourNumber);
|
||||||
if(!expressInfo.isSuccess()) {
|
if(!expressInfo.isSuccess()) {
|
||||||
throw new YshopException(expressInfo.getReason());
|
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;
|
||||||
|
}
|
@ -234,6 +234,7 @@ public class YxStoreProductServiceImpl extends BaseServiceImpl<StoreProductMappe
|
|||||||
|
|
||||||
LambdaQueryWrapper<YxStoreProduct> wrapper = new LambdaQueryWrapper<>();
|
LambdaQueryWrapper<YxStoreProduct> wrapper = new LambdaQueryWrapper<>();
|
||||||
wrapper.eq(YxStoreProduct::getIsShow, CommonEnum.SHOW_STATUS_1.getValue());
|
wrapper.eq(YxStoreProduct::getIsShow, CommonEnum.SHOW_STATUS_1.getValue());
|
||||||
|
wrapper.eq(YxStoreProduct::getIsDel, CommonEnum.DEL_STATUS_0.getValue());
|
||||||
|
|
||||||
//多字段模糊查询分类搜索
|
//多字段模糊查询分类搜索
|
||||||
if (StrUtil.isNotBlank(productQueryParam.getSid()) &&
|
if (StrUtil.isNotBlank(productQueryParam.getSid()) &&
|
||||||
|
@ -16,6 +16,7 @@ import co.yixiang.annotation.AnonymousAccess;
|
|||||||
import co.yixiang.dozer.service.IGenerator;
|
import co.yixiang.dozer.service.IGenerator;
|
||||||
import co.yixiang.enums.OrderInfoEnum;
|
import co.yixiang.enums.OrderInfoEnum;
|
||||||
import co.yixiang.enums.OrderLogEnum;
|
import co.yixiang.enums.OrderLogEnum;
|
||||||
|
import co.yixiang.enums.ShipperCodeEnum;
|
||||||
import co.yixiang.enums.ShopCommonEnum;
|
import co.yixiang.enums.ShopCommonEnum;
|
||||||
import co.yixiang.exception.BadRequestException;
|
import co.yixiang.exception.BadRequestException;
|
||||||
import co.yixiang.logging.aop.log.Log;
|
import co.yixiang.logging.aop.log.Log;
|
||||||
@ -317,9 +318,21 @@ public class StoreOrderController {
|
|||||||
@PostMapping("/yxStoreOrder/express")
|
@PostMapping("/yxStoreOrder/express")
|
||||||
@ApiOperation(value = "获取物流信息",notes = "获取物流信息",response = ExpressParam.class)
|
@ApiOperation(value = "获取物流信息",notes = "获取物流信息",response = ExpressParam.class)
|
||||||
public ResponseEntity express( @RequestBody ExpressParam expressInfoDo){
|
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();
|
ExpressService expressService = ExpressAutoConfiguration.expressService();
|
||||||
ExpressInfo expressInfo = expressService.getExpressInfo(expressInfoDo.getOrderCode(),
|
ExpressInfo expressInfo = expressService.getExpressInfo(expressInfoDo.getOrderCode(),
|
||||||
expressInfoDo.getShipperCode(), expressInfoDo.getLogisticCode());
|
expressInfoDo.getShipperCode(), expressInfoDo.getLogisticCode(),lastFourNumber);
|
||||||
if(!expressInfo.isSuccess()) {
|
if(!expressInfo.isSuccess()) {
|
||||||
throw new BadRequestException(expressInfo.getReason());
|
throw new BadRequestException(expressInfo.getReason());
|
||||||
}
|
}
|
||||||
|
@ -6,6 +6,7 @@
|
|||||||
package co.yixiang.tools.express;
|
package co.yixiang.tools.express;
|
||||||
|
|
||||||
import cn.hutool.http.HttpUtil;
|
import cn.hutool.http.HttpUtil;
|
||||||
|
import co.yixiang.enums.ShipperCodeEnum;
|
||||||
import co.yixiang.tools.express.config.ExpressProperties;
|
import co.yixiang.tools.express.config.ExpressProperties;
|
||||||
import co.yixiang.tools.express.dao.ExpressInfo;
|
import co.yixiang.tools.express.dao.ExpressInfo;
|
||||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
@ -62,9 +63,9 @@ public class ExpressService implements Serializable {
|
|||||||
* @param ShipperCode
|
* @param ShipperCode
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
public ExpressInfo getExpressInfo(String OrderCode,String ShipperCode, String LogisticCode) {
|
public ExpressInfo getExpressInfo(String OrderCode,String ShipperCode, String LogisticCode,String lastFourNumber) {
|
||||||
try {
|
try {
|
||||||
String result = getOrderTracesByJson(OrderCode,ShipperCode, LogisticCode);
|
String result = getOrderTracesByJson(OrderCode,ShipperCode, LogisticCode,lastFourNumber);
|
||||||
ObjectMapper objMap = new ObjectMapper();
|
ObjectMapper objMap = new ObjectMapper();
|
||||||
ExpressInfo ei = objMap.readValue(result, ExpressInfo.class);
|
ExpressInfo ei = objMap.readValue(result, ExpressInfo.class);
|
||||||
ei.setShipperName(getVendorName(ShipperCode));
|
ei.setShipperName(getVendorName(ShipperCode));
|
||||||
@ -81,12 +82,18 @@ public class ExpressService implements Serializable {
|
|||||||
*
|
*
|
||||||
* @throws Exception
|
* @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()) {
|
if (!properties.isEnable()) {
|
||||||
return null;
|
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<>();
|
Map<String, Object> params = new HashMap<>();
|
||||||
params.put("RequestData", URLEncoder.encode(requestData, "UTF-8"));
|
params.put("RequestData", URLEncoder.encode(requestData, "UTF-8"));
|
||||||
|
Reference in New Issue
Block a user