From af6d43a41205f8c7fc1a965cb019c039063bf4f0 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期三, 13 十二月 2023 01:15:07 +0800
Subject: [PATCH] 更新接口
---
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ServerCarModelServiceImpl.java | 101 +++++++++++++++++++++++++++++++-------------------
1 files changed, 63 insertions(+), 38 deletions(-)
diff --git a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ServerCarModelServiceImpl.java b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ServerCarModelServiceImpl.java
index 4c11ec2..567d209 100644
--- a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ServerCarModelServiceImpl.java
+++ b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ServerCarModelServiceImpl.java
@@ -9,8 +9,13 @@
import com.stylefeng.guns.modular.system.model.ServerCarModel;
import com.stylefeng.guns.modular.system.service.ICompanyCityService;
import com.stylefeng.guns.modular.system.service.IServerCarModelService;
+import com.stylefeng.guns.modular.system.service.IUserInfoService;
import com.stylefeng.guns.modular.system.util.GDMapElectricFenceUtil;
import com.stylefeng.guns.modular.system.util.GDMapGeocodingUtil;
+import com.stylefeng.guns.modular.system.util.GoogleMap.AddressComponentsVo;
+import com.stylefeng.guns.modular.system.util.GoogleMap.DistancematrixVo;
+import com.stylefeng.guns.modular.system.util.GoogleMap.GoogleMapUtil;
+import com.stylefeng.guns.modular.system.util.GoogleMap.ReverseGeocodeVo;
import com.stylefeng.guns.modular.system.util.ResultUtil;
import com.stylefeng.guns.modular.system.warpper.ServerCarModelWarpper;
import org.springframework.beans.factory.annotation.Autowired;
@@ -39,6 +44,9 @@
@Autowired
private ICompanyCityService companyCityService;
+ @Autowired
+ private IUserInfoService userInfoService;
+
@@ -53,25 +61,42 @@
* @throws Exception
*/
@Override
- public ResultUtil<List<ServerCarModelWarpper>> queryServerCarModel(String startLonLat, String endLonLat, Integer type) throws Exception {
+ public ResultUtil<List<ServerCarModelWarpper>> queryServerCarModel(String startLonLat, String endLonLat, Integer type, Integer language) throws Exception {
//查找与起点匹配的企业(经营范围)
- Map<String, String> geocode = gdMapGeocodingUtil.geocode(startLonLat.split(",")[0], startLonLat.split(",")[1]);
- Company query = companyCityService.query(geocode.get("districtCode"));
+ ReverseGeocodeVo reverseGeocode = GoogleMapUtil.getReverseGeocode(Double.valueOf(startLonLat.split(",")[1]), Double.valueOf(startLonLat.split(",")[0]));
+ if(null == language){
+ language = 2;
+ }
+ if(null == reverseGeocode){
+ return ResultUtil.error(language == 1 ? "获取地址信息失败" : language == 2 ? "Failed to obtain address" : "Impossible d’obtenir l’adresse");
+ }
+ AddressComponentsVo[] addressComponentsVos = reverseGeocode.getAddressComponentsVos();
+ String[] city = new String[addressComponentsVos.length];
+ for (int i = 0; i < addressComponentsVos.length; i++) {
+ city[i] = addressComponentsVos[i].getLongName();
+ }
+ Company query = companyCityService.query(city);
if(null == query){
- return ResultUtil.error("起点暂无企业提供服务", new ArrayList<>());
+ return ResultUtil.error(language == 1 ? "起点暂无企业提供服务" : language == 2 ? "No service yet at the starting point" : "Pas encore de service au point de départ", new ArrayList<>());
}
- Map<String, String> distance = gdMapElectricFenceUtil.getDistance(startLonLat, endLonLat, 1);
- if(null == distance){
- return ResultUtil.error("获取预估距离出错", new ArrayList<>());
+ Double slnt = Double.valueOf(startLonLat.split(",")[0]);
+ Double slat = Double.valueOf(startLonLat.split(",")[1]);
+ Double elnt = Double.valueOf(endLonLat.split(",")[0]);
+ Double elat = Double.valueOf(endLonLat.split(",")[1]);
+ DistancematrixVo distancematrix = GoogleMapUtil.getDistancematrix(slat, slnt, elat, elnt);
+ if(null == distancematrix){
+ return ResultUtil.error(language == 1 ? "获取预估距离出错" : language == 2 ? "Obtaining-estimated-distance error" : "Erreur d’obtention de la distance estimée", new ArrayList<>());
+ }else if(distancematrix.getDistance() == 0){
+ return ResultUtil.error(language == 1 ? "未获取到有效的距离" : language == 2 ? "Not obtaining available distance" : "Ne pas obtenir la distance disponible", new ArrayList<>());
}
- String distance1 = distance.get("distance");//距离(米)
+ long distance1 = distancematrix.getDistance();//距离(米)
double distance1_ = Double.valueOf(distance1).doubleValue();
- String duration = distance.get("duration");//时间(秒)
+ long duration = distancematrix.getDuration();//时间(秒)
long duration_ = Long.valueOf(duration).longValue();
List<ServerCarModelWarpper> price = this.getPrice(query.getId(), distance1_, duration_, 0, 1);
if(price.size() == 0){
- return ResultUtil.error("未获取到可服务的车型", new ArrayList<>());
+ return ResultUtil.error(language == 1 ? "未获取到可服务的车型" : language == 2 ? "Not obtaining available vehicle-type" : "Ne pas obtenir le type de véhicule disponible", new ArrayList<>());
}
return ResultUtil.success(price);
}
@@ -153,34 +178,34 @@
//夜间服务处理逻辑
- Calendar s = Calendar.getInstance();
- s.setTime(date);
- s.set(Calendar.HOUR_OF_DAY, Integer.valueOf(num16.split(" - ")[0].split(":")[0]));
- s.set(Calendar.MINUTE, Integer.valueOf(num16.split(" - ")[0].split(":")[1]));
-
- Calendar e = Calendar.getInstance();
- e.setTime(date);
- e.set(Calendar.HOUR_OF_DAY, Integer.valueOf(num16.split(" - ")[1].split(":")[0]));
- e.set(Calendar.MINUTE, Integer.valueOf(num16.split(" - ")[1].split(":")[1]));
-
- if(date.getTime() > s.getTimeInMillis() && date.getTime() < e.getTimeInMillis()){
- if(d > num8.doubleValue()){
- yt1 = num20 * (num9 - num8);
- }
- if(d > num11.doubleValue()){
- yt2 = num21 * (num12 - num11);
- }
- if(d > num14.doubleValue()){
- yt3 = num22 * (d - num14);
- }
- amount = num17 + (d1 * num18) + (t1 * num19) + (wait * num7) + yt1 + yt2 + yt3;
- ServerCarModelWarpper serverCarModelWarpper = ServerCarModelWarpper.getServerCarModelWarpper(map);
- serverCarModelWarpper.setAmount(new BigDecimal(amount).setScale(BigDecimal.ROUND_HALF_EVEN, 2).doubleValue());
- serverCarModelWarpper.setMileage(d);
- serverCarModelWarpper.setDuration(t);
- data.add(serverCarModelWarpper);
- continue;
- }
+// Calendar s = Calendar.getInstance();
+// s.setTime(date);
+// s.set(Calendar.HOUR_OF_DAY, Integer.valueOf(num16.split(" - ")[0].split(":")[0]));
+// s.set(Calendar.MINUTE, Integer.valueOf(num16.split(" - ")[0].split(":")[1]));
+//
+// Calendar e = Calendar.getInstance();
+// e.setTime(date);
+// e.set(Calendar.HOUR_OF_DAY, Integer.valueOf(num16.split(" - ")[1].split(":")[0]));
+// e.set(Calendar.MINUTE, Integer.valueOf(num16.split(" - ")[1].split(":")[1]));
+//
+// if(date.getTime() > s.getTimeInMillis() && date.getTime() < e.getTimeInMillis()){
+// if(d > num8.doubleValue()){
+// yt1 = num20 * (num9 - num8);
+// }
+// if(d > num11.doubleValue()){
+// yt2 = num21 * (num12 - num11);
+// }
+// if(d > num14.doubleValue()){
+// yt3 = num22 * (d - num14);
+// }
+// amount = num17 + (d1 * num18) + (t1 * num19) + (wait * num7) + yt1 + yt2 + yt3;
+// ServerCarModelWarpper serverCarModelWarpper = ServerCarModelWarpper.getServerCarModelWarpper(map);
+// serverCarModelWarpper.setAmount(new BigDecimal(amount).setScale(BigDecimal.ROUND_HALF_EVEN, 2).doubleValue());
+// serverCarModelWarpper.setMileage(d);
+// serverCarModelWarpper.setDuration(t);
+// data.add(serverCarModelWarpper);
+// continue;
+// }
//高峰时段处理逻辑
--
Gitblit v1.7.1