From ebeb3e4f16972caa50f9b78cb334b0beba1acf2d Mon Sep 17 00:00:00 2001 From: zhibing.pu <393733352@qq.com> Date: 星期二, 27 八月 2024 17:16:48 +0800 Subject: [PATCH] 修改bug --- UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java | 58 ++++++++++++++++++++++++++++++---------------------------- 1 files changed, 30 insertions(+), 28 deletions(-) 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 d7db9e8..a15fe0e 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 @@ -264,7 +264,8 @@ baseWarpper.setId(orderPrivateCars.get(0).getId()); return ResultUtil.success(baseWarpper); } - + + String tripId = redisUtil.getValue("trip" + uid); startAddress = startAddress.replaceAll("& #40;", "("); startAddress = startAddress.replaceAll("& #41;", ")"); endAddress = endAddress.replaceAll("& #40;", "("); @@ -281,7 +282,7 @@ orderPrivateCar.setPlacementLon(Double.valueOf(placementLon)); orderPrivateCar.setPlacementLat(Double.valueOf(placementLat)); - ReverseGeocodeVo reverseGeocode = GoogleMapUtil.getReverseGeocode(Double.valueOf(placementLat), Double.valueOf(placementLon)); + ReverseGeocodeVo reverseGeocode = GoogleMapUtil.getReverseGeocode(Double.valueOf(placementLat), Double.valueOf(placementLon), tripId); orderPrivateCar.setPlacementAddress(reverseGeocode.getAddress()); orderPrivateCar.setStartLon(Double.valueOf(startLon)); orderPrivateCar.setStartLat(Double.valueOf(startLat)); @@ -346,7 +347,7 @@ String value = redisUtil.getValue("DRIVER" + driver.getId()); if(ToolUtil.isNotEmpty(value)) { String[] split = value.split(","); - DistancematrixVo distancematrix = GoogleMapUtil.getDistancematrix(orderPrivateCar.getStartLat(), orderPrivateCar.getStartLon(), Double.valueOf(split[1]), Double.valueOf(split[0])); + DistancematrixVo distancematrix = GoogleMapUtil.getDistancematrix(orderPrivateCar.getStartLat(), orderPrivateCar.getStartLon(), Double.valueOf(split[1]), Double.valueOf(split[0]), tripId); //超时时间 long timeOut = System.currentTimeMillis() + (distancematrix.getDuration() * 1000); orderPrivateCar.setEstimateArriveTime(new Date(timeOut)); @@ -359,8 +360,8 @@ orderPrivateCar.setIsReassign(1); orderPrivateCar.setIsDelete(1); - orderPrivateCar.setTripId(UUIDUtil.getRandomCode()); - DistancematrixVo distancematrix1 = GoogleMapUtil.getDistancematrix(orderPrivateCar.getStartLat(), orderPrivateCar.getStartLon(), orderPrivateCar.getEndLat(), orderPrivateCar.getEndLon()); + orderPrivateCar.setTripId(tripId); + DistancematrixVo distancematrix1 = GoogleMapUtil.getDistancematrix(orderPrivateCar.getStartLat(), orderPrivateCar.getStartLon(), orderPrivateCar.getEndLat(), orderPrivateCar.getEndLon(), tripId); Long distance1 = distancematrix1.getDistance(); orderPrivateCar.setEstimatedMileage(new BigDecimal(distance1).divide(new BigDecimal(1000)).setScale(2, RoundingMode.HALF_EVEN).doubleValue()); this.insert(orderPrivateCar); @@ -449,14 +450,14 @@ // TODO: 2021/5/11 修改,根据后台设定的派单范围查询范围内有无司机,将单子指派给距离最近的司机(距离相同随机取),范围内没有司机再进行推单流程 if(orderPrivateCar.getState() == 1){ - Company query = companyCityService.query1(orderPrivateCar.getStartLon().toString(), orderPrivateCar.getStartLat().toString()); + Company query = companyCityService.query1(uid, orderPrivateCar.getStartLon().toString(), orderPrivateCar.getStartLat().toString()); if(null == query){ return ResultUtil.error(language == 1 ? "起点暂未企业提供服务" : language == 2 ? "Starting point no enterprise to provide services" : "Point de départ pas encore disponible pour les entreprises"); } AssignOrder assignOrder = assignOrderService.selectOne(new EntityWrapper<AssignOrder>().eq("companyId", query.getId()).eq("type", 1)); if(null != assignOrder && assignOrder.getPeople() > 0){//配置了指派规则才处理 //获取空闲司机 - List<Driver> drivers = driverService.queryIdleDriver(1, orderPrivateCar.getServerCarModelId(), orderPrivateCar.getStartLon(), orderPrivateCar.getStartLat(), assignOrder.getDistance(), null);//获取范围内空闲司机 + List<Driver> drivers = driverService.queryIdleDriver(orderPrivateCar.getUserId(), 1, orderPrivateCar.getServerCarModelId(), orderPrivateCar.getStartLon(), orderPrivateCar.getStartLat(), assignOrder.getDistance(), null);//获取范围内空闲司机 if(drivers.size() > 0){//有司机,直接指派给司机 Driver dr = null; if(drivers.size() > 1){ @@ -469,7 +470,7 @@ String value = redisUtil.getValue("DRIVER" + drivers.get(j).getId()); if(null != value){ String[] split = value.split(","); - DistancematrixVo distancematrix = GoogleMapUtil.getDistancematrix(orderPrivateCar.getStartLat(), orderPrivateCar.getStartLon(), Double.valueOf(split[1]), Double.valueOf(split[0])); + DistancematrixVo distancematrix = GoogleMapUtil.getDistancematrix(orderPrivateCar.getStartLat(), orderPrivateCar.getStartLon(), Double.valueOf(split[1]), Double.valueOf(split[0]), tripId); Long distance = distancematrix.getDistance(); if((0 == m && null == driver) || (distance < m)){ driver = drivers.get(j); @@ -488,7 +489,7 @@ String value = redisUtil.getValue("DRIVER" + driver.getId()); if(null != value){ String[] split = value.split(","); - DistancematrixVo distancematrix = GoogleMapUtil.getDistancematrix(orderPrivateCar.getStartLat(), orderPrivateCar.getStartLon(), Double.valueOf(split[1]), Double.valueOf(split[0])); + DistancematrixVo distancematrix = GoogleMapUtil.getDistancematrix(orderPrivateCar.getStartLat(), orderPrivateCar.getStartLon(), Double.valueOf(split[1]), Double.valueOf(split[0]), tripId); Long d = distancematrix.getDistance(); if((0 == m && null == dr) || (d.intValue() < m.intValue())){ dr = driver; @@ -1016,12 +1017,12 @@ if(ToolUtil.isNotEmpty(vehicle)){ integers = JSON.parseArray(vehicle).toJavaList(Integer.class); } - Company query = companyCityService.query1(String.valueOf(orderPrivateCar.getStartLon()), String.valueOf(orderPrivateCar.getStartLat()));//获取起点所属分公司 + Company query = companyCityService.query1(orderPrivateCar.getUserId(), String.valueOf(orderPrivateCar.getStartLon()), String.valueOf(orderPrivateCar.getStartLat()));//获取起点所属分公司 List<PushOrder> querys = pushOrderService.querys(null, 1, query.getId());//获取需要推送的次数 for(int i = 1; i <= querys.size(); i++){ PushOrder pushOrder = pushOrderService.querys(i, 1, query.getId()).get(0); //获取空闲司机 - List<Driver> list = driverService.queryIdleDriver(1, orderPrivateCar.getServerCarModelId(), orderPrivateCar.getStartLon(), orderPrivateCar.getStartLat(), pushOrder.getPushDistance(), null);//所有附近空闲司机 + List<Driver> list = driverService.queryIdleDriver(orderPrivateCar.getUserId(), 1, orderPrivateCar.getServerCarModelId(), orderPrivateCar.getStartLon(), orderPrivateCar.getStartLat(), pushOrder.getPushDistance(), null);//所有附近空闲司机 System.err.println("【" + orderPrivateCar.getId() + "】空闲司机:" + JSON.toJSONString(list)); if(list.size() > 0){ double driverProportion = pushOrder.getDriverProportion() / 100;//推送占比计算成小数 @@ -1439,7 +1440,7 @@ if(1 == language){ document.getElementById("english").remove(); document.getElementById("french").remove(); - document.getElementsByTag("title").get(0).text("I-GO电子收据"); + document.getElementsByTag("title").get(0).text("打车收据"); Element title_chinese = document.getElementById("title_chinese"); title_chinese.text(DateUtil.conversionFormat(language, sdf.format(orderPrivateCar.getTravelTime())) + ",您在I-GO此订单消费GHS " + new BigDecimal(orderPrivateCar.getPayMoney()).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); Element qbj_chinese = document.getElementById("qbj_chinese"); @@ -1546,7 +1547,7 @@ if(2 == language){ document.getElementById("chinese").remove(); document.getElementById("french").remove(); - document.getElementsByTag("title").get(0).text("Receipt"); + document.getElementsByTag("title").get(0).text("Ride receipt"); Element title_english = document.getElementById("title_english"); title_english.text(DateUtil.conversionFormat(language, sdf.format(orderPrivateCar.getTravelTime())) + ",You spent GHS " + new BigDecimal(orderPrivateCar.getPayMoney()).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue() + " on the trip "); Element qbj_english = document.getElementById("qbj_english"); @@ -1653,7 +1654,7 @@ if(3 == language){ document.getElementById("chinese").remove(); document.getElementById("english").remove(); - document.getElementsByTag("title").get(0).text("Reçu"); + document.getElementsByTag("title").get(0).text("Reçu de course"); Element title_french = document.getElementById("title_french"); title_french.text("Le " + DateUtil.conversionFormat(language, sdf.format(orderPrivateCar.getTravelTime())) + ", vous avez dépensé GHS " + new BigDecimal(orderPrivateCar.getPayMoney()).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue() + " sur le voyage"); Element qbj_french = document.getElementById("qbj_french"); @@ -1757,7 +1758,7 @@ Element server_tel_french = document.getElementById("server_tel_french"); server_tel_french.attr("href", "tel:" + (null != phone ? phone.getPhone() : "")); } - EmailUtil.send(userInfo.getEmail(), language == 1 ? "I-GO电子收据" : language == 2 ? "Receipt" : "Reçu", document.html()); + EmailUtil.send(userInfo.getEmail(), language == 1 ? "打车收据" : language == 2 ? "Ride receipt" : "Reçu de course", document.html()); //开始生成pdf收据和html收据 File file = new File("/usr/local/nginx/html/files/html/"); @@ -1793,7 +1794,7 @@ TEmail tEmail = new TEmail(); tEmail.setLink(link); tEmail.setUserId(uid); - tEmail.setName(language == 1 ? "I-GO电子收据" : language == 2 ? "Receipt" : "Reçu"); + tEmail.setName(language == 1 ? "打车收据" : language == 2 ? "Ride receipt" : "Reçu de course"); tEmail.setType(1); tEmail.setOrderId(orderId); tEmail.setCreateTime(new Date()); @@ -1975,7 +1976,7 @@ if(1 == language){ document.getElementById("english").remove(); document.getElementById("french").remove(); - document.getElementsByTag("title").get(0).text("I-GO电子收据"); + document.getElementsByTag("title").get(0).text("打车收据"); Element title_chinese = document.getElementById("title_chinese"); title_chinese.text(DateUtil.conversionFormat(language, sdf.format(orderPrivateCar.getTravelTime())) + ",您在I-GO此订单消费GHS " + new BigDecimal(orderPrivateCar.getPayMoney()).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); Element qbj_chinese = document.getElementById("qbj_chinese"); @@ -2082,7 +2083,7 @@ if(2 == language){ document.getElementById("chinese").remove(); document.getElementById("french").remove(); - document.getElementsByTag("title").get(0).text("Receipt"); + document.getElementsByTag("title").get(0).text("Ride receipt"); Element title_english = document.getElementById("title_english"); title_english.text(DateUtil.conversionFormat(language, sdf.format(orderPrivateCar.getTravelTime())) + ",You spent GHS " + new BigDecimal(orderPrivateCar.getPayMoney()).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue() + " on the trip "); Element qbj_english = document.getElementById("qbj_english"); @@ -2189,7 +2190,7 @@ if(3 == language){ document.getElementById("chinese").remove(); document.getElementById("english").remove(); - document.getElementsByTag("title").get(0).text("Reçu"); + document.getElementsByTag("title").get(0).text("Reçu de course"); Element title_french = document.getElementById("title_french"); title_french.text("Le " + DateUtil.conversionFormat(language, sdf.format(orderPrivateCar.getTravelTime())) + ", vous avez dépensé GHS " + new BigDecimal(orderPrivateCar.getPayMoney()).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue() + " sur le voyage"); Element qbj_french = document.getElementById("qbj_french"); @@ -2294,7 +2295,7 @@ server_tel_french.attr("href", "tel:" + (null != phone ? phone.getPhone() : "")); } - EmailUtil.send(userInfo.getEmail(), language == 1 ? "I-GO电子收据" : language == 2 ? "Receipt" : "Reçu", document.html()); + EmailUtil.send(userInfo.getEmail(), language == 1 ? "打车收据" : language == 2 ? "Ride receipt" : "Reçu de course", document.html()); //开始生成pdf收据和html收据 File file = new File("/usr/local/nginx/html/files/html/"); @@ -2329,7 +2330,7 @@ TEmail tEmail = new TEmail(); tEmail.setLink(link); tEmail.setUserId(uid); - tEmail.setName(language == 1 ? "I-GO电子收据" : language == 2 ? "Receipt" : "Reçu"); + tEmail.setName(language == 1 ? "打车收据" : language == 2 ? "Ride receipt" : "Reçu de course"); tEmail.setType(1); tEmail.setOrderId(orderId); tEmail.setCreateTime(new Date()); @@ -2669,7 +2670,7 @@ if(1 == language){ document.getElementById("english").remove(); document.getElementById("french").remove(); - document.getElementsByTag("title").get(0).text("I-GO电子收据"); + document.getElementsByTag("title").get(0).text("打车收据"); Element title_chinese = document.getElementById("title_chinese"); title_chinese.text(DateUtil.conversionFormat(language, sdf.format(orderPrivateCar.getTravelTime())) + ",您在I-GO此订单消费GHS " + new BigDecimal(orderPrivateCar.getPayMoney()).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); Element qbj_chinese = document.getElementById("qbj_chinese"); @@ -2776,7 +2777,7 @@ if(2 == language){ document.getElementById("chinese").remove(); document.getElementById("french").remove(); - document.getElementsByTag("title").get(0).text("Receipt"); + document.getElementsByTag("title").get(0).text("Ride receipt"); Element title_english = document.getElementById("title_english"); title_english.text(DateUtil.conversionFormat(language, sdf.format(orderPrivateCar.getTravelTime())) + ",You spent GHS " + new BigDecimal(orderPrivateCar.getPayMoney()).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue() + " on the trip "); Element qbj_english = document.getElementById("qbj_english"); @@ -2883,7 +2884,7 @@ if(3 == language){ document.getElementById("chinese").remove(); document.getElementById("english").remove(); - document.getElementsByTag("title").get(0).text("Reçu"); + document.getElementsByTag("title").get(0).text("Reçu de course"); Element title_french = document.getElementById("title_french"); title_french.text("Le " + DateUtil.conversionFormat(language, sdf.format(orderPrivateCar.getTravelTime())) + ", vous avez dépensé GHS " + new BigDecimal(orderPrivateCar.getPayMoney()).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue() + " sur le voyage"); Element qbj_french = document.getElementById("qbj_french"); @@ -2988,7 +2989,7 @@ server_tel_french.attr("href", "tel:" + (null != phone ? phone.getPhone() : "")); } - EmailUtil.send(userInfo.getEmail(), language == 1 ? "I-GO电子收据" : language == 2 ? "Receipt" : "Reçu", document.html()); + EmailUtil.send(userInfo.getEmail(), language == 1 ? "打车收据" : language == 2 ? "Ride receipt" : "Reçu de course", document.html()); //开始生成pdf收据和html收据 File file = new File("/usr/local/nginx/html/files/html/"); @@ -3024,7 +3025,7 @@ String link ="http://182.160.16.251:81/files/html/ride_receipt_" + id + ".html"; TEmail tEmail = new TEmail(); tEmail.setLink(link); - tEmail.setName(language == 1 ? "I-GO电子收据" : language == 2 ? "Receipt" : "Reçu"); + tEmail.setName(language == 1 ? "打车收据" : language == 2 ? "Ride receipt" : "Reçu de course"); tEmail.setUserId(userInfo.getId()); tEmail.setType(1); tEmail.setOrderId(id); @@ -3270,10 +3271,11 @@ String lnt = "0"; String lat = "0"; + String tripId = redisUtil.getValue("trip" + uid); if(ToolUtil.isNotEmpty(value)){ lnt = value.split(",")[0]; lat = value.split(",")[1]; - DistancematrixVo distancematrix = GoogleMapUtil.getDistancematrix(orderPrivateCar.getStartLat(), orderPrivateCar.getStartLon(), Double.valueOf(lat), Double.valueOf(lnt)); + DistancematrixVo distancematrix = GoogleMapUtil.getDistancematrix(orderPrivateCar.getStartLat(), orderPrivateCar.getStartLon(), Double.valueOf(lat), Double.valueOf(lnt), tripId); if(null == distancematrix){ System.err.println("查询距离出错了"); @@ -3301,7 +3303,7 @@ orderServerWarpper.setLaveTime("0"); } if(orderPrivateCar.getState() == 5 || orderPrivateCar.getState() == 6){//服务中 - DistancematrixVo distancematrix = GoogleMapUtil.getDistancematrix(Double.valueOf(lat), Double.valueOf(lnt), orderPrivateCar.getEndLat(), orderPrivateCar.getEndLon()); + DistancematrixVo distancematrix = GoogleMapUtil.getDistancematrix(Double.valueOf(lat), Double.valueOf(lnt), orderPrivateCar.getEndLat(), orderPrivateCar.getEndLon(), tripId); if(null == distancematrix){ System.err.println("查询距离出错了"); }else if(distancematrix.getDistance() == 0){ -- Gitblit v1.7.1