From b1f2f102034b4433201225b67a9fc78c08e532f0 Mon Sep 17 00:00:00 2001 From: Pu Zhibing <393733352@qq.com> Date: 星期五, 06 六月 2025 18:35:03 +0800 Subject: [PATCH] 修改bug和管理后台报表 --- UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/impl/OrderLogisticsServiceImpl.java | 103 +++++++++++++++++++++++++++++++++++---------------- 1 files changed, 70 insertions(+), 33 deletions(-) diff --git a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/impl/OrderLogisticsServiceImpl.java b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/impl/OrderLogisticsServiceImpl.java index 49509bf..188670a 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 @@ -400,6 +400,8 @@ orderLogistics.setTravelTime(null == travelTime ? new Date() : travelTime); orderLogistics.setOrderSource(orderSource); orderLogistics.setIsDelete(1); + orderLogistics.setTripId(tripId); + orderLogistics.setIsover(0); this.insert(orderLogistics); //添加消息 @@ -620,7 +622,7 @@ } } }, 30000); - pushUtil.pushOrderState(2, driver.getId(), orderLogistics.getId(), orderLogistics.getType(), orderLogistics.getState(), pushOrder.getPushTime(), audioUrl); + pushUtil.pushOrderState(2, driver.getId(), orderLogistics.getId(), orderLogistics.getType(), orderLogistics.getState(), pushOrder.getPushTime(), audioUrl, "user"); } } Thread.sleep(pushOrder.getPushTime() * 1000);//设置等待时间 @@ -755,8 +757,7 @@ } orderLogistics.setDriverId(driverId); - orderLogistics.setCompanyId(driver.getFranchiseeId() != null && driver.getFranchiseeId() != 0 ? driver.getFranchiseeId() : ( - driver.getCompanyId() != null && driver.getCompanyId() != 0 ? driver.getCompanyId() : 1)); + orderLogistics.setCompanyId(driver.getCompanyId()); orderLogistics.setState(2); orderLogistics.setCarId(driver.getCarId()); CarService query1 = carServiceMapper.query(1, driver.getCarId()); @@ -778,6 +779,7 @@ orderLogistics.setIsReassign(1); orderLogistics.setIsDelete(1); orderLogistics.setTripId(tripId); + orderLogistics.setIsover(0); DistancematrixVo distancematrix1 = GoogleMapUtil.getDistancematrix(orderLogistics.getStartLat(), orderLogistics.getStartLon(), orderLogistics.getEndLat(), orderLogistics.getEndLon(), tripId); Long distance1 = distancematrix1.getDistance(); orderLogistics.setEstimatedMileage(new BigDecimal(distance1).divide(new BigDecimal(1000)).setScale(2, RoundingMode.HALF_EVEN).doubleValue()); @@ -901,8 +903,8 @@ new Thread(new Runnable() { @Override public void run() { - pushUtil.pushOrderState(1, uid, orderLogistics.getId(), 4, 2, 0, ""); - pushUtil.pushOrderState(2, orderLogistics.getDriverId(), orderLogistics.getId(), 4, 2, 0, finalAudioUrl); + pushUtil.pushOrderState(1, uid, orderLogistics.getId(), 4, 2, 0, "", "user"); + pushUtil.pushOrderState(2, orderLogistics.getDriverId(), orderLogistics.getId(), 4, 2, 0, finalAudioUrl, "user"); } }).start(); } @@ -966,14 +968,23 @@ .eq("state", 1).like("type", "4")); if(driver1.getState() == 2 || null != driverWork){ orderLogistics.setDriverId(dr.getId()); - orderLogistics.setCompanyId(dr.getFranchiseeId() != null && dr.getFranchiseeId() != 0 ? dr.getFranchiseeId() : ( - dr.getCompanyId() != null && dr.getCompanyId() != 0 ? dr.getCompanyId() : 1)); + orderLogistics.setCompanyId(dr.getCompanyId()); orderLogistics.setState(2); orderLogistics.setCarId(dr.getCarId()); - CarService query1 = carServiceMapper.query(1, dr.getCarId()); + CarService query1 = carServiceMapper.query(4, dr.getCarId()); orderLogistics.setServerCarModelId(query1.getServerCarModelId()); orderLogistics.setSnatchOrderTime(new Date()); + String value = redisUtil.getValue("DRIVER" + driver1.getId()); + if(ToolUtil.isNotEmpty(value)) { + String[] split = value.split(","); + DistancematrixVo distancematrix = GoogleMapUtil.getDistancematrix(orderLogistics.getStartLat(), orderLogistics.getStartLon(), Double.valueOf(split[1]), Double.valueOf(split[0]), tripId); + //超时时间 + long timeOut = System.currentTimeMillis() + (distancematrix.getDuration() * 1000); + orderLogistics.setEstimateArriveTime(new Date(timeOut)); + orderLogistics.setEstimateArriveMileage(distancematrix.getDistance()); + } + dr.setState(3); driverService.updateById(dr); this.updateById(orderLogistics); @@ -1025,10 +1036,12 @@ new Thread(new Runnable() { @Override public void run() { - pushUtil.pushOrderState(1, uid, orderLogistics.getId(), 4, 2, 0, ""); - pushUtil.pushOrderState(2, orderLogistics.getDriverId(), orderLogistics.getId(), 4, 2, 0, finalAudioUrl); + System.err.println("直推司机后推送司机订单状态"); + pushUtil.pushOrderState(1, uid, orderLogistics.getId(), 4, 2, 0, "", "user"); + pushUtil.pushOrderState(2, orderLogistics.getDriverId(), orderLogistics.getId(), 4, 2, 0, finalAudioUrl, "user"); } }).start(); + } } } @@ -1118,7 +1131,7 @@ if(userCouponRecord.getCouponType() == 2 && orderMoney.compareTo(new BigDecimal(userCouponRecord.getFullMoney())) < 0){ return ResultUtil.error(language == 1 ? "优惠券不能用于此订单" : language == 2 ? "Coupon cannot be used for this order." : "Le coupon ne peut pas être utilisé pour cette commande.", ""); } - orderMoney = orderMoney.subtract(new BigDecimal(userCouponRecord.getMoney())).setScale(2, RoundingMode.HALF_EVEN); + orderMoney = orderMoney.subtract(new BigDecimal(userCouponRecord.getMoney())); orderLogistics.setCouponMoney(userCouponRecord.getMoney()); orderLogistics.setCouponId(couponId); } @@ -1127,15 +1140,14 @@ if(null != redDeduction && 1 == redDeduction && null == orderLogistics.getRedPacketId()){ RedEnvelopePaymentSettings redEnvelopePaymentSettings = redEnvelopePaymentSettingsService.getRedEnvelopePaymentSettings(); if(null != redEnvelopePaymentSettings){ - Double total = userRedPacketRecordService.queryRemainingAmount(uid); List<UserRedPacketRecord> userRedPacketRecords = userRedPacketRecordService.selectList(new EntityWrapper<UserRedPacketRecord>().eq("userId", uid) .eq("state", 1).eq("companyId", orderLogistics.getCompanyId()).gt("remainingAmount", 0).orderBy("insertTime", false)); - + Double total = userRedPacketRecords.stream().mapToDouble(UserRedPacketRecord::getRemainingAmount).sum(); BigDecimal deductionRatio = redEnvelopePaymentSettings.getDeductionRatio(); BigDecimal multiply1 = orderMoney.multiply(deductionRatio.divide(new BigDecimal(100))).setScale(2, RoundingMode.HALF_EVEN); if(total > 0 && multiply1.doubleValue() > 0 && total.compareTo(multiply1.doubleValue()) >= 0){ orderLogistics.setRedPacketMoney(multiply1.doubleValue()); - orderMoney = orderMoney.subtract(multiply1).setScale(2, RoundingMode.HALF_EVEN); + orderMoney = orderMoney.subtract(multiply1); //获取红包id JSONArray jsonArray = new JSONArray(); @@ -1166,7 +1178,7 @@ orderLogistics.setRedPacketId(jsonArray.toJSONString()); }else if(total > 0 && total.compareTo(multiply1.doubleValue()) < 0){ orderLogistics.setRedPacketMoney(total); - orderMoney = orderMoney.subtract(new BigDecimal(total)).setScale(2, RoundingMode.HALF_EVEN); + orderMoney = orderMoney.subtract(new BigDecimal(total)); //获取红包id JSONArray jsonArray = new JSONArray(); for (UserRedPacketRecord userRedPacketRecord : userRedPacketRecords) { @@ -1314,8 +1326,8 @@ new Thread(new Runnable() { @Override public void run() { - pushUtil.pushOrderState(1, orderLogistics.getUserId(), orderLogistics.getId(), orderLogistics.getType(), orderLogistics.getState(), 0, ""); - pushUtil.pushOrderState(2, orderLogistics.getDriverId(), orderLogistics.getId(), orderLogistics.getType(), orderLogistics.getState(), 0, ""); + pushUtil.pushOrderState(1, orderLogistics.getUserId(), orderLogistics.getId(), orderLogistics.getType(), orderLogistics.getState(), 0, "", "user"); + pushUtil.pushOrderState(2, orderLogistics.getDriverId(), orderLogistics.getId(), orderLogistics.getType(), orderLogistics.getState(), 0, "", "user"); } }).start(); @@ -1343,6 +1355,9 @@ if(null != orderLogistics.getDriverId()){ aDouble = orderEvaluateService.queryDriverScore(orderLogistics.getDriverId()); } + + Double aDouble1 = new BigDecimal(orderLogistics.getMileage()).divide(new BigDecimal(1000)).setScale(2, RoundingMode.HALF_EVEN).doubleValue(); + Long serviceTime = new BigDecimal(orderLogistics.getEndServiceTime().getTime() - orderLogistics.getStartServiceTime().getTime()).divide(new BigDecimal(60000), 0, RoundingMode.HALF_EVEN).setScale(0, RoundingMode.HALF_EVEN).longValue(); if(1 == finalLanguage1){ document.getElementById("english").remove(); document.getElementById("french").remove(); @@ -1443,6 +1458,8 @@ cp_chinese.text("车牌:" + car.getCarLicensePlate()); Element pf_chinese = document.getElementById("pf_chinese"); pf_chinese.text("司机评分:" + aDouble); + Element lc_chinese = document.getElementById("lc_chinese"); + lc_chinese.text("里程:" + aDouble1 + "公里 /" + serviceTime + "分钟"); Element start_address_chinese = document.getElementById("start_address_chinese"); start_address_chinese.text(orderLogistics.getStartAddress()); Element end_address_chinese = document.getElementById("end_address_chinese"); @@ -1551,6 +1568,8 @@ cp_english.text("Number Plate:" + car.getCarLicensePlate()); Element pf_english = document.getElementById("pf_english"); pf_english.text("Driver Rating:" + aDouble); + Element lc_english = document.getElementById("lc_english"); + lc_english.text("Mileage:" + aDouble1 + "KM / " + serviceTime + "Minutes"); Element start_address_english = document.getElementById("start_address_english"); start_address_english.text(orderLogistics.getStartAddress()); Element end_address_english = document.getElementById("end_address_english"); @@ -1659,6 +1678,8 @@ cp_french.text("Plaque: GS " + car.getCarLicensePlate()); Element pf_french = document.getElementById("pf_french"); pf_french.text("Note du chauffeur: " + aDouble); + Element lc_french = document.getElementById("lc_french"); + lc_french.text("Distance: " + aDouble1 + "km / " + serviceTime + "minutes"); Element start_address_french = document.getElementById("start_address_french"); start_address_french.text(orderLogistics.getStartAddress()); Element end_address_french = document.getElementById("end_address_french"); @@ -1911,8 +1932,8 @@ new Thread(new Runnable() { @Override public void run() { - pushUtil.pushOrderState(1, orderLogistics.getUserId(), orderLogistics.getId(), orderLogistics.getType(), orderLogistics.getState(), 0, ""); - pushUtil.pushOrderState(2, orderLogistics.getDriverId(), orderLogistics.getId(), orderLogistics.getType(), orderLogistics.getState(), 0, ""); + pushUtil.pushOrderState(1, orderLogistics.getUserId(), orderLogistics.getId(), orderLogistics.getType(), orderLogistics.getState(), 0, "", "user"); + pushUtil.pushOrderState(2, orderLogistics.getDriverId(), orderLogistics.getId(), orderLogistics.getType(), orderLogistics.getState(), 0, "", "user"); Integer language1 = driver.getLanguage(); String text = ""; switch (language1){ @@ -1980,6 +2001,8 @@ if(null != orderLogistics.getDriverId()){ aDouble = orderEvaluateService.queryDriverScore(orderLogistics.getDriverId()); } + Double aDouble1 = new BigDecimal(orderLogistics.getMileage()).divide(new BigDecimal(1000)).setScale(2, RoundingMode.HALF_EVEN).doubleValue(); + Long serviceTime = new BigDecimal(orderLogistics.getEndServiceTime().getTime() - orderLogistics.getStartServiceTime().getTime()).divide(new BigDecimal(60000), 0, RoundingMode.HALF_EVEN).setScale(0, RoundingMode.HALF_EVEN).longValue(); if(1 == finalLanguage){ document.getElementById("english").remove(); document.getElementById("french").remove(); @@ -2080,6 +2103,8 @@ cp_chinese.text("车牌:" + car.getCarLicensePlate()); Element pf_chinese = document.getElementById("pf_chinese"); pf_chinese.text("司机评分:" + aDouble); + Element lc_chinese = document.getElementById("lc_chinese"); + lc_chinese.text("里程:" + aDouble1 + "公里 /" + serviceTime + "分钟"); Element start_address_chinese = document.getElementById("start_address_chinese"); start_address_chinese.text(orderLogistics.getStartAddress()); Element end_address_chinese = document.getElementById("end_address_chinese"); @@ -2188,6 +2213,8 @@ cp_english.text("Number Plate:" + car.getCarLicensePlate()); Element pf_english = document.getElementById("pf_english"); pf_english.text("Driver Rating:" + aDouble); + Element lc_english = document.getElementById("lc_english"); + lc_english.text("Mileage:" + aDouble1 + "KM / " + serviceTime + "Minutes"); Element start_address_english = document.getElementById("start_address_english"); start_address_english.text(orderLogistics.getStartAddress()); Element end_address_english = document.getElementById("end_address_english"); @@ -2296,6 +2323,8 @@ cp_french.text("Plaque: GS " + car.getCarLicensePlate()); Element pf_french = document.getElementById("pf_french"); pf_french.text("Note du chauffeur: " + aDouble); + Element lc_french = document.getElementById("lc_french"); + lc_french.text("Distance: " + aDouble1 + "km / " + serviceTime + "minutes"); Element start_address_french = document.getElementById("start_address_french"); start_address_french.text(orderLogistics.getStartAddress()); Element end_address_french = document.getElementById("end_address_french"); @@ -2476,8 +2505,8 @@ new Thread(new Runnable() { @Override public void run() { - pushUtil.pushOrderState(1, orderLogistics.getUserId(), orderLogistics.getId(), orderLogistics.getType(), orderLogistics.getState(), 0, ""); - pushUtil.pushOrderState(2, orderLogistics.getDriverId(), orderLogistics.getId(), orderLogistics.getType(), orderLogistics.getState(), 0, ""); + pushUtil.pushOrderState(1, orderLogistics.getUserId(), orderLogistics.getId(), orderLogistics.getType(), orderLogistics.getState(), 0, "", "user"); + pushUtil.pushOrderState(2, orderLogistics.getDriverId(), orderLogistics.getId(), orderLogistics.getType(), orderLogistics.getState(), 0, "", "user"); } }).start(); @@ -2534,8 +2563,8 @@ new Thread(new Runnable() { @Override public void run() { - pushUtil.pushOrderState(1, orderLogistics.getUserId(), orderLogistics.getId(), orderLogistics.getType(), orderLogistics.getState(), 0, ""); - pushUtil.pushOrderState(2, orderLogistics.getDriverId(), orderLogistics.getId(), orderLogistics.getType(), orderLogistics.getState(), 0, ""); + pushUtil.pushOrderState(1, orderLogistics.getUserId(), orderLogistics.getId(), orderLogistics.getType(), orderLogistics.getState(), 0, "", "user"); + pushUtil.pushOrderState(2, orderLogistics.getDriverId(), orderLogistics.getId(), orderLogistics.getType(), orderLogistics.getState(), 0, "", "user"); } }).start(); @@ -2606,8 +2635,8 @@ new Thread(new Runnable() { @Override public void run() { - pushUtil.pushOrderState(1, orderLogistics.getUserId(), orderLogistics.getId(), orderLogistics.getType(), orderLogistics.getState(), 0, ""); - pushUtil.pushOrderState(2, orderLogistics.getDriverId(), orderLogistics.getId(), orderLogistics.getType(), orderLogistics.getState(), 0, ""); + pushUtil.pushOrderState(1, orderLogistics.getUserId(), orderLogistics.getId(), orderLogistics.getType(), orderLogistics.getState(), 0, "", "user"); + pushUtil.pushOrderState(2, orderLogistics.getDriverId(), orderLogistics.getId(), orderLogistics.getType(), orderLogistics.getState(), 0, "", "user"); } }).start(); @@ -2628,6 +2657,8 @@ if(null != orderLogistics.getDriverId()){ aDouble = orderEvaluateService.queryDriverScore(orderLogistics.getDriverId()); } + Double aDouble1 = new BigDecimal(orderLogistics.getMileage()).divide(new BigDecimal(1000)).setScale(2, RoundingMode.HALF_EVEN).doubleValue(); + Long serviceTime = new BigDecimal(orderLogistics.getEndServiceTime().getTime() - orderLogistics.getStartServiceTime().getTime()).divide(new BigDecimal(60000), 0, RoundingMode.HALF_EVEN).setScale(0, RoundingMode.HALF_EVEN).longValue(); if(1 == language){ document.getElementById("english").remove(); document.getElementById("french").remove(); @@ -2728,6 +2759,8 @@ cp_chinese.text("车牌:" + car.getCarLicensePlate()); Element pf_chinese = document.getElementById("pf_chinese"); pf_chinese.text("司机评分:" + aDouble); + Element lc_chinese = document.getElementById("lc_chinese"); + lc_chinese.text("里程:" + aDouble1 + "公里 /" + serviceTime + "分钟"); Element start_address_chinese = document.getElementById("start_address_chinese"); start_address_chinese.text(orderLogistics.getStartAddress()); Element end_address_chinese = document.getElementById("end_address_chinese"); @@ -2836,6 +2869,8 @@ cp_english.text("Number Plate:" + car.getCarLicensePlate()); Element pf_english = document.getElementById("pf_english"); pf_english.text("Driver Rating:" + aDouble); + Element lc_english = document.getElementById("lc_english"); + lc_english.text("Mileage:" + aDouble1 + "KM / " + serviceTime + "Minutes"); Element start_address_english = document.getElementById("start_address_english"); start_address_english.text(orderLogistics.getStartAddress()); Element end_address_english = document.getElementById("end_address_english"); @@ -2944,6 +2979,8 @@ cp_french.text("Plaque: GS " + car.getCarLicensePlate()); Element pf_french = document.getElementById("pf_french"); pf_french.text("Note du chauffeur: " + aDouble); + Element lc_french = document.getElementById("lc_french"); + lc_french.text("Distance: " + aDouble1 + "km / " + serviceTime + "minutes"); Element start_address_french = document.getElementById("start_address_french"); start_address_french.text(orderLogistics.getStartAddress()); Element end_address_french = document.getElementById("end_address_french"); @@ -3069,8 +3106,8 @@ new Thread(new Runnable() { @Override public void run() { - pushUtil.pushOrderState(1, orderLogistics.getUserId(), orderLogistics.getId(), orderLogistics.getType(), orderLogistics.getState(), 0, ""); - pushUtil.pushOrderState(2, orderLogistics.getDriverId(), orderLogistics.getId(), orderLogistics.getType(), orderLogistics.getState(), 0, ""); + pushUtil.pushOrderState(1, orderLogistics.getUserId(), orderLogistics.getId(), orderLogistics.getType(), orderLogistics.getState(), 0, "", "user"); + pushUtil.pushOrderState(2, orderLogistics.getDriverId(), orderLogistics.getId(), orderLogistics.getType(), orderLogistics.getState(), 0, "", "user"); } }).start(); @@ -3279,8 +3316,8 @@ audioUrl = "https://igo.i-go.group/files/audio/system/UserCancelledOrder-FR.mp3"; break; } - pushUtil.pushOrderState(1, orderLogistics.getUserId(), orderLogistics.getId(), 4, orderLogistics.getState(), 0, ""); - pushUtil.pushOrderState(2, orderLogistics.getDriverId(), orderLogistics.getId(), 4, orderLogistics.getState() == 12 ? orderLogistics.getState() : 10, 0, audioUrl); + pushUtil.pushOrderState(1, orderLogistics.getUserId(), orderLogistics.getId(), 4, orderLogistics.getState(), 0, "", "user"); + pushUtil.pushOrderState(2, orderLogistics.getDriverId(), orderLogistics.getId(), 4, orderLogistics.getState() == 12 ? orderLogistics.getState() : 10, 0, audioUrl, "user"); } }).start(); driver.setState(2); @@ -3684,11 +3721,11 @@ } this.deleteTask(id);//删除定时任务 - pushUtil.pushOrderState(2, orderLogistics.getDriverId(), orderLogistics.getId(), 4, orderLogistics.getState(), 0, ""); + pushUtil.pushOrderState(2, orderLogistics.getDriverId(), orderLogistics.getId(), 4, orderLogistics.getState(), 0, "", "user"); }else{ incomeService.saveData(1, orderLogistics.getCompanyId(), 3, orderLogistics.getId(), 4, amount.doubleValue()); } - pushUtil.pushOrderState(1, orderLogistics.getUserId(), orderLogistics.getId(), 4, orderLogistics.getState(), 0, ""); + pushUtil.pushOrderState(1, orderLogistics.getUserId(), orderLogistics.getId(), 4, orderLogistics.getState(), 0, "", "user"); //添加消息 @@ -3761,11 +3798,11 @@ } this.deleteTask(orderLogistics.getId());//删除定时任务 - pushUtil.pushOrderState(2, orderLogistics.getDriverId(), orderLogistics.getId(), 4, orderLogistics.getState(), 0, ""); + pushUtil.pushOrderState(2, orderLogistics.getDriverId(), orderLogistics.getId(), 4, orderLogistics.getState(), 0, "", "user"); }else{ incomeService.saveData(1, orderLogistics.getCompanyId(), 3, orderLogistics.getId(), 4, amount.doubleValue()); } - pushUtil.pushOrderState(1, orderLogistics.getUserId(), orderLogistics.getId(), 4, orderLogistics.getState(), 0, ""); + pushUtil.pushOrderState(1, orderLogistics.getUserId(), orderLogistics.getId(), 4, orderLogistics.getState(), 0, "", "user"); //添加消息 systemNoticeService.addSystemNotice(1, language == 1 ? "您已使用余额成功支付取消订单费用,谢谢使用!" : language == 2 -- Gitblit v1.7.1