|
@@ -48,6 +48,8 @@ public class PublishTaskInfoServiceImpl extends ServiceImpl<PublishTaskInfoMappe
|
|
private INewsInfoService newsInfoService;
|
|
private INewsInfoService newsInfoService;
|
|
@Autowired
|
|
@Autowired
|
|
private IRepaymentInfoService repaymentInfoService;
|
|
private IRepaymentInfoService repaymentInfoService;
|
|
|
|
+ @Autowired
|
|
|
|
+ private IProvinceCityInfoService provinceCityInfoService;
|
|
|
|
|
|
/**
|
|
/**
|
|
* 地球半径,单位 km
|
|
* 地球半径,单位 km
|
|
@@ -164,6 +166,7 @@ public class PublishTaskInfoServiceImpl extends ServiceImpl<PublishTaskInfoMappe
|
|
String str = EntCoordUtil.getCoordinate(publishTaskInfo.getLoadingPlaceCity());
|
|
String str = EntCoordUtil.getCoordinate(publishTaskInfo.getLoadingPlaceCity());
|
|
String str1 = str.substring(0, str.indexOf(","));//经度
|
|
String str1 = str.substring(0, str.indexOf(","));//经度
|
|
String str2 = str.substring(str1.length()+1, str.length());//纬度
|
|
String str2 = str.substring(str1.length()+1, str.length());//纬度
|
|
|
|
+
|
|
//装货地经纬度
|
|
//装货地经纬度
|
|
double lng1 = Math.toRadians(Double.valueOf(str1));
|
|
double lng1 = Math.toRadians(Double.valueOf(str1));
|
|
double lat1 = Math.toRadians(Double.valueOf(str2));
|
|
double lat1 = Math.toRadians(Double.valueOf(str2));
|
|
@@ -182,12 +185,44 @@ public class PublishTaskInfoServiceImpl extends ServiceImpl<PublishTaskInfoMappe
|
|
publishTaskInfoList.add(publishTaskInfo1);
|
|
publishTaskInfoList.add(publishTaskInfo1);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- //按货距排序,倒序
|
|
|
|
- publishTaskInfoList.sort(Comparator.comparing(PublishTaskInfo::getCargoDistance));
|
|
|
|
- //新增周边信息列表
|
|
|
|
- goodsSourceView.setPublishTaskInfoLists(publishTaskInfoList);
|
|
|
|
- }
|
|
|
|
|
|
+ }else {
|
|
|
|
+ //查询发货地经纬度
|
|
|
|
+ for(int i = 0; i < dataList1.size(); i++){
|
|
|
|
+ PublishTaskInfo publishTaskInfo1 = dataList1.get(i);
|
|
|
|
+ //发货地经纬度
|
|
|
|
+ double lng2 = Math.toRadians(Double.valueOf(publishTaskInfo1.getSendLongitude()));
|
|
|
|
+ double lat2 = Math.toRadians(Double.valueOf(publishTaskInfo1.getSendLatitude()));
|
|
|
|
+ //根据省名查询省会城市
|
|
|
|
+ ProvinceCityInfo provinceCityInfo = provinceCityInfoService.selectOne(new EntityWrapper<ProvinceCityInfo>()
|
|
|
|
+ .like("province",publishTaskInfo.getLoadingPlace()));
|
|
|
|
+ //根据省会城市获取经纬度
|
|
|
|
+ String str = EntCoordUtil.getCoordinate(provinceCityInfo.getCity());
|
|
|
|
+ String str1 = str.substring(0, str.indexOf(","));//经度
|
|
|
|
+ String str2 = str.substring(str1.length()+1, str.length());//纬度
|
|
|
|
|
|
|
|
+ //装货地经纬度
|
|
|
|
+ double lng1 = Math.toRadians(Double.valueOf(str1));
|
|
|
|
+ double lat1 = Math.toRadians(Double.valueOf(str2));
|
|
|
|
+ // 纬度之差
|
|
|
|
+ double a = lat1 - lat2;
|
|
|
|
+ // 经度之差
|
|
|
|
+ double b = lng1 - lng2;
|
|
|
|
+ // 计算两点距离的公式
|
|
|
|
+ double s = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a / 2), 2) +
|
|
|
|
+ Math.cos(lat1) * Math.cos(lat2) * Math.pow(Math.sin(b / 2), 2)));
|
|
|
|
+ // 弧长乘地球半径, 返回单位: 千米
|
|
|
|
+ s = s * EARTH_RADIUS;
|
|
|
|
+ if (s <= 300){
|
|
|
|
+ //货距小于300公里,放入周边信息列表
|
|
|
|
+ publishTaskInfo1.setCargoDistance(Math.floor(s));
|
|
|
|
+ publishTaskInfoList.add(publishTaskInfo1);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ //按货距排序,倒序
|
|
|
|
+ publishTaskInfoList.sort(Comparator.comparing(PublishTaskInfo::getCargoDistance));
|
|
|
|
+ //新增周边信息列表
|
|
|
|
+ goodsSourceView.setPublishTaskInfoLists(publishTaskInfoList);
|
|
}
|
|
}
|
|
//将货源对象放入货源列表
|
|
//将货源对象放入货源列表
|
|
goodsSourceViews.add(goodsSourceView);
|
|
goodsSourceViews.add(goodsSourceView);
|