From 4f9707811eef19b7c9f59d587d05208b40a23b54 Mon Sep 17 00:00:00 2001 From: Pu Zhibing <393733352@qq.com> Date: 星期四, 10 七月 2025 17:35:02 +0800 Subject: [PATCH] 增加redis锁 --- DriverZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PushMinistryOfTransportUtil.java | 183 ++++++++++++++++++++++++++++++++++++--------- 1 files changed, 144 insertions(+), 39 deletions(-) diff --git a/DriverZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PushMinistryOfTransportUtil.java b/DriverZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PushMinistryOfTransportUtil.java index 8a14f3c..6c9d2db 100644 --- a/DriverZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PushMinistryOfTransportUtil.java +++ b/DriverZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PushMinistryOfTransportUtil.java @@ -58,6 +58,8 @@ @Autowired private ITransactionDetailsService transactionDetailsService; + @Autowired + private GDMapGeocodingUtil gdMapGeocodingUtil; private String path = "http://127.0.0.1:8868/"; @@ -101,11 +103,26 @@ * 订单发起接口 * @param orderId */ - public void orderCreate(Integer orderId){ + public void orderCreate(Integer orderId) { OrderPrivateCar orderPrivateCar = orderPrivateCarService.selectById(orderId); Map<String, Object> query = systemPriceMapper.query(orderPrivateCar.getCompanyId(), 1, orderPrivateCar.getServerCarModelId()); JSONObject jsonObject = new JSONObject(); - jsonObject.put("Address", 530602);//发起第行政区划代码 + if (orderPrivateCar.getBoardingLon()!=null && orderPrivateCar.getBoardingLat()!=null){ + Map<String, String> geocode = null; + try { + geocode = gdMapGeocodingUtil.geocode(orderPrivateCar.getBoardingLon() + "", orderPrivateCar.getBoardingLat() + ""); + } catch (Exception e) { + throw new RuntimeException(e); + } + if (geocode!=null){ + System.err.println("数据上传--经纬度转行政区划代码"); + jsonObject.put("Address", geocode.get("provinceCode"));//发起第行政区划代码 + }else{ + jsonObject.put("Address", 530602);//发起第行政区划代码 + } + }else{ + jsonObject.put("Address", 530602);//发起第行政区划代码 + } jsonObject.put("OrderId", orderPrivateCar.getOrderNum());//订单编号 jsonObject.put("DepartTime", orderPrivateCar.getTravelTime());//预计用车时间YYYYMMDDhhmmss jsonObject.put("OrderTime", orderPrivateCar.getInsertTime());//订单发起时间YYYYMMDDhhmmss @@ -126,13 +143,14 @@ header.put("Accept", "*/*"); header.put("Accept-Encoding", "gzip"); header.put("Accept-Charset", "utf-8"); + System.err.println("订单发起==============================="+map); String result = null; try { result = httpClientUtil.pushHttpRequset("POST", path + "ministryOfTransport/orderCreate", map, header,"form").toString(); } catch (Exception e) { e.printStackTrace(); } - System.err.println("---------------------------订单发起接口----------------------:" + result); + System.err.println("--------------------------订单发起接口------------------------:" + result); } @@ -140,30 +158,50 @@ * 订单成功接口 * @param orderId */ - public void orderMatch(Integer orderId){ + public void orderMatch(Integer orderId) { OrderPrivateCar orderPrivateCar = orderPrivateCarService.selectById(orderId); Driver driver = driverService.selectById(orderPrivateCar.getDriverId()); Car car = carService.selectById(orderPrivateCar.getCarId()); String value = redisUtil.getValue("DRIVER" + orderPrivateCar.getDriverId()); JSONObject jsonObject = new JSONObject(); - jsonObject.put("Address", 530602);//发起地行政区划代码 + if (orderPrivateCar.getBoardingLon()!=null && orderPrivateCar.getBoardingLat()!=null){ + Map<String, String> geocode = null; + try { + geocode = gdMapGeocodingUtil.geocode(orderPrivateCar.getBoardingLon() + "", orderPrivateCar.getBoardingLat() + ""); + } catch (Exception e) { + throw new RuntimeException(e); + } + if (geocode!=null){ + System.err.println("数据上传--经纬度转行政区划代码"); + jsonObject.put("Address", geocode.get("provinceCode"));//发起第行政区划代码 + }else{ + jsonObject.put("Address", 530602);//发起第行政区划代码 + } + }else{ + jsonObject.put("Address", 530602);//发起第行政区划代码 + } jsonObject.put("OrderId", orderPrivateCar.getOrderNum());//订单编号 jsonObject.put("Longitude", Double.valueOf(value.split(",")[0]));//车辆经度 jsonObject.put("Latitude", Double.valueOf(value.split(",")[1]));//车辆纬度 jsonObject.put("Encrypt", 1);//坐标加密标识(1:GCJ-02测绘局标准,2:WGS84 GPS标准,3:BD-09百度标准,4:CGCS2000北斗标准,0:其他) - jsonObject.put("LicenseId", driver.getDriveCard());//机动车驾驶证编号 + if (driver.getIdCard() == null){ + return; + }else if (driver.getIdCard().isEmpty()){ + return; + } + jsonObject.put("LicenseId", driver.getIdCard());//机动车驾驶证编号 jsonObject.put("DriverPhone", driver.getPhone());//驾驶员手机号 jsonObject.put("VehicleNo", car.getCarLicensePlate());//车辆号牌 jsonObject.put("DistributeTime", new Date());//派单成功时间YYYYMMDDhhmmss Map<String, Object> map = new HashMap<>(); map.put("orderMatch", jsonObject.toJSONString()); - Map<String, String> header = new HashMap<>(); header.put("Connection", "keep-alive"); header.put("Content-Type", "application/x-www-form-urlencoded"); header.put("Accept", "*/*"); header.put("Accept-Encoding", "gzip"); header.put("Accept-Charset", "utf-8"); + System.err.println("订单成功==============================="+map); String result = null; try { result = httpClientUtil.pushHttpRequset("POST", path + "ministryOfTransport/orderMatch", map, header,"form").toString(); @@ -184,7 +222,12 @@ String value = redisUtil.getValue("DRIVER" + driverId); if(ToolUtil.isNotEmpty(value)){ JSONObject jsonObject = new JSONObject(); - jsonObject.put("LicenseId", driver.getDriveCard());//机动车驾驶证号 + if (driver.getIdCard() == null){ + return; + }else if (driver.getIdCard().isEmpty()){ + return; + } + jsonObject.put("LicenseId", driver.getIdCard());//机动车驾驶证号 jsonObject.put("VehicleNo", car.getCarLicensePlate());//车辆号牌 jsonObject.put("LoginTime", new Date());//车辆经营上线时间YYYYMMDDhhmmss jsonObject.put("Longitude", Double.valueOf(value.split(",")[0]));//上线经度 @@ -219,7 +262,12 @@ String value = redisUtil.getValue("DRIVER" + driverId); if(ToolUtil.isNotEmpty(value)){ JSONObject jsonObject = new JSONObject(); - jsonObject.put("LicenseId", driver.getDriveCard());//机动车驾驶证号 + if (driver.getIdCard() == null){ + return; + }else if (driver.getIdCard().isEmpty()){ + return; + } + jsonObject.put("LicenseId", driver.getIdCard());//机动车驾驶证号 jsonObject.put("VehicleNo", car.getCarLicensePlate());//车辆号牌 jsonObject.put("LogoutTime", new Date());//车辆经营下线时间YYYYMMDDhhmmss jsonObject.put("Longitude", Double.valueOf(value.split(",")[0]));//下线经度 @@ -255,7 +303,12 @@ Car car = carService.selectById(orderPrivateCar.getCarId()); JSONObject jsonObject = new JSONObject(); jsonObject.put("OrderId", orderPrivateCar.getOrderNum());//订单号 - jsonObject.put("LicenseId", driver.getDriveCard());//机动车驾驶证号 + if (driver.getIdCard() == null){ + return; + }else if (driver.getIdCard().isEmpty()){ + return; + } + jsonObject.put("LicenseId", driver.getIdCard());//机动车驾驶证号 jsonObject.put("FareType", query.get("id").toString());//运价类型编码 jsonObject.put("VehicleNo", car.getCarLicensePlate());//车辆号牌 jsonObject.put("DepLongitude", Double.valueOf(orderPrivateCar.getBoardingLon()));//车辆出发经度 @@ -280,7 +333,6 @@ jsonObject.put("WaitTime", orderPrivateCar.getWait() * 60);//等待时间(秒) Map<String, Object> map = new HashMap<>(); map.put("operateDepart", jsonObject.toJSONString()); - Map<String, String> header = new HashMap<>(); header.put("Connection", "keep-alive"); header.put("Content-Type", "application/x-www-form-urlencoded"); @@ -333,18 +385,39 @@ * 经营支付接口 * @param orderId */ - public void operatePay(Integer orderId){ + public void operatePay(Integer orderId) { OrderPrivateCar orderPrivateCar = orderPrivateCarService.selectById(orderId); Driver driver = driverService.selectById(orderPrivateCar.getDriverId()); Map<String, Object> query = systemPriceMapper.query(orderPrivateCar.getCompanyId(), 1, orderPrivateCar.getServerCarModelId()); Car car = carService.selectById(orderPrivateCar.getCarId()); ServerCarModel serverCarModel = serverCarModelMapper.selectById(orderPrivateCar.getServerCarModelId()); - TransactionDetails transactionDetails = transactionDetailsService.selectById(new EntityWrapper<TransactionDetails>().eq("orderType", 1).eq("orderId", orderId)); + TransactionDetails transactionDetails = transactionDetailsService.selectOne(new EntityWrapper<TransactionDetails>().eq("orderType", 1).eq("orderId", orderId)); JSONObject jsonObject = new JSONObject(); jsonObject.put("OrderId", orderPrivateCar.getOrderNum());//订单号 - jsonObject.put("OnArea", 530602);//上车位置行政区划代码 + if (orderPrivateCar.getBoardingLon()!=null && orderPrivateCar.getBoardingLat()!=null){ + Map<String, String> geocode = null; + try { + geocode = gdMapGeocodingUtil.geocode(orderPrivateCar.getBoardingLon() + "", orderPrivateCar.getBoardingLat() + ""); + } catch (Exception e) { + throw new RuntimeException(e); + } + if (geocode!=null){ + System.err.println("数据上传--经纬度转行政区划代码"); + jsonObject.put("OnArea", geocode.get("provinceCode"));//发起第行政区划代码 + }else{ + jsonObject.put("OnArea", 530602);//发起第行政区划代码 + } + }else{ + jsonObject.put("OnArea", 530602);//发起第行政区划代码 + } +// jsonObject.put("OnArea", 530602);//上车位置行政区划代码 jsonObject.put("DriverName", driver.getName());//机动车驾驶员 - jsonObject.put("LicenseId", driver.getDriveCard());//机动车驾驶证号 + if (driver.getIdCard() == null){ + return; + }else if (driver.getIdCard().isEmpty()){ + return; + } + jsonObject.put("LicenseId", driver.getIdCard());//机动车驾驶证号 jsonObject.put("FareType", query.get("id").toString());//运价类型编码(由网约车公司定义,与运价信息接口保持一街) jsonObject.put("VehicleNo", car.getCarLicensePlate());//车辆号牌 jsonObject.put("BookDepTime", orderPrivateCar.getTravelTime());//预计上车时间YYYYMMDDhhmmss @@ -423,7 +496,7 @@ * 驾驶员定位信息 * @param orderId */ - public void positionDriver(Integer orderId){ + public void positionDriver(Integer orderId) { OrderPrivateCar orderPrivateCar = orderPrivateCarService.selectById(orderId); Driver driver = driverService.selectById(orderPrivateCar.getDriverId()); Car car = carService.selectById(orderPrivateCar.getCarId()); @@ -440,7 +513,7 @@ Double Speed = 0D; if(orderPositions != null && orderPositions.size() > 1){ Map<String, String> distance = gdMapElectricFenceUtil.getDistance(orderPositions.get(orderPositions.size() - 1).getLon() + "," + orderPositions.get(orderPositions.size() - 1).getLat(), - orderPositions.get(orderPositions.size() - 1).getLon() + "," + orderPositions.get(orderPositions.size() - 1).getLat(), 0); + orderPositions.get(orderPositions.size() - 0).getLon() + "," + orderPositions.get(orderPositions.size() - 0).getLat(), 0); Speed = distance != null ? Double.valueOf(distance.get("distance")) / 1000 : 0D; } Integer state = 4; @@ -459,8 +532,29 @@ } JSONObject jsonObject = new JSONObject(); - jsonObject.put("LicenseId", driver.getDriveCard());//机动车驾驶证号 - jsonObject.put("DriverRegionCode", 530602);//行政区划代码 + if (driver.getIdCard() == null){ + return; + }else if (driver.getIdCard().isEmpty()){ + return; + } + jsonObject.put("LicenseId", driver.getIdCard());//机动车驾驶证号 + if (orderPrivateCar.getBoardingLon()!=null && orderPrivateCar.getBoardingLat()!=null){ + Map<String, String> geocode = null; + try { + geocode = gdMapGeocodingUtil.geocode(orderPrivateCar.getBoardingLon() + "", orderPrivateCar.getBoardingLat() + ""); + } catch (Exception e) { + throw new RuntimeException(e); + } + if (geocode!=null){ + System.err.println("数据上传--经纬度转行政区划代码"); + jsonObject.put("DriverRegionCode", geocode.get("provinceCode"));//发起第行政区划代码 + }else{ + jsonObject.put("DriverRegionCode", 530602);//发起第行政区划代码 + } + }else{ + jsonObject.put("DriverRegionCode", 530602);//发起第行政区划代码 + } +// jsonObject.put("DriverRegionCode", 530602);//行政区划代码 jsonObject.put("VehicleNo", car.getCarLicensePlate());//车辆号牌 jsonObject.put("PositionTime", new Date());//定位时间(时间戳) jsonObject.put("Longitude", Longitude);//经度 @@ -473,25 +567,19 @@ jsonObject.put("OrderId", orderNum);//订单编号 Map<String, Object> map = new HashMap<>(); map.put("positionDriver", jsonObject.toJSONString()); - Map<String, String> header = new HashMap<>(); header.put("Connection", "keep-alive"); header.put("Content-Type", "application/x-www-form-urlencoded"); header.put("Accept", "*/*"); header.put("Accept-Encoding", "gzip"); header.put("Accept-Charset", "utf-8"); + String result = null; try { - HttpRequest post = HttpUtil.createPost(path + "ministryOfTransport/positionDriver"); - post.header("Connection", "keep-alive"); - post.header("Content-Type", "application/x-www-form-urlencoded"); - post.header("Accept", "*/*"); - post.header("Accept-Encoding", "gzip"); - post.header("Accept-Charset", "utf-8"); - post.body(JSON.toJSONString(map)); - post.execute(); + result = httpClientUtil.pushHttpRequset("POST", path + "ministryOfTransport/positionDriver", map, header,"form").toString(); } catch (Exception e) { e.printStackTrace(); } + System.err.println("-----------------------------驾驶员定位信息------------------------:" + result); } @@ -499,7 +587,7 @@ * 车辆定位信息 * @param orderId */ - public void positionVehicle(Integer orderId){ + public void positionVehicle(Integer orderId) { OrderPrivateCar orderPrivateCar = orderPrivateCarService.selectById(orderId); Car car = carService.selectById(orderPrivateCar.getCarId()); List<OrderPosition> orderPositions = null; @@ -515,7 +603,7 @@ Double Speed = 0D; if(orderPositions != null && orderPositions.size() > 1){ Map<String, String> distance = gdMapElectricFenceUtil.getDistance(orderPositions.get(orderPositions.size() - 1).getLon() + "," + orderPositions.get(orderPositions.size() - 1).getLat(), - orderPositions.get(orderPositions.size() - 1).getLon() + "," + orderPositions.get(orderPositions.size() - 1).getLat(), 0); + orderPositions.get(orderPositions.size() - 0).getLon() + "," + orderPositions.get(orderPositions.size() - 0).getLat(), 0); Speed = distance != null ? Double.valueOf(distance.get("distance")) / 1000 : 0D; } Integer state = 4; @@ -534,7 +622,23 @@ } JSONObject jsonObject = new JSONObject(); jsonObject.put("VehicleNo", car.getCarLicensePlate());//车辆号牌 - jsonObject.put("VehicleRegionCode", 530602);//行政区划代码 + if (orderPrivateCar.getBoardingLon()!=null && orderPrivateCar.getBoardingLat()!=null){ + Map<String, String> geocode = null; + try { + geocode = gdMapGeocodingUtil.geocode(orderPrivateCar.getBoardingLon() + "", orderPrivateCar.getBoardingLat() + ""); + } catch (Exception e) { + throw new RuntimeException(e); + } + if (geocode!=null){ + System.err.println("数据上传--经纬度转行政区划代码"); + jsonObject.put("VehicleRegionCode", geocode.get("provinceCode"));//发起第行政区划代码 + }else{ + jsonObject.put("VehicleRegionCode", 530602);//发起第行政区划代码 + } + }else{ + jsonObject.put("VehicleRegionCode", 530602);//发起第行政区划代码 + } +// jsonObject.put("VehicleRegionCode", 530602);//行政区划代码 jsonObject.put("PositionTime", new Date());//定位时间(时间戳) jsonObject.put("Longitude", Longitude);//经度 jsonObject.put("Latitude", Latitude);//纬度 @@ -549,18 +653,19 @@ jsonObject.put("OrderId", orderNum);//订单编号(非营运状态下填"0") Map<String, Object> map = new HashMap<>(); map.put("positionVehicle", jsonObject.toJSONString()); + Map<String, String> header = new HashMap<>(); + header.put("Connection", "keep-alive"); + header.put("Content-Type", "application/x-www-form-urlencoded"); + header.put("Accept", "*/*"); + header.put("Accept-Encoding", "gzip"); + header.put("Accept-Charset", "utf-8"); + String result = null; try { - HttpRequest post = HttpUtil.createPost(path + "ministryOfTransport/positionVehicle"); - post.header("Connection", "keep-alive"); - post.header("Content-Type", "application/x-www-form-urlencoded"); - post.header("Accept", "*/*"); - post.header("Accept-Encoding", "gzip"); - post.header("Accept-Charset", "utf-8"); - post.body(JSON.toJSONString(map)); - post.execute(); + result = httpClientUtil.pushHttpRequset("POST", path + "ministryOfTransport/positionVehicle", map, header,"form").toString(); } catch (Exception e) { e.printStackTrace(); } + System.err.println("----------------------------车辆定位信息---------------------------:" + result); } -- Gitblit v1.7.1