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