From 870b29e6f0380529b37f8f3c62a0c2e0cc8058a0 Mon Sep 17 00:00:00 2001
From: zhibing.pu <393733352@qq.com>
Date: 星期四, 01 八月 2024 17:10:23 +0800
Subject: [PATCH] 修改邮件内容

---
 ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TOrderPrivateCarController.java |   77 ++++++++++++++++++++++++++++++++------
 1 files changed, 64 insertions(+), 13 deletions(-)

diff --git a/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TOrderPrivateCarController.java b/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TOrderPrivateCarController.java
index 8bcef47..0a83283 100644
--- a/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TOrderPrivateCarController.java
+++ b/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TOrderPrivateCarController.java
@@ -14,6 +14,8 @@
 import com.stylefeng.guns.core.util.ExcelExportUtil;
 import com.stylefeng.guns.core.util.SinataUtil;
 import com.stylefeng.guns.core.util.ToolUtil;
+import com.stylefeng.guns.modular.system.controller.util.PushUtil;
+import com.stylefeng.guns.modular.system.controller.util.TextToSpeechUtil;
 import com.stylefeng.guns.modular.system.dao.OrderCancelMapper;
 import com.stylefeng.guns.modular.system.dao.TSystemPriceMapper;
 import com.stylefeng.guns.modular.system.model.*;
@@ -31,10 +33,7 @@
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.InputStreamReader;
+import java.io.*;
 import java.math.BigDecimal;
 import java.math.MathContext;
 import java.math.RoundingMode;
@@ -212,9 +211,10 @@
     @ResponseBody
     public Object frozenOrder(@RequestParam Integer tOrderPrivateCarId) throws Exception {
         TOrderPrivateCar orderPrivateCar = tOrderPrivateCarService.selectById(tOrderPrivateCarId);
-
+        orderPrivateCar = this.setMoney(orderPrivateCar, 0D, 0D);//计算费用
         //添加已收入明细
         TCompany company = companyService.selectById(orderPrivateCar.getCompanyId());
+        TDriver tDriver = driverService.selectById(orderPrivateCar.getDriverId());
         Double taxi = company.getSpeMoney().doubleValue();
         BigDecimal d = null;//企业收入
         BigDecimal c = null;//司机收入
@@ -235,7 +235,6 @@
             driver.setFrozenMoney(driver.getFrozenMoney().add(c));
             driverService.updateById(driver);
         }else{
-
             TDriver driver = driverService.selectById(orderPrivateCar.getDriverId());
             driver.setBusinessMoney(new BigDecimal(null != driver.getBusinessMoney() ? driver.getBusinessMoney() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
             driver.setLaveBusinessMoney(new BigDecimal(null != driver.getLaveBusinessMoney() ? driver.getLaveBusinessMoney() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
@@ -243,21 +242,65 @@
             driver.setFrozenMoney(driver.getFrozenMoney().subtract(c));
             driverService.updateById(driver);
         }
+        if (orderPrivateCar.getIsFrozen() == 1){
+            // 冻结订单需要给司机播报一个语音内容
+            Integer language1 = tDriver.getLanguage();
+            String text = "";
+            switch (language1){
+                case 1:
+                    text = "" ;
+                    break;
+                case 2:
+                    text = "";
+                    break;
+                case 3:
+                    text = "";
+                    break;
+            }
+            TOrderPrivateCar finalOrderPrivateCar = orderPrivateCar;
+            String audioUrl = "";
+            try {
+                audioUrl = TextToSpeechUtil.create(language1 == 1 ? "cmn-CN" : language1 == 2 ? "en-US" : "fr-FR", text, "pushOrder" + orderPrivateCar.getDriverId() + ".mp3");
+            } catch (Exception e) {
+                throw new RuntimeException(e);
+            }
+            //定时任务删除语音文件
+            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/pushOrder" + finalOrderPrivateCar.getDriverId() + ".mp3");
+                    } catch (IOException e) {
+                        throw new RuntimeException(e);
+                    }
+                    if (process != null) {
+                        process.destroy();
+                    }
+                }
+            }, 30000);
 
-        orderPrivateCar.setIsFrozen(orderPrivateCar.getIsFrozen()==1?2:1);
+            String finalAudioUrl = audioUrl;
 
-
-
-        if(orderPrivateCar.getArriveTime()==null){
-            orderPrivateCar.setArriveTime(orderPrivateCar.getStartServiceTime());
+            new Thread(new Runnable() {
+                @Override
+                public void run() {
+                    pushUtil.pushOrderState(2, finalOrderPrivateCar.getDriverId(), finalOrderPrivateCar.getId(), 1, 2, 0, finalAudioUrl);
+                }
+            }).start();
         }
-        orderPrivateCar = this.setMoney(orderPrivateCar, 0D, 0D);//计算费用
+        orderPrivateCar.setIsFrozen(orderPrivateCar.getIsFrozen()==1?2:1);
+        orderPrivateCar.setState(7);
         tOrderPrivateCarService.updateAllColumnById(orderPrivateCar);
+
         return SUCCESS_TIP;
     }
+    @Autowired
+    private PushUtil pushUtil;
     @Resource
     private TSystemPriceMapper systemPriceMapper;
     public TOrderPrivateCar setMoney(TOrderPrivateCar orderPrivateCar, Double parkingFee, Double crossingFee) throws Exception {
+        System.err.println("计算金额:"+orderPrivateCar);
         Map<String, Object> query1 = systemPriceMapper.query(orderPrivateCar.getCompanyId(), 1, orderPrivateCar.getServerCarModelId());
         //开始根据不同的方式计算金额
         double amount = 0;
@@ -295,7 +338,15 @@
 
         Date date = new Date();
         double d = (null == orderPrivateCar.getMileage() ? 0D : orderPrivateCar.getMileage()) / 1000;//实际公里
-        double t = ((orderPrivateCar.getEndServiceTime().getTime() - orderPrivateCar.getStartServiceTime().getTime()) / 60000) + 1;//实际时间(不满一分钟按一分钟算)
+        if (orderPrivateCar.getEndServiceTime() == null){
+            orderPrivateCar.setEndServiceTime(new Date());
+        }
+        double t=1;
+        if (orderPrivateCar.getStartServiceTime() == null){
+            t = 1;//实际时间(不满一分钟按一分钟算)
+        }else{
+            t = ((orderPrivateCar.getEndServiceTime().getTime() - orderPrivateCar.getStartServiceTime().getTime()) / 60000) + 1;//实际时间(不满一分钟按一分钟算)
+        }
         double w = ((orderPrivateCar.getStartServiceTime().getTime() - orderPrivateCar.getArriveTime().getTime()) / 60000) + 1;//等待分钟(不满一分钟按一分钟算)
         double d1 = (d - num2) < 0 ? 0 : d - num2;//超出起步里程的公里
         double t1 = (t - num3) < 0 ? 0 : new BigDecimal(t - num3).setScale(0, BigDecimal.ROUND_UP).doubleValue();//超过起步分钟数的时间

--
Gitblit v1.7.1