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; ...@@ -9,10 +9,15 @@ import cn.freemud.demo.entities.bo.store.StoreInfoBO;
import cn.freemud.demo.manager.customer.CustomerManager; import cn.freemud.demo.manager.customer.CustomerManager;
import cn.freemud.demo.manager.store.StoreManager; import cn.freemud.demo.manager.store.StoreManager;
import cn.freemud.entities.dto.StoreDeliveryInfoDto; 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.entities.vo.ShoppingCartGoodsResponseVo;
import cn.freemud.enums.CreateOrderType; import cn.freemud.enums.CreateOrderType;
import cn.freemud.enums.ResponseResult;
import cn.freemud.enums.ScopeConfigType; import cn.freemud.enums.ScopeConfigType;
import cn.freemud.interceptor.ServiceException;
import cn.freemud.service.delivery.DeliveryFactory; import cn.freemud.service.delivery.DeliveryFactory;
import cn.freemud.service.thirdparty.DeliveryFeiginClient;
import cn.freemud.utils.WebUtil; import cn.freemud.utils.WebUtil;
import com.freemud.application.sdk.api.log.LogThreadLocal; import com.freemud.application.sdk.api.log.LogThreadLocal;
import com.freemud.application.sdk.api.storecenter.request.StoreInfoRequest; import com.freemud.application.sdk.api.storecenter.request.StoreInfoRequest;
...@@ -42,6 +47,8 @@ public class DeliveryServiceImpl { ...@@ -42,6 +47,8 @@ public class DeliveryServiceImpl {
@Autowired @Autowired
private DeliveryFactory deliveryFactory; private DeliveryFactory deliveryFactory;
@Autowired
private DeliveryFeiginClient deliveryFeiginClient;
// 配送费逻辑是否使用旧的 // 配送费逻辑是否使用旧的
@Value("${store.delivery.use.old:true}") @Value("${store.delivery.use.old:true}")
private boolean storeDeliveryUseOld; private boolean storeDeliveryUseOld;
...@@ -238,10 +245,15 @@ public class DeliveryServiceImpl { ...@@ -238,10 +245,15 @@ public class DeliveryServiceImpl {
* @return * @return
*/ */
public double getDistance(String shopLng, String shopLat, String addressLng, String addressLat) { public double getDistance(String shopLng, String shopLat, String addressLng, String addressLat) {
if (StringUtils.isBlank(shopLng) || StringUtils.isBlank(shopLat) || StringUtils.isBlank(addressLng) || StringUtils.isBlank(addressLat)) { // if (StringUtils.isBlank(shopLng) || StringUtils.isBlank(shopLat) || StringUtils.isBlank(addressLng) || StringUtils.isBlank(addressLat)) {
return 100000; // 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.*; ...@@ -11,6 +11,7 @@ import cn.freemud.enums.*;
import cn.freemud.interceptor.ServiceException; import cn.freemud.interceptor.ServiceException;
import cn.freemud.manager.*; import cn.freemud.manager.*;
//import cn.freemud.service.thirdparty.StoreClient; //import cn.freemud.service.thirdparty.StoreClient;
import cn.freemud.service.thirdparty.DeliveryFeiginClient;
import cn.freemud.utils.*; import cn.freemud.utils.*;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import com.google.gson.Gson; import com.google.gson.Gson;
...@@ -49,7 +50,8 @@ public class StoreServiceImpl { ...@@ -49,7 +50,8 @@ public class StoreServiceImpl {
private OpenPlatformIappWxappConfigDeliveryManager openPlatformIappWxappConfigDeliveryManager; private OpenPlatformIappWxappConfigDeliveryManager openPlatformIappWxappConfigDeliveryManager;
@Autowired @Autowired
private OpenPlatformIappWxappConfigManager openPlatformIappWxappConfigManager; private OpenPlatformIappWxappConfigManager openPlatformIappWxappConfigManager;
@Autowired
private DeliveryFeiginClient deliveryFeiginClient;
/** /**
* 确定门店是否打烊 * 确定门店是否打烊
*/ */
...@@ -417,10 +419,12 @@ public class StoreServiceImpl { ...@@ -417,10 +419,12 @@ public class StoreServiceImpl {
* @return * @return
*/ */
public double getDistance(String shopLng, String shopLat, String addressLng, String addressLat) { 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 WebUtil.calDistance(Double.valueOf(shopLng), Double.valueOf(shopLat), Double.valueOf(addressLng), Double.valueOf(addressLat));
return 100000; 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; package cn.freemud.service.thirdparty;
import cn.freemud.base.entity.BaseResponse; 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.QueryDeliveryTemplateRequestVo;
import cn.freemud.entities.vo.QueryDeliveryTemplateResponseVo; import cn.freemud.entities.vo.QueryDeliveryTemplateResponseVo;
import org.springframework.cloud.openfeign.FeignClient; import org.springframework.cloud.openfeign.FeignClient;
...@@ -13,4 +15,6 @@ public interface DeliveryFeiginClient { ...@@ -13,4 +15,6 @@ public interface DeliveryFeiginClient {
@PostMapping("/delivery/queryDeliveryTemplate") @PostMapping("/delivery/queryDeliveryTemplate")
QueryDeliveryTemplateResponseVo queryDeliveryTemplate(@RequestBody QueryDeliveryTemplateRequestVo queryDeliveryTemplateRequestVo); 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