From 48effdca685a209c19dd2a0ccd456470a895784b Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期五, 11 十月 2024 18:01:18 +0800
Subject: [PATCH] Merge branch '2.0' of http://120.76.84.145:10101/gitblit/r/java/IgoTravel into 2.0

---
 DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ReassignServiceImpl.java                  |   48 +++-
 UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/impl/OrderLogisticsServiceImpl.java       |  108 +++++++++--
 ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserActivityDiscount1ServiceImpl.java |    2 
 DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/quartz/jobs/OrderTimeOutJob.java                  |   23 +
 ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TDriverMapper.xml                      |    2 
 UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/UserInfoController.java                                     |   21 +
 UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PushUtil.java                                       |    3 
 UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java        |  108 +++++++++--
 DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/SettlementRecordServiceImpl.java          |  100 ++++-------
 DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverOnlineServiceImpl.java              |   42 +++-
 UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/controller/OrderLogisticsController.java         |   29 ++-
 DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java                                     |   21 +
 12 files changed, 336 insertions(+), 171 deletions(-)

diff --git a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java
index 70ee736..a75a4a0 100644
--- a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java
+++ b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java
@@ -1806,14 +1806,21 @@
             new Timer().schedule(new TimerTask() {
                 @Override
                 public void run() {
-                    Process process = null;
                     try {
-                        process = Runtime.getRuntime().exec("sudo rm -rf /home/igotechgh/nginx/html/files/audio/" + fileName + ".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 + ".mp3");
+                        // 读取命令的输出
+                        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);
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 055c978..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
@@ -257,14 +257,21 @@
                 new Timer().schedule(new TimerTask() {
                     @Override
                     public void run() {
-                        Process process = null;
                         try {
-                            process = Runtime.getRuntime().exec("sudo rm -rf /home/igotechgh/nginx/html/files/audio/" + fileName);
-                        } 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);
@@ -334,14 +341,21 @@
                 new Timer().schedule(new TimerTask() {
                     @Override
                     public void run() {
-                        Process process = null;
                         try {
-                            process = Runtime.getRuntime().exec("sudo rm -rf /home/igotechgh/nginx/html/files/audio/" + fileName);
-                        } 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);
diff --git a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ReassignServiceImpl.java b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ReassignServiceImpl.java
index afe78cc..b9713a2 100644
--- a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ReassignServiceImpl.java
+++ b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ReassignServiceImpl.java
@@ -33,7 +33,9 @@
 import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
+import java.io.BufferedReader;
 import java.io.IOException;
+import java.io.InputStreamReader;
 import java.math.BigDecimal;
 import java.text.SimpleDateFormat;
 import java.util.*;
@@ -228,7 +230,7 @@
                             text = "Received a new ride order, starting from " + orderPrivateCar.getStartAddress() + ", the whole journey is about " + orderPrivateCar.getEstimatedMileage() + "kilometre";
                             break;
                         case 3:
-                            text = "J'ai reçu une nouvelle commande de course, à partir de " + orderPrivateCar.getStartAddress() + ", le trajet complet est d’environ " + orderPrivateCar.getEstimatedMileage() + "kilométrage";
+                            text = "Reçu une nouvelle commande de course, à partir de " + orderPrivateCar.getStartAddress() + ", le trajet complet est d’environ " + orderPrivateCar.getEstimatedMileage();
                             break;
             
                     }
@@ -243,14 +245,21 @@
                     new Timer().schedule(new TimerTask() {
                         @Override
                         public void run() {
-                            Process process = null;
                             try {
-                                process = Runtime.getRuntime().exec("sudo rm -rf /home/igotechgh/nginx/html/files/audio/" + fileName);
-                            } 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);
@@ -479,7 +488,7 @@
                             text = "Received a new delivery order, starting from " + orderLogistics.getStartAddress() + ", the whole journey is about " + orderLogistics.getEstimatedMileage() + "kilometre";
                             break;
                         case 3:
-                            text = "J'ai reçu une nouvelle commande de livraison, à partir de " + orderLogistics.getStartAddress() + ", le trajet complet est d’environ " + orderLogistics.getEstimatedMileage() + "kilométrage";
+                            text = "Reçu une nouvelle commande de livraison, à partir de " + orderLogistics.getStartAddress() + ", le trajet complet est d’environ " + orderLogistics.getEstimatedMileage();
                             break;
             
                     }
@@ -494,14 +503,21 @@
                     new Timer().schedule(new TimerTask() {
                         @Override
                         public void run() {
-                            Process process = null;
                             try {
-                                process = Runtime.getRuntime().exec("sudo rm -rf /home/igotechgh/nginx/html/files/audio/" + fileName);
-                            } 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);
diff --git a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/SettlementRecordServiceImpl.java b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/SettlementRecordServiceImpl.java
index b85b63c..8d23b98 100644
--- a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/SettlementRecordServiceImpl.java
+++ b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/SettlementRecordServiceImpl.java
@@ -22,6 +22,7 @@
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
 import java.io.IOException;
@@ -132,6 +133,7 @@
      * @return
      */
     @Override
+    @Transactional
     public ResultUtil paymentSettlementAmount(Integer driverId, Integer payType, Integer bankCardId, Integer language) throws Exception {
         Driver driver1 = driverService.selectById(driverId);
         QuerySettlementAmount querySettlementAmount = querySettlementAmount(language, driverId);
@@ -172,7 +174,7 @@
         ResultUtil resultUtil = ResultUtil.success("");
         if(payType == 1){//手机支付
             SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
-            String merchantTransactionId = sdf.format(new Date()) + language + payType + driver1;
+            String merchantTransactionId = sdf.format(new Date()) + language + payType + driver1.getId();
             CheckoutRequest checkoutRequest = new CheckoutRequest();
             checkoutRequest.setMsisdn(Long.valueOf(driver1.getPhone()));
             checkoutRequest.setCustomerEmail(driver1.getEmail());
@@ -196,7 +198,7 @@
         if(payType == 2){//银行卡支付
             BankCard bankCard = bankCardService.selectById(bankCardId);
             SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
-            String merchantTransactionId = sdf.format(new Date()) + language + payType + driver1;
+            String merchantTransactionId = sdf.format(new Date()) + language + payType + driver1.getId();
             CheckoutRequest checkoutRequest = new CheckoutRequest();
             checkoutRequest.setMsisdn(Long.valueOf(bankCard.getCode()));
             checkoutRequest.setCustomerEmail(driver1.getEmail());
@@ -224,76 +226,48 @@
 
             Double laveActivityMoney = driver1.getLaveActivityMoney();
             Double laveBusinessMoney = driver1.getLaveBusinessMoney();
-            //活动余额小于结算金额
-            if(null != laveActivityMoney && 0 < laveActivityMoney && laveActivityMoney.compareTo(payMoney) < 0){
-                driver1.setLaveActivityMoney(0D);
-                for (SettlementRecord settlementRecord : settlementRecords) {
-                    Double payMoney1 = settlementRecord.getPayMoney();
-                    if(laveActivityMoney >= payMoney1){
-                        settlementRecord.setPayMoney(payMoney1);
+    
+            for (SettlementRecord settlementRecord : settlementRecords) {
+                Double payMoney1 = settlementRecord.getPayMoney();
+                if(laveActivityMoney >= payMoney1){
+                    settlementRecord.setPayMoney(payMoney1);
+                    settlementRecord.setPaymentStatus(2);
+                    settlementRecord.setPayType(payType);
+                    settlementRecord.setBalanceType(1);
+                    settlementRecord.setPayTime(new Date());
+                    this.updateById(settlementRecord);
+                    balanceUsageRecordService.saveBalanceUsageRecord(settlementRecord.getDriverId(), 1, payMoney1, settlementRecord.getType() + 2);
+                    laveActivityMoney = new BigDecimal(laveActivityMoney).subtract(new BigDecimal(payMoney1)).doubleValue();
+                }else{
+                    if(laveActivityMoney > 0){
+                        settlementRecord.setPayMoney(laveActivityMoney);
                         settlementRecord.setPaymentStatus(2);
                         settlementRecord.setPayType(payType);
                         settlementRecord.setBalanceType(1);
                         settlementRecord.setPayTime(new Date());
                         this.updateById(settlementRecord);
-                        balanceUsageRecordService.saveBalanceUsageRecord(settlementRecord.getDriverId(), 1, payMoney1, settlementRecord.getType() + 2);
-                        laveActivityMoney = new BigDecimal(laveActivityMoney).subtract(new BigDecimal(payMoney1)).doubleValue();
-                    }else{
-                        Double m = payMoney1;
-                        if(laveActivityMoney > 0){
-                            settlementRecord.setPayMoney(laveActivityMoney);
-                            settlementRecord.setPaymentStatus(2);
-                            settlementRecord.setPayType(payType);
-                            settlementRecord.setBalanceType(1);
-                            settlementRecord.setPayTime(new Date());
-                            this.updateById(settlementRecord);
-                            balanceUsageRecordService.saveBalanceUsageRecord(settlementRecord.getDriverId(), 1, laveActivityMoney, settlementRecord.getType() + 2);
-                            laveActivityMoney = 0D;
-                            m = new BigDecimal(payMoney1).subtract(new BigDecimal(laveActivityMoney)).setScale(2, RoundingMode.HALF_EVEN).doubleValue();
-                        }
-                        
-                        SettlementRecord settlementRecord1 = new SettlementRecord();
-                        BeanUtils.copyProperties(settlementRecord, settlementRecord1);
-                        settlementRecord1.setId(null);
-                        settlementRecord1.setPayMoney(m.doubleValue());
-                        settlementRecord1.setBalanceType(2);
-                        this.insert(settlementRecord1);
-                        balanceUsageRecordService.saveBalanceUsageRecord(settlementRecord.getDriverId(), 2, m.doubleValue(), settlementRecord.getType() + 2);
-                        laveBusinessMoney = new BigDecimal(laveBusinessMoney).subtract(new BigDecimal(m)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue();
+                        balanceUsageRecordService.saveBalanceUsageRecord(settlementRecord.getDriverId(), 1, laveActivityMoney, settlementRecord.getType() + 2);
+                        laveActivityMoney = 0D;
+                        payMoney1 = new BigDecimal(payMoney1).subtract(new BigDecimal(laveActivityMoney)).setScale(2, RoundingMode.HALF_EVEN).doubleValue();
                     }
-                }
-                driver1.setLaveBusinessMoney(laveBusinessMoney);
-            }
-            //活动余额大于结算金额
-            if(null != laveActivityMoney && 0 < laveActivityMoney && laveActivityMoney.compareTo(payMoney) >= 0){
-                driver1.setLaveActivityMoney(new BigDecimal(laveActivityMoney).subtract(new BigDecimal(payMoney)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
-                for (SettlementRecord settlementRecord : settlementRecords) {
-                    settlementRecord.setPaymentStatus(2);
-                    settlementRecord.setPayType(payType);
-                    settlementRecord.setBalanceType(1);
-                    settlementRecord.setPayTime(new Date());
-                    this.updateById(settlementRecord);
-                    balanceUsageRecordService.saveBalanceUsageRecord(settlementRecord.getDriverId(), 1, payMoney, settlementRecord.getType() + 2);
-                }
-            }
-            if(null == laveActivityMoney || 0 == laveActivityMoney){
-                driver1.setLaveActivityMoney(0D);
-                driver1.setLaveBusinessMoney(new BigDecimal(laveBusinessMoney).subtract(new BigDecimal(payMoney)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
-                for (SettlementRecord settlementRecord : settlementRecords) {
-                    settlementRecord.setPaymentStatus(2);
-                    settlementRecord.setPayType(payType);
-                    settlementRecord.setBalanceType(1);
-                    settlementRecord.setPayTime(new Date());
-                    this.updateById(settlementRecord);
-                    balanceUsageRecordService.saveBalanceUsageRecord(settlementRecord.getDriverId(), 2, payMoney, settlementRecord.getType() + 2);
-                }
-            }
             
-            driver1.setBalance(new BigDecimal(driver1.getBalance()).subtract(new BigDecimal(payMoney)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
-
+                    SettlementRecord settlementRecord1 = new SettlementRecord();
+                    BeanUtils.copyProperties(settlementRecord, settlementRecord1);
+                    settlementRecord1.setId(null);
+                    settlementRecord1.setPayMoney(payMoney1.doubleValue());
+                    settlementRecord1.setBalanceType(2);
+                    this.insert(settlementRecord1);
+                    balanceUsageRecordService.saveBalanceUsageRecord(settlementRecord.getDriverId(), 2, payMoney1.doubleValue(), settlementRecord.getType() + 2);
+                    laveBusinessMoney = new BigDecimal(laveBusinessMoney).subtract(new BigDecimal(payMoney1)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue();
+                }
+            }
+            driver1.setLaveBusinessMoney(laveBusinessMoney);
+            driver1.setLaveActivityMoney(laveActivityMoney);
+            driver1.setBalance(new BigDecimal(laveBusinessMoney).add(new BigDecimal(laveActivityMoney)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
+            driverService.updateById(driver1);
             //添加交易明细
             transactionDetailsService.saveData(driverId, "支付结算费用", payMoney, 2, 1, 2, null, null);
-            driverService.updateById(driver1);
+            
             return ResultUtil.success("");
         }
         return resultUtil;
diff --git a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/quartz/jobs/OrderTimeOutJob.java b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/quartz/jobs/OrderTimeOutJob.java
index 871e41f..4f7d6ad 100644
--- a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/quartz/jobs/OrderTimeOutJob.java
+++ b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/quartz/jobs/OrderTimeOutJob.java
@@ -22,7 +22,9 @@
 import org.springframework.stereotype.Component;
 
 import javax.annotation.Resource;
+import java.io.BufferedReader;
 import java.io.IOException;
+import java.io.InputStreamReader;
 import java.text.SimpleDateFormat;
 import java.util.Arrays;
 import java.util.List;
@@ -210,14 +212,21 @@
 		new Timer().schedule(new TimerTask() {
 			@Override
 			public void run() {
-				Process process = null;
 				try {
-					process = Runtime.getRuntime().exec("sudo rm -rf /home/igotechgh/nginx/html/files/audio/" + fileName);
-				} 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);
diff --git a/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TDriverMapper.xml b/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TDriverMapper.xml
index 6bd3837..9917892 100644
--- a/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TDriverMapper.xml
+++ b/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TDriverMapper.xml
@@ -91,7 +91,7 @@
         else '' end ) as serverStr,driverId from t_driver_service GROUP BY driverId) as ds on ds.driverId = dd.id
         ) as o
         <where>
-            FIND_IN_SET(o.authState,'1,4') and o.flag != 3
+            FIND_IN_SET(o.authState,'1,4') and o.flag != 3 and o.lastName is not null
             <if test="beginTime != null and beginTime != '' and endTime != null and endTime != ''">
                 AND (o.insertTime between CONCAT(#{beginTime},' 00:00:00') and CONCAT(#{endTime},' 23:59:59'))
             </if>
diff --git a/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserActivityDiscount1ServiceImpl.java b/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserActivityDiscount1ServiceImpl.java
index 62373c3..a5afbca 100644
--- a/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserActivityDiscount1ServiceImpl.java
+++ b/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserActivityDiscount1ServiceImpl.java
@@ -383,7 +383,7 @@
                                 french_go.text("Demander une livraison avec I-GO");
                             }
                             Element french_discount = document1.getElementById("french_discount");
-                            french_discount.text("Profitez aujourd’hui de " + new BigDecimal(100).subtract(new BigDecimal(aDouble)).setScale(2, RoundingMode.HALF_EVEN).doubleValue() + "% de réduction sur les commandes de livraison, allez sur la plate-forme I-GO pour voir le détail.");
+                            french_discount.text("Profitez aujourd’hui de " + new BigDecimal(100).subtract(new BigDecimal(aDouble)).setScale(2, RoundingMode.HALF_EVEN).doubleValue() + "% de réduction sur les commandes de " + (key.equals("ride") ? "course" : "livraison") + ", allez sur la plate-forme I-GO pour voir le détail.");
                             EmailUtil.send(user.getEmail(), "Activités à rabais",  document1.html());
                         }
                         //开始生成pdf收据和html收据
diff --git a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/UserInfoController.java b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/UserInfoController.java
index 7ba230c..23f8bac 100644
--- a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/UserInfoController.java
+++ b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/UserInfoController.java
@@ -1398,14 +1398,21 @@
             new Timer().schedule(new TimerTask() {
                 @Override
                 public void run() {
-                    Process process = null;
                     try {
-                        process = Runtime.getRuntime().exec("sudo rm -rf /home/igotechgh/nginx/html/files/audio/" + fileName + ".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 + ".mp3");
+                        // 读取命令的输出
+                        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);
diff --git a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/controller/OrderLogisticsController.java b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/controller/OrderLogisticsController.java
index 9294048..a717a23 100644
--- a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/controller/OrderLogisticsController.java
+++ b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/controller/OrderLogisticsController.java
@@ -27,7 +27,9 @@
 import org.springframework.web.bind.annotation.RestController;
 
 import javax.servlet.http.HttpServletRequest;
+import java.io.BufferedReader;
 import java.io.IOException;
+import java.io.InputStreamReader;
 import java.math.BigDecimal;
 import java.text.SimpleDateFormat;
 import java.util.*;
@@ -404,13 +406,13 @@
             String text = "";
             switch (language){
                 case 1:
-                    text = "您的包裹订单申请补差价 GSH " + difference + " 已被用户拒绝,请重新与用户协商";
+                    text = "您的包裹订单申请补差价 GHS " + difference + " 已被用户拒绝,请重新与用户协商";
                     break;
                 case 2:
-                    text = "Your delivery order,Request difference GSH " + difference + " was rejected, please renegotiate with the subscriber";
+                    text = "Your delivery order,Request difference GHS " + difference + " was rejected, please renegotiate with the subscriber";
                     break;
                 case 3:
-                    text = "Votre commande de livraison,Demande de différence GSH " + difference + " a été rejeté, veuillez renégocier avec l’abonné";
+                    text = "Votre commande de livraison,Demande de différence GHS " + difference + " a été rejeté, veuillez renégocier avec l’abonné";
                     break;
                     
             }
@@ -424,14 +426,21 @@
             new Timer().schedule(new TimerTask() {
                 @Override
                 public void run() {
-                    Process process = null;
                     try {
-                        process = Runtime.getRuntime().exec("sudo rm -rf /home/igotechgh/nginx/html/files/audio/" + fileName);
-                    } 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);
diff --git a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/impl/OrderLogisticsServiceImpl.java b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/impl/OrderLogisticsServiceImpl.java
index 151d279..443b590 100644
--- a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/impl/OrderLogisticsServiceImpl.java
+++ b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/impl/OrderLogisticsServiceImpl.java
@@ -596,14 +596,21 @@
                                 new Timer().schedule(new TimerTask() {
                                     @Override
                                     public void run() {
-                                        Process process = null;
                                         try {
-                                            process = Runtime.getRuntime().exec("sudo rm -rf /home/igotechgh/nginx/html/files/audio/" + fileName);
-                                        } 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);
@@ -817,14 +824,21 @@
             new Timer().schedule(new TimerTask() {
                 @Override
                 public void run() {
-                    Process process = null;
                     try {
-                        process = Runtime.getRuntime().exec("sudo rm -rf /home/igotechgh/nginx/html/files/audio/" + fileName);
-                    } 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);
@@ -934,14 +948,21 @@
                         new Timer().schedule(new TimerTask() {
                             @Override
                             public void run() {
-                                Process process = null;
                                 try {
-                                    process = Runtime.getRuntime().exec("sudo rm -rf /home/igotechgh/nginx/html/files/audio/" + fileName);
-                                } 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);
@@ -1811,7 +1832,50 @@
                 public void run() {
                     pushUtil.pushOrderState(1, orderLogistics.getUserId(), orderLogistics.getId(), orderLogistics.getType(), orderLogistics.getState(), 0, "");
                     pushUtil.pushOrderState(2, orderLogistics.getDriverId(), orderLogistics.getId(), orderLogistics.getType(), orderLogistics.getState(), 0, "");
-                    pushUtil.pushOfflinePayment(2, orderLogistics.getDriverId(), orderLogistics.getId(), 4, orderLogistics.getPayMoney());
+                    Integer language1 = driver.getLanguage();
+                    String text = "";
+                    switch (language1){
+                        case 1:
+                            text = "客户已选择支付现金,因此您必须收款。确定您已收到此订单费用:现金GHS " + orderLogistics.getPayMoney();
+                            break;
+                        case 2:
+                            text = "The client chose to pay in cash, so you must collect the payment.Confirm if you received the charge for this order: Cash GHS " + orderLogistics.getPayMoney();
+                            break;
+                        case 3:
+                            text = "Le client a choisi de payer en espèces, vous devez donc encaisser le paiement.Confirmez si vous avez reçu les frais pour cette commande : Espèces GHS " + orderLogistics.getPayMoney();
+                            break;
+        
+                    }
+                    String audioUrl = "";
+                    String fileName = "offlinePayment" + orderLogistics.getDriverId() + UUIDUtil.getRandomCode(5) + ".mp3";
+                    try {
+                        audioUrl = TextToSpeechUtil.create(language1 == 1 ? "cmn-CN" : language1 == 2 ? "en-US" : "fr-FR", text, fileName);
+                    } catch (Exception e) {
+                        throw new RuntimeException(e);
+                    }
+                    //定时任务删除语音文件
+                    new Timer().schedule(new TimerTask() {
+                        @Override
+                        public void run() {
+                            try {
+                                // 使用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);
+                    pushUtil.pushOfflinePayment(2, orderLogistics.getDriverId(), orderLogistics.getId(), 4, orderLogistics.getPayMoney(), audioUrl);
                 }
             }).start();
 
diff --git a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java
index 4885e2b..33db1ad 100644
--- a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java
+++ b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java
@@ -426,14 +426,21 @@
             new Timer().schedule(new TimerTask() {
                 @Override
                 public void run() {
-                    Process process = null;
                     try {
-                        process = Runtime.getRuntime().exec("sudo rm -rf /home/igotechgh/nginx/html/files/audio/" + fileName);
-                    } 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);
@@ -543,14 +550,21 @@
                         new Timer().schedule(new TimerTask() {
                             @Override
                             public void run() {
-                                Process process = null;
                                 try {
-                                    process = Runtime.getRuntime().exec("sudo rm -rf /home/igotechgh/nginx/html/files/audio/" + fileName);
-                                } 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);
@@ -1072,14 +1086,21 @@
                                 new Timer().schedule(new TimerTask() {
                                     @Override
                                     public void run() {
-                                        Process process = null;
                                         try {
-                                            process = Runtime.getRuntime().exec("sudo rm -rf /home/igotechgh/nginx/html/files/audio/" + fileName);
-                                        } 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);
@@ -2382,7 +2403,50 @@
                 public void run() {
                     pushUtil.pushOrderState(1, orderPrivateCar.getUserId(), orderPrivateCar.getId(), 1, orderPrivateCar.getState(), 0, "");
                     pushUtil.pushOrderState(2, orderPrivateCar.getDriverId(), orderPrivateCar.getId(), 1, orderPrivateCar.getState(), 0, "");
-                    pushUtil.pushOfflinePayment(2, orderPrivateCar.getDriverId(), orderPrivateCar.getId(), 1, orderPrivateCar.getPayMoney());
+                    Integer language1 = driver.getLanguage();
+                    String text = "";
+                    switch (language1){
+                        case 1:
+                            text = "客户已选择支付现金,因此您必须收款。确定您已收到此订单费用:现金GHS " + orderPrivateCar.getPayMoney();
+                            break;
+                        case 2:
+                            text = "The client chose to pay in cash, so you must collect the payment.Confirm if you received the charge for this order: Cash GHS " + orderPrivateCar.getPayMoney();
+                            break;
+                        case 3:
+                            text = "Le client a choisi de payer en espèces, vous devez donc encaisser le paiement.Confirmez si vous avez reçu les frais pour cette commande : Espèces GHS " + orderPrivateCar.getPayMoney();
+                            break;
+        
+                    }
+                    String audioUrl = "";
+                    String fileName = "offlinePayment" + orderPrivateCar.getDriverId() + UUIDUtil.getRandomCode(5) + ".mp3";
+                    try {
+                        audioUrl = TextToSpeechUtil.create(language1 == 1 ? "cmn-CN" : language1 == 2 ? "en-US" : "fr-FR", text, fileName);
+                    } catch (Exception e) {
+                        throw new RuntimeException(e);
+                    }
+                    //定时任务删除语音文件
+                    new Timer().schedule(new TimerTask() {
+                        @Override
+                        public void run() {
+                            try {
+                                // 使用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);
+                    pushUtil.pushOfflinePayment(2, orderPrivateCar.getDriverId(), orderPrivateCar.getId(), 1, orderPrivateCar.getPayMoney(), audioUrl);
                 }
             }).start();
 
diff --git a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PushUtil.java b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PushUtil.java
index 5f79423..f4eab2e 100644
--- a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PushUtil.java
+++ b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PushUtil.java
@@ -458,7 +458,7 @@
      * @param orderId
      * @param orderType
      */
-    public void pushOfflinePayment(Integer type, Integer uid, Integer orderId, Integer orderType, Double money){
+    public void pushOfflinePayment(Integer type, Integer uid, Integer orderId, Integer orderType, Double money, String audioUrl){
         JSONObject jsonObject = new JSONObject();
         jsonObject.put("code", 200);
         jsonObject.put("msg", "SUCCESS");
@@ -467,6 +467,7 @@
         map.put("orderId", orderId);
         map.put("orderType", orderType);
         map.put("money", money);
+        map.put("audioUrl", audioUrl);
         jsonObject.put("data", map);
 
         //调用推送

--
Gitblit v1.7.1