From d0bd61d3b3f637750bb21587dfa81503f2d4b6a8 Mon Sep 17 00:00:00 2001
From: zhibing.pu <393733352@qq.com>
Date: 星期一, 24 六月 2024 11:07:02 +0800
Subject: [PATCH] 修改google地图对接bug

---
 DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java |   98 ++++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 81 insertions(+), 17 deletions(-)

diff --git a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java
index 16d0c65..bf33bed 100644
--- a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java
+++ b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java
@@ -18,6 +18,7 @@
 import com.stylefeng.guns.modular.system.service.*;
 import com.stylefeng.guns.modular.system.util.*;
 import com.stylefeng.guns.modular.system.util.GoogleMap.AddressComponentsVo;
+import com.stylefeng.guns.modular.system.util.GoogleMap.FleetEngineUtil;
 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.itextpdf.HtmlToPdfUtils;
@@ -28,6 +29,7 @@
 import org.apache.shiro.authc.credential.HashedCredentialsMatcher;
 import org.apache.shiro.crypto.hash.Md5Hash;
 import org.apache.shiro.util.ByteSource;
+import org.apache.shiro.util.StringUtils;
 import org.jsoup.Jsoup;
 import org.jsoup.nodes.Document;
 import org.jsoup.nodes.Element;
@@ -153,6 +155,13 @@
 
     @Autowired
     private TEmailService emailService;
+    
+    @Autowired
+    private FleetEngineUtil fleetEngineUtil;
+    
+    
+    @Resource
+    private CarModelMapper carModelMapper;
 
 
     @Override
@@ -266,7 +275,7 @@
             Element email1_user = document.getElementById("email1_user");
             email1_user.text("Hello ,");
             Element email1_content = document.getElementById("email1_content");
-            email1_content.text("Your package pickup code is " + authCode + ", please complete the verification within 5 minutes");
+            email1_content.text("Your delivery pickup code is " + authCode + ", please complete the verification within 5 minutes");
         }
         if(3 == language){
             document.getElementById("chinese").remove();
@@ -285,7 +294,7 @@
             Element email2_user = document.getElementById("email2_user");
             email2_user.text("Hello ,");
             Element email2_content = document.getElementById("email2_content");
-            email2_content.text("Le code de ramassage de votre colis est " + authCode + ", veuillez effectuer la verification dans les 5minutes.");
+            email2_content.text("Le code de ramassage de votre livraison est " + authCode + ", veuillez effectuer la verification dans les 5minutes.");
         }
         EmailUtil.send(email, language == 1 ? "邮箱验证" : language == 2 ? "Verification code" : "Code de validation",  document.html());
         return ResultUtil.success();
@@ -327,9 +336,16 @@
                 List<Map<String, Object>> query = driverActivityRegisteredMapper.query(userType, driver.getCompanyId());
                 BigDecimal bigDecimal = new BigDecimal("0");
                 for(Map<String, Object> map : query){
+                    DriverActivityHistory dah = new DriverActivityHistory();
+                    dah.setActivityId(Integer.valueOf(map.get("id").toString()));
+                    dah.setDriverId(uid);
+                    dah.setType(1);
+                    DriverActivityHistory driverActivityHistory = driverActivityHistoryMapper.selectOne(dah);
+                    driverActivityHistory.setCarryOut(2);
+                    driverActivityHistoryMapper.updateById(driverActivityHistory);
                     if(Double.valueOf(String.valueOf(map.get("money"))).compareTo(0D) > 0){
                         bigDecimal = bigDecimal.add(new BigDecimal(String.valueOf(map.get("money"))));
-                        incomeService.saveData(2, driver.getId(), 1, Integer.valueOf(String.valueOf(map.get("id"))), null, Double.valueOf(String.valueOf(map.get("money"))));
+                        incomeService.saveData(2, driver.getId(), 1, driverActivityHistory.getId(), null, Double.valueOf(String.valueOf(map.get("money"))));
                     }
                 }
                 driver.setActivityMoney(bigDecimal.add(new BigDecimal(driver.getActivityMoney())).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
@@ -515,9 +531,16 @@
                 List<Map<String, Object>> query = driverActivityRegisteredMapper.query(userType, driver.getCompanyId());
                 BigDecimal bigDecimal = new BigDecimal("0");
                 for(Map<String, Object> map : query){
+                    DriverActivityHistory dah = new DriverActivityHistory();
+                    dah.setActivityId(Integer.valueOf(map.get("id").toString()));
+                    dah.setDriverId(uid);
+                    dah.setType(1);
+                    DriverActivityHistory driverActivityHistory = driverActivityHistoryMapper.selectOne(dah);
+                    driverActivityHistory.setCarryOut(2);
+                    driverActivityHistoryMapper.updateById(driverActivityHistory);
                     if(Double.valueOf(String.valueOf(map.get("money"))).compareTo(0D) > 0){
                         bigDecimal = bigDecimal.add(new BigDecimal(String.valueOf(map.get("money"))));
-                        incomeService.saveData(2, driver.getId(), 1, Integer.valueOf(String.valueOf(map.get("id"))), null, Double.valueOf(String.valueOf(map.get("money"))));
+                        incomeService.saveData(2, driver.getId(), 1, driverActivityHistory.getId(), null, Double.valueOf(String.valueOf(map.get("money"))));
                     }
                 }
                 driver.setActivityMoney(bigDecimal.add(new BigDecimal(driver.getActivityMoney())).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
@@ -1077,6 +1100,19 @@
                 loginWarpper.setJumpCode("200000");
             }
         }
+    
+        //司机登录,添加谷歌上的车辆信息
+        Car car = carService.selectById(driver.getCarId());
+        if(!StringUtils.hasLength(car.getVehicleId())){
+            car.setVehicleId(UUIDUtil.getRandomCode());
+            carService.updateById(car);
+        }
+        String vehicles = fleetEngineUtil.getVehicles(car.getVehicleId());
+        if(ToolUtil.isEmpty(vehicles)){
+            CarModel carModel = carModelMapper.selectById(car.getCarModelId());
+            fleetEngineUtil.createVehicles(carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
+        }
+        loginWarpper.setVehicleId(car.getVehicleId());
         return ResultUtil.success(loginWarpper);
     }
 
@@ -1150,6 +1186,7 @@
     public ResultUtil work(Integer uid, String type, Integer language) throws Exception {
         DriverWork driverWork = driverWorkMapper.queryNewWork(uid, null, 1);
         Driver driver = this.selectById(uid);
+        Car car = carService.selectById(driver.getCarId());
         if(null != driverWork){//作下班操作
             //检测是否有未完成的订单
             List<Map<String, Object>> list = orderService.queryOrderList(1, 1, 10, uid, language);
@@ -1160,6 +1197,20 @@
             driverWork.setState(2);
             driverWorkMapper.updateById(driverWork);
             driver.setState(1);
+            
+            if(!StringUtils.hasLength(car.getVehicleId())){
+                car.setVehicleId(UUIDUtil.getRandomCode());
+                carService.updateById(car);
+            }
+    
+            //司机下班,修改谷歌上的车辆信息
+            CarModel carModel = carModelMapper.selectById(car.getCarModelId());
+            String vehicles = fleetEngineUtil.getVehicles(car.getVehicleId());
+            if(ToolUtil.isEmpty(vehicles)){
+                fleetEngineUtil.createVehicles(carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
+            }else{
+                fleetEngineUtil.updateVehicles("OFFLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
+            }
         }else{
             LoginWarpper loginWarpper = new LoginWarpper();
             if(driver.getCompanyId()==null){
@@ -1178,7 +1229,6 @@
             if(driver.getAuthState()==4){
                 return ResultUtil.error(language == 1 ? "请完善资料后再出车" : language == 2 ? "Please complete data before driving." : "Veuillez compléter les données avant de conduire.");
             }
-            Car car = carService.selectById(driver.getCarId());
             if(car==null){
                 return ResultUtil.error(language == 1 ? "请完善资料后再出车" : language == 2 ? "Please complete data before driving." : "Veuillez compléter les données avant de conduire.");
             }
@@ -1195,6 +1245,20 @@
             driverWork.setType(type);
             driverWorkMapper.insert(driverWork);
             driver.setState(2);
+    
+            if(!StringUtils.hasLength(car.getVehicleId())){
+                car.setVehicleId(UUIDUtil.getRandomCode());
+                carService.updateById(car);
+            }
+            
+            //司机上班,修改谷歌上的车辆信息
+            CarModel carModel = carModelMapper.selectById(car.getCarModelId());
+            String vehicles = fleetEngineUtil.getVehicles(car.getVehicleId());
+            if(ToolUtil.isEmpty(vehicles)){
+                fleetEngineUtil.createVehicles(carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
+            }else{
+                fleetEngineUtil.updateVehicles("ONLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
+            }
         }
         this.updateById(driver);
         return ResultUtil.success();
@@ -1314,7 +1378,7 @@
                     baseWarpper.setName(language == 1 ? "跨城出行" : language == 2 ? "Cross-town travel" : "Se déplacer à travers la ville");
                     break;
                 case 4:
-                    baseWarpper.setName(language == 1 ? "包裹" : language == 2 ? "Package" : "Livraison");
+                    baseWarpper.setName(language == 1 ? "包裹" : language == 2 ? "Delivery" : "Livraison");
                     break;
                 case 5:
                     baseWarpper.setName(language == 1 ? "跨城小件物流" : language == 2 ? "Cross-city small parts logistics" : "Logistique des petites pièces à travers la ville");
@@ -1630,7 +1694,7 @@
      */
     @Override
     public List<Map<String, Object>> queryActivityIncome(Integer language, Integer uid, Integer pageNum, Integer size) throws Exception {
-        List<Map<String, Object>> query = incomeService.query(language,2, uid, 1, pageNum, size);
+        List<Map<String, Object>> query = incomeService.query(language,2, uid, Arrays.asList(1), pageNum, size);
         return query;
     }
 
@@ -1645,7 +1709,7 @@
      */
     @Override
     public List<Map<String, Object>> queryTotalRevenue(Integer language, Integer uid, Integer pageNum, Integer size) throws Exception {
-        List<Map<String, Object>> query = incomeService.query(language, 2, uid, 2, pageNum, size);
+        List<Map<String, Object>> query = incomeService.query(language, 2, uid, Arrays.asList(2, 3, 5, 6, 7), pageNum, size);
         return query;
     }
 
@@ -1685,7 +1749,7 @@
                     activityWarpper.setId(driverActivityOnline.getId());
                     StringBuffer sb = new StringBuffer(language == 1 ? "今日" :
                             language == 2 ? "Today, stay online receiving orders of " : "Aujourd’hui, reste en ligne à recevoir des commandes ");
-                    DriverOnline query = driverOnlineMapper.query(uid, sdf1.format(new Date()), 0);
+                    DriverOnline query = driverOnlineMapper.query(uid, sdf1.format(new Date()), driverActivityOnline.getType(), 0);
                     Integer hour = 0;
                     if(null != query){
                         hour = Long.valueOf(query.getDuration() / 3600).intValue();
@@ -1701,7 +1765,7 @@
                             sb.append("城际出行");
                             continue;
                         case 4:
-                            sb.append(language == 1 ? "包裹" : language == 2 ? "package" : "de colis");
+                            sb.append(language == 1 ? "包裹" : language == 2 ? "delivery" : "de livraison");
                             break;
                     }
                     String str = language == 1 ? "累计在线" +driverActivityOnline.getOnline() + "小时奖励GHS" +driverActivityOnline.getMoney():
@@ -1716,11 +1780,11 @@
                     activityWarpper.setContent(language == 1 ? "今日" + driverActivityOrder.getStart() + "-" + driverActivityOrder.getEnd() + "累计接单" + driverActivityOrder.getOrderNum() + "单奖励GHS" + driverActivityOrder.getMoney():
                             language == 2 ? "Today " + driverActivityOrder.getStart() + "-" + driverActivityOrder.getEnd() + ", complete " + driverActivityOrder.getOrderNum() + " orders for a reward of GHS" + driverActivityOrder.getMoney() :
                                     "Aujourd’hui de " + driverActivityOrder.getStart() + " à " + driverActivityOrder.getEnd() + ", complétez " + driverActivityOrder.getOrderNum() + " commandes pour une récompense de GHS" + driverActivityOrder.getMoney());
-                    SimpleDateFormat sdf = new SimpleDateFormat("H:m");
-                    Date start = sdf.parse(driverActivityOrder.getStart());
-                    Date end = sdf.parse(driverActivityOrder.getEnd());
+                    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+                    Date start = sdf.parse(sdf1.format(time) + " " + driverActivityOrder.getStart() + ":00");
+                    Date end = sdf.parse(sdf1.format(time) + " " + driverActivityOrder.getEnd() + ":59");
                     Integer integer = orderService.queryOrderNum(uid, start, end);
-                    activityWarpper.setCarryOut(integer > driverActivityOrder.getOrderNum() ? driverActivityOrder.getOrderNum() + "/" + driverActivityOrder.getOrderNum() : integer + "/" + driverActivityOrder.getOrderNum());
+                    activityWarpper.setCarryOut(integer.compareTo(driverActivityOrder.getOrderNum()) > 0 ? driverActivityOrder.getOrderNum() + "/" + driverActivityOrder.getOrderNum() : integer + "/" + driverActivityOrder.getOrderNum());
                     break;
             }
             list.add(activityWarpper);
@@ -2248,7 +2312,7 @@
                 continue;
             }
             Long duration = Long.valueOf(dao.getOnline() * 3600);
-            List<DriverOnline> driverOnlines = driverOnlineMapper.queryList(sdf.format(new Date()), duration);
+            List<DriverOnline> driverOnlines = driverOnlineMapper.queryList(sdf.format(new Date()), dao.getType(), duration);
             for (DriverOnline driverOnline : driverOnlines) {
                 if(dah.getDriverId().compareTo(driverOnline.getDriverId()) == 0){
                     dah.setCarryOut(2);//完成状态
@@ -2264,7 +2328,7 @@
                     this.updateById(driver);
 
                     //添加收入记录
-                    incomeService.saveData(2, driverOnline.getDriverId(), 1, dao.getId(), null, dah.getMoney());
+                    incomeService.saveData(2, driverOnline.getDriverId(), 1, dah.getId(), null, dah.getMoney());
 
 
                     if(ToolUtil.isNotEmpty(driver.getEmail())) {
@@ -2384,7 +2448,7 @@
                 this.updateById(driver);
 
                 //添加收入记录
-                incomeService.saveData(2, dah.getDriverId(), 1, dao.getId(), null, dah.getMoney());
+                incomeService.saveData(2, dah.getDriverId(), 1, dah.getId(), null, dah.getMoney());
 
                 if(ToolUtil.isNotEmpty(driver.getEmail())) {
                     String path1 = templatePath + "driver/index.html";

--
Gitblit v1.7.1