Commit cb408565 by 张跃

Merge branch 'feature/20210602-配送距离-zy' into develop

parents 1098dbad 84bb9e77
......@@ -9,10 +9,15 @@ import cn.freemud.demo.entities.bo.store.StoreInfoBO;
import cn.freemud.demo.manager.customer.CustomerManager;
import cn.freemud.demo.manager.store.StoreManager;
import cn.freemud.entities.dto.StoreDeliveryInfoDto;
import cn.freemud.entities.vo.QueryDeliveryDistanceRequest;
import cn.freemud.entities.vo.QueryDeliveryDistanceResponseVo;
import cn.freemud.entities.vo.ShoppingCartGoodsResponseVo;
import cn.freemud.enums.CreateOrderType;
import cn.freemud.enums.ResponseResult;
import cn.freemud.enums.ScopeConfigType;
import cn.freemud.interceptor.ServiceException;
import cn.freemud.service.delivery.DeliveryFactory;
import cn.freemud.service.thirdparty.DeliveryFeiginClient;
import cn.freemud.utils.WebUtil;
import com.freemud.application.sdk.api.log.LogThreadLocal;
import com.freemud.application.sdk.api.storecenter.request.StoreInfoRequest;
......@@ -42,6 +47,8 @@ public class DeliveryServiceImpl {
@Autowired
private DeliveryFactory deliveryFactory;
@Autowired
private DeliveryFeiginClient deliveryFeiginClient;
// 配送费逻辑是否使用旧的
@Value("${store.delivery.use.old:true}")
private boolean storeDeliveryUseOld;
......@@ -238,10 +245,15 @@ public class DeliveryServiceImpl {
* @return
*/
public double getDistance(String shopLng, String shopLat, String addressLng, String addressLat) {
if (StringUtils.isBlank(shopLng) || StringUtils.isBlank(shopLat) || StringUtils.isBlank(addressLng) || StringUtils.isBlank(addressLat)) {
return 100000;
// if (StringUtils.isBlank(shopLng) || StringUtils.isBlank(shopLat) || StringUtils.isBlank(addressLng) || StringUtils.isBlank(addressLat)) {
// return 100000;
// }
// return WebUtil.calDistance(Double.valueOf(shopLng), Double.valueOf(shopLat), Double.valueOf(addressLng), Double.valueOf(addressLat));
QueryDeliveryDistanceResponseVo responseVo = deliveryFeiginClient.queryDeliveryDistance(new QueryDeliveryDistanceRequest(Double.parseDouble(shopLat), Double.parseDouble(shopLng), Double.parseDouble(addressLat), Double.parseDouble(addressLng)));
if (responseVo == null || responseVo.getCode() != 100 || responseVo.getData().getDistance() == null) {
throw new ServiceException(ResponseResult.STORE_DELIVERY_AMOUNT_ERROR);
}
return WebUtil.calDistance(Double.valueOf(shopLng), Double.valueOf(shopLat), Double.valueOf(addressLng), Double.valueOf(addressLat));
return responseVo.getData().getDistance();
}
}
package cn.freemud.entities.vo;
import lombok.Data;
/**
* @ClassName: QueryDeliveryDistanceRequest
* @Description:
* @Author: freemud
* @Date: 2021/6/3 下午8:44
*/
@Data
public class QueryDeliveryDistanceRequest {
/**
* 目的地纬度
*/
private double desLatitude;
/**
* 目的地经度
*/
private double desLongitude;
/**
* 出发点纬度
*/
private double oriLatitude;
/**
* 出发点经度
*/
private double oriLongitude;
public QueryDeliveryDistanceRequest(double desLatitude, double desLongitude, double oriLatitude, double oriLongitude) {
this.desLatitude = desLatitude;
this.desLongitude = desLongitude;
this.oriLatitude = oriLatitude;
this.oriLongitude = oriLongitude;
}
}
package cn.freemud.entities.vo;
import lombok.Data;
/**
* @ClassName: QueryDeliveryDistanceResponseVo
* @Description:
* @Author: freemud
* @Date: 2021/6/3 下午8:36
*/
@Data
public class QueryDeliveryDistanceResponseVo {
private Integer code;
private RoutePlanner data;
private String msg;
@Data
public static class RoutePlanner {
/**
* 起终点的骑行距离,单位:米
*/
private Integer distance;
/**
* 起终点的骑行时间,单位:秒
*/
private Integer duration;
}
}
......@@ -11,6 +11,7 @@ import cn.freemud.enums.*;
import cn.freemud.interceptor.ServiceException;
import cn.freemud.manager.*;
//import cn.freemud.service.thirdparty.StoreClient;
import cn.freemud.service.thirdparty.DeliveryFeiginClient;
import cn.freemud.utils.*;
import com.google.common.collect.Lists;
import com.google.gson.Gson;
......@@ -49,7 +50,8 @@ public class StoreServiceImpl {
private OpenPlatformIappWxappConfigDeliveryManager openPlatformIappWxappConfigDeliveryManager;
@Autowired
private OpenPlatformIappWxappConfigManager openPlatformIappWxappConfigManager;
@Autowired
private DeliveryFeiginClient deliveryFeiginClient;
/**
* 确定门店是否打烊
*/
......@@ -417,10 +419,12 @@ public class StoreServiceImpl {
* @return
*/
public double getDistance(String shopLng, String shopLat, String addressLng, String addressLat) {
if (StringUtils.isBlank(shopLng) || StringUtils.isBlank(shopLat) || StringUtils.isBlank(addressLng) || StringUtils.isBlank(addressLat)) {
return 100000;
// return WebUtil.calDistance(Double.valueOf(shopLng), Double.valueOf(shopLat), Double.valueOf(addressLng), Double.valueOf(addressLat));
QueryDeliveryDistanceResponseVo responseVo = deliveryFeiginClient.queryDeliveryDistance(new QueryDeliveryDistanceRequest(Double.parseDouble(shopLat), Double.parseDouble(shopLng), Double.parseDouble(addressLat), Double.parseDouble(addressLng)));
if (responseVo == null || responseVo.getCode() != 100 || responseVo.getData().getDistance() == null) {
throw new ServiceException(ResponseResult.STORE_DELIVERY_AMOUNT_ERROR);
}
return WebUtil.calDistance(Double.valueOf(shopLng), Double.valueOf(shopLat), Double.valueOf(addressLng), Double.valueOf(addressLat));
return responseVo.getData().getDistance();
}
}
package cn.freemud.service.thirdparty;
import cn.freemud.base.entity.BaseResponse;
import cn.freemud.entities.vo.QueryDeliveryDistanceRequest;
import cn.freemud.entities.vo.QueryDeliveryDistanceResponseVo;
import cn.freemud.entities.vo.QueryDeliveryTemplateRequestVo;
import cn.freemud.entities.vo.QueryDeliveryTemplateResponseVo;
import org.springframework.cloud.openfeign.FeignClient;
......@@ -13,4 +15,6 @@ public interface DeliveryFeiginClient {
@PostMapping("/delivery/queryDeliveryTemplate")
QueryDeliveryTemplateResponseVo queryDeliveryTemplate(@RequestBody QueryDeliveryTemplateRequestVo queryDeliveryTemplateRequestVo);
@PostMapping("/tools/routePlanner")
QueryDeliveryDistanceResponseVo queryDeliveryDistance(@RequestBody QueryDeliveryDistanceRequest queryDeliveryTemplateRequestVo);
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment