From b77c1869930d044db13a0d4a672bf98da1cab2c2 Mon Sep 17 00:00:00 2001 From: zhibing.pu <393733352@qq.com> Date: 星期四, 22 八月 2024 12:00:07 +0800 Subject: [PATCH] 修改bug --- UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/controller/OrderLogisticsController.java | 109 +++++++++++++++++++++++++++++++++++++++++++++++------- 1 files changed, 95 insertions(+), 14 deletions(-) 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 214e75f..6c46d5a 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 @@ -1,16 +1,19 @@ package com.stylefeng.guns.modular.smallLogistics.controller; +import com.stylefeng.guns.core.util.ToolUtil; import com.stylefeng.guns.modular.smallLogistics.model.OrderLogistics; import com.stylefeng.guns.modular.smallLogistics.server.IOrderLogisticsService; import com.stylefeng.guns.modular.specialTrain.model.OrderPrivateCar; +import com.stylefeng.guns.modular.system.model.Driver; import com.stylefeng.guns.modular.system.model.Region; import com.stylefeng.guns.modular.system.model.UserRedPacketRecord; +import com.stylefeng.guns.modular.system.service.IDriverService; +import com.stylefeng.guns.modular.system.service.IDriverServiceService; import com.stylefeng.guns.modular.system.service.IUserInfoService; +import com.stylefeng.guns.modular.system.util.*; import com.stylefeng.guns.modular.system.util.GoogleMap.DistancematrixVo; import com.stylefeng.guns.modular.system.util.GoogleMap.GoogleMapUtil; -import com.stylefeng.guns.modular.system.util.PushUtil; -import com.stylefeng.guns.modular.system.util.ResultUtil; import com.stylefeng.guns.modular.system.warpper.BaseWarpper; import com.stylefeng.guns.modular.system.warpper.OrderTimeInfo; import io.swagger.annotations.Api; @@ -24,12 +27,10 @@ import org.springframework.web.bind.annotation.RestController; import javax.servlet.http.HttpServletRequest; +import java.io.IOException; import java.math.BigDecimal; import java.text.SimpleDateFormat; -import java.util.Calendar; -import java.util.Date; -import java.util.List; -import java.util.Map; +import java.util.*; /** * 小件物流控制器 @@ -45,6 +46,18 @@ private IUserInfoService userInfoService; @Autowired private PushUtil pushUtil; + + @Autowired + private IDriverService driverService; + + @Autowired + private RedisUtil redisUtil; + + + + + + /** @@ -310,21 +323,50 @@ OrderTimeInfo orderTimeInfo = new OrderTimeInfo(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); if(null != orderLogistics.getSnatchOrderTime()){ - orderTimeInfo.setSnatchOrderTime(sdf.format(orderLogistics.getSnatchOrderTime())); + orderTimeInfo.setSnatchOrderTime(DateUtil.conversionFormat(language, sdf.format(orderLogistics.getSnatchOrderTime()))); } if(null != orderLogistics.getStartServiceTime()){ - orderTimeInfo.setStartServiceTime(sdf.format(orderLogistics.getStartServiceTime())); + orderTimeInfo.setStartServiceTime(DateUtil.conversionFormat(language, sdf.format(orderLogistics.getStartServiceTime()))); } - long time = System.currentTimeMillis() - orderLogistics.getSnatchOrderTime().getTime() / 60000; - //TODO 待翻译 - orderTimeInfo.setUsedTime(Double.valueOf(time / 60).intValue() + "小时" + time % 60 + "分钟"); + //分钟 + long time = (System.currentTimeMillis() - orderLogistics.getSnatchOrderTime().getTime()) / 60000; + + int h = Double.valueOf(time / 60).intValue(); + long m = time % 60; + String usedTime = ""; + if(0 == h){ + usedTime = language == 1 ? m + "分钟" : language == 2 ? m + "-minute(s)" : m + "-minute"; + }else{ + usedTime = language == 1 ? h + "小时" + m + "分钟" : language == 2 ? h + "-hour" + m + "-minute" : h + "-hour" + m + "-minute"; + } + orderTimeInfo.setUsedTime(usedTime); if(null != orderLogistics.getEndServiceTime()){ - orderTimeInfo.setEndServiceTime(sdf.format(orderLogistics.getEndServiceTime())); + orderTimeInfo.setEndServiceTime(DateUtil.conversionFormat(language, sdf.format(orderLogistics.getEndServiceTime()))); + }else{ + DistancematrixVo distancematrix = GoogleMapUtil.getDistancematrix(orderLogistics.getStartLat(), orderLogistics.getStartLon(), orderLogistics.getEndLat(), orderLogistics.getEndLon()); + Long duration = distancematrix.getDuration(); + orderTimeInfo.setEndServiceTime(DateUtil.conversionFormat(language, sdf.format(new Date(System.currentTimeMillis() + duration * 1000)))); } DistancematrixVo distancematrix = GoogleMapUtil.getDistancematrix(orderLogistics.getStartLat(), orderLogistics.getStartLon(), orderLogistics.getEndLat(), orderLogistics.getEndLon()); Long distance = distancematrix.getDistance(); orderTimeInfo.setAllMileage(Double.valueOf(distance / 1000)); orderTimeInfo.setMileage(orderLogistics.getMileage() / 1000); + String value = redisUtil.getValue("DRIVER" + orderLogistics.getDriverId()); + if(ToolUtil.isNotEmpty(value)){ + String[] split = value.split(","); + distancematrix = GoogleMapUtil.getDistancematrix(Double.valueOf(split[1]), Double.valueOf(split[0]), orderLogistics.getEndLat(), orderLogistics.getEndLon()); + //分钟 + Long duration = distancematrix.getDuration() / 60; + h = Double.valueOf(duration / 60).intValue(); + m = duration % 60; + String remainingTime = ""; + if(0 == h){ + remainingTime = language == 1 ? m + "分钟" : language == 2 ? m + "-minute" : m + "-minute"; + }else{ + remainingTime = language == 1 ? h + "小时" + m + "分钟" : language == 2 ? h + "-hour" + m + "-minute" : h + "-hour" + m + "-minute"; + } + orderTimeInfo.setRemainingTime(remainingTime); + } return ResultUtil.success(orderTimeInfo); }catch (Exception e){ e.printStackTrace(); @@ -345,11 +387,50 @@ }) public ResultUtil confirmDifferencePrice(Integer orderId, Double difference, Integer status){ OrderLogistics orderLogistics = orderLogisticsService.selectById(orderId); - if(1 == status){ + if(2 == status){ orderLogistics.setPriceDifference(difference); orderLogisticsService.updateById(orderLogistics); } - pushUtil.pushPayDifference(2, orderLogistics.getDriverId(), orderId, 4, difference, status); + String audioUrl = ""; + if(3 == status){ + Driver driver = driverService.selectById(orderLogistics.getDriverId()); + Integer language = driver.getLanguage(); + String text = ""; + switch (language){ + case 1: + text = "您的包裹订单申请补差价 GSH " + difference + " 已被用户拒绝,请重新与用户协商"; + break; + case 2: + text = "Your delivery order,Request difference GSH " + 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é"; + break; + + } + String fileName = "difference" + driver.getId() + ".mp3"; + try { + audioUrl = TextToSpeechUtil.create(language == 1 ? "cmn-CN" : language == 2 ? "en-US" : "fr-FR", text, fileName); + } 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/" + fileName); + } catch (IOException e) { + throw new RuntimeException(e); + } + if (process != null) { + process.destroy(); + } + } + }, 30000); + } + pushUtil.pushPayDifference(2, orderLogistics.getDriverId(), orderId, 4, difference, status, audioUrl); return ResultUtil.success(); } -- Gitblit v1.7.1