From bd6b419b58eef18cfcb5da6222d00e6f88d5166c Mon Sep 17 00:00:00 2001 From: Pu Zhibing <393733352@qq.com> Date: 星期六, 09 十一月 2024 15:54:25 +0800 Subject: [PATCH] 修改bug和翻译 --- UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/impl/OrderLogisticsServiceImpl.java | 440 +++++++++++----------- UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java | 11 UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ICompanyCityService.java | 20 + UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/CompanyCityServiceImpl.java | 73 +++ UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/CompanyMapper.java | 3 UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/Tingg/TinggPayUtil.java | 4 UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/PhoneServiceImpl.java | 17 UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GoogleMap/FleetEngineUtil.java | 9 UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java | 436 +++++++++++----------- UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/PhoneMapper.java | 4 UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/CompanyMapper.xml | 66 +++ UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/PhoneMapper.xml | 24 - 12 files changed, 641 insertions(+), 466 deletions(-) diff --git a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java index e94eaed..a3e2d80 100644 --- a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java +++ b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java @@ -1045,6 +1045,13 @@ if(null == uid){ return ResultUtil.tokenErr(); } + String format = String.format("uid=%s&id=%s&orderType=%s&payType=%s&type=%s", uid, id, orderType, payType, type); + String key = MD5Util.encrypt(format); + String value = redisUtil.getValue(key); + if(ToolUtil.isNotEmpty(value) && (System.currentTimeMillis() - Long.valueOf(value)) <= 1000){ + return ResultUtil.error(language == 1 ? "请勿重复操作" : language == 2 ? "Don't repeat the operation" : "Ne répétez pas l’opération"); + } + redisUtil.setStrValue(key, System.currentTimeMillis() + "", 5); switch (orderType){ case 1: return orderPrivateCarService.cancleOrderPrivateCar(id, payType, bankCardId, cancleId, type, language); @@ -1426,6 +1433,7 @@ @ResponseBody @PostMapping("/base/wxCancelOrderTaxi") public CallbackResponse wxCancelOrderTaxi(@RequestBody CallbackRequest callbackRequest){ + log.info("取消订单支付回调结果:{}", JSON.toJSONString(callbackRequest)); CallbackResponse callbackResponse = new CallbackResponse(); try { /** @@ -1477,6 +1485,7 @@ }catch (Exception e){ e.printStackTrace(); } + log.info("取消订单支付回调处理结束:{}", JSON.toJSONString(callbackResponse)); return callbackResponse; } @@ -1528,6 +1537,7 @@ @ResponseBody @PostMapping("/base/wxPayOrderTaxi") public CallbackResponse wxPayOrderTaxi(@RequestBody CallbackRequest callbackRequest){ + log.info("订单完成支付回调结果:{}", JSON.toJSONString(callbackRequest)); CallbackResponse callbackResponse = new CallbackResponse(); try { /** @@ -1582,6 +1592,7 @@ }catch (Exception e){ e.printStackTrace(); } + log.info("订单完成支付回调处理结束:{}", JSON.toJSONString(callbackResponse)); return callbackResponse; } diff --git a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/impl/OrderLogisticsServiceImpl.java b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/impl/OrderLogisticsServiceImpl.java index c3e9bd4..1ef1908 100644 --- a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/impl/OrderLogisticsServiceImpl.java +++ b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/impl/OrderLogisticsServiceImpl.java @@ -773,62 +773,75 @@ UserInfo userInfo = userInfoService.selectById(uid); userInfo.setLanguage(language); userInfoService.updateById(userInfo); - - new Thread(() -> { - try { - String vehicleId = null; - if(null != orderLogistics.getDriverId()){ - Driver driver = driverService.selectById(orderLogistics.getDriverId()); - Car car = carMapper.selectById(driver.getCarId()); - if(!StringUtils.hasLength(car.getVehicleId())){ - car.setVehicleId(UUIDUtil.getRandomCode()); - carMapper.updateById(car); - } - //查询车辆信息,没有则创建信息 - String vehicles = fleetEngineUtil.getVehicles(car.getVehicleId()); - if(ToolUtil.isEmpty(vehicles)){ - CarModel carModel = carModelMapper.selectById(car.getCarModelId()); - boolean createVehicles = fleetEngineUtil.createVehicles(carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId()); - if(!createVehicles){ - for (int i = 0; i < 5; i++) { - createVehicles = fleetEngineUtil.createVehicles(carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId()); - if(createVehicles){ - break; - } - Thread.sleep(5000L); - } - } - boolean updateVehicles = fleetEngineUtil.updateVehicles("ONLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId()); - if(!updateVehicles){ - for (int i = 0; i < 5; i++) { - updateVehicles = fleetEngineUtil.updateVehicles("ONLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId()); - if(updateVehicles){ - break; - } - Thread.sleep(5000L); - } - } - } - - } - //创建行程数据 - boolean createTrip = fleetEngineUtil.createTrip(vehicleId, 1, orderLogistics.getTripId(), - orderLogistics.getStartLat().toString(), orderLogistics.getStartLon().toString(), orderLogistics.getEndLat().toString(), orderLogistics.getEndLon().toString()); - if(!createTrip){ + + //google创建车辆信息 + String vehicleId = null; + if(null != orderLogistics.getDriverId()){ + Driver driver = driverService.selectById(orderLogistics.getDriverId()); + Car car = carMapper.selectById(driver.getCarId()); + if(!StringUtils.hasLength(car.getVehicleId())){ + car.setVehicleId(UUIDUtil.getRandomCode()); + carMapper.updateById(car); + } + //查询车辆信息,没有则创建信息 + String vehicles = fleetEngineUtil.getVehicles(car.getVehicleId()); + if(ToolUtil.isEmpty(vehicles)){ + CarModel carModel = carModelMapper.selectById(car.getCarModelId()); + boolean createVehicles = fleetEngineUtil.createVehicles(carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId()); + if(!createVehicles){ for (int i = 0; i < 5; i++) { - createTrip = fleetEngineUtil.createTrip(vehicleId, 1, orderLogistics.getTripId(), - orderLogistics.getStartLat().toString(), orderLogistics.getStartLon().toString(), orderLogistics.getEndLat().toString(), orderLogistics.getEndLon().toString()); - if(createTrip){ + createVehicles = fleetEngineUtil.createVehicles(carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId()); + if(createVehicles){ break; } Thread.sleep(5000L); } } - - }catch (Exception e){ - e.printStackTrace(); + boolean updateVehicles = fleetEngineUtil.updateVehicles("ONLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId()); + if(!updateVehicles){ + for (int i = 0; i < 5; i++) { + updateVehicles = fleetEngineUtil.updateVehicles("ONLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId()); + if(updateVehicles){ + break; + } + Thread.sleep(5000L); + } + } } - }).start(); + } + + //创建行程数据 + String trip = fleetEngineUtil.getTrip(orderLogistics.getTripId()); + int count = this.selectCount(new EntityWrapper<OrderLogistics>().eq("tripId", orderLogistics.getTripId())); + int count1 = orderPrivateCarService.selectCount(new EntityWrapper<OrderPrivateCar>().eq("tripId", orderLogistics.getTripId())); + if(ToolUtil.isNotEmpty(trip) || (count + count1) > 0){ + String randomCode = UUIDUtil.getRandomCode(); + redisUtil.setStrValue("trip" + orderLogistics.getUserId(), randomCode); + OrderLogistics orderLogistics1 = new OrderLogistics(); + orderLogistics1.setId(orderLogistics.getId()); + orderLogistics1.setTripId(randomCode); + this.updateById(orderLogistics1); + orderLogistics.setTripId(randomCode); + } + JSONObject createTrip = fleetEngineUtil.createTrip(vehicleId, 1, orderLogistics.getTripId(), + orderLogistics.getStartLat().toString(), orderLogistics.getStartLon().toString(), orderLogistics.getEndLat().toString(), orderLogistics.getEndLon().toString()); + JSONObject error = createTrip.getJSONObject("error"); + if(null != error){ + for (int i = 0; i < 5; i++) { + createTrip = fleetEngineUtil.createTrip(vehicleId, 1, orderLogistics.getTripId(), + orderLogistics.getStartLat().toString(), orderLogistics.getStartLon().toString(), orderLogistics.getEndLat().toString(), orderLogistics.getEndLon().toString()); + error = createTrip.getJSONObject("error"); + String tripStatus = createTrip.getString("tripStatus"); + if(null == error && "NEW".equals(tripStatus)){ + break; + } + try { + Thread.sleep(3000L); + } catch (InterruptedException e) { + throw new RuntimeException(e); + } + } + } if(orderSource == 2){//扫码下单 Driver driver = driverService.selectById(orderLogistics.getDriverId()); @@ -1129,11 +1142,11 @@ userRedPacketRecord.setEndTime(new Date()); userRedPacketRecord.setState(2); multiply1 = multiply1.subtract(remainingAmount).setScale(2, RoundingMode.HALF_EVEN); - jsonObject.put("money", remainingAmount); + jsonObject.put("money", remainingAmount.setScale(2, RoundingMode.HALF_EVEN)); jsonArray.add(jsonObject); }else if(remainingAmount.compareTo(multiply1) > 0){ userRedPacketRecord.setRemainingAmount(remainingAmount.subtract(multiply1).setScale(2, RoundingMode.HALF_EVEN).doubleValue()); - jsonObject.put("money", multiply1); + jsonObject.put("money", multiply1.setScale(2, RoundingMode.HALF_EVEN)); jsonArray.add(jsonObject); multiply1 = BigDecimal.ZERO; } @@ -1189,7 +1202,6 @@ }else{ resultUtil = ResultUtil.error(language == 1 ? "支付失败" : language == 2 ? "Payment failure" : "Paiement échoué", ""); } - return resultUtil; } if(payType == 2) {//银行卡支付 @@ -1212,12 +1224,12 @@ resultUtil = TinggPayUtil.checkoutRequest(checkoutRequest); if(resultUtil.getCode()==200){ + this.updateById(orderLogistics); paymentRecordService.saveData(1, null, null, orderId, 4, 2, orderMoney.setScale(2, RoundingMode.HALF_EVEN).doubleValue(), null, 1);//添加预支付数据 }else{ resultUtil = ResultUtil.error(language == 1 ? "支付失败" : language == 2 ? "Payment failure" : "Paiement échoué", ""); } - return resultUtil; } if(payType == 3){//余额支付 @@ -1268,29 +1280,27 @@ } } - if(orderLogistics.getIsplatPay()==1){ - //添加已收入明细 - Company company = companyService.selectById(orderLogistics.getCompanyId()); - Double speMoney = company.getSpeMoney(); - BigDecimal d = null;//企业收入 - BigDecimal c = null;//司机收入 - if(company.getIsSpeFixedOrProportional() == 2){//固定 - d = new BigDecimal(speMoney); - c = new BigDecimal(orderLogistics.getOrderMoney()).subtract(d);//只有出行金额参与抽成,其余归属司机 - } - if(company.getIsSpeFixedOrProportional() == 1){//比例 - Double price = orderLogistics.getStartMoney() + orderLogistics.getMileageMoney() + orderLogistics.getWaitMoney() + orderLogistics.getDurationMoney() + orderLogistics.getLongDistanceMoney(); - d = new BigDecimal(price).multiply(new BigDecimal(speMoney).divide(new BigDecimal(100), new MathContext(2, RoundingMode.HALF_EVEN))); - c = new BigDecimal(orderLogistics.getOrderMoney()).subtract(d).setScale(2, BigDecimal.ROUND_HALF_EVEN); - } - incomeService.saveData(1, orderLogistics.getCompanyId(), 2, orderLogistics.getId(), 4, d.doubleValue()); - incomeService.saveData(2, orderLogistics.getDriverId(), 2, orderLogistics.getId(), 4, c.doubleValue()); - Driver driver = driverService.selectById(orderLogistics.getDriverId()); - driver.setBusinessMoney(new BigDecimal(null != driver.getBusinessMoney() ? driver.getBusinessMoney() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); - driver.setLaveBusinessMoney(new BigDecimal(null != driver.getLaveBusinessMoney() ? driver.getLaveBusinessMoney() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); - driver.setBalance(new BigDecimal(null != driver.getBalance() ? driver.getBalance() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); - driverService.updateById(driver); + //添加已收入明细 + Company company = companyService.selectById(orderLogistics.getCompanyId()); + Double speMoney = company.getSpeMoney(); + BigDecimal d = null;//企业收入 + BigDecimal c = null;//司机收入 + if(company.getIsSpeFixedOrProportional() == 2){//固定 + d = new BigDecimal(speMoney); + c = new BigDecimal(orderLogistics.getOrderMoney()).subtract(d);//只有出行金额参与抽成,其余归属司机 } + if(company.getIsSpeFixedOrProportional() == 1){//比例 + Double price = orderLogistics.getStartMoney() + orderLogistics.getMileageMoney() + orderLogistics.getWaitMoney() + orderLogistics.getDurationMoney() + orderLogistics.getLongDistanceMoney(); + d = new BigDecimal(price).multiply(new BigDecimal(speMoney).divide(new BigDecimal(100), new MathContext(2, RoundingMode.HALF_EVEN))); + c = new BigDecimal(orderLogistics.getOrderMoney()).subtract(d).setScale(2, BigDecimal.ROUND_HALF_EVEN); + } + incomeService.saveData(1, orderLogistics.getCompanyId(), 2, orderLogistics.getId(), 4, d.doubleValue()); + incomeService.saveData(2, orderLogistics.getDriverId(), 2, orderLogistics.getId(), 4, c.doubleValue()); + Driver driver = driverService.selectById(orderLogistics.getDriverId()); + driver.setBusinessMoney(new BigDecimal(null != driver.getBusinessMoney() ? driver.getBusinessMoney() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); + driver.setLaveBusinessMoney(new BigDecimal(null != driver.getLaveBusinessMoney() ? driver.getLaveBusinessMoney() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); + driver.setBalance(new BigDecimal(null != driver.getBalance() ? driver.getBalance() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); + driverService.updateById(driver); // TODO: 2020/5/24 这里需要给司机和用户推送订单状态 new Thread(new Runnable() { @@ -1314,7 +1324,7 @@ Document document = Jsoup.parse(new File(path), "UTF-8"); SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd"); SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm"); - Driver driver = driverService.selectById(orderLogistics.getDriverId()); + driver = driverService.selectById(orderLogistics.getDriverId()); Car car = carMapper.selectById(orderLogistics.getCarId()); Double aDouble = 0D; if(null != orderLogistics.getDriverId()){ @@ -1746,21 +1756,20 @@ } - if(orderLogistics.getIsplatPay()==1){ - //添加已收入明细 - Company company = companyService.selectById(orderLogistics.getCompanyId()); - Double speMoney = company.getSpeMoney(); - BigDecimal d = null;//企业收入 - BigDecimal c = null;//司机收入 - if(company.getIsSpeFixedOrProportional() == 2){//固定 - d = new BigDecimal(speMoney); - c = new BigDecimal(orderLogistics.getOrderMoney()).subtract(d);//只有出行金额参与抽成,其余归属司机 - } - if(company.getIsSpeFixedOrProportional() == 1){//比例 - Double price = orderLogistics.getStartMoney() + orderLogistics.getMileageMoney() + orderLogistics.getWaitMoney() + orderLogistics.getDurationMoney() + orderLogistics.getLongDistanceMoney(); - d = new BigDecimal(price).multiply(new BigDecimal(speMoney).divide(new BigDecimal(100), new MathContext(2, RoundingMode.HALF_EVEN))); - c = new BigDecimal(orderLogistics.getOrderMoney()).subtract(d).setScale(2, BigDecimal.ROUND_HALF_EVEN); - } + //添加已收入明细 + Company company = companyService.selectById(orderLogistics.getCompanyId()); + Double speMoney = company.getSpeMoney(); + BigDecimal d = null;//企业收入 + BigDecimal c = null;//司机收入 + if(company.getIsSpeFixedOrProportional() == 2){//固定 + d = new BigDecimal(speMoney); + c = new BigDecimal(orderLogistics.getOrderMoney()).subtract(d);//只有出行金额参与抽成,其余归属司机 + } + if(company.getIsSpeFixedOrProportional() == 1){//比例 + Double price = orderLogistics.getStartMoney() + orderLogistics.getMileageMoney() + orderLogistics.getWaitMoney() + orderLogistics.getDurationMoney() + orderLogistics.getLongDistanceMoney(); + d = new BigDecimal(price).multiply(new BigDecimal(speMoney).divide(new BigDecimal(100), new MathContext(2, RoundingMode.HALF_EVEN))); + c = new BigDecimal(orderLogistics.getOrderMoney()).subtract(d).setScale(2, BigDecimal.ROUND_HALF_EVEN); + } // incomeService.saveData(1, orderPrivateCar.getCompanyId(), 2, orderPrivateCar.getId(), 1, d.doubleValue()); // incomeService.saveData(2, orderPrivateCar.getDriverId(), 2, orderPrivateCar.getId(), 1, c.doubleValue()); @@ -1768,110 +1777,109 @@ // driver.setLaveBusinessMoney(new BigDecimal(null != driver.getLaveBusinessMoney() ? driver.getLaveBusinessMoney() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); // driver.setBalance(new BigDecimal(null != driver.getBalance() ? driver.getBalance() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); // driverService.updateById(driver); - - - //记录司机待结算金额 - if(d.compareTo(new BigDecimal(0)) > 0){ - SettlementDetail settlementDetail = new SettlementDetail(); - settlementDetail.setOrderId(orderId); - settlementDetail.setOrderType(4); - settlementDetail.setDriverId(driver.getId()); - settlementDetail.setOrderMoney(orderLogistics.getOrderMoney()); - settlementDetail.setPrice(d.doubleValue()); - settlementDetail.setCreateTime(new Date()); - settlementDetailService.insert(settlementDetail); - - SettlementAllocation settlementAllocation = settlementAllocationService.selectOne(null); - if(null != settlementAllocation){ - JSONObject jsonObject = JSON.parseObject(settlementAllocation.getContent()); - Double maxPrice = jsonObject.getDouble("maxPrice"); - Integer type1 = jsonObject.getInteger("type"); - if(null != maxPrice){ - List<SettlementDetail> settlementDetailList = settlementDetailService.selectList(new EntityWrapper<SettlementDetail>().eq("driverId", driver.getId()) - .isNull("settlementRecordId").last(" and DATE_FORMAT(now(), '%Y-%m-%d') = DATE_FORMAT(createTime, '%Y-%m-%d')")); - BigDecimal total = new BigDecimal(0); - for (SettlementDetail detail : settlementDetailList) { - total = total.add(new BigDecimal(detail.getPrice())); - } - //日结算 - if(maxPrice.compareTo(total.doubleValue()) <= 0){ - SettlementRecord settlementRecord = settlementRecordService.selectOne(new EntityWrapper<SettlementRecord>().eq("driverId", orderLogistics.getDriverId()) - .eq("type", type1).eq("paymentStatus", 1).last(" and day = DATE_FORMAT(now(), '%Y-%m-%d')")); - if(null == settlementRecord){ - settlementRecord = new SettlementRecord(); - settlementRecord.setDay(new Date()); - settlementRecord.setDriverId(orderLogistics.getDriverId()); - settlementRecord.setType(type1); - settlementRecord.setPaymentStatus(1); - settlementRecord.setPayMoney(total.doubleValue()); - settlementRecord.setInsertTime(new Date()); - settlementRecordService.insert(settlementRecord); - }else{ - settlementRecord.setPayMoney(settlementRecord.getPayMoney() + total.doubleValue()); - settlementRecordService.updateById(settlementRecord); - } - for (SettlementDetail detail : settlementDetailList) { - detail.setSettlementRecordId(settlementRecord.getId()); - settlementDetailService.updateById(detail); - } - //强制司机下班 - DriverWork driverWork = driverWorkService.selectOne(new EntityWrapper<DriverWork>() - .eq("driverId", orderLogistics.getDriverId()).eq("state", 1)); - if(null != driverWork){ - driverWork.setEndTime(new Date()); - driverWork.setState(2); - driverWorkService.updateById(driverWork); - driver.setState(1); - driverService.updateById(driver); - Car car = carService.selectById(driver.getCarId()); - if(!org.apache.shiro.util.StringUtils.hasLength(car.getVehicleId())){ - car.setVehicleId(UUIDUtil.getRandomCode()); - carService.updateById(car); - } - //司机下班,修改谷歌上的车辆信息 - new Thread(()->{ - try { - CarModel carModel = carModelMapper.selectById(car.getCarModelId()); - String vehicles = fleetEngineUtil.getVehicles(car.getVehicleId()); - if(ToolUtil.isEmpty(vehicles)){ - boolean createVehicles = fleetEngineUtil.createVehicles(carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId()); - if(!createVehicles){ - for (int i = 0; i < 5; i++) { - createVehicles = fleetEngineUtil.createVehicles(carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId()); - if(createVehicles){ - break; - } - Thread.sleep(5000L); + + //记录司机待结算金额 + if(d.compareTo(new BigDecimal(0)) > 0){ + SettlementDetail settlementDetail = new SettlementDetail(); + settlementDetail.setOrderId(orderId); + settlementDetail.setOrderType(4); + settlementDetail.setDriverId(driver.getId()); + settlementDetail.setOrderMoney(orderLogistics.getOrderMoney()); + settlementDetail.setPrice(d.doubleValue()); + settlementDetail.setCreateTime(new Date()); + settlementDetailService.insert(settlementDetail); + + SettlementAllocation settlementAllocation = settlementAllocationService.selectOne(null); + if(null != settlementAllocation){ + JSONObject jsonObject = JSON.parseObject(settlementAllocation.getContent()); + Double maxPrice = jsonObject.getDouble("maxPrice"); + Integer type1 = jsonObject.getInteger("type"); + if(null != maxPrice){ + List<SettlementDetail> settlementDetailList = settlementDetailService.selectList(new EntityWrapper<SettlementDetail>().eq("driverId", driver.getId()) + .isNull("settlementRecordId").last(" and DATE_FORMAT(now(), '%Y-%m-%d') = DATE_FORMAT(createTime, '%Y-%m-%d')")); + BigDecimal total = new BigDecimal(0); + for (SettlementDetail detail : settlementDetailList) { + total = total.add(new BigDecimal(detail.getPrice())); + } + //日结算 + if(maxPrice.compareTo(total.doubleValue()) <= 0){ + SettlementRecord settlementRecord = settlementRecordService.selectOne(new EntityWrapper<SettlementRecord>().eq("driverId", orderLogistics.getDriverId()) + .eq("type", type1).eq("paymentStatus", 1).last(" and day = DATE_FORMAT(now(), '%Y-%m-%d')")); + if(null == settlementRecord){ + settlementRecord = new SettlementRecord(); + settlementRecord.setDay(new Date()); + settlementRecord.setDriverId(orderLogistics.getDriverId()); + settlementRecord.setType(type1); + settlementRecord.setPaymentStatus(1); + settlementRecord.setPayMoney(total.doubleValue()); + settlementRecord.setInsertTime(new Date()); + settlementRecordService.insert(settlementRecord); + }else{ + settlementRecord.setPayMoney(settlementRecord.getPayMoney() + total.doubleValue()); + settlementRecordService.updateById(settlementRecord); + } + for (SettlementDetail detail : settlementDetailList) { + detail.setSettlementRecordId(settlementRecord.getId()); + settlementDetailService.updateById(detail); + } + //强制司机下班 + DriverWork driverWork = driverWorkService.selectOne(new EntityWrapper<DriverWork>() + .eq("driverId", orderLogistics.getDriverId()).eq("state", 1)); + if(null != driverWork){ + driverWork.setEndTime(new Date()); + driverWork.setState(2); + driverWorkService.updateById(driverWork); + driver.setState(1); + driverService.updateById(driver); + Car car = carService.selectById(driver.getCarId()); + if(!org.apache.shiro.util.StringUtils.hasLength(car.getVehicleId())){ + car.setVehicleId(UUIDUtil.getRandomCode()); + carService.updateById(car); + } + + //司机下班,修改谷歌上的车辆信息 + new Thread(()->{ + try { + CarModel carModel = carModelMapper.selectById(car.getCarModelId()); + String vehicles = fleetEngineUtil.getVehicles(car.getVehicleId()); + if(ToolUtil.isEmpty(vehicles)){ + boolean createVehicles = fleetEngineUtil.createVehicles(carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId()); + if(!createVehicles){ + for (int i = 0; i < 5; i++) { + createVehicles = fleetEngineUtil.createVehicles(carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId()); + if(createVehicles){ + break; } - } - boolean updateVehicles = fleetEngineUtil.updateVehicles("OFFLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId()); - if(!updateVehicles){ - for (int i = 0; i < 5; i++) { - updateVehicles = fleetEngineUtil.updateVehicles("OFFLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId()); - if(updateVehicles){ - break; - } - Thread.sleep(5000L); - } - } - }else{ - boolean updateVehicles = fleetEngineUtil.updateVehicles("OFFLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId()); - if(!updateVehicles){ - for (int i = 0; i < 5; i++) { - updateVehicles = fleetEngineUtil.updateVehicles("OFFLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId()); - if(updateVehicles){ - break; - } - Thread.sleep(5000L); - } + Thread.sleep(5000L); } } - }catch (Exception e){ - e.printStackTrace(); + boolean updateVehicles = fleetEngineUtil.updateVehicles("OFFLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId()); + if(!updateVehicles){ + for (int i = 0; i < 5; i++) { + updateVehicles = fleetEngineUtil.updateVehicles("OFFLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId()); + if(updateVehicles){ + break; + } + Thread.sleep(5000L); + } + } + }else{ + boolean updateVehicles = fleetEngineUtil.updateVehicles("OFFLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId()); + if(!updateVehicles){ + for (int i = 0; i < 5; i++) { + updateVehicles = fleetEngineUtil.updateVehicles("OFFLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId()); + if(updateVehicles){ + break; + } + Thread.sleep(5000L); + } + } } - }).start(); - } + }catch (Exception e){ + e.printStackTrace(); + } + }).start(); } } } @@ -2327,7 +2335,7 @@ } } - this.updateById(orderLogistics); + this.updateAllColumnById(orderLogistics); return resultUtil; } @@ -2543,29 +2551,28 @@ query.setState(2); query.setCode(order_id); paymentRecordService.updateById(query); - if(orderLogistics.getIsplatPay()==1){ - //添加已收入明细 - Company company = companyService.selectById(orderLogistics.getCompanyId()); - Double speMoney = company.getSpeMoney(); - BigDecimal d = null;//企业收入 - BigDecimal c = null;//司机收入 - if(company.getIsSpeFixedOrProportional() == 2){//固定 - d = new BigDecimal(speMoney); - c = new BigDecimal(orderLogistics.getOrderMoney()).subtract(d);//只有出行金额参与抽成,其余归属司机 - } - if(company.getIsSpeFixedOrProportional() == 1){//比例 - Double price = orderLogistics.getStartMoney() + orderLogistics.getMileageMoney() + orderLogistics.getWaitMoney() + orderLogistics.getDurationMoney() + orderLogistics.getLongDistanceMoney(); - d = new BigDecimal(price).multiply(new BigDecimal(speMoney).divide(new BigDecimal(100), new MathContext(2, RoundingMode.HALF_EVEN))); - c = new BigDecimal(orderLogistics.getOrderMoney()).subtract(d).setScale(2, BigDecimal.ROUND_HALF_EVEN); - } - incomeService.saveData(1, orderLogistics.getCompanyId(), 2, orderLogistics.getId(), 4, d.doubleValue()); - incomeService.saveData(2, orderLogistics.getDriverId(), 2, orderLogistics.getId(), 4, c.doubleValue()); - Driver driver = driverService.selectById(orderLogistics.getDriverId()); - driver.setBusinessMoney(new BigDecimal(null != driver.getBusinessMoney() ? driver.getBusinessMoney() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); - driver.setLaveBusinessMoney(new BigDecimal(null != driver.getLaveBusinessMoney() ? driver.getLaveBusinessMoney() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); - driver.setBalance(new BigDecimal(null != driver.getBalance() ? driver.getBalance() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); - driverService.updateById(driver); + + //添加已收入明细 + Company company = companyService.selectById(orderLogistics.getCompanyId()); + Double speMoney = company.getSpeMoney(); + BigDecimal d = null;//企业收入 + BigDecimal c = null;//司机收入 + if(company.getIsSpeFixedOrProportional() == 2){//固定 + d = new BigDecimal(speMoney); + c = new BigDecimal(orderLogistics.getOrderMoney()).subtract(d);//只有出行金额参与抽成,其余归属司机 } + if(company.getIsSpeFixedOrProportional() == 1){//比例 + Double price = orderLogistics.getStartMoney() + orderLogistics.getMileageMoney() + orderLogistics.getWaitMoney() + orderLogistics.getDurationMoney() + orderLogistics.getLongDistanceMoney(); + d = new BigDecimal(price).multiply(new BigDecimal(speMoney).divide(new BigDecimal(100), new MathContext(2, RoundingMode.HALF_EVEN))); + c = new BigDecimal(orderLogistics.getOrderMoney()).subtract(d).setScale(2, BigDecimal.ROUND_HALF_EVEN); + } + incomeService.saveData(1, orderLogistics.getCompanyId(), 2, orderLogistics.getId(), 4, d.doubleValue()); + incomeService.saveData(2, orderLogistics.getDriverId(), 2, orderLogistics.getId(), 4, c.doubleValue()); + Driver driver = driverService.selectById(orderLogistics.getDriverId()); + driver.setBusinessMoney(new BigDecimal(null != driver.getBusinessMoney() ? driver.getBusinessMoney() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); + driver.setLaveBusinessMoney(new BigDecimal(null != driver.getLaveBusinessMoney() ? driver.getLaveBusinessMoney() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); + driver.setBalance(new BigDecimal(null != driver.getBalance() ? driver.getBalance() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); + driverService.updateById(driver); // TODO: 2020/5/24 这里需要给司机和用户推送订单状态 new Thread(new Runnable() { @@ -2587,7 +2594,7 @@ Document document = Jsoup.parse(new File(path), "UTF-8"); SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd"); SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm"); - Driver driver = driverService.selectById(orderLogistics.getDriverId()); + driver = driverService.selectById(orderLogistics.getDriverId()); Car car = carMapper.selectById(orderLogistics.getCarId()); Double aDouble = 0D; if(null != orderLogistics.getDriverId()){ @@ -3251,7 +3258,7 @@ driverService.updateById(driver); } - if((orderLogistics.getState() == 10 || orderLogistics.getState() == 12) && null != orderLogistics.getDriverId()){ + if(orderLogistics.getState() == 10 || orderLogistics.getState() == 12){ //修改行程信息 boolean updateTrip = fleetEngineUtil.updateTrip("CANCELED", null, null, orderLogistics.getTripId(), null, null, null, null); if(!updateTrip){ @@ -3260,11 +3267,10 @@ if(updateTrip){ break; } - Thread.sleep(5000L); + Thread.sleep(3000L); } } } - log.warn("取消订单:{} {}", System.currentTimeMillis(), orderLogistics.getTripId()); //添加消息 systemNoticeService.addSystemNotice(1, language == 1 ? "您已成功取消包裹订单,谢谢使用!" : language == 2 ? "You've cancelled the delivery order successfully, thank you for using I-GO " : "Vous avez annulé la commande de livraison avec succès, merci d’utiliser I-GO", orderLogistics.getUserId(), 1); diff --git a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java index 5cccec9..fea75bd 100644 --- a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java +++ b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java @@ -375,61 +375,74 @@ userInfo.setLanguage(language); userInfoService.updateById(userInfo); - new Thread(() -> { - try { - if(null != orderPrivateCar.getDriverId()){ - Driver driver = driverService.selectById(orderPrivateCar.getDriverId()); - Car car = carMapper.selectById(driver.getCarId()); - if(!StringUtils.hasLength(car.getVehicleId())){ - car.setVehicleId(UUIDUtil.getRandomCode()); - carMapper.updateById(car); - } - String vehicleId = car.getVehicleId(); - //查询车辆信息,没有则创建信息 - String vehicles = fleetEngineUtil.getVehicles(car.getVehicleId()); - if(ToolUtil.isEmpty(vehicles)){ - CarModel carModel = carModelMapper.selectById(car.getCarModelId()); - boolean createVehicles = fleetEngineUtil.createVehicles(carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId()); - if(!createVehicles){ - for (int i = 0; i < 5; i++) { - createVehicles = fleetEngineUtil.createVehicles(carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId()); - if(createVehicles){ - break; - } - Thread.sleep(5000L); - } + //google创建车辆信息 + String vehicleId = null; + if(null != orderPrivateCar.getDriverId()) { + Driver driver = driverService.selectById(orderPrivateCar.getDriverId()); + Car car = carMapper.selectById(driver.getCarId()); + if (!StringUtils.hasLength(car.getVehicleId())) { + car.setVehicleId(UUIDUtil.getRandomCode()); + carMapper.updateById(car); + } + vehicleId = car.getVehicleId(); + //查询车辆信息,没有则创建信息 + String vehicles = fleetEngineUtil.getVehicles(car.getVehicleId()); + if (ToolUtil.isEmpty(vehicles)) { + CarModel carModel = carModelMapper.selectById(car.getCarModelId()); + boolean createVehicles = fleetEngineUtil.createVehicles(carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId()); + if (!createVehicles) { + for (int i = 0; i < 5; i++) { + createVehicles = fleetEngineUtil.createVehicles(carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId()); + if (createVehicles) { + break; } - boolean updateVehicles = fleetEngineUtil.updateVehicles("ONLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId()); - if(!updateVehicles){ - for (int i = 0; i < 5; i++) { - updateVehicles = fleetEngineUtil.updateVehicles("ONLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId()); - if(updateVehicles){ - break; - } - Thread.sleep(5000L); - } - } - } - - //创建行程数据 - boolean createTrip = fleetEngineUtil.createTrip(vehicleId, 1, orderPrivateCar.getTripId(), - orderPrivateCar.getStartLat().toString(), orderPrivateCar.getStartLon().toString(), orderPrivateCar.getEndLat().toString(), orderPrivateCar.getEndLon().toString()); - if(!createTrip){ - for (int i = 0; i < 5; i++) { - createTrip = fleetEngineUtil.createTrip(vehicleId, 1, orderPrivateCar.getTripId(), - orderPrivateCar.getStartLat().toString(), orderPrivateCar.getStartLon().toString(), orderPrivateCar.getEndLat().toString(), orderPrivateCar.getEndLon().toString()); - if(createTrip){ - break; - } - Thread.sleep(5000L); - } + Thread.sleep(5000L); } } - - }catch (Exception e){ - e.printStackTrace(); + boolean updateVehicles = fleetEngineUtil.updateVehicles("ONLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId()); + if (!updateVehicles) { + for (int i = 0; i < 5; i++) { + updateVehicles = fleetEngineUtil.updateVehicles("ONLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId()); + if (updateVehicles) { + break; + } + Thread.sleep(5000L); + } + } } - }).start(); + } + //创建行程数据 + String trip = fleetEngineUtil.getTrip(orderPrivateCar.getTripId()); + int count = orderLogisticsService.selectCount(new EntityWrapper<OrderLogistics>().eq("tripId", orderPrivateCar.getTripId())); + int count1 = this.selectCount(new EntityWrapper<OrderPrivateCar>().eq("tripId", orderPrivateCar.getTripId())); + if(ToolUtil.isNotEmpty(trip) || (count + count1) > 0){ + String randomCode = UUIDUtil.getRandomCode(); + redisUtil.setStrValue("trip" + orderPrivateCar.getUserId(), randomCode); + OrderPrivateCar orderPrivateCar1 = new OrderPrivateCar(); + orderPrivateCar1.setId(orderPrivateCar.getCarId()); + orderPrivateCar1.setTripId(randomCode); + this.updateById(orderPrivateCar1); + orderPrivateCar.setTripId(randomCode); + } + JSONObject createTrip = fleetEngineUtil.createTrip(vehicleId, 1, orderPrivateCar.getTripId(), + orderPrivateCar.getStartLat().toString(), orderPrivateCar.getStartLon().toString(), orderPrivateCar.getEndLat().toString(), orderPrivateCar.getEndLon().toString()); + JSONObject error = createTrip.getJSONObject("error"); + if(null != error){ + for (int i = 0; i < 5; i++) { + createTrip = fleetEngineUtil.createTrip(vehicleId, 1, orderPrivateCar.getTripId(), + orderPrivateCar.getStartLat().toString(), orderPrivateCar.getStartLon().toString(), orderPrivateCar.getEndLat().toString(), orderPrivateCar.getEndLon().toString()); + error = createTrip.getJSONObject("error"); + String tripStatus = createTrip.getString("tripStatus"); + if(null == error && "NEW".equals(tripStatus)){ + break; + } + try { + Thread.sleep(3000L); + } catch (InterruptedException e) { + throw new RuntimeException(e); + } + } + } if(orderSource == 2){//扫码下单 @@ -887,7 +900,7 @@ } //修改行程信息 - if((orderPrivateCar.getState() == 10 || orderPrivateCar.getState() == 12) && null != orderPrivateCar.getDriverId()){ + if(orderPrivateCar.getState() == 10 || orderPrivateCar.getState() == 12){ boolean updateTrip = fleetEngineUtil.updateTrip("CANCELED", null, null, orderPrivateCar.getTripId(), null, null, null, null); if(!updateTrip){ for (int i = 0; i < 5; i++) { @@ -895,11 +908,10 @@ if(updateTrip){ break; } - Thread.sleep(5000L); + Thread.sleep(3000L); } } } - log.warn("取消订单:{} {}", System.currentTimeMillis(), orderPrivateCar.getTripId()); //添加消息 systemNoticeService.addSystemNotice(1, language == 1 ? "您已成功取消出行订单,谢谢使用!" : language == 2 ? "You've cancelled the ride order successfully, thank you for using I-GO " : "Vous avez annulé la commande de course avec succès, merci d’utiliser I-GO", orderPrivateCar.getUserId(), 1); Map<String, Object> map = new HashMap<>(); @@ -1449,30 +1461,28 @@ userCouponRecord.setEndTime(new Date()); userCouponRecordService.updateById(userCouponRecord); } - - if(orderPrivateCar.getIsplatPay()==1){ - //添加已收入明细 - Company company = companyService.selectById(orderPrivateCar.getCompanyId()); - Double speMoney = company.getSpeMoney(); - BigDecimal d = null;//企业收入 - BigDecimal c = null;//司机收入 - if(company.getIsSpeFixedOrProportional() == 2){//固定 - d = new BigDecimal(speMoney); - c = new BigDecimal(orderPrivateCar.getOrderMoney()).subtract(d);//只有出行金额参与抽成,其余归属司机 - } - if(company.getIsSpeFixedOrProportional() == 1){//比例 - Double price = orderPrivateCar.getStartMoney() + orderPrivateCar.getMileageMoney() + orderPrivateCar.getWaitMoney() + orderPrivateCar.getDurationMoney() + orderPrivateCar.getLongDistanceMoney(); - d = new BigDecimal(price).multiply(new BigDecimal(speMoney).divide(new BigDecimal(100), new MathContext(2, RoundingMode.HALF_EVEN))); - c = new BigDecimal(orderPrivateCar.getOrderMoney()).subtract(d).setScale(2, BigDecimal.ROUND_HALF_EVEN); - } - incomeService.saveData(1, orderPrivateCar.getCompanyId(), 2, orderPrivateCar.getId(), 1, d.doubleValue()); - incomeService.saveData(2, orderPrivateCar.getDriverId(), 2, orderPrivateCar.getId(), 1, c.doubleValue()); - Driver driver = driverService.selectById(orderPrivateCar.getDriverId()); - driver.setBusinessMoney(new BigDecimal(null != driver.getBusinessMoney() ? driver.getBusinessMoney() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); - driver.setLaveBusinessMoney(new BigDecimal(null != driver.getLaveBusinessMoney() ? driver.getLaveBusinessMoney() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); - driver.setBalance(new BigDecimal(null != driver.getBalance() ? driver.getBalance() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); - driverService.updateById(driver); + + //添加已收入明细 + Company company = companyService.selectById(orderPrivateCar.getCompanyId()); + Double speMoney = company.getSpeMoney(); + BigDecimal d = null;//企业收入 + BigDecimal c = null;//司机收入 + if(company.getIsSpeFixedOrProportional() == 2){//固定 + d = new BigDecimal(speMoney); + c = new BigDecimal(orderPrivateCar.getOrderMoney()).subtract(d);//只有出行金额参与抽成,其余归属司机 } + if(company.getIsSpeFixedOrProportional() == 1){//比例 + Double price = orderPrivateCar.getStartMoney() + orderPrivateCar.getMileageMoney() + orderPrivateCar.getWaitMoney() + orderPrivateCar.getDurationMoney() + orderPrivateCar.getLongDistanceMoney(); + d = new BigDecimal(price).multiply(new BigDecimal(speMoney).divide(new BigDecimal(100), new MathContext(2, RoundingMode.HALF_EVEN))); + c = new BigDecimal(orderPrivateCar.getOrderMoney()).subtract(d).setScale(2, BigDecimal.ROUND_HALF_EVEN); + } + incomeService.saveData(1, orderPrivateCar.getCompanyId(), 2, orderPrivateCar.getId(), 1, d.doubleValue()); + incomeService.saveData(2, orderPrivateCar.getDriverId(), 2, orderPrivateCar.getId(), 1, c.doubleValue()); + Driver driver = driverService.selectById(orderPrivateCar.getDriverId()); + driver.setBusinessMoney(new BigDecimal(null != driver.getBusinessMoney() ? driver.getBusinessMoney() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); + driver.setLaveBusinessMoney(new BigDecimal(null != driver.getLaveBusinessMoney() ? driver.getLaveBusinessMoney() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); + driver.setBalance(new BigDecimal(null != driver.getBalance() ? driver.getBalance() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); + driverService.updateById(driver); if(ToolUtil.isNotEmpty(userInfo.getEmail())){ new Thread(new Runnable() { @@ -1935,23 +1945,22 @@ driver.setBalance(new BigDecimal(null != driver.getBalance() ? driver.getBalance() : 0).add(new BigDecimal(money)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); driverService.updateById(driver); } - - - if(orderPrivateCar.getIsplatPay()==1){ - //添加已收入明细 - Company company = companyService.selectById(orderPrivateCar.getCompanyId()); - Double speMoney = company.getSpeMoney(); - BigDecimal d = null;//企业收入 - BigDecimal c = null;//司机收入 - if(company.getIsSpeFixedOrProportional() == 2){//固定 - d = new BigDecimal(speMoney); - c = new BigDecimal(orderPrivateCar.getOrderMoney()).subtract(d);//只有出行金额参与抽成,其余归属司机 - } - if(company.getIsSpeFixedOrProportional() == 1){//比例 - Double price = orderPrivateCar.getStartMoney() + orderPrivateCar.getMileageMoney() + orderPrivateCar.getWaitMoney() + orderPrivateCar.getDurationMoney() + orderPrivateCar.getLongDistanceMoney(); - d = new BigDecimal(price).multiply(new BigDecimal(speMoney).divide(new BigDecimal(100), new MathContext(2, RoundingMode.HALF_EVEN))); - c = new BigDecimal(orderPrivateCar.getOrderMoney()).subtract(d).setScale(2, BigDecimal.ROUND_HALF_EVEN); - } + + + //添加已收入明细 + Company company = companyService.selectById(orderPrivateCar.getCompanyId()); + Double speMoney = company.getSpeMoney(); + BigDecimal d = null;//企业收入 + BigDecimal c = null;//司机收入 + if(company.getIsSpeFixedOrProportional() == 2){//固定 + d = new BigDecimal(speMoney); + c = new BigDecimal(orderPrivateCar.getOrderMoney()).subtract(d);//只有出行金额参与抽成,其余归属司机 + } + if(company.getIsSpeFixedOrProportional() == 1){//比例 + Double price = orderPrivateCar.getStartMoney() + orderPrivateCar.getMileageMoney() + orderPrivateCar.getWaitMoney() + orderPrivateCar.getDurationMoney() + orderPrivateCar.getLongDistanceMoney(); + d = new BigDecimal(price).multiply(new BigDecimal(speMoney).divide(new BigDecimal(100), new MathContext(2, RoundingMode.HALF_EVEN))); + c = new BigDecimal(orderPrivateCar.getOrderMoney()).subtract(d).setScale(2, BigDecimal.ROUND_HALF_EVEN); + } // incomeService.saveData(1, orderPrivateCar.getCompanyId(), 2, orderPrivateCar.getId(), 1, d.doubleValue()); // incomeService.saveData(2, orderPrivateCar.getDriverId(), 2, orderPrivateCar.getId(), 1, c.doubleValue()); @@ -1959,110 +1968,109 @@ // driver.setLaveBusinessMoney(new BigDecimal(null != driver.getLaveBusinessMoney() ? driver.getLaveBusinessMoney() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); // driver.setBalance(new BigDecimal(null != driver.getBalance() ? driver.getBalance() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); // driverService.updateById(driver); - - - //记录司机待结算金额 - if(d.compareTo(new BigDecimal(0)) > 0){ - SettlementDetail settlementDetail = new SettlementDetail(); - settlementDetail.setOrderId(orderId); - settlementDetail.setOrderType(1); - settlementDetail.setDriverId(driver.getId()); - settlementDetail.setOrderMoney(orderPrivateCar.getOrderMoney()); - settlementDetail.setPrice(d.doubleValue()); - settlementDetail.setCreateTime(new Date()); - settlementDetailService.insert(settlementDetail); - - SettlementAllocation settlementAllocation = settlementAllocationService.selectOne(null); - if(null != settlementAllocation){ - JSONObject jsonObject = JSON.parseObject(settlementAllocation.getContent()); - Double maxPrice = jsonObject.getDouble("maxPrice"); - Integer type1 = jsonObject.getInteger("type"); - if(null != maxPrice){ - List<SettlementDetail> settlementDetailList = settlementDetailService.selectList(new EntityWrapper<SettlementDetail>().eq("driverId", driver.getId()) - .isNull("settlementRecordId").last(" and DATE_FORMAT(now(), '%Y-%m-%d') = DATE_FORMAT(createTime, '%Y-%m-%d')")); - BigDecimal total = new BigDecimal(0); - for (SettlementDetail detail : settlementDetailList) { - total = total.add(new BigDecimal(detail.getPrice())); - } - //日结算 - if(maxPrice.compareTo(total.doubleValue()) <= 0){ - SettlementRecord settlementRecord = settlementRecordService.selectOne(new EntityWrapper<SettlementRecord>().eq("driverId", orderPrivateCar.getDriverId()) - .eq("type", type1).eq("paymentStatus", 1).last(" and day = DATE_FORMAT(now(), '%Y-%m-%d')")); - if(null == settlementRecord){ - settlementRecord = new SettlementRecord(); - settlementRecord.setDay(new Date()); - settlementRecord.setDriverId(orderPrivateCar.getDriverId()); - settlementRecord.setType(type1); - settlementRecord.setPaymentStatus(1); - settlementRecord.setPayMoney(total.doubleValue()); - settlementRecord.setInsertTime(new Date()); - settlementRecordService.insert(settlementRecord); - }else{ - settlementRecord.setPayMoney(settlementRecord.getPayMoney() + total.doubleValue()); - settlementRecordService.updateById(settlementRecord); - } - for (SettlementDetail detail : settlementDetailList) { - detail.setSettlementRecordId(settlementRecord.getId()); - settlementDetailService.updateById(detail); - } - //强制司机下班 - DriverWork driverWork = driverWorkService.selectOne(new EntityWrapper<DriverWork>() - .eq("driverId", orderPrivateCar.getDriverId()).eq("state", 1)); - if(null != driverWork){ - driverWork.setEndTime(new Date()); - driverWork.setState(2); - driverWorkService.updateById(driverWork); - driver.setState(1); - driverService.updateById(driver); - Car car = carService.selectById(driver.getCarId()); - if(!org.apache.shiro.util.StringUtils.hasLength(car.getVehicleId())){ - car.setVehicleId(UUIDUtil.getRandomCode()); - carService.updateById(car); - } - //司机下班,修改谷歌上的车辆信息 - new Thread(()->{ - try { - CarModel carModel = carModelMapper.selectById(car.getCarModelId()); - String vehicles = fleetEngineUtil.getVehicles(car.getVehicleId()); - if(ToolUtil.isEmpty(vehicles)){ - boolean createVehicles = fleetEngineUtil.createVehicles(carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId()); - if(!createVehicles){ - for (int i = 0; i < 5; i++) { - createVehicles = fleetEngineUtil.createVehicles(carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId()); - if(createVehicles){ - break; - } - Thread.sleep(5000L); + + //记录司机待结算金额 + if(d.compareTo(new BigDecimal(0)) > 0){ + SettlementDetail settlementDetail = new SettlementDetail(); + settlementDetail.setOrderId(orderId); + settlementDetail.setOrderType(1); + settlementDetail.setDriverId(driver.getId()); + settlementDetail.setOrderMoney(orderPrivateCar.getOrderMoney()); + settlementDetail.setPrice(d.doubleValue()); + settlementDetail.setCreateTime(new Date()); + settlementDetailService.insert(settlementDetail); + + SettlementAllocation settlementAllocation = settlementAllocationService.selectOne(null); + if(null != settlementAllocation){ + JSONObject jsonObject = JSON.parseObject(settlementAllocation.getContent()); + Double maxPrice = jsonObject.getDouble("maxPrice"); + Integer type1 = jsonObject.getInteger("type"); + if(null != maxPrice){ + List<SettlementDetail> settlementDetailList = settlementDetailService.selectList(new EntityWrapper<SettlementDetail>().eq("driverId", driver.getId()) + .isNull("settlementRecordId").last(" and DATE_FORMAT(now(), '%Y-%m-%d') = DATE_FORMAT(createTime, '%Y-%m-%d')")); + BigDecimal total = new BigDecimal(0); + for (SettlementDetail detail : settlementDetailList) { + total = total.add(new BigDecimal(detail.getPrice())); + } + //日结算 + if(maxPrice.compareTo(total.doubleValue()) <= 0){ + SettlementRecord settlementRecord = settlementRecordService.selectOne(new EntityWrapper<SettlementRecord>().eq("driverId", orderPrivateCar.getDriverId()) + .eq("type", type1).eq("paymentStatus", 1).last(" and day = DATE_FORMAT(now(), '%Y-%m-%d')")); + if(null == settlementRecord){ + settlementRecord = new SettlementRecord(); + settlementRecord.setDay(new Date()); + settlementRecord.setDriverId(orderPrivateCar.getDriverId()); + settlementRecord.setType(type1); + settlementRecord.setPaymentStatus(1); + settlementRecord.setPayMoney(total.doubleValue()); + settlementRecord.setInsertTime(new Date()); + settlementRecordService.insert(settlementRecord); + }else{ + settlementRecord.setPayMoney(settlementRecord.getPayMoney() + total.doubleValue()); + settlementRecordService.updateById(settlementRecord); + } + for (SettlementDetail detail : settlementDetailList) { + detail.setSettlementRecordId(settlementRecord.getId()); + settlementDetailService.updateById(detail); + } + //强制司机下班 + DriverWork driverWork = driverWorkService.selectOne(new EntityWrapper<DriverWork>() + .eq("driverId", orderPrivateCar.getDriverId()).eq("state", 1)); + if(null != driverWork){ + driverWork.setEndTime(new Date()); + driverWork.setState(2); + driverWorkService.updateById(driverWork); + driver.setState(1); + driverService.updateById(driver); + Car car = carService.selectById(driver.getCarId()); + if(!org.apache.shiro.util.StringUtils.hasLength(car.getVehicleId())){ + car.setVehicleId(UUIDUtil.getRandomCode()); + carService.updateById(car); + } + + //司机下班,修改谷歌上的车辆信息 + new Thread(()->{ + try { + CarModel carModel = carModelMapper.selectById(car.getCarModelId()); + String vehicles = fleetEngineUtil.getVehicles(car.getVehicleId()); + if(ToolUtil.isEmpty(vehicles)){ + boolean createVehicles = fleetEngineUtil.createVehicles(carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId()); + if(!createVehicles){ + for (int i = 0; i < 5; i++) { + createVehicles = fleetEngineUtil.createVehicles(carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId()); + if(createVehicles){ + break; } - } - boolean updateVehicles = fleetEngineUtil.updateVehicles("OFFLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId()); - if(!updateVehicles){ - for (int i = 0; i < 5; i++) { - updateVehicles = fleetEngineUtil.updateVehicles("OFFLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId()); - if(updateVehicles){ - break; - } - Thread.sleep(5000L); - } - } - }else{ - boolean updateVehicles = fleetEngineUtil.updateVehicles("OFFLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId()); - if(!updateVehicles){ - for (int i = 0; i < 5; i++) { - updateVehicles = fleetEngineUtil.updateVehicles("OFFLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId()); - if(updateVehicles){ - break; - } - Thread.sleep(5000L); - } + Thread.sleep(5000L); } } - }catch (Exception e){ - e.printStackTrace(); + boolean updateVehicles = fleetEngineUtil.updateVehicles("OFFLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId()); + if(!updateVehicles){ + for (int i = 0; i < 5; i++) { + updateVehicles = fleetEngineUtil.updateVehicles("OFFLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId()); + if(updateVehicles){ + break; + } + Thread.sleep(5000L); + } + } + }else{ + boolean updateVehicles = fleetEngineUtil.updateVehicles("OFFLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId()); + if(!updateVehicles){ + for (int i = 0; i < 5; i++) { + updateVehicles = fleetEngineUtil.updateVehicles("OFFLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId()); + if(updateVehicles){ + break; + } + Thread.sleep(5000L); + } + } } - }).start(); - } + }catch (Exception e){ + e.printStackTrace(); + } + }).start(); } } } @@ -2781,29 +2789,27 @@ query.setState(2); query.setCode(order_id); paymentRecordService.updateById(query); - if(orderPrivateCar.getIsplatPay()==1){ - //添加已收入明细 - Company company = companyService.selectById(orderPrivateCar.getCompanyId()); - Double taxi = company.getSpeMoney(); - BigDecimal d = null;//企业收入 - BigDecimal c = null;//司机收入 - if(company.getIsSpeFixedOrProportional() == 2){//固定 - d = new BigDecimal(taxi); - c = new BigDecimal(orderPrivateCar.getOrderMoney()).subtract(d).setScale(2, BigDecimal.ROUND_HALF_EVEN); - } - if(company.getIsSpeFixedOrProportional() == 1){//比例 - Double price = orderPrivateCar.getStartMoney() + orderPrivateCar.getMileageMoney() + orderPrivateCar.getWaitMoney() + orderPrivateCar.getDurationMoney() + orderPrivateCar.getLongDistanceMoney(); - d = new BigDecimal(price).multiply(new BigDecimal(taxi).divide(new BigDecimal(100), new MathContext(2, RoundingMode.HALF_EVEN))); - c = new BigDecimal(orderPrivateCar.getOrderMoney()).subtract(d).setScale(2, BigDecimal.ROUND_HALF_EVEN); - } - incomeService.saveData(1, orderPrivateCar.getCompanyId(), 2, orderPrivateCar.getId(), 1, d.doubleValue()); - incomeService.saveData(2, orderPrivateCar.getDriverId(), 2, orderPrivateCar.getId(), 1, c.doubleValue()); - Driver driver = driverService.selectById(orderPrivateCar.getDriverId()); - driver.setBusinessMoney(new BigDecimal(null != driver.getBusinessMoney() ? driver.getBusinessMoney() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); - driver.setLaveBusinessMoney(new BigDecimal(null != driver.getLaveBusinessMoney() ? driver.getLaveBusinessMoney() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); - driver.setBalance(new BigDecimal(null != driver.getBalance() ? driver.getBalance() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); - driverService.updateById(driver); + //添加已收入明细 + Company company = companyService.selectById(orderPrivateCar.getCompanyId()); + Double taxi = company.getSpeMoney(); + BigDecimal d = null;//企业收入 + BigDecimal c = null;//司机收入 + if(company.getIsSpeFixedOrProportional() == 2){//固定 + d = new BigDecimal(taxi); + c = new BigDecimal(orderPrivateCar.getOrderMoney()).subtract(d).setScale(2, BigDecimal.ROUND_HALF_EVEN); } + if(company.getIsSpeFixedOrProportional() == 1){//比例 + Double price = orderPrivateCar.getStartMoney() + orderPrivateCar.getMileageMoney() + orderPrivateCar.getWaitMoney() + orderPrivateCar.getDurationMoney() + orderPrivateCar.getLongDistanceMoney(); + d = new BigDecimal(price).multiply(new BigDecimal(taxi).divide(new BigDecimal(100), new MathContext(2, RoundingMode.HALF_EVEN))); + c = new BigDecimal(orderPrivateCar.getOrderMoney()).subtract(d).setScale(2, BigDecimal.ROUND_HALF_EVEN); + } + incomeService.saveData(1, orderPrivateCar.getCompanyId(), 2, orderPrivateCar.getId(), 1, d.doubleValue()); + incomeService.saveData(2, orderPrivateCar.getDriverId(), 2, orderPrivateCar.getId(), 1, c.doubleValue()); + Driver driver = driverService.selectById(orderPrivateCar.getDriverId()); + driver.setBusinessMoney(new BigDecimal(null != driver.getBusinessMoney() ? driver.getBusinessMoney() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); + driver.setLaveBusinessMoney(new BigDecimal(null != driver.getLaveBusinessMoney() ? driver.getLaveBusinessMoney() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); + driver.setBalance(new BigDecimal(null != driver.getBalance() ? driver.getBalance() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); + driverService.updateById(driver); if(ToolUtil.isNotEmpty(userInfo.getEmail())){ diff --git a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/CompanyMapper.java b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/CompanyMapper.java index 228f4cd..f919527 100644 --- a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/CompanyMapper.java +++ b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/CompanyMapper.java @@ -18,4 +18,7 @@ List<Company> queryList(@Param("city") String[] city, @Param("type") Integer type); + + + List<Company> queryList1(@Param("collect") List<Integer> collect, @Param("type") Integer type); } diff --git a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/PhoneMapper.java b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/PhoneMapper.java index 239814c..ce54c35 100644 --- a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/PhoneMapper.java +++ b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/PhoneMapper.java @@ -14,7 +14,7 @@ * 根据行政区域获取设置的电话 * @return */ - List<Phone> queryPhones(@Param("city") String[] city); + List<Phone> queryPhones(@Param("companyIds") List<Integer> companyIds); /** @@ -24,5 +24,5 @@ * @return */ Phone query(@Param("type") Integer type, @Param("platform") Integer platform, - @Param("city") String[] city); + @Param("companyId") Integer companyId); } diff --git a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/CompanyMapper.xml b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/CompanyMapper.xml index 87c218c..65abec0 100644 --- a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/CompanyMapper.xml +++ b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/CompanyMapper.xml @@ -181,4 +181,70 @@ and type = #{type} </if> </select> + + + + <select id="queryList1" 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 + <foreach collection="collect" 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/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/PhoneMapper.xml b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/PhoneMapper.xml index 0c52a1d..b37ae32 100644 --- a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/PhoneMapper.xml +++ b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/PhoneMapper.xml @@ -20,15 +20,10 @@ platform as platform, phone as phone, companyId as companyId - from t_phone where companyId 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" separator="," open="(" close=")"> - #{item} - </foreach> - ) - </if> + from t_phone where companyId in + <foreach collection="companyIds" item="item" index="index" separator="," open="(" close=")"> + #{item} + </foreach> ) </select> @@ -48,16 +43,7 @@ and platform = #{platform} </if> <if test="platform != 1"> - and companyId 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" separator="," open="(" close=")"> - #{item} - </foreach> - ) - </if> - ) + and companyId = #{companyId} </if> </select> diff --git a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ICompanyCityService.java b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ICompanyCityService.java index 8259456..7b2ce67 100644 --- a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ICompanyCityService.java +++ b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ICompanyCityService.java @@ -4,6 +4,8 @@ import com.stylefeng.guns.modular.system.model.Company; import com.stylefeng.guns.modular.system.model.CompanyCity; +import java.util.List; + public interface ICompanyCityService extends IService<CompanyCity> { @@ -20,4 +22,22 @@ * @throws Exception */ Company query(String[] city) throws Exception; + + + /** + * 根据城市名称获取匹配的企业 + * @param city + * @return + * @throws Exception + */ + Company query1(String[] city) throws Exception; + + + /** + * 根据城市名称获取匹配的企业 + * @param city + * @return + * @throws Exception + */ + List<Company> query2(String[] city) throws Exception; } diff --git a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/CompanyCityServiceImpl.java b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/CompanyCityServiceImpl.java index 72c6d5c..3b60ce1 100644 --- a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/CompanyCityServiceImpl.java +++ b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/CompanyCityServiceImpl.java @@ -18,6 +18,7 @@ import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Map; @@ -60,12 +61,78 @@ @Override public Company query(String[] city) throws Exception { - List<City> cities = cityService.selectList(new EntityWrapper<City>().in("chineseName", Arrays.asList(city)).or() - .in("englishName", Arrays.asList(city)).or().in("frenchName", Arrays.asList(city))); - List<Integer> collect = cities.stream().map(City::getId).collect(Collectors.toList()); + List<City> cities1 = cityService.selectList(null); + List<Integer> collect = new ArrayList<>(); + for (City city1 : cities1) { + String chineseName = city1.getChineseName(); + String englishName = city1.getEnglishName(); + String frenchName = city1.getFrenchName(); + for (String s : city) { + if(s.indexOf(chineseName) != -1 || s.indexOf(englishName) != -1 || s.indexOf(frenchName) != -1){ + collect.add(city1.getId()); + break; + } + } + } if(collect.size() == 0){ return null; } return companyMapper.query(collect); } + + + @Override + public Company query1(String[] city) throws Exception { + List<City> cities1 = cityService.selectList(null); + List<Integer> collect = new ArrayList<>(); + for (City city1 : cities1) { + String chineseName = city1.getChineseName(); + String englishName = city1.getEnglishName(); + String frenchName = city1.getFrenchName(); + for (String s : city) { + if(s.indexOf(chineseName) != -1 || s.indexOf(englishName) != -1 || s.indexOf(frenchName) != -1){ + collect.add(city1.getId()); + break; + } + } + } + List<Company> query = companyMapper.queryList1(collect, 3); + if(query.size() == 0){ + query = companyMapper.queryList1(collect, 2); + } + if(query.size() == 0){ + query = companyMapper.queryList1(collect, 1); + } + if(query.size() > 0){ + return query.get(0); + } + return null; + } + + + + @Override + public List<Company> query2(String[] city) throws Exception { + List<City> cities1 = cityService.selectList(null); + List<Integer> collect = new ArrayList<>(); + for (City city1 : cities1) { + String chineseName = city1.getChineseName(); + String englishName = city1.getEnglishName(); + String frenchName = city1.getFrenchName(); + for (String s : city) { + if(s.indexOf(chineseName) != -1 || s.indexOf(englishName) != -1 || s.indexOf(frenchName) != -1){ + collect.add(city1.getId()); + break; + } + } + } + List<Company> query = companyMapper.queryList1(collect, 3); + if(query.size() == 0){ + query = companyMapper.queryList1(collect, 2); + } + if(query.size() == 0){ + query = companyMapper.queryList1(collect, 1); + } + return query; + } } diff --git a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/PhoneServiceImpl.java b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/PhoneServiceImpl.java index af742a4..a3db1d2 100644 --- a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/PhoneServiceImpl.java +++ b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/PhoneServiceImpl.java @@ -2,7 +2,9 @@ import com.baomidou.mybatisplus.service.impl.ServiceImpl; import com.stylefeng.guns.modular.system.dao.PhoneMapper; +import com.stylefeng.guns.modular.system.model.Company; import com.stylefeng.guns.modular.system.model.Phone; +import com.stylefeng.guns.modular.system.service.ICompanyCityService; import com.stylefeng.guns.modular.system.service.IPhoneService; import com.stylefeng.guns.modular.system.util.GoogleMap.AddressComponentsVo; import com.stylefeng.guns.modular.system.util.GoogleMap.GoogleMapUtil; @@ -15,6 +17,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.stream.Collectors; @Service @@ -25,6 +28,9 @@ @Resource private RedisUtil redisUtil; + + @Resource + private ICompanyCityService companyCityService; @@ -46,7 +52,9 @@ for (int i = 0; i < addressComponentsVos.length; i++) { city[i] = addressComponentsVos[i].getLongName(); } - List<Phone> list = phoneMapper.queryPhones(city); + List<Company> companies = companyCityService.query2(city); + List<Integer> collect = companies.stream().map(Company::getId).collect(Collectors.toList()); + List<Phone> list = phoneMapper.queryPhones(collect); return list; } @@ -70,11 +78,12 @@ } Map<String, Object> map = new HashMap<>(); //平台电话 - Phone query = phoneMapper.query(2, 1, city); + Phone query = phoneMapper.query(2, 1, null); map.put("platform", null != query ? query.getPhone() : ""); - + + Company company = companyCityService.query1(city); //公司 - query = phoneMapper.query(2, 2, city); + query = phoneMapper.query(2, 2, company.getId()); map.put("company", null != query ? query.getPhone() : ""); return map; } diff --git a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GoogleMap/FleetEngineUtil.java b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GoogleMap/FleetEngineUtil.java index 4d6679b..a4186d1 100644 --- a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GoogleMap/FleetEngineUtil.java +++ b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GoogleMap/FleetEngineUtil.java @@ -449,7 +449,7 @@ * @param end_lng 终点经度 * @return */ - public boolean createTrip(String vehicleId, Integer numberOfPassengers, String tripId, String start_lat, String start_lng, String end_lat, String end_lng) { + public JSONObject createTrip(String vehicleId, Integer numberOfPassengers, String tripId, String start_lat, String start_lng, String end_lat, String end_lng) { String url = "https://fleetengine.googleapis.com/v1/providers/" + provider + "/trips?tripId=" + tripId; HttpRequest post = HttpUtil.createPost(url); Map<String, String> headers = new HashMap<>(); @@ -478,7 +478,7 @@ end_point.put("longitude", end_lng); dropoffPoint.put("point", end_point); body.put("dropoffPoint", dropoffPoint); - logger.info("创建行程请求:{}", body.toJSONString()); + logger.info("创建行程请求:{} {}", tripId, body.toJSONString()); HttpRequest request = post.body(body.toJSONString()); HttpResponse response = request.execute(); logger.info("创建行程结果:{}", response.body()); @@ -499,7 +499,6 @@ } } logger.error("创建行程异常: tripId={} body={}", tripId, response.body()); - return false; } /** * 返回结果 @@ -616,7 +615,7 @@ * "currentRouteSegmentTrafficVersion": "2024-05-27T02:05:37.941167Z" * } */ - return true; + return jsonObject; } @@ -698,7 +697,7 @@ dropoffPoint.put("point", end_point); body.put("dropoffPoint", dropoffPoint); } - logger.info("修改行程请求:{}", body.toJSONString()); + logger.info("修改行程请求:{} {}", tripId, body.toJSONString()); HttpRequest request = put.body(body.toJSONString()); HttpResponse response = request.execute(); logger.info("修改行程结果:{}", response.body()); diff --git a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/Tingg/TinggPayUtil.java b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/Tingg/TinggPayUtil.java index a38715e..340fb6b 100644 --- a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/Tingg/TinggPayUtil.java +++ b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/Tingg/TinggPayUtil.java @@ -6,6 +6,7 @@ import com.stylefeng.guns.modular.system.util.Tingg.model.CheckoutRequest; import io.cellulant.model.Payload; import io.cellulant.service.CheckoutEncryption; +import lombok.extern.slf4j.Slf4j; import javax.servlet.http.HttpServletRequest; import java.io.BufferedReader; @@ -18,6 +19,7 @@ /** * Tingg支付工具类 */ +@Slf4j public class TinggPayUtil { private static String accessKey = "8rc1gTV9n91Tc1Sy9oVWry99fgrgrVV8concf9onWooWSg9TVW8nSgo98g88"; @@ -37,7 +39,7 @@ CheckoutEncryption checkoutEncrption = new CheckoutEncryption(ivKey, secretKey); Payload payload = getPayload(checkoutRequest); String param = checkoutEncrption.encrypt(payload); - System.out.println("Encrpted payload=" + param); + log.error("调起支付:" + checkoutRequest.getMerchantTransactionId() + "\nEncrpted payload=" + param); String url = "https://checkout.tingg.africa/express/checkout?encrypted_payload=" + param + "&access_key=" + accessKey; return ResultUtil.success(url); }catch (Exception e){ -- Gitblit v1.7.1