From ab7cc0cb35f3375b35f7f3d866704d1383ddcff5 Mon Sep 17 00:00:00 2001 From: puzhibing <393733352@qq.com> Date: 星期三, 14 九月 2022 11:18:34 +0800 Subject: [PATCH] 更新接口 --- DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GoogleMap/ReverseGeocodeVo.java | 29 + DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IDriverService.java | 20 DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/CityMapper.xml | 12 DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/CityServiceImpl.java | 11 DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderServiceImpl.java | 240 ++++---- DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java | 14 DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/CompanyMapper.java | 4 DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ICarService.java | 4 DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Driver.java | 57 + DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ICompanyCityService.java | 9 DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/CarController.java | 8 DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/CompanyCityServiceImpl.java | 15 DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GoogleMap/DistancematrixVo.java | 29 + DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GeodesyUtil.java | 74 ++ DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/CityMapper.java | 7 DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/CompanyMapper.xml | 66 ++ DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/DriverInfoWarpper.java | 22 DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java | 97 ++- DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GoogleMap/AddressComponentsVo.java | 28 + DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PushUtil.java | 44 + DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java | 59 + DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/CarServiceImpl.java | 14 DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java | 25 DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java | 6 DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ICityService.java | 7 DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/DriverMapper.xml | 7 DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GoogleMap/GeocodeVo.java | 28 + DriverIGOTravel/guns-admin/pom.xml | 22 DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GoogleMap/FindPlaceFromTextVo.java | 52 ++ DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Car.java | 13 DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/City.java | 68 ++ DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/EmailUtil.java | 96 +++ DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/RegisteredWarpper.java | 97 +-- DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/impl/OrderLogisticsServiceImpl.java | 20 DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GoogleMap/GoogleMapUtil.java | 191 +++++++ 35 files changed, 1,220 insertions(+), 275 deletions(-) diff --git a/DriverIGOTravel/guns-admin/pom.xml b/DriverIGOTravel/guns-admin/pom.xml index 145927c..ef5d96e 100644 --- a/DriverIGOTravel/guns-admin/pom.xml +++ b/DriverIGOTravel/guns-admin/pom.xml @@ -223,6 +223,28 @@ <artifactId>spring-test</artifactId> <version>5.1.3.RELEASE</version> </dependency> + <!--邮件发送依赖--> + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-mail</artifactId> + </dependency> + <!--谷歌地图依赖--> + <dependency> + <groupId>com.google.maps</groupId> + <artifactId>google-maps-services</artifactId> + <version>2.0.0</version> + </dependency> + <dependency> + <groupId>org.slf4j</groupId> + <artifactId>slf4j-simple</artifactId> + <version>1.7.25</version> + </dependency> + <!-- 计算两坐标间的直线距离 --> + <dependency> + <groupId>org.gavaghan</groupId> + <artifactId>geodesy</artifactId> + <version>1.1.3</version> + </dependency> </dependencies> <build> diff --git a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/CarController.java b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/CarController.java index 900e614..b77fff5 100644 --- a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/CarController.java +++ b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/CarController.java @@ -99,7 +99,7 @@ */ @ResponseBody @PostMapping("/api/car/addCar") - @ApiOperation(value = "添加车辆", tags = {"司机端-个人中心"}, notes = "") + @ApiOperation(value = "添加车辆【1.0】", tags = {"司机端-个人中心"}, notes = "") @ApiImplicitParams({ @ApiImplicitParam(value = "车辆型号id", name = "modelId", required = true, dataType = "int"), @ApiImplicitParam(value = "车辆id", name = "id", required = true, dataType = "int"), @@ -107,18 +107,20 @@ @ApiImplicitParam(value = "车牌号", name = "licensePlate", required = true, dataType = "string"), @ApiImplicitParam(value = "年审日期(需要格式化)", name = "time", required = false, dataType = "string"), @ApiImplicitParam(value = "行驶证照片", name = "drivingLicensePhoto", required = true, dataType = "string"), + @ApiImplicitParam(value = "行驶证到期时间(yyyy-MM-dd)", name = "drivingLicenseEndTime", required = true, dataType = "string"), @ApiImplicitParam(value = "车辆照片", name = "carPhoto", required = true, dataType = "string"), @ApiImplicitParam(value = "保险照片", name = "insurancePhoto", required = false, dataType = "string"), + @ApiImplicitParam(value = "保险到期时间(yyyy-MM-dd)", name = "commercialInsuranceTime", required = false, dataType = "string"), @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = false, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") }) public ResultUtil addCar(Integer modelId, String color, String licensePlate, Date time, String drivingLicensePhoto, - String carPhoto, String insurancePhoto, HttpServletRequest request,Integer id){ + String drivingLicenseEndTime, String carPhoto, String insurancePhoto, String commercialInsuranceTime, HttpServletRequest request,Integer id){ try { Integer uid = driverService.getUserIdFormRedis(request); if(null == uid){ return ResultUtil.tokenErr(); } - return carService.addCar(modelId, color, licensePlate, time, drivingLicensePhoto, carPhoto, insurancePhoto, uid,id); + return carService.addCar(modelId, color, licensePlate, time, drivingLicensePhoto, drivingLicenseEndTime, carPhoto, insurancePhoto, commercialInsuranceTime, uid,id); }catch (Exception e){ e.printStackTrace(); return ResultUtil.runErr(); diff --git a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java index b9a4587..e4e0752 100644 --- a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java +++ b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java @@ -137,26 +137,47 @@ } } + + @ResponseBody + @PostMapping("/base/driver/queryEmailCaptcha") + @ApiOperation(value = "发送验证码【1.0】", tags = {"司机端-注册"}, notes = "") + @ApiImplicitParams({ + @ApiImplicitParam(value = "邮箱地址", name = "email", required = true, dataType = "String"), + }) + public ResultUtil queryEmailCaptcha(String email){ + if(ToolUtil.isNotEmpty(email)){ + try { + return driverService.queryEmailCaptcha(email); + }catch (Exception e){ + e.printStackTrace(); + return ResultUtil.runErr(); + } + }else{ + return ResultUtil.paranErr(); + } + } + + + /** * 验证短信验证码 - * @param phone * @param code * @return */ @ResponseBody @PostMapping("/base/driver/checkCaptcha") - @ApiOperation(value = "验证短信验证码", tags = {"司机端-注册"}, notes = "") + @ApiOperation(value = "验证验证码", tags = {"司机端-注册"}, notes = "") @ApiImplicitParams({ - @ApiImplicitParam(value = "手机号码", name = "phone", required = true, dataType = "String"), - @ApiImplicitParam(value = "短信验证码", name = "code", required = true, dataType = "String") + @ApiImplicitParam(value = "邮箱", name = "email", required = true, dataType = "String"), + @ApiImplicitParam(value = "验证码", name = "code", required = true, dataType = "String") }) - public ResultUtil checkCaptcha(String phone, String code){ + public ResultUtil checkCaptcha(String email, String code){ try { - boolean b = driverService.checkCaptcha(phone, code); - if(b){ - Driver driver = driverService.queryByPhone(phone); - smsrecordService.saveData(null == driver ? 5 : 8, phone, code, "短信验证码【" + code + "】已发到您的手机,验证码将在5分钟后失效,请及时登录!"); - } + boolean b = driverService.checkCaptcha(email, code); +// if(b){ +// Driver driver = driverService.queryByPhone(email); +// smsrecordService.saveData(null == driver ? 5 : 8, email, code, "验证码【" + code + "】已发到您的邮箱,验证码将在5分钟后失效!"); +// } return b ? ResultUtil.success() : ResultUtil.error("验证码无效"); }catch (Exception e){ e.printStackTrace(); @@ -242,7 +263,7 @@ */ @ResponseBody @PostMapping("/base/driver/updateDriver") - @ApiOperation(value = "司机注册后完善个人信息", tags = {"司机端-注册"}, notes = "") + @ApiOperation(value = "司机注册后完善个人信息【1.0】", tags = {"司机端-注册"}, notes = "") @ApiImplicitParams({ @ApiImplicitParam(value = "司机id", name = "uid", required = true, dataType = "int") }) @@ -261,22 +282,24 @@ */ @ResponseBody @PostMapping("/base/driver/addDriverCar") - @ApiOperation(value = "司机注册后完善车辆信息", tags = {"司机端-注册"}, notes = "") + @ApiOperation(value = "司机注册后完善车辆信息【1.0】", tags = {"司机端-注册"}, notes = "") @ApiImplicitParams({ @ApiImplicitParam(value = "车辆型号id", name = "modelId", required = true, dataType = "int"), @ApiImplicitParam(value = "车辆颜色", name = "color", required = true, dataType = "string"), @ApiImplicitParam(value = "车牌号", name = "licensePlate", required = true, dataType = "string"), @ApiImplicitParam(value = "年审日期(需要格式化)", name = "time", required = false, dataType = "string"), @ApiImplicitParam(value = "行驶证照片", name = "drivingLicensePhoto", required = true, dataType = "string"), + @ApiImplicitParam(value = "行驶证到期时间(yyyy-MM-dd)", name = "drivingLicenseEndTime", required = true, dataType = "string"), @ApiImplicitParam(value = "车辆照片", name = "carPhoto", required = true, dataType = "string"), @ApiImplicitParam(value = "保险照片", name = "insurancePhoto", required = false, dataType = "string"), + @ApiImplicitParam(value = "保险到期时间(yyyy-MM-dd)", name = "commercialInsuranceTime", required = false, dataType = "string"), @ApiImplicitParam(value = "司机id", name = "uid", required = true, dataType = "int"), @ApiImplicitParam(value = "车辆id", name = "carId", required = false, dataType = "int") }) - public ResultUtil addDriverCar(Integer modelId, String color, String licensePlate, Date time, String drivingLicensePhoto, - String carPhoto, String insurancePhoto, Integer uid, Integer carId){ + public ResultUtil addDriverCar(Integer modelId, String color, String licensePlate, Date time, String drivingLicensePhoto, String drivingLicenseEndTime, + String carPhoto, String insurancePhoto, String commercialInsuranceTime, Integer uid, Integer carId){ try { - return carService.addCar(modelId, color, licensePlate, time, drivingLicensePhoto, carPhoto, insurancePhoto, uid,carId); + return carService.addCar(modelId, color, licensePlate, time, drivingLicensePhoto, drivingLicenseEndTime, carPhoto, insurancePhoto, commercialInsuranceTime, uid,carId); }catch (Exception e){ e.printStackTrace(); return ResultUtil.runErr(); @@ -339,7 +362,7 @@ @ApiOperation(value = "忘记密码操作", tags = {"司机端-登录"}, notes = "") @ApiImplicitParams({ @ApiImplicitParam(value = "手机号码", name = "phone", required = true, dataType = "String"), - @ApiImplicitParam(value = "短信验证码", name = "code", required = true, dataType = "String"), + @ApiImplicitParam(value = "验证码", name = "code", required = true, dataType = "String"), @ApiImplicitParam(value = "新密码", name = "password", required = true, dataType = "String") }) public ResultUtil resetPassword(String phone, String code, String password){ @@ -358,13 +381,14 @@ */ @ResponseBody @PostMapping("/base/driver/queryPhone") - @ApiOperation(value = "获取忘记密码页面的电话", tags = {"司机端-登录"}, notes = "") + @ApiOperation(value = "获取忘记密码页面的电话【1.0】", tags = {"司机端-登录"}, notes = "") @ApiImplicitParams({ - @ApiImplicitParam(value = "当前定位城市行政编号(510100)", name = "code", required = true, dataType = "String") + @ApiImplicitParam(value = "当前定位纬度", name = "lat", required = true, dataType = "double"), + @ApiImplicitParam(value = "当前定位经度", name = "lnt", required = true, dataType = "double") }) - public ResultUtil queryPhone(String code){ + public ResultUtil queryPhone(Double lat, Double lnt){ try { - Map<String, Object> map = driverService.queryPhone(code); + Map<String, Object> map = driverService.queryPhone(lat, lnt); return ResultUtil.success(map); }catch (Exception e){ e.printStackTrace(); @@ -430,9 +454,9 @@ */ @ResponseBody @PostMapping("/api/driver/work") - @ApiOperation(value = "司机上下班操作", tags = {"司机端-首页"}, notes = "") + @ApiOperation(value = "司机上下班操作【1.0】", tags = {"司机端-首页"}, notes = "") @ApiImplicitParams({ - @ApiImplicitParam(value = "上班的业务类型(1=专车,2=出租车,3=城际,4=小件物流-同城,5=小件物流-跨城)多个已逗号分隔", name = "type", required = false, dataType = "String"), + @ApiImplicitParam(value = "上班的业务类型(1=专车,4=小件物流-同城)多个已逗号分隔", name = "type", required = false, dataType = "String"), @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") }) public ResultUtil work(String type, HttpServletRequest request){ @@ -505,9 +529,9 @@ @ResponseBody @PostMapping("/api/driver/work2") - @ApiOperation(value = "司机上下班操作,同时设置接单类型", tags = {"司机端-车载端"}, notes = "") + @ApiOperation(value = "司机上下班操作,同时设置接单类型【1.0】", tags = {"司机端-车载端"}, notes = "") @ApiImplicitParams({ - @ApiImplicitParam(value = "上班的业务类型(1=专车,2=出租车,3=城际,4=小件物流-同城,5=小件物流-跨城)多个已逗号分隔", name = "type", required = false, dataType = "String"), + @ApiImplicitParam(value = "上班的业务类型(1=专车,4=小件物流-同城)多个已逗号分隔", name = "type", required = false, dataType = "String"), @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") }) public ResultUtil work2(String type, HttpServletRequest request){ @@ -626,7 +650,7 @@ */ @ResponseBody @PostMapping("/api/driver/queryInfo") - @ApiOperation(value = "获取个人中心详情", tags = {"司机端-个人中心"}, notes = "") + @ApiOperation(value = "获取个人中心详情【1.0】", tags = {"司机端-个人中心"}, notes = "") @ApiImplicitParams({ @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") }) @@ -678,6 +702,29 @@ } } + @ResponseBody + @PostMapping("/api/driver/editLanguage") + @ApiOperation(value = "修改系统语言【1.0】", tags = {"司机端-个人中心"}, notes = "") + @ApiImplicitParams({ + @ApiImplicitParam(value = "语言类型(1=简体中文,2=英语,3=法语)", name = "language", required = true, dataType = "String"), + @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") + }) + public ResultUtil editLanguage(Integer language, HttpServletRequest request){ + try { + Integer uid = driverService.getUserIdFormRedis(request); + if(null == uid){ + return ResultUtil.tokenErr(); + } + driverService.editLanguage(language, uid); + return ResultUtil.success(); + }catch (Exception e){ + e.printStackTrace(); + return ResultUtil.runErr(); + } + } + + + /** * 修改密码 * @param password diff --git a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java index 57c3601..e670dbc 100644 --- a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java +++ b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java @@ -179,10 +179,10 @@ */ @ResponseBody @PostMapping("/api/order/queryPushOrder") - @ApiOperation(value = "获取抢单界面的订单详情", tags = {"司机端-首页"}, notes = "") + @ApiOperation(value = "获取抢单界面的订单详情【1.0】", tags = {"司机端-首页"}, notes = "") @ApiImplicitParams({ @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "int"), - @ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=城际,4=小件物流-同城,5=小件物流-跨城)", name = "orderType", required = true, dataType = "int"), + @ApiImplicitParam(value = "订单类型(1=专车,4=小件物流-同城)", name = "orderType", required = true, dataType = "int"), @ApiImplicitParam(value = "当前定位经度", name = "lon", required = true, dataType = "string"), @ApiImplicitParam(value = "当前定位纬度", name = "lat", required = true, dataType = "string"), @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") @@ -212,7 +212,7 @@ @ApiOperation(value = "司机抢单操作", tags = {"司机端-首页"}, notes = "") @ApiImplicitParams({ @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "int"), - @ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=城际,4=小件物流-同城,5=小件物流-跨城)", name = "orderType", required = true, dataType = "int"), + @ApiImplicitParam(value = "订单类型(1=专车,4=小件物流-同城)", name = "orderType", required = true, dataType = "int"), @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") }) public ResultUtil grabOrder(Integer orderId, Integer orderType, HttpServletRequest request){ @@ -239,14 +239,14 @@ @ApiOperation(value = "获取服务中页面订单详情", tags = {"司机端-服务中"}, notes = "") @ApiImplicitParams({ @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "int"), - @ApiImplicitParam(value = "订单类型(1=专车,2=出租车,4=小件物流-同城,5=小件物流-跨城)", name = "orderType", required = true, dataType = "int"), + @ApiImplicitParam(value = "订单类型(1=专车,4=小件物流-同城)", name = "orderType", required = true, dataType = "int"), @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") }) public ResultUtil<OrderInfoWarpper> queryOrderInfo(Integer orderId, Integer orderType){ try { Map<String, Object> map = orderService.queryOrderInfo(orderId, orderType); OrderInfoWarpper orderInfoWarpper = OrderInfoWarpper.getOrderInfoWarpper(map); - File file = new File(filePath + orderId + "_1.txt"); + File file = new File(filePath + orderId + "_" + orderType + ".txt"); if(file.exists()){ //读取文件(字符流) BufferedReader in = new BufferedReader(new InputStreamReader(new FileInputStream(file),"UTF-8")); @@ -280,7 +280,7 @@ @ApiOperation(value = "获取改派支付金额", tags = {"司机端-服务中"}, notes = "返回金额为0不需要调用支付") @ApiImplicitParams({ @ApiImplicitParam(value = "订单id(跨城多个订单使用逗号分隔)", name = "orderId", required = true, dataType = "string"), - @ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=城际,4=小件物流-同城,5=小件物流-跨城)", name = "orderType", required = true, dataType = "int"), + @ApiImplicitParam(value = "订单类型(1=专车,4=小件物流-同城)", name = "orderType", required = true, dataType = "int"), @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") }) public ResultUtil<BaseWarpper> queryReassignMoney(String orderId, Integer orderType){ @@ -348,7 +348,7 @@ @ApiOperation(value = "司机走流程操作", tags = {"司机端-服务中"}, notes = "") @ApiImplicitParams({ @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "int"), - @ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=城际,4=小件物流-同城,5=小件物流-跨城)", name = "orderType", required = true, dataType = "int"), + @ApiImplicitParam(value = "订单类型(1=专车,4=小件物流-同城)", name = "orderType", required = true, dataType = "int"), @ApiImplicitParam(value = "流程操作状态(3=开始出发预约点,4=到达预约点,5=开始服务,6=服务结束)", name = "state", required = true, dataType = "int"), @ApiImplicitParam(value = "手机号后四位", name = "phone", required = false, dataType = "String"), @ApiImplicitParam(value = "当前经度", name = "lon", required = true, dataType = "double"), diff --git a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java index b4dd066..340a525 100644 --- a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java +++ b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java @@ -751,10 +751,10 @@ if(null != orderPosition1){ String now = lon + "," + lat; String old = orderPosition1.getLon() + "," + orderPosition1.getLat(); - Map<String, String> distance = gdMapElectricFenceUtil.getDistance(now, old, 0);//直线距离 + Map<String, Double> distance = GeodesyUtil.getDistance(now, old);//直线距离 if(null != distance){ - String distance1 = distance.get("distance"); - if(Double.valueOf(distance1) > 50){//大于50米表示在移动 + Double distance1 = distance.get("WGS84"); + if(distance1 > 50){//大于50米表示在移动 orderCrossCity.setMileage(new BigDecimal(orderCrossCity.getMileage()).add(new BigDecimal(distance1)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); this.updateById(orderCrossCity); b = true; diff --git a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/impl/OrderLogisticsServiceImpl.java b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/impl/OrderLogisticsServiceImpl.java index 1e52334..788dfe5 100644 --- a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/impl/OrderLogisticsServiceImpl.java +++ b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/impl/OrderLogisticsServiceImpl.java @@ -110,18 +110,18 @@ orderLogistics.setSnatchOrderTime(new Date()); //调用高德创建轨迹 - String s = gdFalconUtil.selectTerminal(driver.getPhone()); - String track = gdFalconUtil.createTrack(s); - orderLogistics.setTrackId(track); +// String s = gdFalconUtil.selectTerminal(driver.getPhone()); +// String track = gdFalconUtil.createTrack(s); +// orderLogistics.setTrackId(track); //调用移动的小号接口 - Map<String, String> geocode = gdMapGeocodingUtil.geocode(orderLogistics.getStartLon().toString(), orderLogistics.getStartLat().toString()); - Region region = regionMapper.query(geocode.get("districtCode")); - Map<String, String> map = chinaMobileUtil.midAxbBindSend(orderLogistics.getRecipientPhone(), driver.getPhone(), Integer.valueOf(region.getCitycode().substring(1))); - if(String.valueOf(map.get("code")).equals("200")){ - orderLogistics.setTelX(map.get("telX")); - orderLogistics.setBindId(map.get("bindId")); - } +// Map<String, String> geocode = gdMapGeocodingUtil.geocode(orderLogistics.getStartLon().toString(), orderLogistics.getStartLat().toString()); +// Region region = regionMapper.query(geocode.get("districtCode")); +// Map<String, String> map = chinaMobileUtil.midAxbBindSend(orderLogistics.getRecipientPhone(), driver.getPhone(), Integer.valueOf(region.getCitycode().substring(1))); +// if(String.valueOf(map.get("code")).equals("200")){ +// orderLogistics.setTelX(map.get("telX")); +// orderLogistics.setBindId(map.get("bindId")); +// } this.updateById(orderLogistics); diff --git a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java index d98d1e7..ef646b4 100644 --- a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java +++ b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java @@ -177,19 +177,19 @@ orderPrivateCar.setSnatchOrderTime(new Date()); //调用高德创建轨迹 - String s = gdFalconUtil.selectTerminal(driver.getPhone()); - String track = gdFalconUtil.createTrack(s); - orderPrivateCar.setTrackId(track); +// String s = gdFalconUtil.selectTerminal(driver.getPhone()); +// String track = gdFalconUtil.createTrack(s); +// orderPrivateCar.setTrackId(track); //调用移动的小号接口 /*Map<String, String> geocode = gdMapGeocodingUtil.geocode(orderPrivateCar.getStartLon().toString(), orderPrivateCar.getStartLat().toString()); Region region = regionMapper.query(geocode.get("districtCode"));*/ - Map<String, String> map = chinaMobileUtil.midAxbBindSend(orderPrivateCar.getPassengersPhone(), driver.getPhone(), null); - if(String.valueOf(map.get("code")).equals("200")){ - orderPrivateCar.setTelX(map.get("telX")); - orderPrivateCar.setBindId(map.get("bindId")); - } - System.out.println(map); +// Map<String, String> map = chinaMobileUtil.midAxbBindSend(orderPrivateCar.getPassengersPhone(), driver.getPhone(), null); +// if(String.valueOf(map.get("code")).equals("200")){ +// orderPrivateCar.setTelX(map.get("telX")); +// orderPrivateCar.setBindId(map.get("bindId")); +// } +// System.out.println(map); this.updateById(orderPrivateCar); //如果是预约单,则不修改司机为服务中 @@ -512,10 +512,11 @@ this.updateById(orderPrivateCar); return true;//第一条数据不作处理,直接存储 } - Map<String, String> distance = gdMapElectricFenceUtil.getDistance(now, old, 0);//直线距离 + + Map<String, Double> distance = GeodesyUtil.getDistance(now, old); if(null != distance){ - String distance1 = distance.get("distance"); - if(Double.valueOf(distance1) > 50 && orderPrivateCar.getState()==5/* && orderPosition.getInsertTime().getTime()>=orderPrivateCar.getBoardingTime().getTime()*/){//大于50米表示在移动 + Double distance1 = distance.get("WGS84"); + if(distance1 > 50 && orderPrivateCar.getState()==5/* && orderPosition.getInsertTime().getTime()>=orderPrivateCar.getBoardingTime().getTime()*/){//大于50米表示在移动 orderPrivateCar.setMileage(new BigDecimal(orderPrivateCar.getMileage()).add(new BigDecimal(distance1)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); this.updateById(orderPrivateCar); return true; diff --git a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/CityMapper.java b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/CityMapper.java new file mode 100644 index 0000000..4cdf418 --- /dev/null +++ b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/CityMapper.java @@ -0,0 +1,7 @@ +package com.stylefeng.guns.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.stylefeng.guns.modular.system.model.City; + +public interface CityMapper extends BaseMapper<City> { +} diff --git a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/CompanyMapper.java b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/CompanyMapper.java index 7317ced..d7a3ab9 100644 --- a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/CompanyMapper.java +++ b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/CompanyMapper.java @@ -16,4 +16,8 @@ */ List<Company> query(@Param("province") String province, @Param("city") String city, @Param("code") String code); + + + + List<Company> queryList(@Param("city") String[] city, @Param("type") Integer type); } diff --git a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/CityMapper.xml b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/CityMapper.xml new file mode 100644 index 0000000..bdbfe2f --- /dev/null +++ b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/CityMapper.xml @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="com.stylefeng.guns.modular.system.dao.CityMapper"> + + <!-- 通用查询映射结果 --> + <resultMap id="BaseResultMap" type="com.stylefeng.guns.modular.system.model.City"> + <id column="id" property="id"/> + <result column="chineseName" property="chineseName"/> + <result column="englishName" property="englishName"/> + <result column="frenchName" property="frenchName"/> + </resultMap> +</mapper> \ No newline at end of file diff --git a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/CompanyMapper.xml b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/CompanyMapper.xml index 9007d02..21887b3 100644 --- a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/CompanyMapper.xml +++ b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/CompanyMapper.xml @@ -118,4 +118,70 @@ </if> ) </select> + + + <select id="queryList" resultType="Company"> + select + id as id, + isSpe as isSpe, + isTaxi as isTaxi, + isCross as isCross, + isCrossLogistics as isCrossLogistics, + isSameLogistics as isSameLogistics, + isCharter as isCharter, + isSpeFixedOrProportional as isSpeFixedOrProportional, + isTaxiFixedOrProportional as isTaxiFixedOrProportional, + isCrossLogisticsFixedOrProportional as isCrossLogisticsFixedOrProportional, + isSameLogisticsFixedOrProportional as isSameLogisticsFixedOrProportional, + speMoney as speMoney, + taxiMoney as taxiMoney, + crossLogisticsMoney as crossLogisticsMoney, + sameLogisticsMoney as sameLogisticsMoney, + isNeedFerry as isNeedFerry, + name as name, + type as type, + superiorId as superiorId, + principalName as principalName, + principalPhone as principalPhone, + adminName as adminName, + adminPhone as adminPhone, + urgentPhoen as urgentPhoen, + setupTime as setupTime, + identifier as identifier, + addressCode as addressCode, + businessScope as businessScope, + contactAddress as contactAddress, + documentAddress as documentAddress, + economicType as economicType, + regCapital as regCapital, + legalName as legalName, + legalId as legalId, + legalPhone as legalPhone, + legalPhotoUrl as legalPhotoUrl, + licensingAgency as licensingAgency, + licenseTime as licenseTime, + licenseStartTime as licenseStartTime, + licenseEndTime as licenseEndTime, + licenseNumber as licenseNumber, + carNum as carNum, + driverNum as driverNum, + mac as mac, + state as state, + flag as flag, + upload as upload, + insertTime as insertTime + from t_company where flag != 3 and state = 0 and id in ( + select companyId from t_company_city where state = 1 + <if test="null != city"> + and cityId in (select id from t_city where englishName in + <foreach collection="city" item="item" index="index" open="(" separator="," close=")"> + #{item} + </foreach> + ) + </if> + ) + <if test="null != type"> + and type = #{type} + </if> + </select> </mapper> \ No newline at end of file diff --git a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/DriverMapper.xml b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/DriverMapper.xml index 4b0c750..3b2ef24 100644 --- a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/DriverMapper.xml +++ b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/DriverMapper.xml @@ -33,7 +33,9 @@ <result column="driverContactAddress_" property="driverContactAddress_" /> <result column="driverAge" property="driverAge" /> <result column="driveCard" property="driveCard" /> - <result column="driveCardImgUrl" property="driveCardImgUrl" /> + <result column="driveCardImgUrl1" property="driveCardImgUrl1" /> + <result column="driveCardImgUrl2" property="driveCardImgUrl2" /> + <result column="email" property="email"/> <result column="driverType" property="driverType" /> <result column="getDriverLicenseDate" property="getDriverLicenseDate" /> <result column="driverLicenseOn" property="driverLicenseOn" /> @@ -69,6 +71,7 @@ <result column="laveBusinessMoney" property="laveBusinessMoney" /> <result column="placeOfPractice" property="placeOfPractice"/> <result column="appletsOpenId" property="appletsOpenId"/> + <result column="language" property="language"/> <result column="flag" property="flag"/> <result column="insertTime" property="insertTime"/> @@ -338,7 +341,9 @@ a.sex as sex, a.`name` as `name`, a.phone as phone, + a.email, a.qrCode, + a.language, a.laveActivityMoney as balance, a.laveActivityMoney as laveActivityMoney, a.activityMoney as activityMoney, diff --git a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Car.java b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Car.java index ac0c5bd..f373e16 100644 --- a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Car.java +++ b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Car.java @@ -69,6 +69,11 @@ @TableField("drivingLicensePhoto") private String drivingLicensePhoto; /** + * 行驶证到期时间 + */ + @TableField("drivingLicenseEndTime") + private Date drivingLicenseEndTime; + /** * 年检到期时间 */ @TableField("annualInspectionTime") @@ -272,6 +277,14 @@ this.addObjectId = addObjectId; } + public Date getDrivingLicenseEndTime() { + return drivingLicenseEndTime; + } + + public void setDrivingLicenseEndTime(Date drivingLicenseEndTime) { + this.drivingLicenseEndTime = drivingLicenseEndTime; + } + @Override public String toString() { return "Car{" + diff --git a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/City.java b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/City.java new file mode 100644 index 0000000..05c26fd --- /dev/null +++ b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/City.java @@ -0,0 +1,68 @@ +package com.stylefeng.guns.modular.system.model; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +/** + * 城市 + */ +@TableName("t_city") +public class City { + //主键 + @TableId(value = "id", type = IdType.AUTO) + @TableField("id") + private Integer id; + //中文名称 + @TableField("chineseName") + private String chineseName; + //英文名称 + @TableField("englishName") + private String englishName; + //法文名称 + @TableField("frenchName") + private String frenchName; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getChineseName() { + return chineseName; + } + + public void setChineseName(String chineseName) { + this.chineseName = chineseName; + } + + public String getEnglishName() { + return englishName; + } + + public void setEnglishName(String englishName) { + this.englishName = englishName; + } + + public String getFrenchName() { + return frenchName; + } + + public void setFrenchName(String frenchName) { + this.frenchName = frenchName; + } + + @Override + public String toString() { + return "City{" + + "id=" + id + + ", chineseName='" + chineseName + '\'' + + ", englishName='" + englishName + '\'' + + ", frenchName='" + frenchName + '\'' + + '}'; + } +} diff --git a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Driver.java b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Driver.java index 35d7d97..58cd103 100644 --- a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Driver.java +++ b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Driver.java @@ -152,10 +152,20 @@ @TableField("driveCard") private String driveCard; /** - * 驾驶证照片 + * 驾驶证照片正面 */ - @TableField("driveCardImgUrl") - private String driveCardImgUrl; + @TableField("driveCardImgUrl1") + private String driveCardImgUrl1; + /** + * 驾驶证照片背面 + */ + @TableField("driveCardImgUrl2") + private String driveCardImgUrl2; + /** + * 邮箱 + */ + @TableField("email") + private String email; /** * 准驾车型 */ @@ -286,6 +296,11 @@ */ @TableField("carId") private Integer carId; + /** + * 语言(1=简体中文,2=英语,3=法语) + */ + @TableField("language") + private Integer language; /** * 审核状态(1=待审核,2=正常,3=冻结,4=拒绝) */ @@ -588,12 +603,28 @@ this.driveCard = driveCard; } - public String getDriveCardImgUrl() { - return driveCardImgUrl; + public String getDriveCardImgUrl1() { + return driveCardImgUrl1; } - public void setDriveCardImgUrl(String driveCardImgUrl) { - this.driveCardImgUrl = driveCardImgUrl; + public void setDriveCardImgUrl1(String driveCardImgUrl1) { + this.driveCardImgUrl1 = driveCardImgUrl1; + } + + public String getDriveCardImgUrl2() { + return driveCardImgUrl2; + } + + public void setDriveCardImgUrl2(String driveCardImgUrl2) { + this.driveCardImgUrl2 = driveCardImgUrl2; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; } public String getDriverType() { @@ -900,6 +931,14 @@ this.withdrawPassword = withdrawPassword; } + public Integer getLanguage() { + return language; + } + + public void setLanguage(Integer language) { + this.language = language; + } + @Override public String toString() { return "Driver{" + @@ -931,7 +970,8 @@ ", driverContactAddress_='" + driverContactAddress_ + '\'' + ", driverAge=" + driverAge + ", driveCard='" + driveCard + '\'' + - ", driveCardImgUrl='" + driveCardImgUrl + '\'' + + ", driveCardImgUrl1='" + driveCardImgUrl1 + '\'' + + ", driveCardImgUrl2='" + driveCardImgUrl2 + '\'' + ", driverType='" + driverType + '\'' + ", getDriverLicenseDate=" + getDriverLicenseDate + ", driverLicenseOn=" + driverLicenseOn + @@ -970,6 +1010,7 @@ ", qrCode='" + qrCode + '\'' + ", uid=" + uid + ", uType=" + uType + + ", frozenMoney=" + frozenMoney + '}'; } } diff --git a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ICarService.java b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ICarService.java index 71f348a..9f621c1 100644 --- a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ICarService.java +++ b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ICarService.java @@ -60,6 +60,6 @@ * @return * @throws Exception */ - ResultUtil addCar(Integer modelId, String color, String licensePlate, Date time, String drivingLicensePhoto, - String carPhoto, String insurancePhoto, Integer uid,Integer id) throws Exception; + ResultUtil addCar(Integer modelId, String color, String licensePlate, Date time, String drivingLicensePhoto, String drivingLicenseEndTime, + String carPhoto, String insurancePhoto, String commercialInsuranceTime, Integer uid,Integer id) throws Exception; } diff --git a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ICityService.java b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ICityService.java new file mode 100644 index 0000000..565af61 --- /dev/null +++ b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ICityService.java @@ -0,0 +1,7 @@ +package com.stylefeng.guns.modular.system.service; + +import com.baomidou.mybatisplus.service.IService; +import com.stylefeng.guns.modular.system.model.City; + +public interface ICityService extends IService<City> { +} diff --git a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ICompanyCityService.java b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ICompanyCityService.java index 8719561..a041b2c 100644 --- a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ICompanyCityService.java +++ b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ICompanyCityService.java @@ -24,4 +24,13 @@ * @throws Exception */ Company query(String code) throws Exception; + + + /** + * 根据城市名称获取匹配的企业 + * @param city + * @return + * @throws Exception + */ + Company query(String[] city) throws Exception; } diff --git a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IDriverService.java b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IDriverService.java index 9d5842c..67f60bf 100644 --- a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IDriverService.java +++ b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IDriverService.java @@ -22,6 +22,15 @@ /** + * 获取邮件验证码 + * @param email + * @return + * @throws Exception + */ + ResultUtil queryEmailCaptcha(String email) throws Exception; + + + /** * 验证短信验证码 * @param phone * @param code @@ -87,7 +96,7 @@ * @return * @throws Exception */ - Map<String, Object> queryPhone(String code) throws Exception; + Map<String, Object> queryPhone(Double lat, Double lnt) throws Exception; /** @@ -176,6 +185,15 @@ /** + * 修改语言设置 + * @param language + * @param uid + * @throws Exception + */ + void editLanguage(Integer language, Integer uid) throws Exception; + + + /** * 电话号码查询司机 * @param phone * @return diff --git a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/CarServiceImpl.java b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/CarServiceImpl.java index c3f1920..7469829 100644 --- a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/CarServiceImpl.java +++ b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/CarServiceImpl.java @@ -1,6 +1,7 @@ package com.stylefeng.guns.modular.system.service.impl; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.stylefeng.guns.core.util.ToolUtil; import com.stylefeng.guns.modular.system.dao.CarBrandMapper; import com.stylefeng.guns.modular.system.dao.CarMapper; import com.stylefeng.guns.modular.system.dao.CarModelMapper; @@ -14,6 +15,7 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; +import java.text.SimpleDateFormat; import java.util.Date; import java.util.HashMap; import java.util.List; @@ -124,8 +126,8 @@ * @throws Exception */ @Override - public ResultUtil addCar(Integer modelId, String color, String licensePlate, Date time, String drivingLicensePhoto, - String carPhoto, String insurancePhoto, Integer uid,Integer id) throws Exception { + public ResultUtil addCar(Integer modelId, String color, String licensePlate, Date time, String drivingLicensePhoto, String drivingLicenseEndTime, + String carPhoto, String insurancePhoto, String commercialInsuranceTime, Integer uid,Integer id) throws Exception { Car query = carMapper.query(licensePlate); if(id==null){ @@ -138,6 +140,7 @@ } } + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); Car car = new Car(); car.setDriverId(uid); car = carMapper.selectOne(car); @@ -152,9 +155,14 @@ car.setCarLicensePlate(licensePlate); car.setAnnualInspectionTime(time); car.setDrivingLicensePhoto(drivingLicensePhoto); + if(ToolUtil.isNotEmpty(drivingLicenseEndTime)){ + car.setDrivingLicenseEndTime(sdf.parse(drivingLicenseEndTime)); + } car.setCarPhoto(carPhoto); car.setInsurancePhoto(insurancePhoto); - + if(ToolUtil.isNotEmpty(commercialInsuranceTime)){ + car.setCommercialInsuranceTime(sdf.parse(commercialInsuranceTime)); + } Driver driver = driverService.selectById(uid); car.setCompanyId(driver.getCompanyId()); car.setFranchiseeId(driver.getFranchiseeId()); diff --git a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/CityServiceImpl.java b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/CityServiceImpl.java new file mode 100644 index 0000000..c3073b5 --- /dev/null +++ b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/CityServiceImpl.java @@ -0,0 +1,11 @@ +package com.stylefeng.guns.modular.system.service.impl; + +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.stylefeng.guns.modular.system.dao.CityMapper; +import com.stylefeng.guns.modular.system.model.City; +import com.stylefeng.guns.modular.system.service.ICityService; +import org.springframework.stereotype.Service; + +@Service +public class CityServiceImpl extends ServiceImpl<CityMapper, City> implements ICityService { +} diff --git a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/CompanyCityServiceImpl.java b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/CompanyCityServiceImpl.java index 12ac48f..9af925e 100644 --- a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/CompanyCityServiceImpl.java +++ b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/CompanyCityServiceImpl.java @@ -67,4 +67,19 @@ } return null; } + + @Override + public Company query(String[] city) throws Exception { + List<Company> query = companyMapper.queryList(city, 3); + if(query.size() == 0){ + query = companyMapper.queryList(city, 2); + } + if(query.size() == 0){ + query = companyMapper.queryList(city, 1); + } + if(query.size() > 0){ + return query.get(0); + } + return null; + } } diff --git a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java index 150c623..696c812 100644 --- a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java +++ b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java @@ -14,6 +14,9 @@ import com.stylefeng.guns.modular.system.model.*; import com.stylefeng.guns.modular.system.service.*; import com.stylefeng.guns.modular.system.util.*; +import com.stylefeng.guns.modular.system.util.GoogleMap.AddressComponentsVo; +import com.stylefeng.guns.modular.system.util.GoogleMap.GoogleMapUtil; +import com.stylefeng.guns.modular.system.util.GoogleMap.ReverseGeocodeVo; import com.stylefeng.guns.modular.system.warpper.*; import com.stylefeng.guns.modular.taxi.service.IOrderTaxiService; import org.apache.shiro.authc.SimpleAuthenticationInfo; @@ -120,6 +123,9 @@ private PushUtil pushUtil; @Autowired + private ICityService cityService; + + @Autowired private IOrderLogisticsService orderLogisticsService; @Value("${pushMinistryOfTransport}") @@ -181,6 +187,22 @@ return ResultUtil.success(); } + + @Override + public ResultUtil queryEmailCaptcha(String email) throws Exception { + Random random = new Random(); + StringBuffer sb = new StringBuffer(); + for(int i = 0; i < 4; i++){ + sb.append((int) (random.nextDouble() * 10)); + } + String authCode = sb.toString(); + String sms = "您发送的验证码为【" + authCode + "】,验证码将在5分钟后失效!"; + + //发送验证码短信 + redisUtil.setStrValue(email, authCode, 5 * 60);//设置五分钟过期 + EmailUtil.getMimeMessage(email, "验证码", sms); + return ResultUtil.success(); + } /** * 校验短信验证码 @@ -340,8 +362,9 @@ driver.setSex(registeredWarpper.getSex()); driver.setIdCard(registeredWarpper.getIdCard()); - String code = registeredWarpper.getPlaceOfEmployment(); - Company query = companyCityService.query(code); + City city1 = cityService.selectById(registeredWarpper.getPlaceOfPracticeId()); + String[] city = new String[]{city1.getEnglishName()}; + Company query = companyCityService.query(city); if(null == query){ return ResultUtil.error("选择从业地暂未开通业务"); } @@ -362,21 +385,21 @@ driver.setHeadImgUrl(registeredWarpper.getHeadImgUrl()); driver.setIdCardImgUrl1(registeredWarpper.getIdCardImgUrl1()); driver.setIdCardImgUrl2(registeredWarpper.getIdCardImgUrl2()); - driver.setPlaceOfEmployment(registeredWarpper.getPlaceOfEmployment()); + driver.setPlaceOfEmployment(city1.getEnglishName()); driver.setDriverAddress(registeredWarpper.getDriverContactAddress()); driver.setDriverContactAddress(registeredWarpper.getDriverContactAddress()); driver.setDriverContactAddress_(registeredWarpper.getDriverContactAddress_()); - driver.setPlaceOfPractice(registeredWarpper.getPlaceOfPractice()); + driver.setPlaceOfPractice(city1.getEnglishName()); Calendar calendar = Calendar.getInstance(); calendar.setTime(registeredWarpper.getGetDriverLicenseDate()); Calendar now = Calendar.getInstance(); now.setTime(new Date()); driver.setDriverAge(now.get(Calendar.YEAR) - calendar.get(Calendar.YEAR)); - driver.setDriveCardImgUrl(registeredWarpper.getDriveCardImgUrl()); driver.setGetDriverLicenseDate(registeredWarpper.getGetDriverLicenseDate()); - driver.setTaxiAptitudeCard(registeredWarpper.getTaxiAptitudeCard()); - driver.setNetworkCarlssueImg(registeredWarpper.getNetworkCarlssueImg()); + driver.setDriveCardImgUrl1(registeredWarpper.getDriveCardImgUrl1()); + driver.setDriveCardImgUrl2(registeredWarpper.getDriveCardImgUrl2()); + driver.setEmail(registeredWarpper.getEmail()); this.updateById(driver); //服务模式 @@ -432,13 +455,22 @@ /** * 根据定位的城市行政编号获取分公司的客服电话 - * @param code * @return * @throws Exception */ @Override - public Map<String, Object> queryPhone(String code) throws Exception { - Company query = companyCityService.query(code); + public Map<String, Object> queryPhone(Double lat, Double lnt) throws Exception { + ReverseGeocodeVo reverseGeocode = GoogleMapUtil.getReverseGeocode(lat, lnt); + if(null == reverseGeocode){ + System.err.println("获取地址异常"); + return null; + } + AddressComponentsVo[] addressComponentsVos = reverseGeocode.getAddressComponentsVos(); + String[] city = new String[addressComponentsVos.length]; + for (int i = 0; i < addressComponentsVos.length; i++) { + city[i] = addressComponentsVos[i].getLongName(); + } + Company query = companyCityService.query(city); Map<String, Object> map = new HashMap<>(); if(null == query){ map.put("phone", ""); @@ -821,6 +853,13 @@ } + @Override + public void editLanguage(Integer language, Integer uid) throws Exception { + Driver driver = this.selectById(uid); + driver.setLanguage(language); + this.updateById(driver); + } + /** * 电话号码查询司机 * @param phone diff --git a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderServiceImpl.java b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderServiceImpl.java index ef4f6c1..898b1f9 100644 --- a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderServiceImpl.java +++ b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderServiceImpl.java @@ -22,6 +22,8 @@ import com.stylefeng.guns.modular.system.service.IOrderService; import com.stylefeng.guns.modular.system.service.ISystemNoticeService; 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.warpper.OrderListWarpper; import com.stylefeng.guns.modular.taxi.model.OrderTaxi; import com.stylefeng.guns.modular.taxi.service.IOrderTaxiService; @@ -102,14 +104,14 @@ pageNum = (pageNum - 1) * size; List<Map<String, Object>> datas = new ArrayList<>(); //出租车 - List<Map<String, Object>> list = orderTaxiService.queryOrderList(state, uid); - datas.addAll(list); +// List<Map<String, Object>> list = orderTaxiService.queryOrderList(state, uid); +// datas.addAll(list); //专车 List<Map<String, Object>> list1 = orderPrivateCarService.queryOrderList(state, uid); datas.addAll(list1); //跨城 - List<Map<String, Object>> list2 = orderCrossCityService.queryOrderList(state, uid); - datas.addAll(list2); +// List<Map<String, Object>> list2 = orderCrossCityService.queryOrderList(state, uid); +// datas.addAll(list2); //小件物流 List<Map<String, Object>> list3 = orderLogisticsService.queryOrderList(uid); datas.addAll(list3); @@ -183,14 +185,14 @@ pageNum = (pageNum - 1) * size; List<Map<String, Object>> datas = new ArrayList<>(); //出租车 - List<Map<String, Object>> list = orderTaxiService.queryMyAllOrder(state, uid); - datas.addAll(list); +// List<Map<String, Object>> list = orderTaxiService.queryMyAllOrder(state, uid); +// datas.addAll(list); //专车 List<Map<String, Object>> list1 = orderPrivateCarService.queryMyAllOrder(state, uid); datas.addAll(list1); //跨城 - List<Map<String, Object>> list2 = orderCrossCityService.queryMyAllOrder(state, uid); - datas.addAll(list2); +// List<Map<String, Object>> list2 = orderCrossCityService.queryMyAllOrder(state, uid); +// datas.addAll(list2); //小件物流 List<Map<String, Object>> list3 = orderLogisticsService.queryMyAllOrder(state, uid); datas.addAll(list3); @@ -222,14 +224,12 @@ switch (orderType){ case 1://专车 map = orderPrivateCarService.queryPushOrder(orderId); - String order = String.valueOf(map.get("startLon")) + "," + String.valueOf(map.get("startLat")); - String distance = gdMapElectricFenceUtil.getDistance(lon + "," + lat, order, 1).get("distance"); - map.put("startDistance", ToolUtil.isNotEmpty(distance) ? Double.valueOf(distance) / 1000 : 0); + DistancematrixVo distancematrix = GoogleMapUtil.getDistancematrix(Double.valueOf(map.get("startLat").toString()), Double.valueOf(map.get("startLon").toString()), Double.valueOf(lat), Double.valueOf(lon)); + map.put("startDistance", null != distancematrix ? distancematrix.getDistance() / 1000 : 0); //总距离 - String end = String.valueOf(map.get("endLon")) + "," + String.valueOf(map.get("endLat")); - distance = gdMapElectricFenceUtil.getDistance(end, order, 1).get("distance"); - map.put("totalDistance", ToolUtil.isNotEmpty(distance) ? Double.valueOf(distance) / 1000 : 0); + distancematrix = GoogleMapUtil.getDistancematrix(Double.valueOf(map.get("startLat").toString()), Double.valueOf(map.get("startLon").toString()), Double.valueOf(map.get("endLat").toString()), Double.valueOf(map.get("endLon").toString())); + map.put("totalDistance", null != distancematrix ? distancematrix.getDistance() / 1000 : 0); Integer orderSource = Integer.valueOf(String.valueOf(map.get("orderSource"))); if(orderSource == 1 || orderSource == 2 || orderSource == 3){ @@ -262,85 +262,83 @@ } break; case 2://出租 - map = orderTaxiService.queryPushOrder(orderId); - String order1 = String.valueOf(map.get("startLon")) + "," + String.valueOf(map.get("startLat")); - String distance1 = gdMapElectricFenceUtil.getDistance(lon + "," + lat, order1, 1).get("distance"); - map.put("startDistance", ToolUtil.isNotEmpty(distance1) ? Double.valueOf(distance1) / 1000 : 0); - - //总距离 - String end1 = String.valueOf(map.get("endLon")) + "," + String.valueOf(map.get("endLat")); - distance = gdMapElectricFenceUtil.getDistance(end1, order1, 1).get("distance"); - map.put("totalDistance", ToolUtil.isNotEmpty(distance) ? Double.valueOf(distance) / 1000 : 0); - - Integer orderSource1 = Integer.valueOf(String.valueOf(map.get("orderSource"))); - if(orderSource1 == 1 || orderSource1 == 2 || orderSource1 == 3){ - if(Integer.valueOf(String.valueOf(map.get("orderType"))) == 1 && Integer.valueOf(String.valueOf(map.get("isReassign"))) == 1){ - map.put("type", "乘客下单"); - } - if(Integer.valueOf(String.valueOf(map.get("orderType"))) == 1 && Integer.valueOf(String.valueOf(map.get("isReassign"))) == 2){ - map.put("type", "改派"); - } - if(Integer.valueOf(String.valueOf(map.get("orderType"))) == 2 && Integer.valueOf(String.valueOf(map.get("isReassign"))) == 1){ - map.put("type", "预约"); - } - if(Integer.valueOf(String.valueOf(map.get("orderType"))) == 2 && Integer.valueOf(String.valueOf(map.get("isReassign"))) == 2){ - map.put("type", "改派"); - } - } - if(orderSource1 == 5){ - if(Integer.valueOf(String.valueOf(map.get("orderType"))) == 1 && Integer.valueOf(String.valueOf(map.get("isReassign"))) == 1){ - map.put("type", "调度下单"); - } - if(Integer.valueOf(String.valueOf(map.get("orderType"))) == 1 && Integer.valueOf(String.valueOf(map.get("isReassign"))) == 2){ - map.put("type", "改派"); - } - if(Integer.valueOf(String.valueOf(map.get("orderType"))) == 2 && Integer.valueOf(String.valueOf(map.get("isReassign"))) == 1){ - map.put("type", "预约"); - } - if(Integer.valueOf(String.valueOf(map.get("orderType"))) == 2 && Integer.valueOf(String.valueOf(map.get("isReassign"))) == 2){ - map.put("type", "改派"); - } - } +// map = orderTaxiService.queryPushOrder(orderId); +// String order1 = String.valueOf(map.get("startLon")) + "," + String.valueOf(map.get("startLat")); +// String distance1 = gdMapElectricFenceUtil.getDistance(lon + "," + lat, order1, 1).get("distance"); +// map.put("startDistance", ToolUtil.isNotEmpty(distance1) ? Double.valueOf(distance1) / 1000 : 0); +// +// //总距离 +// String end1 = String.valueOf(map.get("endLon")) + "," + String.valueOf(map.get("endLat")); +// distance = gdMapElectricFenceUtil.getDistance(end1, order1, 1).get("distance"); +// map.put("totalDistance", ToolUtil.isNotEmpty(distance) ? Double.valueOf(distance) / 1000 : 0); +// +// Integer orderSource1 = Integer.valueOf(String.valueOf(map.get("orderSource"))); +// if(orderSource1 == 1 || orderSource1 == 2 || orderSource1 == 3){ +// if(Integer.valueOf(String.valueOf(map.get("orderType"))) == 1 && Integer.valueOf(String.valueOf(map.get("isReassign"))) == 1){ +// map.put("type", "乘客下单"); +// } +// if(Integer.valueOf(String.valueOf(map.get("orderType"))) == 1 && Integer.valueOf(String.valueOf(map.get("isReassign"))) == 2){ +// map.put("type", "改派"); +// } +// if(Integer.valueOf(String.valueOf(map.get("orderType"))) == 2 && Integer.valueOf(String.valueOf(map.get("isReassign"))) == 1){ +// map.put("type", "预约"); +// } +// if(Integer.valueOf(String.valueOf(map.get("orderType"))) == 2 && Integer.valueOf(String.valueOf(map.get("isReassign"))) == 2){ +// map.put("type", "改派"); +// } +// } +// if(orderSource1 == 5){ +// if(Integer.valueOf(String.valueOf(map.get("orderType"))) == 1 && Integer.valueOf(String.valueOf(map.get("isReassign"))) == 1){ +// map.put("type", "调度下单"); +// } +// if(Integer.valueOf(String.valueOf(map.get("orderType"))) == 1 && Integer.valueOf(String.valueOf(map.get("isReassign"))) == 2){ +// map.put("type", "改派"); +// } +// if(Integer.valueOf(String.valueOf(map.get("orderType"))) == 2 && Integer.valueOf(String.valueOf(map.get("isReassign"))) == 1){ +// map.put("type", "预约"); +// } +// if(Integer.valueOf(String.valueOf(map.get("orderType"))) == 2 && Integer.valueOf(String.valueOf(map.get("isReassign"))) == 2){ +// map.put("type", "改派"); +// } +// } break; case 3://城际 - map = orderCrossCityService.queryPushOrder(orderId); - String order2 = String.valueOf(map.get("startLon")) + "," + String.valueOf(map.get("startLat")); - String distance2 = gdMapElectricFenceUtil.getDistance(lon + "," + lat, order2, 1).get("distance"); - map.put("startDistance", ToolUtil.isNotEmpty(distance2) ? Double.valueOf(distance2) / 1000 : 0); - - //总距离 - String end2 = String.valueOf(map.get("endLon")) + "," + String.valueOf(map.get("endLat")); - distance = gdMapElectricFenceUtil.getDistance(end2, order2, 1).get("distance"); - map.put("totalDistance", ToolUtil.isNotEmpty(distance) ? Double.valueOf(distance) / 1000 : 0); - - Integer orderSource2 = Integer.valueOf(String.valueOf(map.get("orderSource"))); - if(orderSource2 == 1 || orderSource2 == 2 || orderSource2 == 3){ - if(Integer.valueOf(String.valueOf(map.get("isReassign"))) == 1){ - map.put("type", "乘客下单"); - } - if(Integer.valueOf(String.valueOf(map.get("isReassign"))) == 2){ - map.put("type", "改派"); - } - } - if(orderSource2 == 5){ - if(Integer.valueOf(String.valueOf(map.get("isReassign"))) == 1){ - map.put("type", "调度下单"); - } - if(Integer.valueOf(String.valueOf(map.get("isReassign"))) == 2){ - map.put("type", "改派"); - } - } +// map = orderCrossCityService.queryPushOrder(orderId); +// String order2 = String.valueOf(map.get("startLon")) + "," + String.valueOf(map.get("startLat")); +// String distance2 = gdMapElectricFenceUtil.getDistance(lon + "," + lat, order2, 1).get("distance"); +// map.put("startDistance", ToolUtil.isNotEmpty(distance2) ? Double.valueOf(distance2) / 1000 : 0); +// +// //总距离 +// String end2 = String.valueOf(map.get("endLon")) + "," + String.valueOf(map.get("endLat")); +// distance = gdMapElectricFenceUtil.getDistance(end2, order2, 1).get("distance"); +// map.put("totalDistance", ToolUtil.isNotEmpty(distance) ? Double.valueOf(distance) / 1000 : 0); +// +// Integer orderSource2 = Integer.valueOf(String.valueOf(map.get("orderSource"))); +// if(orderSource2 == 1 || orderSource2 == 2 || orderSource2 == 3){ +// if(Integer.valueOf(String.valueOf(map.get("isReassign"))) == 1){ +// map.put("type", "乘客下单"); +// } +// if(Integer.valueOf(String.valueOf(map.get("isReassign"))) == 2){ +// map.put("type", "改派"); +// } +// } +// if(orderSource2 == 5){ +// if(Integer.valueOf(String.valueOf(map.get("isReassign"))) == 1){ +// map.put("type", "调度下单"); +// } +// if(Integer.valueOf(String.valueOf(map.get("isReassign"))) == 2){ +// map.put("type", "改派"); +// } +// } break; case 4://同城小件物流 map = orderLogisticsService.queryPushOrder(orderId); - String order3 = String.valueOf(map.get("startLon")) + "," + String.valueOf(map.get("startLat")); - String distance3 = gdMapElectricFenceUtil.getDistance(lon + "," + lat, order3, 1).get("distance"); - map.put("startDistance", ToolUtil.isNotEmpty(distance3) ? Double.valueOf(distance3) / 1000 : 0); + DistancematrixVo distancematrix1 = GoogleMapUtil.getDistancematrix(Double.valueOf(map.get("startLat").toString()), Double.valueOf(map.get("startLon").toString()), Double.valueOf(lat), Double.valueOf(lon)); + map.put("startDistance", null != distancematrix1 ? distancematrix1.getDistance() / 1000 : 0); //总距离 - String end3 = String.valueOf(map.get("endLon")) + "," + String.valueOf(map.get("endLat")); - distance = gdMapElectricFenceUtil.getDistance(end3, order3, 1).get("distance"); - map.put("totalDistance", ToolUtil.isNotEmpty(distance) ? Double.valueOf(distance) / 1000 : 0); + distancematrix1 = GoogleMapUtil.getDistancematrix(Double.valueOf(map.get("startLat").toString()), Double.valueOf(map.get("startLon").toString()), Double.valueOf(map.get("endLat").toString()), Double.valueOf(map.get("endLon").toString())); + map.put("totalDistance", null != distancematrix1 ? distancematrix1.getDistance() / 1000 : 0); Integer orderSource3 = Integer.valueOf(String.valueOf(map.get("orderSource"))); if(orderSource3 == 1 || orderSource3 == 2 || orderSource3 == 3){ @@ -361,33 +359,33 @@ } break; case 5://跨城小件物流 - map = orderLogisticsService.queryPushOrder(orderId); - String order4 = String.valueOf(map.get("startLon")) + "," + String.valueOf(map.get("startLat")); - String distance4 = gdMapElectricFenceUtil.getDistance(lon + "," + lat, order4, 1).get("distance"); - map.put("startDistance", ToolUtil.isNotEmpty(distance4) ? Double.valueOf(distance4) / 1000 : 0); - - //总距离 - String end4 = String.valueOf(map.get("endLon")) + "," + String.valueOf(map.get("endLat")); - distance = gdMapElectricFenceUtil.getDistance(end4, order4, 1).get("distance"); - map.put("totalDistance", ToolUtil.isNotEmpty(distance) ? Double.valueOf(distance) / 1000 : 0); - - Integer orderSource4 = Integer.valueOf(String.valueOf(map.get("orderSource"))); - if(orderSource4 == 1 || orderSource4 == 2 || orderSource4 == 3){ - if(Integer.valueOf(String.valueOf(map.get("isReassign"))) == 1){ - map.put("type", "乘客下单"); - } - if(Integer.valueOf(String.valueOf(map.get("isReassign"))) == 2){ - map.put("type", "改派"); - } - } - if(orderSource4 == 5){ - if(Integer.valueOf(String.valueOf(map.get("isReassign"))) == 1){ - map.put("type", "调度下单"); - } - if(Integer.valueOf(String.valueOf(map.get("isReassign"))) == 2){ - map.put("type", "改派"); - } - } +// map = orderLogisticsService.queryPushOrder(orderId); +// String order4 = String.valueOf(map.get("startLon")) + "," + String.valueOf(map.get("startLat")); +// String distance4 = gdMapElectricFenceUtil.getDistance(lon + "," + lat, order4, 1).get("distance"); +// map.put("startDistance", ToolUtil.isNotEmpty(distance4) ? Double.valueOf(distance4) / 1000 : 0); +// +// //总距离 +// String end4 = String.valueOf(map.get("endLon")) + "," + String.valueOf(map.get("endLat")); +// distance = gdMapElectricFenceUtil.getDistance(end4, order4, 1).get("distance"); +// map.put("totalDistance", ToolUtil.isNotEmpty(distance) ? Double.valueOf(distance) / 1000 : 0); +// +// Integer orderSource4 = Integer.valueOf(String.valueOf(map.get("orderSource"))); +// if(orderSource4 == 1 || orderSource4 == 2 || orderSource4 == 3){ +// if(Integer.valueOf(String.valueOf(map.get("isReassign"))) == 1){ +// map.put("type", "乘客下单"); +// } +// if(Integer.valueOf(String.valueOf(map.get("isReassign"))) == 2){ +// map.put("type", "改派"); +// } +// } +// if(orderSource4 == 5){ +// if(Integer.valueOf(String.valueOf(map.get("isReassign"))) == 1){ +// map.put("type", "调度下单"); +// } +// if(Integer.valueOf(String.valueOf(map.get("isReassign"))) == 2){ +// map.put("type", "改派"); +// } +// } break; case 6: break; @@ -410,13 +408,13 @@ case 1://专车 return orderPrivateCarService.grabOrder(orderId, uid); case 2://出租 - return orderTaxiService.grabOrder(orderId, uid); +// return orderTaxiService.grabOrder(orderId, uid); case 3://城际 return ResultUtil.success();//不作任何操作,跨城默认选择的司机 case 4://同城小件 return orderLogisticsService.grabOrder(orderId, uid); case 5://跨城小件 - return orderLogisticsService.grabOrder(orderId, uid); +// return orderLogisticsService.grabOrder(orderId, uid); case 6: break; } @@ -468,16 +466,16 @@ map = orderPrivateCarService.queryOrderInfo(orderId); break; case 2://出租 - map = orderTaxiService.queryOrderInfo(orderId); +// map = orderTaxiService.queryOrderInfo(orderId); break; case 3://城际 - map = orderCrossCityService.queryOrderCrossCityInfo(orderId); +// map = orderCrossCityService.queryOrderCrossCityInfo(orderId); break; case 4://同城小件 map = orderLogisticsService.queryOrderInfo(orderId); break; case 5://跨城小件 - map = orderLogisticsService.queryOrderInfo(orderId); +// map = orderLogisticsService.queryOrderInfo(orderId); break; case 6: break; @@ -538,13 +536,13 @@ case 1://专车 return orderPrivateCarService.process(orderId, state, lon, lat, address,phone); case 2://出租 - return orderTaxiService.process(orderId, state, lon, lat, address); +// return orderTaxiService.process(orderId, state, lon, lat, address); case 3://城际 - return orderCrossCityService.process(orderId, state, lon, lat, address); +// return orderCrossCityService.process(orderId, state, lon, lat, address); case 4://同城小件 return orderLogisticsService.process(orderId, state, lon, lat, address); case 5://跨城小件 - return orderLogisticsService.process(orderId, state, lon, lat, address); +// return orderLogisticsService.process(orderId, state, lon, lat, address); case 6: break; } diff --git a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/EmailUtil.java b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/EmailUtil.java new file mode 100644 index 0000000..c0a9789 --- /dev/null +++ b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/EmailUtil.java @@ -0,0 +1,96 @@ +package com.stylefeng.guns.modular.system.util; + +import javax.mail.*; +import javax.mail.internet.InternetAddress; +import javax.mail.internet.MimeBodyPart; +import javax.mail.internet.MimeMessage; +import javax.mail.internet.MimeMultipart; +import java.util.Date; +import java.util.Properties; + +/** + * 邮件工具类 + */ +public class EmailUtil { + + /* + * gmail邮箱SSL方式 + */ + private static void gmailssl(Properties props) { + final String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory"; + props.put("mail.debug", "true"); + props.put("mail.smtp.host", "smtp.gmail.com"); + props.put("mail.smtp.ssl.enable", "true"); + props.put("mail.smtp.socketFactory.class", SSL_FACTORY); + props.put("mail.smtp.port", "465"); + props.put("mail.smtp.socketFactory.port", "465"); + props.put("mail.smtp.auth", "true"); + } + + + //gmail邮箱的TLS方式 + private static void gmailtls(Properties props) { + props.put("mail.smtp.auth", "true"); + props.put("mail.smtp.starttls.enable", "true"); + props.put("mail.smtp.host", "smtp.gmail.com"); + props.put("mail.smtp.port", "587"); + } + + /** + * 创建邮件内容 需科学上网 + * + * @param sentToEmail 接收人邮箱 + * @return + * @throws Exception + */ + public static boolean getMimeMessage(String sentToEmail, String subject, String content) throws Exception { + //1.创建一封邮件的实例对象 + Properties props = new Properties(); + //选择ssl方式 + gmailssl(props); + + final String username = "southwindservice@gmail.com";// gmail 邮箱 + final String password = "irkgrsuzxgmwrxzy";// Google应用专用密码 + // 当做多商户的时候需要使用getInstance, 如果只是一个邮箱发送的话就用getDefaultInstance + // Session.getDefaultInstance 会将username,password保存在session会话中 + // Session.getInstance 不进行保存 + Session session = Session.getInstance(props, + new Authenticator() { + protected PasswordAuthentication getPasswordAuthentication() { + return new PasswordAuthentication(username, password); + } + }); + MimeMessage msg = new MimeMessage(session); + //2.设置发件人地址 + msg.setFrom(new InternetAddress(sentToEmail)); + /** + * 3.设置收件人地址(可以增加多个收件人、抄送、密送),即下面这一行代码书写多行 + * MimeMessage.RecipientType.TO:发送 + * MimeMessage.RecipientType.CC:抄送 + * MimeMessage.RecipientType.BCC:密送 + */ + msg.setRecipient(MimeMessage.RecipientType.TO, new InternetAddress(sentToEmail)); + //4.设置邮件主题 + msg.setSubject(subject, "UTF-8"); + // 6. 创建文本"节点" + MimeBodyPart text = new MimeBodyPart(); + // 这里添加图片的方式是将整个图片包含到邮件内容中, 实际上也可以以 http 链接的形式添加网络图片 + text.setContent(content, "text/html;charset=UTF-8"); + // 7. (文本+图片)设置 文本 和 图片"节点"的关系(将 文本 和 图片"节点"合成一个混合"节点") + MimeMultipart mm_text_image = new MimeMultipart(); + mm_text_image.addBodyPart(text); + mm_text_image.setSubType("related"); // 关联关系 + // 11. 设置整个邮件的关系(将最终的混合"节点"作为邮件的内容添加到邮件对象) + msg.setContent(mm_text_image); + //设置邮件的发送时间,默认立即发送 + msg.setSentDate(new Date()); + + Transport.send(msg); + return true; + } + + public static void main(String[] args) throws Exception { + boolean mimeMessage = getMimeMessage("393733352@qq.com", "测试内容", "这是一段测试内容"); + System.out.println(mimeMessage); + } +} diff --git a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GeodesyUtil.java b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GeodesyUtil.java new file mode 100644 index 0000000..81a6c33 --- /dev/null +++ b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GeodesyUtil.java @@ -0,0 +1,74 @@ +package com.stylefeng.guns.modular.system.util; + +import com.stylefeng.guns.core.util.ToolUtil; +import org.gavaghan.geodesy.Ellipsoid; +import org.gavaghan.geodesy.GeodeticCalculator; +import org.gavaghan.geodesy.GeodeticCurve; +import org.gavaghan.geodesy.GlobalCoordinates; +import org.springframework.stereotype.Component; + +import java.util.HashMap; +import java.util.Map; + +/** + * 计算两个金纬度坐标之间的直线距离 + */ +public class GeodesyUtil { + + + /** + * 获取直线距离 + * @param fromLonLat + * @param toLonLat + * @return + */ + public static Map<String, Double> getDistance(String fromLonLat, String toLonLat){ + Map<String, Double> map = null; + if(ToolUtil.isNotEmpty(fromLonLat) && ToolUtil.isNotEmpty(toLonLat)){ + map = new HashMap<>(); + String[] from = fromLonLat.split(","); + String[] to = toLonLat.split(","); + GlobalCoordinates source = new GlobalCoordinates(Double.valueOf(from[1]), Double.valueOf(from[0])); + GlobalCoordinates target = new GlobalCoordinates(Double.valueOf(to[1]), Double.valueOf(to[0])); + double Sphere = getDistanceMeter(source, target, Ellipsoid.Sphere); + double WGS84 = getDistanceMeter(source, target, Ellipsoid.WGS84); + double GRS80 = getDistanceMeter(source, target, Ellipsoid.GRS80); + double GRS67 = getDistanceMeter(source, target, Ellipsoid.GRS67); + double ANS = getDistanceMeter(source, target, Ellipsoid.ANS); + double WGS72 = getDistanceMeter(source, target, Ellipsoid.WGS72); + double Clarke1858 = getDistanceMeter(source, target, Ellipsoid.Clarke1858); + double Clarke1880 = getDistanceMeter(source, target, Ellipsoid.Clarke1880); +// logger.info("Sphere坐标系计算结果:"+Sphere + "米"); +// logger.info("WGS84坐标系计算结果:"+WGS84 + "米"); +// logger.info("GRS80坐标系计算结果:"+GRS80 + "米"); +// logger.info("GRS67坐标系计算结果:"+GRS67 + "米"); +// logger.info("ANS坐标系计算结果:"+ANS + "米"); +// logger.info("WGS72坐标系计算结果:"+WGS72 + "米"); +// logger.info("Clarke1858坐标系计算结果:"+Clarke1858 + "米"); +// logger.info("Clarke1880坐标系计算结果:"+Clarke1880 + "米"); + map.put("Sphere", Sphere); + map.put("WGS84", WGS84); + map.put("GRS80", GRS80); + map.put("GRS67", GRS67); + map.put("ANS", ANS); + map.put("WGS72", WGS72); + map.put("Clarke1858", Clarke1858); + map.put("Clarke1880", Clarke1880); + } + return map; + } + + + private static double getDistanceMeter(GlobalCoordinates gpsFrom, GlobalCoordinates gpsTo, Ellipsoid ellipsoid){ + //创建GeodeticCalculator,调用计算方法,传入坐标系、经纬度用于计算距离 + GeodeticCurve geoCurve = new GeodeticCalculator().calculateGeodeticCurve(ellipsoid, gpsFrom, gpsTo); + return geoCurve.getEllipsoidalDistance(); + } + + + + public static void main(String[] ages){ + GeodesyUtil geodesyUtil = new GeodesyUtil(); + geodesyUtil.getDistance("115.481028,39.989643", "114.465302,40.004717"); + } +} diff --git a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GoogleMap/AddressComponentsVo.java b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GoogleMap/AddressComponentsVo.java new file mode 100644 index 0000000..b9f0f2e --- /dev/null +++ b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GoogleMap/AddressComponentsVo.java @@ -0,0 +1,28 @@ +package com.stylefeng.guns.modular.system.util.GoogleMap; + +public class AddressComponentsVo { + /** + * 长名称 + */ + private String longName; + /** + * 短名称 + */ + private String shortName; + + public String getLongName() { + return longName; + } + + public void setLongName(String longName) { + this.longName = longName; + } + + public String getShortName() { + return shortName; + } + + public void setShortName(String shortName) { + this.shortName = shortName; + } +} diff --git a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GoogleMap/DistancematrixVo.java b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GoogleMap/DistancematrixVo.java new file mode 100644 index 0000000..a18b151 --- /dev/null +++ b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GoogleMap/DistancematrixVo.java @@ -0,0 +1,29 @@ +package com.stylefeng.guns.modular.system.util.GoogleMap; + +public class DistancematrixVo { + /** + * 预估时间(秒) + */ + private Long duration; + + /** + * 预估里程(米) + */ + private Long distance; + + public Long getDuration() { + return duration; + } + + public void setDuration(Long duration) { + this.duration = duration; + } + + public Long getDistance() { + return distance; + } + + public void setDistance(Long distance) { + this.distance = distance; + } +} diff --git a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GoogleMap/FindPlaceFromTextVo.java b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GoogleMap/FindPlaceFromTextVo.java new file mode 100644 index 0000000..0b34a97 --- /dev/null +++ b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GoogleMap/FindPlaceFromTextVo.java @@ -0,0 +1,52 @@ +package com.stylefeng.guns.modular.system.util.GoogleMap; + +public class FindPlaceFromTextVo { + /** + * 名称 + */ + private String name; + /** + * 详细地址 + */ + private String address; + /** + * 纬度 + */ + private Double lat; + /** + * 经度 + */ + private Double lng; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getAddress() { + return address; + } + + public void setAddress(String address) { + this.address = address; + } + + public Double getLat() { + return lat; + } + + public void setLat(Double lat) { + this.lat = lat; + } + + public Double getLng() { + return lng; + } + + public void setLng(Double lng) { + this.lng = lng; + } +} diff --git a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GoogleMap/GeocodeVo.java b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GoogleMap/GeocodeVo.java new file mode 100644 index 0000000..0c77d18 --- /dev/null +++ b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GoogleMap/GeocodeVo.java @@ -0,0 +1,28 @@ +package com.stylefeng.guns.modular.system.util.GoogleMap; + +public class GeocodeVo { + /** + * 纬度 + */ + private double lat; + /** + * 经度 + */ + private double lng; + + public double getLat() { + return lat; + } + + public void setLat(double lat) { + this.lat = lat; + } + + public double getLng() { + return lng; + } + + public void setLng(double lng) { + this.lng = lng; + } +} diff --git a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GoogleMap/GoogleMapUtil.java b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GoogleMap/GoogleMapUtil.java new file mode 100644 index 0000000..aa6b522 --- /dev/null +++ b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GoogleMap/GoogleMapUtil.java @@ -0,0 +1,191 @@ +package com.stylefeng.guns.modular.system.util.GoogleMap; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.maps.*; +import com.google.maps.model.*; + +/** + * 谷歌地图工具类 + */ +public class GoogleMapUtil { + + private final static String key = "AIzaSyA_FEliOkbkL1IAHQsnBpbpo9MlIp729H0"; + + + /** + * 地理编码(地址获取位置坐标) + * @param address 地址信息 + * @throws Exception + */ + public static GeocodeVo getGeocode(String address) throws Exception{ + GeoApiContext context = new GeoApiContext.Builder() + .apiKey(key) + .build(); + GeocodingResult[] results = GeocodingApi.geocode(context, address).await(); + GeocodeVo vo = null; + if(results.length > 0){ + Gson gson = new GsonBuilder().setPrettyPrinting().create(); + System.out.println(gson.toJson(results[0].addressComponents)); + + Geometry geometry = results[0].geometry; + LatLng location = geometry.location; + vo = new GeocodeVo(); + vo.setLat(location.lat); + vo.setLng(location.lng); + } + context.shutdown(); + return vo; + } + + + /** + * 逆地理编码获取地址信息 + * @param lat 纬度 + * @param lng 经度 + * @return + * @throws Exception + */ + public static ReverseGeocodeVo getReverseGeocode(double lat, double lng) throws Exception{ + GeoApiContext context = new GeoApiContext.Builder() + .apiKey(key) + .build(); + GeocodingApiRequest request = GeocodingApi.reverseGeocode(context, new LatLng(lat, lng)); + GeocodingResult[] results = request.await(); + ReverseGeocodeVo vo = null; + if(results.length > 0){ + Gson gson = new GsonBuilder().setPrettyPrinting().create(); + System.out.println(gson.toJson(results[0].addressComponents)); + + + vo = new ReverseGeocodeVo(); + AddressComponent[] addressComponents = results[0].addressComponents; + AddressComponentsVo[] addressComponentsVos = new AddressComponentsVo[addressComponents.length]; + for (int i = 0; i < addressComponents.length; i++) { + addressComponentsVos[i].setLongName(addressComponents[i].longName); + addressComponentsVos[i].setShortName(addressComponents[i].shortName); + } + String address = results[0].formattedAddress; + vo.setAddressComponentsVos(addressComponentsVos); + vo.setAddress(address); + } + context.shutdown(); + return vo; + } + + + /** + * 搜索地图获取地图结果 + * @param input + * @return + * @throws Exception + */ + public static FindPlaceFromTextVo findplacefromtext(String input) throws Exception{ + GeoApiContext context = new GeoApiContext.Builder() + .apiKey(key) + .build(); + FindPlaceFromTextRequest request = new FindPlaceFromTextRequest(context); + request.input(input); + request.inputType(FindPlaceFromTextRequest.InputType.TEXT_QUERY); + FindPlaceFromText findPlaceFromText = request.await(); + PlacesSearchResult[] candidates = findPlaceFromText.candidates; + FindPlaceFromTextVo vo = null; + if(candidates.length > 0){ + vo = new FindPlaceFromTextVo(); + String formattedAddress = candidates[0].formattedAddress; + String name = candidates[0].name; + Geometry geometry = candidates[0].geometry; + LatLng location = geometry.location; + double lat = location.lat; + double lng = location.lng; + + vo.setName(name); + vo.setAddress(formattedAddress); + vo.setLat(lat); + vo.setLng(lng); + } + return vo; + } + + + + /** + * 获取两个地点之间的预估里程和预估时间 + * @param origin 起点 + * @param destination 终点 + * @return + * @throws Exception + */ + public static DistancematrixVo getDistancematrix(String origin, String destination) throws Exception{ + GeoApiContext context = new GeoApiContext.Builder() + .apiKey(key) + .build(); + DistanceMatrixApiRequest request = DistanceMatrixApi.getDistanceMatrix(context, new String[]{origin}, new String[]{destination}); + request.mode(TravelMode.DRIVING);//出行方式(驾车) + DistanceMatrix distanceMatrix = request.await(); + Gson gson = new GsonBuilder().setPrettyPrinting().create(); + System.out.println(gson.toJson(distanceMatrix)); + context.shutdown(); + + DistanceMatrixElement elements = distanceMatrix.rows[0].elements[0]; + DistancematrixVo vo = new DistancematrixVo(); + vo.setDistance(elements.distance.inMeters); + vo.setDuration(elements.duration.inSeconds); + return vo; + } + + + /** + * 获取两点之间的距离 + * @param sLat + * @param sLnt + * @param eLat + * @param eLnt + * @return + * @throws Exception + */ + public static DistancematrixVo getDistancematrix(Double sLat, Double sLnt, Double eLat, Double eLnt) throws Exception{ + ReverseGeocodeVo reverseGeocode = getReverseGeocode(sLat, sLnt); + ReverseGeocodeVo reverseGeocode1 = getReverseGeocode(eLat, eLnt); + if(null != reverseGeocode && null != reverseGeocode1){ + String origin = reverseGeocode.getAddress(); + String destination = reverseGeocode1.getAddress(); + return getDistancematrix(origin, destination); + } + return null; + } + + + /** + * 获取两地点之间的线路规划 + * @param origin 起点 要计算方向的位置ID、地址或文本纬度/经度值。目标参数的选项与原点参数的相同。 + * @param destination 终点 要计算方向的位置ID、地址或文本纬度/经度值。目标参数的选项与原点参数的相同。 + * + */ + public static void getDirections(String origin, String destination) throws Exception{ + GeoApiContext context = new GeoApiContext.Builder() + .apiKey(key) + .build(); + DirectionsApiRequest directions = DirectionsApi.getDirections(context, origin, destination); + directions.mode(TravelMode.DRIVING);//出行方式(驾车) + DirectionsResult result = directions.await(); + + Gson gson = new GsonBuilder().setPrettyPrinting().create(); + System.out.println(gson.toJson(result)); + context.shutdown(); + } + + + + + + public static void main(String[] ages){ + try { + } catch (Exception e) { + e.printStackTrace(); + } + } + + + +} diff --git a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GoogleMap/ReverseGeocodeVo.java b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GoogleMap/ReverseGeocodeVo.java new file mode 100644 index 0000000..641516d --- /dev/null +++ b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GoogleMap/ReverseGeocodeVo.java @@ -0,0 +1,29 @@ +package com.stylefeng.guns.modular.system.util.GoogleMap; + +public class ReverseGeocodeVo { + /** + * 完整地址名称 + */ + private String address; + /** + * 分段地址名称数组 + */ + private AddressComponentsVo[] addressComponentsVos; + + + public String getAddress() { + return address; + } + + public void setAddress(String address) { + this.address = address; + } + + public AddressComponentsVo[] getAddressComponentsVos() { + return addressComponentsVos; + } + + public void setAddressComponentsVos(AddressComponentsVo[] addressComponentsVos) { + this.addressComponentsVos = addressComponentsVos; + } +} diff --git a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PushUtil.java b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PushUtil.java index 3485bbb..4f3a26d 100644 --- a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PushUtil.java +++ b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PushUtil.java @@ -3,6 +3,7 @@ import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; +import com.stylefeng.guns.core.util.ToolUtil; import com.stylefeng.guns.modular.crossCity.model.OrderCrossCity; import com.stylefeng.guns.modular.crossCity.server.IOrderCrossCityService; import com.stylefeng.guns.modular.smallLogistics.model.OrderLogistics; @@ -10,6 +11,8 @@ import com.stylefeng.guns.modular.specialTrain.model.OrderPrivateCar; import com.stylefeng.guns.modular.specialTrain.server.IOrderPrivateCarService; import com.stylefeng.guns.modular.system.model.OrderPosition; +import com.stylefeng.guns.modular.system.util.GoogleMap.DistancematrixVo; +import com.stylefeng.guns.modular.system.util.GoogleMap.GoogleMapUtil; import com.stylefeng.guns.modular.taxi.model.OrderTaxi; import com.stylefeng.guns.modular.taxi.service.IOrderTaxiService; import org.springframework.beans.factory.annotation.Autowired; @@ -296,16 +299,21 @@ return; } if((state == 2 || state == 3 || state == 4) || (oldState != null && (oldState == 2 || oldState == 3 || oldState == 4))){//前往预约地 - Map<String, String> distance = gdMapElectricFenceUtil.getDistance(value, startLonLat, 1); String d = "0"; String t = "0"; - if(null == distance){ - System.err.println("查询距离出错了"); - return; - }else{ - d = new BigDecimal(distance.get("distance")).divide(new BigDecimal(1000)).setScale(2, BigDecimal.ROUND_HALF_EVEN).toString(); - t = new BigDecimal(distance.get("duration")).divide(new BigDecimal(60)).setScale(2, BigDecimal.ROUND_HALF_EVEN).intValue() + ""; + if(ToolUtil.isNotEmpty(value) && ToolUtil.isNotEmpty(startLonLat)){ + String[] split = value.split(","); + String[] split1 = startLonLat.split(","); + DistancematrixVo distancematrix = GoogleMapUtil.getDistancematrix(Double.valueOf(split[1]), Double.valueOf(split[0]), Double.valueOf(split1[1]), Double.valueOf(split1[0])); + if(null == distancematrix){ + System.err.println("地图获取距离出错"); + }else{ + d = distancematrix.getDistance().toString();//距离m + t = distancematrix.getDuration().toString();//时间s + } } + d = new BigDecimal(d).divide(new BigDecimal(1000)).setScale(2, BigDecimal.ROUND_HALF_EVEN).toString(); + t = new BigDecimal(t).divide(new BigDecimal(60)).setScale(2, BigDecimal.ROUND_HALF_EVEN).intValue() + ""; map.put("reservationMileage", d);//当前位置距离预约点的剩余里程 map.put("reservationTime", t);//当前位置距离预约点的剩余分钟 map.put("servedMileage", "0");//距离起点已经服务的里程 @@ -319,19 +327,27 @@ map.put("servedMileage", String.valueOf((null == servedMileage ? 0 : servedMileage) / 1000));//距离起点已经服务的里程 Integer servedTime = Long.valueOf((new Date().getTime() - startServiceTime) / 60000).intValue(); map.put("servedTime", servedTime + "");//距离起点已经服务的时间 - Map<String, String> distance = gdMapElectricFenceUtil.getDistance(value, endLonLat, 1); + String d = "0"; String t = "0"; - if(null == distance){ - System.err.println("查询距离出错了"); - }else{ - d = new BigDecimal(distance.get("distance")).divide(new BigDecimal(1000)).setScale(2, BigDecimal.ROUND_HALF_EVEN).toString(); - t = new BigDecimal(distance.get("duration")).divide(new BigDecimal(60)).setScale(2, BigDecimal.ROUND_HALF_EVEN).intValue() + ""; + if(ToolUtil.isNotEmpty(value) && ToolUtil.isNotEmpty(endLonLat)){ + String[] split = value.split(","); + String[] split1 = endLonLat.split(","); + DistancematrixVo distancematrix = GoogleMapUtil.getDistancematrix(Double.valueOf(split[1]), Double.valueOf(split[0]), Double.valueOf(split1[1]), Double.valueOf(split1[0])); + if(null == distancematrix){ + System.err.println("地图获取距离出错"); + }else{ + d = distancematrix.getDistance().toString();//距离m + t = distancematrix.getDuration().toString();//时间s + } } + + d = new BigDecimal(d).divide(new BigDecimal(1000)).setScale(2, BigDecimal.ROUND_HALF_EVEN).toString(); + t = new BigDecimal(t).divide(new BigDecimal(60)).setScale(2, BigDecimal.ROUND_HALF_EVEN).intValue() + ""; map.put("laveMileage", d);//距离终点剩余未服务的里程数 map.put("laveTime", t);//距离终端剩余未服务的预计时间 } - File file = new File(filePath + orderId + "_1.txt"); + File file = new File(filePath + orderId + "_" + orderType + ".txt"); if(file.exists()){ //读取文件(字符流) BufferedReader in = new BufferedReader(new InputStreamReader(new FileInputStream(file),"UTF-8")); diff --git a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/DriverInfoWarpper.java b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/DriverInfoWarpper.java index 1bf0f88..127a9ba 100644 --- a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/DriverInfoWarpper.java +++ b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/DriverInfoWarpper.java @@ -15,6 +15,8 @@ private String name; @ApiModelProperty("电话") private String phone; + @ApiModelProperty("邮箱") + private String email; @ApiModelProperty("性别") private Integer sex; @ApiModelProperty("车牌") @@ -65,6 +67,8 @@ private String driveCardImgUrl; @ApiModelProperty("网约车资格证照片") private String networkCarlssueImg; + @ApiModelProperty("语言(1=简体中文,2=英语,3=法语)") + private Integer language; @ApiModelProperty("审核状态(1=待审核,2=正常,3=冻结,4=拒绝)") private Integer authState; @@ -373,6 +377,22 @@ this.laveBusinessMoney = laveBusinessMoney; } + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public Integer getLanguage() { + return language; + } + + public void setLanguage(Integer language) { + this.language = language; + } + @Override public String toString() { return "DriverInfoWarpper{" + @@ -421,6 +441,7 @@ driverInfoWarpper.setQrCodeIsOpen(null != map.get("qrCodeIsOpen") ? Boolean.valueOf(map.get("qrCodeIsOpen").toString()) : false); driverInfoWarpper.setName(null != map.get("name") ? String.valueOf(map.get("name")) : ""); driverInfoWarpper.setPhone(null != map.get("phone") ? String.valueOf(map.get("phone")) : ""); + driverInfoWarpper.setEmail(null != map.get("email") ? String.valueOf(map.get("email")) : ""); driverInfoWarpper.setSex(null != map.get("sex") ? Integer.valueOf(String.valueOf(map.get("sex"))) : 0); driverInfoWarpper.setLicensePlate(null != map.get("licensePlate") ? String.valueOf(map.get("licensePlate")) : ""); driverInfoWarpper.setBrand(null != map.get("brand") ? String.valueOf(map.get("brand")) : ""); @@ -445,6 +466,7 @@ driverInfoWarpper.setPlaceOfEmployment(null != map.get("placeOfEmployment") ? String.valueOf(map.get("placeOfEmployment")) : ""); driverInfoWarpper.setLaveActivityMoney(null != map.get("laveActivityMoney") ? Double.valueOf(String.valueOf(map.get("laveActivityMoney"))) : 0); driverInfoWarpper.setLaveBusinessMoney(null != map.get("laveBusinessMoney") ? Double.valueOf(String.valueOf(map.get("laveBusinessMoney"))) : 0); + driverInfoWarpper.setLanguage(null != map.get("language") ? Integer.valueOf(String.valueOf(map.get("language"))) : 2); } return driverInfoWarpper; } diff --git a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/RegisteredWarpper.java b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/RegisteredWarpper.java index 049b69f..cbcd0e0 100644 --- a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/RegisteredWarpper.java +++ b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/RegisteredWarpper.java @@ -29,18 +29,16 @@ private Date getDriverLicenseDate; @ApiModelProperty("服务模式(1=专车,2=出租车,3=城际,4=小件物流-同城,5=小件物流-跨城,6=包车)多个以逗号分隔") private String type; - @ApiModelProperty("从业地行政代码(510100)") - private String placeOfEmployment; - @ApiModelProperty("从业地地址(带分隔符)") - private String placeOfPractice; + @ApiModelProperty("邮件") + private String email; + @ApiModelProperty("从业地城市id") + private Integer placeOfPracticeId; @ApiModelProperty("头像") private String headImgUrl; - @ApiModelProperty("驾驶证照片") - private String driveCardImgUrl; - @ApiModelProperty("网约车资格证照片") - private String networkCarlssueImg; - @ApiModelProperty("出租车资格证号") - private String taxiAptitudeCard; + @ApiModelProperty("驾驶证照片正面") + private String driveCardImgUrl1; + @ApiModelProperty("驾驶证照片背面") + private String driveCardImgUrl2; public String getPhone() { @@ -83,6 +81,14 @@ this.driverContactAddress = driverContactAddress; } + public String getDriverContactAddress_() { + return driverContactAddress_; + } + + public void setDriverContactAddress_(String driverContactAddress_) { + this.driverContactAddress_ = driverContactAddress_; + } + public String getIdCard() { return idCard; } @@ -123,12 +129,20 @@ this.type = type; } - public String getPlaceOfEmployment() { - return placeOfEmployment; + public String getEmail() { + return email; } - public void setPlaceOfEmployment(String placeOfEmployment) { - this.placeOfEmployment = placeOfEmployment; + public void setEmail(String email) { + this.email = email; + } + + public Integer getPlaceOfPracticeId() { + return placeOfPracticeId; + } + + public void setPlaceOfPracticeId(Integer placeOfPracticeId) { + this.placeOfPracticeId = placeOfPracticeId; } public String getHeadImgUrl() { @@ -139,44 +153,20 @@ this.headImgUrl = headImgUrl; } - public String getDriveCardImgUrl() { - return driveCardImgUrl; + public String getDriveCardImgUrl1() { + return driveCardImgUrl1; } - public void setDriveCardImgUrl(String driveCardImgUrl) { - this.driveCardImgUrl = driveCardImgUrl; + public void setDriveCardImgUrl1(String driveCardImgUrl1) { + this.driveCardImgUrl1 = driveCardImgUrl1; } - public String getNetworkCarlssueImg() { - return networkCarlssueImg; + public String getDriveCardImgUrl2() { + return driveCardImgUrl2; } - public void setNetworkCarlssueImg(String networkCarlssueImg) { - this.networkCarlssueImg = networkCarlssueImg; - } - - public String getTaxiAptitudeCard() { - return taxiAptitudeCard; - } - - public void setTaxiAptitudeCard(String taxiAptitudeCard) { - this.taxiAptitudeCard = taxiAptitudeCard; - } - - public String getDriverContactAddress_() { - return driverContactAddress_; - } - - public void setDriverContactAddress_(String driverContactAddress_) { - this.driverContactAddress_ = driverContactAddress_; - } - - public String getPlaceOfPractice() { - return placeOfPractice; - } - - public void setPlaceOfPractice(String placeOfPractice) { - this.placeOfPractice = placeOfPractice; + public void setDriveCardImgUrl2(String driveCardImgUrl2) { + this.driveCardImgUrl2 = driveCardImgUrl2; } @Override @@ -187,20 +177,17 @@ ", name='" + name + '\'' + ", sex=" + sex + ", driverContactAddress='" + driverContactAddress + '\'' + + ", driverContactAddress_='" + driverContactAddress_ + '\'' + ", idCard='" + idCard + '\'' + ", idCardImgUrl1='" + idCardImgUrl1 + '\'' + ", idCardImgUrl2='" + idCardImgUrl2 + '\'' + ", getDriverLicenseDate=" + getDriverLicenseDate + - ", type=" + type + - ", placeOfEmployment='" + placeOfEmployment + '\'' + + ", type='" + type + '\'' + + ", email='" + email + '\'' + + ", placeOfPracticeId=" + placeOfPracticeId + ", headImgUrl='" + headImgUrl + '\'' + - ", driveCardImgUrl='" + driveCardImgUrl + '\'' + - ", networkCarlssueImg='" + networkCarlssueImg + '\'' + - ", taxiAptitudeCard='" + taxiAptitudeCard + '\'' + + ", driveCardImgUrl1='" + driveCardImgUrl1 + '\'' + + ", driveCardImgUrl2='" + driveCardImgUrl2 + '\'' + '}'; } - - - - } -- Gitblit v1.7.1