From 8f39e870ca9519d8a8190c038d15a030149de98e Mon Sep 17 00:00:00 2001 From: zhibing.pu <393733352@qq.com> Date: 星期二, 27 八月 2024 09:13:33 +0800 Subject: [PATCH] 修改2.0 bug --- UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/impl/OrderLogisticsServiceImpl.java | 178 ++++++++++++++++++++++++++++++++++++++++------------------ 1 files changed, 122 insertions(+), 56 deletions(-) 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 29e067b..ecf7c91 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 @@ -209,7 +209,7 @@ private ICarService carService; @Resource - private DriverWorkMapper driverWorkMapper; + private IDriverWorkService driverWorkService; @Value("${filePath}") @@ -254,7 +254,7 @@ String[] split = endLonLat.split(","); Double lng = Double.valueOf(split[0]); Double lat = Double.valueOf(split[1]); - ResultUtil<Map<String, Object>> price = this.getPrice1(type, startLonLat.split(",")[0], startLonLat.split(",")[1], lng.toString(), lat.toString(), language); + ResultUtil<Map<String, Object>> price = this.getPrice1(uid, type, startLonLat.split(",")[0], startLonLat.split(",")[1], lng.toString(), lat.toString(), language); if(price.getCode() != 200){ return price; } @@ -273,11 +273,11 @@ * @return * @throws Exception */ - public ResultUtil queryPayMoney(Integer number, Integer type, String startLonLat, String endLonLat, String endAddress, Integer language) throws Exception{ + public ResultUtil queryPayMoney(Integer uid, Integer number, Integer type, String startLonLat, String endLonLat, String endAddress, Integer language) throws Exception{ String[] split = endLonLat.split(","); Double lng = Double.valueOf(split[0]); Double lat = Double.valueOf(split[1]); - ResultUtil<Map<String, Object>> price = this.getPrice1(type, startLonLat.split(",")[0], startLonLat.split(",")[1], lng.toString(), lat.toString(), language); + ResultUtil<Map<String, Object>> price = this.getPrice1(uid, type, startLonLat.split(",")[0], startLonLat.split(",")[1], lng.toString(), lat.toString(), language); if(price.getCode() == 200 && type == 5){ Map<String, Object> data = price.getData(); Double ordinary = Double.valueOf(data.get("ordinary").toString()); @@ -327,7 +327,7 @@ endAddress = endAddress.replaceAll("& #40;", "("); endAddress = endAddress.replaceAll("& #41;", ")"); OrderLogistics orderLogistics = new OrderLogistics(); - Company query = companyCityService.query1(placementLon, placementLat); + Company query = companyCityService.query1(uid, placementLon, placementLat); if(null == query){ return ResultUtil.error(language == 1 ? "该地点暂无企业服务" : language == 2 ? "No service yet at this area" : "Pas encore de service dans cette zone"); } @@ -340,7 +340,8 @@ orderLogistics.setRemark(remark); orderLogistics.setPlacementLon(Double.valueOf(placementLon)); orderLogistics.setPlacementLat(Double.valueOf(placementLat)); - ReverseGeocodeVo reverseGeocode = GoogleMapUtil.getReverseGeocode(Double.valueOf(placementLat), Double.valueOf(placementLon)); + String tripId = redisUtil.getValue("trip" + uid); + ReverseGeocodeVo reverseGeocode = GoogleMapUtil.getReverseGeocode(Double.valueOf(placementLat), Double.valueOf(placementLon), tripId); if(null == reverseGeocode){ return ResultUtil.error(language == 1 ? "解析地址出错" : language == 2 ? "Address resolution error" : "Erreur de résolution d’adresse"); } @@ -363,7 +364,7 @@ orderLogistics.setMileage(0D); orderLogistics.setIsReassign(1); orderLogistics.setReassignNotice(0); - ResultUtil<Map<String, Object>> price = this.getPrice1(type, String.valueOf(startLon), String.valueOf(startLat), lng.toString(), lat.toString(), language); + ResultUtil<Map<String, Object>> price = this.getPrice1(uid, type, String.valueOf(startLon), String.valueOf(startLat), lng.toString(), lat.toString(), language); if(price.getCode() != 200){ return price; } @@ -412,8 +413,8 @@ * @return * @throws Exception */ - public ResultUtil<Map<String, Double>> getPrice(Integer type, String startLon, String startLat, String endLon, String endLat) throws Exception{ - Company query = companyCityService.query1(startLon, startLat); + public ResultUtil<Map<String, Double>> getPrice(Integer uid, Integer type, String startLon, String startLat, String endLon, String endLat) throws Exception{ + Company query = companyCityService.query1(uid, startLon, startLat); if(null == query){ return ResultUtil.error("预约取货点暂无企业服务"); } @@ -456,8 +457,8 @@ - public ResultUtil<Map<String, Object>> getPrice1(Integer type, String startLon, String startLat, String endLon, String endLat, Integer language) throws Exception{ - Company query = companyCityService.query1(startLon, startLat); + public ResultUtil<Map<String, Object>> getPrice1(Integer uid, Integer type, String startLon, String startLat, String endLon, String endLat, Integer language) throws Exception{ + Company query = companyCityService.query1(uid, startLon, startLat); if(null == query){ return ResultUtil.error(language == 1 ? "预约取货点暂无企业服务" : language == 2 ? "No service yet at the reserved pickup point." : "Les points de ramassage prévus ne sont pas disponibles pour le moment."); @@ -469,7 +470,8 @@ Integer activityId = null; if(type == 4){//同城 Map<String, Object> query1 = systemPriceMapper.query(query.getId(), type, null); - DistancematrixVo distancematrix = GoogleMapUtil.getDistancematrix(Double.valueOf(startLat), Double.valueOf(startLon), Double.valueOf(endLat), Double.valueOf(endLon)); + String tripId = redisUtil.getValue("trip" + uid); + DistancematrixVo distancematrix = GoogleMapUtil.getDistancematrix(Double.valueOf(startLat), Double.valueOf(startLon), Double.valueOf(endLat), Double.valueOf(endLon), tripId); if(null == distancematrix){ return ResultUtil.error(language == 1 ? "计算距离出错" : language == 2 ? "Errors in computing distance" : "Erreurs dans le calcul de la distance"); } @@ -540,12 +542,12 @@ if(ToolUtil.isNotEmpty(vehicle)){ integers = JSON.parseArray(vehicle).toJavaList(Integer.class); } - Company query = companyCityService.query1(String.valueOf(orderLogistics.getStartLon()), String.valueOf(orderLogistics.getStartLat()));//获取起点所属分公司 + Company query = companyCityService.query1(orderLogistics.getUserId(), String.valueOf(orderLogistics.getStartLon()), String.valueOf(orderLogistics.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(orderLogistics.getType(), orderLogistics.getServerCarModelId(), orderLogistics.getStartLon(), orderLogistics.getStartLat(), pushOrder.getPushDistance(), null);//所有附近空闲司机 + List<Driver> list = driverService.queryIdleDriver(orderLogistics.getUserId(), orderLogistics.getType(), orderLogistics.getServerCarModelId(), orderLogistics.getStartLon(), orderLogistics.getStartLat(), pushOrder.getPushDistance(), null);//所有附近空闲司机 System.err.println("【" + orderLogistics.getId() + "】空闲司机:" + JSON.toJSONString(list)); if(list.size() > 0){ double driverProportion = pushOrder.getDriverProportion() / 100;//推送占比计算成小数 @@ -564,8 +566,8 @@ } Driver driver1 = driverService.selectById(driver.getId()); - DriverWork driverWork = driverWorkMapper.selectOne(new EntityWrapper<DriverWork>().eq("driverId", driver1.getId()) - .eq("state", 1).like("type", "4").getEntity()); + DriverWork driverWork = driverWorkService.selectOne(new EntityWrapper<DriverWork>().eq("driverId", driver1.getId()) + .eq("state", 1).like("type", "4")); if(null == driverWork || driver1.getState() != 2){ continue; } @@ -682,7 +684,8 @@ orderLogistics.setUrgent(1); orderLogistics.setCargoNumber(1); - ReverseGeocodeVo reverseGeocode = GoogleMapUtil.getReverseGeocode(Double.valueOf(placementLat), Double.valueOf(placementLon)); + String tripId = redisUtil.getValue("trip" + uid); + ReverseGeocodeVo reverseGeocode = GoogleMapUtil.getReverseGeocode(Double.valueOf(placementLat), Double.valueOf(placementLon), tripId); orderLogistics.setPlacementAddress(reverseGeocode.getAddress()); orderLogistics.setStartLon(Double.valueOf(startLon)); orderLogistics.setStartLat(Double.valueOf(startLat)); @@ -737,7 +740,7 @@ String value = redisUtil.getValue("DRIVER" + driver.getId()); if(ToolUtil.isNotEmpty(value)) { String[] split = value.split(","); - DistancematrixVo distancematrix = GoogleMapUtil.getDistancematrix(orderLogistics.getStartLat(), orderLogistics.getStartLon(), Double.valueOf(split[1]), Double.valueOf(split[0])); + DistancematrixVo distancematrix = GoogleMapUtil.getDistancematrix(orderLogistics.getStartLat(), orderLogistics.getStartLon(), Double.valueOf(split[1]), Double.valueOf(split[0]), tripId); //超时时间 long timeOut = System.currentTimeMillis() + (distancematrix.getDuration() * 1000); orderLogistics.setEstimateArriveTime(new Date(timeOut)); @@ -749,8 +752,8 @@ orderLogistics.setIsReassign(1); orderLogistics.setIsDelete(1); - orderLogistics.setTripId(UUIDUtil.getRandomCode()); - DistancematrixVo distancematrix1 = GoogleMapUtil.getDistancematrix(orderLogistics.getStartLat(), orderLogistics.getStartLon(), orderLogistics.getEndLat(), orderLogistics.getEndLon()); + orderLogistics.setTripId(tripId); + DistancematrixVo distancematrix1 = GoogleMapUtil.getDistancematrix(orderLogistics.getStartLat(), orderLogistics.getStartLon(), orderLogistics.getEndLat(), orderLogistics.getEndLon(), tripId); Long distance1 = distancematrix1.getDistance(); orderLogistics.setEstimatedMileage(new BigDecimal(distance1).divide(new BigDecimal(1000)).setScale(2, RoundingMode.HALF_EVEN).doubleValue()); this.insert(orderLogistics); @@ -838,14 +841,14 @@ // TODO: 2021/5/11 修改,根据后台设定的派单范围查询范围内有无司机,将单子指派给距离最近的司机(距离相同随机取),范围内没有司机再进行推单流程 if(orderLogistics.getState() == 1){ - Company query = companyCityService.query1(orderLogistics.getStartLon().toString(), orderLogistics.getStartLat().toString()); + Company query = companyCityService.query1(uid, orderLogistics.getStartLon().toString(), orderLogistics.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(4, orderLogistics.getServerCarModelId(), orderLogistics.getStartLon(), orderLogistics.getStartLat(), assignOrder.getDistance(), null);//获取范围内空闲司机 + List<Driver> drivers = driverService.queryIdleDriver(uid, 4, orderLogistics.getServerCarModelId(), orderLogistics.getStartLon(), orderLogistics.getStartLat(), assignOrder.getDistance(), null);//获取范围内空闲司机 if(drivers.size() > 0){//有司机,直接指派给司机 Driver dr = null; if(drivers.size() > 1){ @@ -858,7 +861,7 @@ String value = redisUtil.getValue("DRIVER" + drivers.get(j).getId()); if(null != value){ String[] split = value.split(","); - DistancematrixVo distancematrix = GoogleMapUtil.getDistancematrix(orderLogistics.getStartLat(), orderLogistics.getStartLon(), Double.valueOf(split[1]), Double.valueOf(split[0])); + DistancematrixVo distancematrix = GoogleMapUtil.getDistancematrix(orderLogistics.getStartLat(), orderLogistics.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); @@ -877,7 +880,7 @@ String value = redisUtil.getValue("DRIVER" + driver.getId()); if(null != value){ String[] split = value.split(","); - DistancematrixVo distancematrix = GoogleMapUtil.getDistancematrix(orderLogistics.getStartLat(), orderLogistics.getStartLon(), Double.valueOf(split[1]), Double.valueOf(split[0])); + DistancematrixVo distancematrix = GoogleMapUtil.getDistancematrix(orderLogistics.getStartLat(), orderLogistics.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; @@ -890,8 +893,8 @@ } Driver driver1 = driverService.selectById(dr.getId()); - DriverWork driverWork = driverWorkMapper.selectOne(new EntityWrapper<DriverWork>().eq("driverId", driver1.getId()) - .eq("state", 1).like("type", "4").getEntity()); + DriverWork driverWork = driverWorkService.selectOne(new EntityWrapper<DriverWork>().eq("driverId", driver1.getId()) + .eq("state", 1).like("type", "4")); if(driver1.getState() == 2 || null != driverWork){ orderLogistics.setDriverId(dr.getId()); orderLogistics.setCompanyId(dr.getFranchiseeId() != null && dr.getFranchiseeId() != 0 ? dr.getFranchiseeId() : ( @@ -1355,6 +1358,12 @@ pay_type_chinese.text(payTypeChinese); Element pay_money_chinese = document.getElementById("pay_money_chinese"); pay_money_chinese.text("GHS " + new BigDecimal(orderLogistics.getPayMoney()).setScale(2, RoundingMode.HALF_EVEN)); + Element dispute_chinese = document.getElementById("dispute_chinese"); + if(null != orderLogistics.getIsDispute() && orderLogistics.getIsDispute() == 1){ + dispute_chinese.text("(注意: 争议订单,经过三方协商,平台最终定价为 GHS" + new BigDecimal(orderLogistics.getOrderMoney()).setScale(2, RoundingMode.HALF_EVEN) + ")"); + }else{ + dispute_chinese.remove(); + } Element pdf_chinese = document.getElementById("pdf_chinese"); pdf_chinese.attr("href", "http://182.160.16.251:80/user/base/order/uploadReceiptPdf?orderId=" + orderId + "&orderType=4"); Element lost_item_chinese = document.getElementById("lost_item_chinese"); @@ -1457,6 +1466,12 @@ pay_type_english.text(payTypeEnglish); Element pay_money_english = document.getElementById("pay_money_english"); pay_money_english.text("GHS " + new BigDecimal(orderLogistics.getPayMoney()).setScale(2, RoundingMode.HALF_EVEN)); + Element dispute_english = document.getElementById("dispute_english"); + if(null != orderLogistics.getIsDispute() && orderLogistics.getIsDispute() == 1){ + dispute_english.text("(Note: Disputed order, after tripartite negotiation, the final pricing of the platform is GHS " + new BigDecimal(orderLogistics.getOrderMoney()).setScale(2, RoundingMode.HALF_EVEN) + ")"); + }else{ + dispute_english.remove(); + } Element pdf_english = document.getElementById("pdf_english"); pdf_english.attr("href", "http://182.160.16.251:80/user/base/order/uploadReceiptPdf?orderId=" + orderId + "&orderType=4"); Element lost_item_english = document.getElementById("lost_item_english"); @@ -1487,7 +1502,7 @@ document.getElementById("english").remove(); document.getElementsByTag("title").get(0).text("Reçu"); Element title_french = document.getElementById("title_french"); - title_french.text(DateUtil.conversionFormat(language, sdf2.format(orderLogistics.getTravelTime())) + ",Vous consommez GHS " + orderLogistics.getPayMoney() + " sur votre commande i-go1 le "); + title_french.text(DateUtil.conversionFormat(language, sdf2.format(orderLogistics.getTravelTime())) + ",Vous consommez GHS " + orderLogistics.getPayMoney() + " sur votre commande I-GO "); Element qbj_french = document.getElementById("qbj_french"); qbj_french.text("GHS " + new BigDecimal(orderLogistics.getStartMoney()).setScale(2, RoundingMode.HALF_EVEN)); Element scf_french = document.getElementById("scf_french"); @@ -1559,6 +1574,12 @@ pay_type_french.text(payTypeFrench); Element pay_money_french = document.getElementById("pay_money_french"); pay_money_french.text("GHS " + new BigDecimal(orderLogistics.getPayMoney()).setScale(2, RoundingMode.HALF_EVEN)); + Element dispute_french = document.getElementById("dispute_french"); + if(null != orderLogistics.getIsDispute() && orderLogistics.getIsDispute() == 1){ + dispute_french.text("(Remarque: Il s’agit d’une commande contestée, et après des négociations entre trois parties, la plateforme l’a finalement tarifée à GHS " + new BigDecimal(orderLogistics.getOrderMoney()).setScale(2, RoundingMode.HALF_EVEN) + ")"); + }else{ + dispute_french.remove(); + } Element pdf_french = document.getElementById("pdf_french"); pdf_french.attr("href", "http://182.160.16.251:80/user/base/order/uploadReceiptPdf?orderId=" + orderId + "&orderType=4"); Element lost_item_french = document.getElementById("lost_item_french"); @@ -1725,21 +1746,22 @@ if(null != settlementAllocation){ JSONObject jsonObject = JSON.parseObject(settlementAllocation.getContent()); Double maxPrice = jsonObject.getDouble("maxPrice"); - Integer type1 = jsonObject.getInteger("type"); - if(1 == type1){ - List<SettlementDetail> settlementDetailList = settlementDetailService.selectList(new EntityWrapper<SettlementDetail>().eq("driverId", driver.getId()).isNull("settlementRecordId").last(" and DATE_FORMAT(now(), '%Y-%m-%d') = DATE_FORMAT(createTime, '%Y-%m-%d')")); + if(null != maxPrice){ + List<SettlementDetail> settlementDetailList = settlementDetailService.selectList(new EntityWrapper<SettlementDetail>().eq("driverId", driver.getId()) + .isNull("settlementRecordId").last(" and DATE_FORMAT(now(), '%Y-%m-%d') = DATE_FORMAT(createTime, '%Y-%m-%d')")); BigDecimal total = new BigDecimal(0); for (SettlementDetail detail : settlementDetailList) { total = total.add(new BigDecimal(detail.getPrice())); } + //日结算 if(maxPrice.compareTo(total.doubleValue()) <= 0){ SettlementRecord settlementRecord = settlementRecordService.selectOne(new EntityWrapper<SettlementRecord>().eq("driverId", orderLogistics.getDriverId()) - .eq("type", type1).eq("paymentStatus", 1).last(" and day = DATE_FORMAT(now(), '%Y-%m-%d')")); + .eq("type", 1).eq("paymentStatus", 1).last(" and day = DATE_FORMAT(now(), '%Y-%m-%d')")); if(null == settlementRecord){ settlementRecord = new SettlementRecord(); settlementRecord.setDay(new Date()); settlementRecord.setDriverId(orderLogistics.getDriverId()); - settlementRecord.setType(type1); + settlementRecord.setType(1); settlementRecord.setPaymentStatus(1); settlementRecord.setPayMoney(total.doubleValue()); settlementRecord.setInsertTime(new Date()); @@ -1872,6 +1894,12 @@ pay_type_chinese.text(payTypeChinese); Element pay_money_chinese = document.getElementById("pay_money_chinese"); pay_money_chinese.text("GHS " + new BigDecimal(orderLogistics.getPayMoney()).setScale(2, RoundingMode.HALF_EVEN)); + Element dispute_chinese = document.getElementById("dispute_chinese"); + if(null != orderLogistics.getIsDispute() && orderLogistics.getIsDispute() == 1){ + dispute_chinese.text("(注意: 争议订单,经过三方协商,平台最终定价为 GHS" + new BigDecimal(orderLogistics.getOrderMoney()).setScale(2, RoundingMode.HALF_EVEN) + ")"); + }else{ + dispute_chinese.remove(); + } Element pdf_chinese = document.getElementById("pdf_chinese"); pdf_chinese.attr("href", "http://182.160.16.251:80/user/base/order/uploadReceiptPdf?orderId=" + orderId + "&orderType=4"); Element lost_item_chinese = document.getElementById("lost_item_chinese"); @@ -1974,6 +2002,12 @@ pay_type_english.text(payTypeEnglish); Element pay_money_english = document.getElementById("pay_money_english"); pay_money_english.text("GHS " + new BigDecimal(orderLogistics.getPayMoney()).setScale(2, RoundingMode.HALF_EVEN)); + Element dispute_english = document.getElementById("dispute_english"); + if(null != orderLogistics.getIsDispute() && orderLogistics.getIsDispute() == 1){ + dispute_english.text("(Note: Disputed order, after tripartite negotiation, the final pricing of the platform is GHS " + new BigDecimal(orderLogistics.getOrderMoney()).setScale(2, RoundingMode.HALF_EVEN) + ")"); + }else{ + dispute_english.remove(); + } Element pdf_english = document.getElementById("pdf_english"); pdf_english.attr("href", "http://182.160.16.251:80/user/base/order/uploadReceiptPdf?orderId=" + orderId + "&orderType=4"); Element lost_item_english = document.getElementById("lost_item_english"); @@ -2004,7 +2038,7 @@ document.getElementById("english").remove(); document.getElementsByTag("title").get(0).text("Reçu"); Element title_french = document.getElementById("title_french"); - title_french.text(DateUtil.conversionFormat(language, sdf2.format(orderLogistics.getTravelTime())) + ",Vous consommez GHS " + orderLogistics.getPayMoney() + " sur votre commande i-go1 le "); + title_french.text(DateUtil.conversionFormat(language, sdf2.format(orderLogistics.getTravelTime())) + ",Vous consommez GHS " + orderLogistics.getPayMoney() + " sur votre commande I-GO "); Element qbj_french = document.getElementById("qbj_french"); qbj_french.text("GHS " + new BigDecimal(orderLogistics.getStartMoney()).setScale(2, RoundingMode.HALF_EVEN)); Element scf_french = document.getElementById("scf_french"); @@ -2076,6 +2110,12 @@ pay_type_french.text(payTypeFrench); Element pay_money_french = document.getElementById("pay_money_french"); pay_money_french.text("GHS " + new BigDecimal(orderLogistics.getPayMoney()).setScale(2, RoundingMode.HALF_EVEN)); + Element dispute_french = document.getElementById("dispute_french"); + if(null != orderLogistics.getIsDispute() && orderLogistics.getIsDispute() == 1){ + dispute_french.text("(Remarque: Il s’agit d’une commande contestée, et après des négociations entre trois parties, la plateforme l’a finalement tarifée à GHS " + new BigDecimal(orderLogistics.getOrderMoney()).setScale(2, RoundingMode.HALF_EVEN) + ")"); + }else{ + dispute_french.remove(); + } Element pdf_french = document.getElementById("pdf_french"); pdf_french.attr("href", "http://182.160.16.251:80/user/base/order/uploadReceiptPdf?orderId=" + orderId + "&orderType=4"); Element lost_item_french = document.getElementById("lost_item_french"); @@ -2489,6 +2529,12 @@ pay_type_chinese.text(payTypeChinese); Element pay_money_chinese = document.getElementById("pay_money_chinese"); pay_money_chinese.text("GHS " + new BigDecimal(orderLogistics.getPayMoney()).setScale(2, RoundingMode.HALF_EVEN)); + Element dispute_chinese = document.getElementById("dispute_chinese"); + if(null != orderLogistics.getIsDispute() && orderLogistics.getIsDispute() == 1){ + dispute_chinese.text("(注意: 争议订单,经过三方协商,平台最终定价为 GHS" + new BigDecimal(orderLogistics.getOrderMoney()).setScale(2, RoundingMode.HALF_EVEN) + ")"); + }else{ + dispute_chinese.remove(); + } Element pdf_chinese = document.getElementById("pdf_chinese"); pdf_chinese.attr("href", "http://182.160.16.251:80/user/base/order/uploadReceiptPdf?orderId=" + id + "&orderType=4"); Element lost_item_chinese = document.getElementById("lost_item_chinese"); @@ -2591,6 +2637,12 @@ pay_type_english.text(payTypeEnglish); Element pay_money_english = document.getElementById("pay_money_english"); pay_money_english.text("GHS " + new BigDecimal(orderLogistics.getPayMoney()).setScale(2, RoundingMode.HALF_EVEN)); + Element dispute_english = document.getElementById("dispute_english"); + if(null != orderLogistics.getIsDispute() && orderLogistics.getIsDispute() == 1){ + dispute_english.text("(Note: Disputed order, after tripartite negotiation, the final pricing of the platform is GHS " + new BigDecimal(orderLogistics.getOrderMoney()).setScale(2, RoundingMode.HALF_EVEN) + ")"); + }else{ + dispute_english.remove(); + } Element pdf_english = document.getElementById("pdf_english"); pdf_english.attr("href", "http://182.160.16.251:80/user/base/order/uploadReceiptPdf?orderId=" + id + "&orderType=4"); Element lost_item_english = document.getElementById("lost_item_english"); @@ -2621,7 +2673,7 @@ document.getElementById("english").remove(); document.getElementsByTag("title").get(0).text("Reçu"); Element title_french = document.getElementById("title_french"); - title_french.text(DateUtil.conversionFormat(language, sdf2.format(orderLogistics.getTravelTime())) + ",Vous consommez GHS " + orderLogistics.getPayMoney() + " sur votre commande i-go1 le "); + title_french.text(DateUtil.conversionFormat(language, sdf2.format(orderLogistics.getTravelTime())) + ",Vous consommez GHS " + orderLogistics.getPayMoney() + " sur votre commande I-GO "); Element qbj_french = document.getElementById("qbj_french"); qbj_french.text("GHS " + new BigDecimal(orderLogistics.getStartMoney()).setScale(2, RoundingMode.HALF_EVEN)); Element scf_french = document.getElementById("scf_french"); @@ -2693,6 +2745,12 @@ pay_type_french.text(payTypeFrench); Element pay_money_french = document.getElementById("pay_money_french"); pay_money_french.text("GHS " + new BigDecimal(orderLogistics.getPayMoney()).setScale(2, RoundingMode.HALF_EVEN)); + Element dispute_french = document.getElementById("dispute_french"); + if(null != orderLogistics.getIsDispute() && orderLogistics.getIsDispute() == 1){ + dispute_french.text("(Remarque: Il s’agit d’une commande contestée, et après des négociations entre trois parties, la plateforme l’a finalement tarifée à GHS " + new BigDecimal(orderLogistics.getOrderMoney()).setScale(2, RoundingMode.HALF_EVEN) + ")"); + }else{ + dispute_french.remove(); + } Element pdf_french = document.getElementById("pdf_french"); pdf_french.attr("href", "http://182.160.16.251:80/user/base/order/uploadReceiptPdf?orderId=" + id + "&orderType=4"); Element lost_item_french = document.getElementById("lost_item_french"); @@ -2913,17 +2971,20 @@ } OrderLogistics orderLogistics = this.selectById(orderId); - long timeOutCancel = 0L; - long driverTimeOut = 0L; + map.put("driverTimeOutTime", 0); + map.put("driverTimeOut", 0); if(null != orderLogistics.getEstimateArriveTime()){ CancleOrder cancleOrder = cancleOrderService.selectOne(new EntityWrapper<CancleOrder>().eq("companyId", orderLogistics.getCompanyId())); JSONObject jsonObject = JSON.parseObject(cancleOrder.getContent()); - int driverTimeout = jsonObject.getIntValue("driverTimeout") * 60000; - timeOutCancel = orderLogistics.getEstimateArriveTime().getTime() + driverTimeout; - driverTimeOut = orderLogistics.getEstimateArriveTime().getTime(); + int driverTimeout1 = jsonObject.getIntValue("driverTimeout"); + long time = orderLogistics.getEstimateArriveTime().getTime() + driverTimeout1 * 60000; + if(System.currentTimeMillis() > time){ + Integer driverTimeOutTime = Double.valueOf((System.currentTimeMillis() - time) / 60000).intValue(); + driverTimeOutTime = driverTimeOutTime == 0 ? 1 : driverTimeOutTime; + map.put("driverTimeOutTime", driverTimeOutTime); + map.put("driverTimeOut", 1); + } } - map.put("driverTimeOut", driverTimeOut); - map.put("timeOutCancel", timeOutCancel); } return maps; } @@ -2981,7 +3042,7 @@ if(null == orderLogistics){ return ResultUtil.error(language == 1 ? "取消订单失败,订单信息有误" : language == 2 ? "Failed to cancel order, order-information error." : "Échec de l’annulation de la commande, erreur d’information de commande."); } - if(orderLogistics.getState() > 5 && orderLogistics.getState() != 12){ + if(orderLogistics.getState() > 5 && orderLogistics.getState() != 11 && orderLogistics.getState() != 12){ return ResultUtil.error(language == 1 ? "取消订单失败,不合法的操作" : language == 2 ? "Failed to cancel order, illegal operation." : "Échec de l’annulation de la commande, opération illégale."); } @@ -3049,7 +3110,7 @@ driverService.updateById(driver); } - if(orderLogistics.getState() == 10 || orderLogistics.getState() == 12){ + if((orderLogistics.getState() == 10 || orderLogistics.getState() == 12) && null != orderLogistics.getDriverId()){ //修改行程信息 fleetEngineUtil.updateTrip("CANCELED", null, null, orderLogistics.getTripId(), null, null, null, null); } @@ -3184,16 +3245,21 @@ if(null != map.get("driverId")){ companyId = Integer.valueOf(String.valueOf(map.get("companyId"))); } - map.put("timeOutCancel", 0); + map.put("driverTimeOutTime", 0); map.put("driverTimeOut", 0); if(null != orderLogistics.getEstimateArriveTime()){ CancleOrder cancleOrder = cancleOrderService.selectOne(new EntityWrapper<CancleOrder>().eq("companyId", companyId)); JSONObject jsonObject = JSON.parseObject(cancleOrder.getContent()); - int driverTimeout = jsonObject.getIntValue("driverTimeout"); - long timeOutCancel = orderLogistics.getEstimateArriveTime().getTime() + driverTimeout; - map.put("timeOutCancel", timeOutCancel); - map.put("driverTimeOut", orderLogistics.getEstimateArriveTime().getTime()); + int driverTimeout1 = jsonObject.getIntValue("driverTimeout"); + long time = orderLogistics.getEstimateArriveTime().getTime() + driverTimeout1 * 60000; + if(System.currentTimeMillis() > time){ + Integer driverTimeOutTime = Double.valueOf((System.currentTimeMillis() - time) / 60000).intValue(); + driverTimeOutTime = driverTimeOutTime == 0 ? 1 : driverTimeOutTime; + map.put("driverTimeOutTime", driverTimeOutTime); + map.put("driverTimeOut", 1); + } } + map.put("isDispute", orderLogistics.getIsDispute()); return map; } @@ -3308,10 +3374,7 @@ @Override public ResultUtil cancleOrderPrivateCar(Integer id, Integer payType, Integer bankCardId, Integer cancleId, Integer type, Integer language) throws Exception { OrderLogistics orderLogistics = this.selectById(id); - Integer uid = orderLogistics.getUserId(); - UserInfo userInfo = userInfoService.selectById(uid); ResultUtil resultUtil = ResultUtil.success(""); - if(null == orderLogistics){ return ResultUtil.error(language == 1 ? "取消订单失败,订单信息有误" : language == 2 ? "Failed to cancel order, order-information error." : "Échec de l’annulation de la commande, erreur d’information de commande.", ""); } @@ -3324,7 +3387,9 @@ }else{ orderCancel = orderCancelService.selectById(cancleId); } - + + Integer uid = orderLogistics.getUserId(); + UserInfo userInfo = userInfoService.selectById(uid); Double amount = orderCancel.getMoney(); if(0 < amount){ if(payType == 1){//手机支付 @@ -3668,7 +3733,7 @@ Element user_french = document.getElementById("user_french"); user_french.text("Bonjour " + userInfo.getNickName() + ","); Element time_french = document.getElementById("time_french"); - time_french.text("Cette promotion est valable du " + DateUtil.conversionFormat(language, sdf.format(id.getStartTime())) + " au " + DateUtil.conversionFormat(language, sdf.format(id.getEndTime())) + ". Veuillez consulter la plateforme i-go pour plus de détails."); + time_french.text("Cette promotion est valable du " + DateUtil.conversionFormat(language, sdf.format(id.getStartTime())) + " au " + DateUtil.conversionFormat(language, sdf.format(id.getEndTime())) + ". Veuillez consulter la plateforme I-GO pour plus de détails."); } EmailUtil.send(userInfo.getEmail(), language == 1 ? "红包活动" : language == 2 ? "Lucky-promo activities" : "Activités bonus", document.html()); @@ -3766,13 +3831,14 @@ } } } - + + String tripId = redisUtil.getValue("trip" + uid); String lnt = "0"; String lat = "0"; if(ToolUtil.isNotEmpty(value)){ lnt = value.split(",")[0]; lat = value.split(",")[1]; - DistancematrixVo distancematrix = GoogleMapUtil.getDistancematrix(orderLogistics.getStartLat(), orderLogistics.getStartLon(), Double.valueOf(lat), Double.valueOf(lnt)); + DistancematrixVo distancematrix = GoogleMapUtil.getDistancematrix(orderLogistics.getStartLat(), orderLogistics.getStartLon(), Double.valueOf(lat), Double.valueOf(lnt), tripId); if(null == distancematrix){ System.err.println("查询距离出错了"); @@ -3800,7 +3866,7 @@ orderServerWarpper.setLaveTime("0"); } if(orderLogistics.getState() == 5 || orderLogistics.getState() == 6){//服务中 - DistancematrixVo distancematrix = GoogleMapUtil.getDistancematrix(Double.valueOf(lat), Double.valueOf(lnt), orderLogistics.getEndLat(), orderLogistics.getEndLon()); + DistancematrixVo distancematrix = GoogleMapUtil.getDistancematrix(Double.valueOf(lat), Double.valueOf(lnt), orderLogistics.getEndLat(), orderLogistics.getEndLon(), tripId); if(null == distancematrix){ System.err.println("查询距离出错了"); }else if(distancematrix.getDistance() == 0){ -- Gitblit v1.7.1