From 4c99ee7028c3fe58a2cd4b8273b22c75c45574fc Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期五, 16 五月 2025 10:27:41 +0800
Subject: [PATCH] 修改文档bug

---
 DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverOnlineServiceImpl.java |   62 +++++++++++++++++++-----------
 1 files changed, 39 insertions(+), 23 deletions(-)

diff --git a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverOnlineServiceImpl.java b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverOnlineServiceImpl.java
index 92203ba..999d760 100644
--- a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverOnlineServiceImpl.java
+++ b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverOnlineServiceImpl.java
@@ -156,7 +156,7 @@
         }
         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
         List<DriverActivityHistory> driverActivityHistories = driverActivityHistoryMapper.selectList(new EntityWrapper<DriverActivityHistory>().eq("driverId", driverId)
-                .eq("type", 3).eq("carryOut", 1).last(" and day = '" + sdf.format(new Date()) + "'"));
+                .eq("type", 3).eq("carryOut", 1).last(" and day = '" + sdf.format(new Date()) + "' and driverActivityId in (select id from t_driver_activity where status = 3 and now() between startTime and endTime)"));
         //生成每个活动从开始上班到当前时间的时长记录
         for (DriverActivityHistory driverActivityHistory : driverActivityHistories) {
             String value = redisUtil.getValue("driverActivity_" + driverId + "_" + driverActivityHistory.getId());
@@ -164,10 +164,10 @@
                 JSONObject jsonObject = JSON.parseObject(value);
                 Long startTime = jsonObject.getLong("startTime");
                 long time = System.currentTimeMillis() - startTime;
-                redisUtil.setStrValue("driverActivity_" + driverId + "_" + driverActivityHistory.getId(), "{\"startTime\":" + startTime + ", \"time\":" + time + "}");
+                redisUtil.setStrValue("driverActivity_" + driverId + "_" + driverActivityHistory.getId(), "{\"startTime\":" + startTime + ", \"time\":" + time + "}", 172800);
             }else{
                 long time = System.currentTimeMillis() - driverWork.getStartTime().getTime();
-                redisUtil.setStrValue("driverActivity_" + driverId + "_" + driverActivityHistory.getId(), "{\"startTime\":" + driverWork.getStartTime().getTime() + ", \"time\":" + time + "}");
+                redisUtil.setStrValue("driverActivity_" + driverId + "_" + driverActivityHistory.getId(), "{\"startTime\":" + driverWork.getStartTime().getTime() + ", \"time\":" + time + "}", 172800);
             }
         }
     }
@@ -241,29 +241,37 @@
                 String msg = language == 1 ? "您已连续" + driverActivityOnline.getOfflineTime() + "小时未接单,系统将强制更改您的状态为:下班" :
                         language == 2 ? "You have not been accepting orders for " + driverActivityOnline.getOfflineTime() + " hour(s) System will change your state to Off-work" :
                                 "Vous n’acceptez pas de commandes depuis " + driverActivityOnline.getOfflineTime() + " heure(s) Le système changera votre état en Hors travail";
+                String fileName = "OffLine" + driver.getId() + ".mp3";
                 String audioUrl = null;
                 try {
-                    audioUrl = TextToSpeechUtil.create(language == 1 ? "cmn-CN" : language == 2 ? "en-US" : "fr-FR", msg, "OffLine" + driver.getId() + ".mp3");
+                    audioUrl = TextToSpeechUtil.create(language == 1 ? "cmn-CN" : language == 2 ? "en-US" : "fr-FR", msg, fileName);
                 } catch (Exception e) {
                     throw new RuntimeException(e);
                 }
                 Map<String, String> map = new HashMap<>();
                 map.put("msg", msg);
                 map.put("audioUrl", audioUrl);
-                pushUtil.pushOffline(driverOnline.getDriverId(), 2, map);
+                pushUtil.afterWork(driverOnline.getDriverId(), 2, map);
                 
                 //定时任务删除语音文件
                 new Timer().schedule(new TimerTask() {
                     @Override
                     public void run() {
-                        Process process = null;
                         try {
-                            process = Runtime.getRuntime().exec("rm -rf /usr/local/nginx/html/files/audio/OffLine" + driver.getId() + ".mp3");
-                        } catch (IOException e) {
-                            throw new RuntimeException(e);
-                        }
-                        if (process != null) {
-                            process.destroy();
+                            // 使用Runtime执行命令
+                            Process process = Runtime.getRuntime().exec("sudo rm -rf /home/igotechgh/nginx/html/files/audio/" + fileName);
+                            // 读取命令的输出
+                            BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
+                            String line;
+                            while ((line = reader.readLine()) != null) {
+                                System.out.println(line);
+                            }
+                            // 等待命令执行完成
+                            process.waitFor();
+                            // 关闭流
+                            reader.close();
+                        } catch (IOException | InterruptedException e) {
+                            e.printStackTrace();
                         }
                     }
                 }, 30000);
@@ -279,7 +287,7 @@
     public void deductionDuration1() {
         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
         List<DriverActivityHistory> driverActivityHistories = driverActivityHistoryMapper.selectList(new EntityWrapper<DriverActivityHistory>()
-                .eq("type", 3).eq("carryOut", 1).last(" and day = '" + sdf.format(new Date()) + "'"));
+                .eq("type", 3).eq("carryOut", 1).last(" and day = '" + sdf.format(new Date()) + "' and driverActivityId in (select id from t_driver_activity where status = 3 and now() between startTime and endTime)"));
         for (DriverActivityHistory driverActivityHistory : driverActivityHistories) {
             DriverWork driverWork = driverWorkService.selectOne(new EntityWrapper<DriverWork>().eq("driverId", driverActivityHistory.getDriverId()).eq("state", 1));
             if(null == driverWork){
@@ -317,29 +325,37 @@
                 String msg = language == 1 ? "您已连续" + driverActivityOnline.getOfflineTime() + "小时未接单,系统将强制更改您的状态为:下班" :
                         language == 2 ? "You have not been accepting orders for " + driverActivityOnline.getOfflineTime() + " hour(s) System will change your state to Off-work" :
                                 "Vous n’acceptez pas de commandes depuis " + driverActivityOnline.getOfflineTime() + " heure(s) Le système changera votre état en Hors travail";
+                String fileName = "OffLine" + driver.getId() + ".mp3";
                 String audioUrl = null;
                 try {
-                    audioUrl = TextToSpeechUtil.create(language == 1 ? "cmn-CN" : language == 2 ? "en-US" : "fr-FR", msg, "OffLine" + driver.getId() + ".mp3");
+                    audioUrl = TextToSpeechUtil.create(language == 1 ? "cmn-CN" : language == 2 ? "en-US" : "fr-FR", msg, fileName);
                 } catch (Exception e) {
                     throw new RuntimeException(e);
                 }
                 Map<String, String> map = new HashMap<>();
                 map.put("msg", msg);
                 map.put("audioUrl", audioUrl);
-                pushUtil.pushOffline(driverWork.getDriverId(), 2, map);
+                pushUtil.afterWork(driverWork.getDriverId(), 2, map);
     
                 //定时任务删除语音文件
                 new Timer().schedule(new TimerTask() {
                     @Override
                     public void run() {
-                        Process process = null;
                         try {
-                            process = Runtime.getRuntime().exec("rm -rf /usr/local/nginx/html/files/audio/OffLine" + driver.getId() + ".mp3");
-                        } catch (IOException e) {
-                            throw new RuntimeException(e);
-                        }
-                        if (process != null) {
-                            process.destroy();
+                            // 使用Runtime执行命令
+                            Process process = Runtime.getRuntime().exec("sudo rm -rf /home/igotechgh/nginx/html/files/audio/" + fileName);
+                            // 读取命令的输出
+                            BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
+                            String line;
+                            while ((line = reader.readLine()) != null) {
+                                System.out.println(line);
+                            }
+                            // 等待命令执行完成
+                            process.waitFor();
+                            // 关闭流
+                            reader.close();
+                        } catch (IOException | InterruptedException e) {
+                            e.printStackTrace();
                         }
                     }
                 }, 30000);
@@ -359,7 +375,7 @@
                     driverOnline.setDuration(driverOnline.getDuration() + (time * 60));
                     this.updateById(driverOnline);
                 }
-                redisUtil.setStrValue("driverActivity_" + driverActivityHistory.getDriverId() + "_" + driverActivityHistory.getId(), "{\"startTime\":" + System.currentTimeMillis() + ", \"time\":" + 0 + "}");
+                redisUtil.setStrValue("driverActivity_" + driverActivityHistory.getDriverId() + "_" + driverActivityHistory.getId(), "{\"startTime\":" + System.currentTimeMillis() + ", \"time\":" + 0 + "}", 172800);
             }
         }
     }

--
Gitblit v1.7.1