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/specialTrain/server/impl/OrderPrivateCarServiceImpl.java | 193 ++++++++++++++++++++++++----------------------- 1 files changed, 98 insertions(+), 95 deletions(-) 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 88656cf..5cd66b3 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 @@ -1,5 +1,6 @@ package com.stylefeng.guns.modular.specialTrain.server.impl; +import cn.hutool.db.nosql.redis.RedisDS; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; @@ -59,6 +60,7 @@ import java.math.RoundingMode; import java.text.SimpleDateFormat; import java.util.*; +import java.util.concurrent.TimeUnit; import java.util.stream.Collectors; @@ -147,7 +149,7 @@ @Resource private IUserActivityRedenvelopeService userActivityRedenvelopeService; - + @Resource private RedisUtil redisUtil; @@ -349,8 +351,7 @@ } orderPrivateCar.setDriverId(driverId); - orderPrivateCar.setCompanyId(driver.getFranchiseeId() != null && driver.getFranchiseeId() != 0 ? driver.getFranchiseeId() : ( - driver.getCompanyId() != null && driver.getCompanyId() != 0 ? driver.getCompanyId() : 1)); + orderPrivateCar.setCompanyId(driver.getCompanyId()); orderPrivateCar.setState(2); orderPrivateCar.setCarId(driver.getCarId()); CarService query1 = carServiceMapper.query(1, driver.getCarId()); @@ -501,8 +502,8 @@ new Thread(new Runnable() { @Override public void run() { - pushUtil.pushOrderState(1, uid, orderPrivateCar.getId(), 1, 2, 0, ""); - pushUtil.pushOrderState(2, orderPrivateCar.getDriverId(), orderPrivateCar.getId(), 1, 2, 0, finalAudioUrl); + pushUtil.pushOrderState(1, uid, orderPrivateCar.getId(), 1, 2, 0, "", "user"); + pushUtil.pushOrderState(2, orderPrivateCar.getDriverId(), orderPrivateCar.getId(), 1, 2, 0, finalAudioUrl, "user"); } }).start(); } @@ -566,8 +567,7 @@ .eq("state", 1).like("type", "1")); if(driver.getState() == 2 && null != driverWork){ orderPrivateCar.setDriverId(dr.getId()); - orderPrivateCar.setCompanyId(dr.getFranchiseeId() != null && dr.getFranchiseeId() != 0 ? dr.getFranchiseeId() : ( - dr.getCompanyId() != null && dr.getCompanyId() != 0 ? dr.getCompanyId() : 1)); + orderPrivateCar.setCompanyId(dr.getCompanyId()); orderPrivateCar.setState(2); orderPrivateCar.setCarId(dr.getCarId()); CarService query1 = carServiceMapper.query(1, dr.getCarId()); @@ -636,8 +636,8 @@ new Thread(new Runnable() { @Override public void run() { - pushUtil.pushOrderState(1, uid, orderPrivateCar.getId(), 1, 2, 0, ""); - pushUtil.pushOrderState(2, orderPrivateCar.getDriverId(), orderPrivateCar.getId(), 1, 2, 0, finalAudioUrl); + pushUtil.pushOrderState(1, uid, orderPrivateCar.getId(), 1, 2, 0, "", "user"); + pushUtil.pushOrderState(2, orderPrivateCar.getDriverId(), orderPrivateCar.getId(), 1, 2, 0, finalAudioUrl, "user"); } }).start(); } @@ -915,8 +915,8 @@ } break; } - pushUtil.pushOrderState(1, orderPrivateCar.getUserId(), orderPrivateCar.getId(), 1, orderPrivateCar.getState(), 0, ""); - pushUtil.pushOrderState(2, orderPrivateCar.getDriverId(), orderPrivateCar.getId(), 1, orderPrivateCar.getState() == 12 ? orderPrivateCar.getState() : 10, 0, audioUrl); + pushUtil.pushOrderState(1, orderPrivateCar.getUserId(), orderPrivateCar.getId(), 1, orderPrivateCar.getState(), 0, "", "user"); + pushUtil.pushOrderState(2, orderPrivateCar.getDriverId(), orderPrivateCar.getId(), 1, orderPrivateCar.getState() == 12 ? orderPrivateCar.getState() : 10, 0, audioUrl, "user"); System.err.println("推送取消操作---------------------"); } }).start(); @@ -1082,11 +1082,11 @@ } this.deleteTask(id);//删除定时任务 - pushUtil.pushOrderState(2, orderPrivateCar.getDriverId(), orderPrivateCar.getId(), 1, orderPrivateCar.getState(), 0, ""); + pushUtil.pushOrderState(2, orderPrivateCar.getDriverId(), orderPrivateCar.getId(), 1, orderPrivateCar.getState(), 0, "", "user"); }else{ incomeService.saveData(1, orderPrivateCar.getCompanyId(), 3, orderPrivateCar.getId(), 1, amount.doubleValue()); } - pushUtil.pushOrderState(1, orderPrivateCar.getUserId(), orderPrivateCar.getId(), 1, orderPrivateCar.getState(), 0, ""); + pushUtil.pushOrderState(1, orderPrivateCar.getUserId(), orderPrivateCar.getId(), 1, orderPrivateCar.getState(), 0, "", "user"); //添加消息 systemNoticeService.addSystemNotice(1, language == 1 ? "您已使用余额成功支付取消订单费用,谢谢使用!" : language == 2 @@ -1188,7 +1188,7 @@ } }, 30000); - pushUtil.pushOrderState(2, driver.getId(), orderPrivateCar.getId(), 1, orderPrivateCar.getState(), pushOrder.getPushTime(), audioUrl); + pushUtil.pushOrderState(2, driver.getId(), orderPrivateCar.getId(), 1, orderPrivateCar.getState(), pushOrder.getPushTime(), audioUrl, "user"); } } Thread.sleep(pushOrder.getPushTime() * 1000);//设置等待时间 @@ -1301,7 +1301,7 @@ ResultUtil resultUtil = ResultUtil.success(""); orderPrivateCar.setCouponMoney(0D);//初始化历史数据 orderPrivateCar.setCouponId(null); - + //计算折扣 UserActivityDiscount1 query2 = userActivityDiscount1Mapper.query(orderPrivateCar.getCompanyId()); if(null != query2){ @@ -1320,7 +1320,7 @@ } } } - + //计算优惠券 UserCouponRecord userCouponRecord = null; if(null != couponId){ @@ -1343,11 +1343,11 @@ 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())); orderPrivateCar.setCouponMoney(userCouponRecord.getMoney()); orderPrivateCar.setCouponId(couponId); } - + //计算红包 if(null != redDeduction && 1 == redDeduction && null == orderPrivateCar.getRedPacketId()){ RedEnvelopePaymentSettings redEnvelopePaymentSettings = redEnvelopePaymentSettingsService.getRedEnvelopePaymentSettings(); @@ -1359,15 +1359,15 @@ 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){ orderPrivateCar.setRedPacketMoney(multiply1.doubleValue()); - orderMoney = orderMoney.subtract(multiply1).setScale(2, RoundingMode.HALF_EVEN); - + orderMoney = orderMoney.subtract(multiply1); + //获取红包id JSONArray jsonArray = new JSONArray(); for (UserRedPacketRecord userRedPacketRecord : userRedPacketRecords) { JSONObject jsonObject = new JSONObject(); jsonObject.put("id", userRedPacketRecord.getId()); BigDecimal remainingAmount = new BigDecimal(userRedPacketRecord.getRemainingAmount()); - + if(multiply1.compareTo(remainingAmount) >= 0){ userRedPacketRecord.setRemainingAmount(0D); userRedPacketRecord.setEndTime(new Date()); @@ -1389,7 +1389,7 @@ orderPrivateCar.setRedPacketId(jsonArray.toJSONString()); }else if(total > 0 && total.compareTo(multiply1.doubleValue()) < 0){ orderPrivateCar.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) { @@ -1397,7 +1397,7 @@ jsonObject.put("id", userRedPacketRecord.getId()); jsonObject.put("money", userRedPacketRecord.getRemainingAmount()); jsonArray.add(jsonObject); - + userRedPacketRecord.setRemainingAmount(0D); userRedPacketRecord.setEndTime(new Date()); userRedPacketRecord.setState(2); @@ -1409,8 +1409,8 @@ } } } - - + + if(payType == 1){//手机支付 SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS"); String merchantTransactionId = sdf.format(new Date()) + "1" + language + orderId; @@ -1428,14 +1428,14 @@ checkoutRequest.setSuccessRedirectUrl("https://igo.i-go.group/payMoney/pages/success.html"); checkoutRequest.setFailRedirectUrl("https://igo.i-go.group/payMoney/pages/fail.html"); resultUtil = TinggPayUtil.checkoutRequest(checkoutRequest); - + if(resultUtil.getCode()==200){ paymentRecordService.saveData(1, null, null, orderId, 1, 1, orderMoney.setScale(2, RoundingMode.HALF_EVEN).doubleValue(), null, 1);//添加预支付数据 }else{ resultUtil = ResultUtil.error(language == 1 ? "支付失败" : language == 2 ? "Payment failure" : "Paiement échoué", ""); } - + } if(payType == 2){//银行卡支付 BankCard bankCard = bankCardService.selectById(bankCardId); @@ -1455,7 +1455,7 @@ checkoutRequest.setSuccessRedirectUrl("https://igo.i-go.group/payMoney/pages/success.html"); checkoutRequest.setFailRedirectUrl("https://igo.i-go.group/payMoney/pages/fail.html"); resultUtil = TinggPayUtil.checkoutRequest(checkoutRequest); - + if(resultUtil.getCode()==200){ paymentRecordService.saveData(1, null, null, orderId, 1, 2, orderMoney.setScale(2, RoundingMode.HALF_EVEN).doubleValue(), null, 1);//添加预支付数据 @@ -1467,28 +1467,28 @@ if(userInfo.getBalance() == null || new BigDecimal(userInfo.getBalance()).compareTo(orderMoney) < 0){ return ResultUtil.error(language == 1 ? "账户余额不足" : language == 2 ? "Insufficient balance" : "Solde insuffisant", ""); } - + userInfo.setBalance(new BigDecimal(userInfo.getBalance()).subtract(orderMoney).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); - + SysIntegral query1 = sysIntegralMapper.query(orderPrivateCar.getCompanyId()); userInfo.setIntegral(userInfo.getIntegral() + (orderMoney.intValue() * query1.getIntegral()));//积分 - + //添加交易明细 transactionDetailsService.saveData(uid, "完成订单", orderMoney.setScale(2, RoundingMode.HALF_EVEN).doubleValue(), 2, 1, 1, 1, orderId); userInfoService.updateById(userInfo); - + orderPrivateCar.setState(8); orderPrivateCar.setPayType(3); orderPrivateCar.setPayMoney(orderMoney.setScale(2, RoundingMode.HALF_EVEN).doubleValue()); - + //处理优惠券和红包 if(null != userCouponRecord){ userCouponRecord.setState(2); userCouponRecord.setEndTime(new Date()); userCouponRecordService.updateById(userCouponRecord); } - + //添加已收入明细 Company company = companyService.selectById(orderPrivateCar.getCompanyId()); Double speMoney = company.getSpeMoney(); @@ -1510,7 +1510,7 @@ 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() { @Override @@ -1528,6 +1528,7 @@ aDouble = orderEvaluateService.queryDriverScore(orderPrivateCar.getDriverId()); } Double aDouble1 = new BigDecimal(orderPrivateCar.getMileage()).divide(new BigDecimal(1000)).setScale(2, RoundingMode.HALF_EVEN).doubleValue(); + Long serviceTime = new BigDecimal(orderPrivateCar.getEndServiceTime().getTime() - orderPrivateCar.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(); @@ -1609,7 +1610,7 @@ Element lost_item_chinese = document.getElementById("lost_item_chinese"); lost_item_chinese.attr("href", "https://igo.i-go.group/mailbox/user/lossGoods.html?language=" + language + "&orderId=" + orderId + "&orderType=1"); Element track_chinese = document.getElementById("track_chinese"); - track_chinese.attr("href", "https://igo.i-go.group/mailbox/user/location.html?orderId=" + orderId); + track_chinese.attr("href", "https://igo.i-go.group/mailbox/user/location.html?orderId=" + orderId + "&language=" + language); Element pay_time_chinese = document.getElementById("pay_time_chinese"); pay_time_chinese.text(DateUtil.conversionFormat(language, sdf1.format(orderPrivateCar.getEndServiceTime()))); Elements driver_chinese = document.getElementsByClass("driver_chinese"); @@ -1622,7 +1623,7 @@ Element pf_chinese = document.getElementById("pf_chinese"); pf_chinese.text("司机评分:" + aDouble); Element lc_chinese = document.getElementById("lc_chinese"); - lc_chinese.text("里程:" + aDouble1 + "公里 /" + orderPrivateCar.getDuration() + "分钟"); + lc_chinese.text("里程:" + aDouble1 + "公里 /" + serviceTime + "分钟"); Element start_time_chinese = document.getElementById("start_time_chinese"); start_time_chinese.text(sdf2.format(orderPrivateCar.getTravelTime())); Element start_address_chinese = document.getElementById("start_address_chinese"); @@ -1716,7 +1717,7 @@ Element lost_item_english = document.getElementById("lost_item_english"); lost_item_english.attr("href", "https://igo.i-go.group/mailbox/user/lossGoods.html?language=" + language + "&orderId=" + orderId + "&orderType=1"); Element track_english = document.getElementById("track_english"); - track_english.attr("href", "https://igo.i-go.group/mailbox/user/location.html?orderId=" + orderId); + track_english.attr("href", "https://igo.i-go.group/mailbox/user/location.html?orderId=" + orderId + "&language=" + language); Element pay_time_english = document.getElementById("pay_time_english"); pay_time_english.text(DateUtil.conversionFormat(language, sdf1.format(orderPrivateCar.getEndServiceTime()))); Elements driver_english = document.getElementsByClass("driver_english"); @@ -1729,7 +1730,7 @@ 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 / " + orderPrivateCar.getDuration() + "Minutes"); + lc_english.text("Mileage:" + aDouble1 + "KM / " + serviceTime + "Minutes"); Element start_time_english = document.getElementById("start_time_english"); start_time_english.text(sdf2.format(orderPrivateCar.getTravelTime())); Element start_address_english = document.getElementById("start_address_english"); @@ -1823,7 +1824,7 @@ Element lost_item_french = document.getElementById("lost_item_french"); lost_item_french.attr("href", "https://igo.i-go.group/mailbox/user/lossGoods.html?language=" + language + "&orderId=" + orderId + "&orderType=1"); Element track_french = document.getElementById("track_french"); - track_french.attr("href", "https://igo.i-go.group/mailbox/user/location.html?orderId=" + orderId); + track_french.attr("href", "https://igo.i-go.group/mailbox/user/location.html?orderId=" + orderId + "&language=" + language); Element pay_time_french = document.getElementById("pay_time_french"); pay_time_french.text(DateUtil.conversionFormat(language, sdf1.format(orderPrivateCar.getEndServiceTime()))); Elements driver_french = document.getElementsByClass("driver_french"); @@ -1836,7 +1837,7 @@ 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 / " + orderPrivateCar.getDuration() + "minutes"); + lc_french.text("Distance: " + aDouble1 + "km / " + serviceTime + "minutes"); Element start_time_french = document.getElementById("start_time_french"); start_time_french.text(sdf2.format(orderPrivateCar.getTravelTime())); Element start_address_french = document.getElementById("start_address_french"); @@ -1850,7 +1851,7 @@ server_tel_french.attr("href", "tel:" + (null != phone ? phone.getPhone() : "")); } EmailUtil.send(userInfo.getEmail(), language == 1 ? "打车收据" : language == 2 ? "Ride receipt" : "Reçu de course", document.html()); - + //开始生成pdf收据和html收据 File file = new File("/home/igotechgh/nginx/html/files/html/"); if(!file.exists()){ @@ -1864,7 +1865,7 @@ fileWriter.write(document.html()); fileWriter.flush(); fileWriter.close(); - + File file1 = new File("/home/igotechgh/nginx/html/files/pdf/"); if(!file1.exists()){ file1.mkdirs(); @@ -1880,7 +1881,7 @@ e.printStackTrace(); System.out.println("html转pdf异常"); } - + String link ="https://igo.i-go.group/files/html/ride_receipt_" + orderId + ".html"; TEmail tEmail = new TEmail(); tEmail.setLink(link); @@ -1898,27 +1899,27 @@ tEmail.setAmOrPm(language==1?"下午":language==2?"afternoon":"après-midi"); } emailService.insert(tEmail); - - - + + + }catch (Exception e){ e.printStackTrace(); } } }).start(); } - - - + + + // TODO: 2020/5/24 这里需要给司机和用户推送订单状态 new Thread(new Runnable() { @Override public void run() { - pushUtil.pushOrderState(1, orderPrivateCar.getUserId(), orderPrivateCar.getId(), 1, orderPrivateCar.getState(), 0, ""); - pushUtil.pushOrderState(2, orderPrivateCar.getDriverId(), orderPrivateCar.getId(), 1, orderPrivateCar.getState(), 0, ""); + pushUtil.pushOrderState(1, orderPrivateCar.getUserId(), orderPrivateCar.getId(), 1, orderPrivateCar.getState(), 0, "", "user"); + pushUtil.pushOrderState(2, orderPrivateCar.getDriverId(), orderPrivateCar.getId(), 1, orderPrivateCar.getState(), 0, "", "user"); } }).start(); - + systemNoticeService.addSystemNotice(1, language == 1 ? "您已成功完成出行订单支付,谢谢使用!" : language == 2 ? "You've paid for the ride order successfully, thank you for using I-GO" : "Vous avez payé la commande de course avec succès, merci d’utiliser I-GO", orderPrivateCar.getUserId(), 1); @@ -1926,19 +1927,19 @@ if(payType == 4){//现金支付 SysIntegral query1 = sysIntegralMapper.query(orderPrivateCar.getCompanyId()); userInfo.setIntegral(userInfo.getIntegral() + (orderMoney.intValue() * query1.getIntegral()));//积分 - + //添加交易明细 transactionDetailsService.saveData(uid, "完成订单", orderMoney.setScale(2, RoundingMode.HALF_EVEN).doubleValue(), 2, 1, 1, 1, orderId); userInfoService.updateById(userInfo); - + orderPrivateCar.setState(8); orderPrivateCar.setPayType(4); orderPrivateCar.setDriverPay(2); orderPrivateCar.setPayMoney(orderMoney.setScale(2, RoundingMode.HALF_EVEN).doubleValue()); - + Driver driver = driverService.selectById(orderPrivateCar.getDriverId()); - + //处理优惠券和红包 if(null != userCouponRecord){ userCouponRecord.setState(2); @@ -1952,7 +1953,7 @@ 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(null != orderPrivateCar.getRedPacketId()){ Double money = orderPrivateCar.getRedPacketMoney(); incomeService.saveData(2, orderPrivateCar.getDriverId(), 7, orderPrivateCar.getId(), 1, money); @@ -1961,7 +1962,7 @@ 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(null != orderPrivateCar.getDiscountMoney() && 0 < orderPrivateCar.getDiscountMoney()){ Double money = orderPrivateCar.getDiscountMoney(); incomeService.saveData(2, orderPrivateCar.getDriverId(), 6, orderPrivateCar.getId(), 1, money); @@ -1970,8 +1971,8 @@ driver.setBalance(new BigDecimal(null != driver.getBalance() ? driver.getBalance() : 0).add(new BigDecimal(money)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); driverService.updateById(driver); } - - + + //添加已收入明细 Company company = companyService.selectById(orderPrivateCar.getCompanyId()); Double speMoney = company.getSpeMoney(); @@ -1993,8 +1994,8 @@ // 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(); @@ -2005,7 +2006,7 @@ 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()); @@ -2053,7 +2054,7 @@ car.setVehicleId(UUIDUtil.getRandomCode()); carService.updateById(car); } - + //司机下班,修改谷歌上的车辆信息 new Thread(()->{ try { @@ -2101,7 +2102,7 @@ } } } - + if(ToolUtil.isNotEmpty(userInfo.getEmail())){ new Thread(new Runnable() { @Override @@ -2118,6 +2119,7 @@ aDouble = orderEvaluateService.queryDriverScore(orderPrivateCar.getDriverId()); } Double aDouble1 = new BigDecimal(orderPrivateCar.getMileage()).divide(new BigDecimal(1000)).setScale(2, RoundingMode.HALF_EVEN).doubleValue(); + Long serviceTime = new BigDecimal(orderPrivateCar.getEndServiceTime().getTime() - orderPrivateCar.getStartServiceTime().getTime()).divide(new BigDecimal(60000), 0, RoundingMode.HALF_EVEN).setScale(0, RoundingMode.HALF_EVEN).longValue(); Driver driver = driverService.selectById(orderPrivateCar.getDriverId()); if(1 == language){ document.getElementById("english").remove(); @@ -2200,7 +2202,7 @@ Element lost_item_chinese = document.getElementById("lost_item_chinese"); lost_item_chinese.attr("href", "https://igo.i-go.group/mailbox/user/lossGoods.html?language=" + language + "&orderId=" + orderId + "&orderType=1"); Element track_chinese = document.getElementById("track_chinese"); - track_chinese.attr("href", "https://igo.i-go.group/mailbox/user/location.html?orderId=" + orderId); + track_chinese.attr("href", "https://igo.i-go.group/mailbox/user/location.html?orderId=" + orderId + "&language=" + language); Element pay_time_chinese = document.getElementById("pay_time_chinese"); pay_time_chinese.text(DateUtil.conversionFormat(language, sdf1.format(orderPrivateCar.getEndServiceTime()))); Elements driver_chinese = document.getElementsByClass("driver_chinese"); @@ -2213,7 +2215,7 @@ Element pf_chinese = document.getElementById("pf_chinese"); pf_chinese.text("司机评分:" + aDouble); Element lc_chinese = document.getElementById("lc_chinese"); - lc_chinese.text("里程:" + aDouble1 + "公里 /" + orderPrivateCar.getDuration() + "分钟"); + lc_chinese.text("里程:" + aDouble1 + "公里 /" + serviceTime + "分钟"); Element start_time_chinese = document.getElementById("start_time_chinese"); start_time_chinese.text(sdf2.format(orderPrivateCar.getTravelTime())); Element start_address_chinese = document.getElementById("start_address_chinese"); @@ -2307,7 +2309,7 @@ Element lost_item_english = document.getElementById("lost_item_english"); lost_item_english.attr("href", "https://igo.i-go.group/mailbox/user/lossGoods.html?language=" + language + "&orderId=" + orderId + "&orderType=1"); Element track_english = document.getElementById("track_english"); - track_english.attr("href", "https://igo.i-go.group/mailbox/user/location.html?orderId=" + orderId); + track_english.attr("href", "https://igo.i-go.group/mailbox/user/location.html?orderId=" + orderId + "&language=" + language); Element pay_time_english = document.getElementById("pay_time_english"); pay_time_english.text(DateUtil.conversionFormat(language, sdf1.format(orderPrivateCar.getEndServiceTime()))); Elements driver_english = document.getElementsByClass("driver_english"); @@ -2320,7 +2322,7 @@ 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 / " + orderPrivateCar.getDuration() + "Minutes"); + lc_english.text("Mileage:" + aDouble1 + "KM / " + serviceTime + "Minutes"); Element start_time_english = document.getElementById("start_time_english"); start_time_english.text(sdf2.format(orderPrivateCar.getTravelTime())); Element start_address_english = document.getElementById("start_address_english"); @@ -2414,7 +2416,7 @@ Element lost_item_french = document.getElementById("lost_item_french"); lost_item_french.attr("href", "https://igo.i-go.group/mailbox/user/lossGoods.html?language=" + language + "&orderId=" + orderId + "&orderType=1"); Element track_french = document.getElementById("track_french"); - track_french.attr("href", "https://igo.i-go.group/mailbox/user/location.html?orderId=" + orderId); + track_french.attr("href", "https://igo.i-go.group/mailbox/user/location.html?orderId=" + orderId + "&language=" + language); Element pay_time_french = document.getElementById("pay_time_french"); pay_time_french.text(DateUtil.conversionFormat(language, sdf1.format(orderPrivateCar.getEndServiceTime()))); Elements driver_french = document.getElementsByClass("driver_french"); @@ -2427,7 +2429,7 @@ 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 / " + orderPrivateCar.getDuration() + "minutes"); + lc_french.text("Distance: " + aDouble1 + "km / " + serviceTime + "minutes"); Element start_time_french = document.getElementById("start_time_french"); start_time_french.text(sdf2.format(orderPrivateCar.getTravelTime())); Element start_address_french = document.getElementById("start_address_french"); @@ -2440,9 +2442,9 @@ Element server_tel_french = document.getElementById("server_tel_french"); server_tel_french.attr("href", "tel:" + (null != phone ? phone.getPhone() : "")); } - + EmailUtil.send(userInfo.getEmail(), language == 1 ? "打车收据" : language == 2 ? "Ride receipt" : "Reçu de course", document.html()); - + //开始生成pdf收据和html收据 File file = new File("/home/igotechgh/nginx/html/files/html/"); if(!file.exists()){ @@ -2456,7 +2458,7 @@ fileWriter.write(document.html()); fileWriter.flush(); fileWriter.close(); - + File file1 = new File("/home/igotechgh/nginx/html/files/pdf/"); if(!file1.exists()){ file1.mkdirs(); @@ -2489,23 +2491,23 @@ tEmail.setAmOrPm(language==1?"下午":language==2?"afternoon":"après-midi"); } emailService.insert(tEmail); - - + + }catch (Exception e){ e.printStackTrace(); } } }).start(); } - - - + + + // TODO: 2020/5/24 这里需要给司机和用户推送订单状态 new Thread(new Runnable() { @Override public void run() { - pushUtil.pushOrderState(1, orderPrivateCar.getUserId(), orderPrivateCar.getId(), 1, orderPrivateCar.getState(), 0, ""); - pushUtil.pushOrderState(2, orderPrivateCar.getDriverId(), orderPrivateCar.getId(), 1, orderPrivateCar.getState(), 0, ""); + pushUtil.pushOrderState(1, orderPrivateCar.getUserId(), orderPrivateCar.getId(), 1, orderPrivateCar.getState(), 0, "", "user"); + pushUtil.pushOrderState(2, orderPrivateCar.getDriverId(), orderPrivateCar.getId(), 1, orderPrivateCar.getState(), 0, "", "user"); Integer language1 = driver.getLanguage(); String text = ""; switch (language1){ @@ -2518,7 +2520,7 @@ case 3: text = "Le client a choisi de payer en espèces, vous devez donc encaisser le paiement.Confirmez si vous avez reçu les frais pour cette commande : Espèces GHS " + orderPrivateCar.getPayMoney(); break; - + } String audioUrl = ""; String fileName = "offlinePayment" + orderPrivateCar.getDriverId() + UUIDUtil.getRandomCode(5) + ".mp3"; @@ -2552,12 +2554,12 @@ pushUtil.pushOfflinePayment(2, orderPrivateCar.getDriverId(), orderPrivateCar.getId(), 1, orderPrivateCar.getPayMoney(), audioUrl); } }).start(); - + systemNoticeService.addSystemNotice(1, language == 1 ? "您已成功完成出行订单支付,谢谢使用!" : language == 2 ? "You've paid for the ride order successfully, thank you for using I-GO" : "Vous avez payé la commande de course avec succès, merci d’utiliser I-GO", orderPrivateCar.getUserId(), 1); } - + this.updateAllColumnById(orderPrivateCar); return resultUtil; } @@ -2766,11 +2768,11 @@ } this.deleteTask(orderPrivateCar.getId());//删除定时任务 - pushUtil.pushOrderState(2, orderPrivateCar.getDriverId(), orderPrivateCar.getId(), 1, orderPrivateCar.getState(), 0, ""); + pushUtil.pushOrderState(2, orderPrivateCar.getDriverId(), orderPrivateCar.getId(), 1, orderPrivateCar.getState(), 0, "", "user"); }else{ incomeService.saveData(1, orderPrivateCar.getCompanyId(), 3, orderPrivateCar.getId(), 1, amount.doubleValue()); } - pushUtil.pushOrderState(1, orderPrivateCar.getUserId(), orderPrivateCar.getId(), 1, orderPrivateCar.getState(), 0, ""); + pushUtil.pushOrderState(1, orderPrivateCar.getUserId(), orderPrivateCar.getId(), 1, orderPrivateCar.getState(), 0, "", "user"); //添加消息 systemNoticeService.addSystemNotice(1, language == 1 ? "您已使用余额成功支付取消订单费用,谢谢使用!" : language == 2 @@ -2850,6 +2852,7 @@ aDouble = orderEvaluateService.queryDriverScore(orderPrivateCar.getDriverId()); } Double aDouble1 = new BigDecimal(orderPrivateCar.getMileage()).divide(new BigDecimal(1000)).setScale(2, RoundingMode.HALF_EVEN).doubleValue(); + Long serviceTime = new BigDecimal(orderPrivateCar.getEndServiceTime().getTime() - orderPrivateCar.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(); @@ -2931,7 +2934,7 @@ Element lost_item_chinese = document.getElementById("lost_item_chinese"); lost_item_chinese.attr("href", "https://igo.i-go.group/mailbox/user/lossGoods.html?language=" + language + "&orderId=" + id + "&orderType=1"); Element track_chinese = document.getElementById("track_chinese"); - track_chinese.attr("href", "https://igo.i-go.group/mailbox/user/location.html?orderId=" + id); + track_chinese.attr("href", "https://igo.i-go.group/mailbox/user/location.html?orderId=" + id + "&language=" + language); Element pay_time_chinese = document.getElementById("pay_time_chinese"); pay_time_chinese.text(DateUtil.conversionFormat(language, sdf1.format(orderPrivateCar.getEndServiceTime()))); Elements driver_chinese = document.getElementsByClass("driver_chinese"); @@ -2944,7 +2947,7 @@ Element pf_chinese = document.getElementById("pf_chinese"); pf_chinese.text("司机评分:" + aDouble); Element lc_chinese = document.getElementById("lc_chinese"); - lc_chinese.text("里程:" + aDouble1 + "公里 /" + orderPrivateCar.getDuration() + "分钟"); + lc_chinese.text("里程:" + aDouble1 + "公里 /" + serviceTime + "分钟"); Element start_time_chinese = document.getElementById("start_time_chinese"); start_time_chinese.text(sdf2.format(orderPrivateCar.getTravelTime())); Element start_address_chinese = document.getElementById("start_address_chinese"); @@ -3038,7 +3041,7 @@ Element lost_item_english = document.getElementById("lost_item_english"); lost_item_english.attr("href", "https://igo.i-go.group/mailbox/user/lossGoods.html?language=" + language + "&orderId=" + id + "&orderType=1"); Element track_english = document.getElementById("track_english"); - track_english.attr("href", "https://igo.i-go.group/mailbox/user/location.html?orderId=" + id); + track_english.attr("href", "https://igo.i-go.group/mailbox/user/location.html?orderId=" + id + "&language=" + language); Element pay_time_english = document.getElementById("pay_time_english"); pay_time_english.text(DateUtil.conversionFormat(language, sdf1.format(orderPrivateCar.getEndServiceTime()))); Elements driver_english = document.getElementsByClass("driver_english"); @@ -3051,7 +3054,7 @@ 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 / " + orderPrivateCar.getDuration() + "Minutes"); + lc_english.text("Mileage:" + aDouble1 + "KM / " + serviceTime + "Minutes"); Element start_time_english = document.getElementById("start_time_english"); start_time_english.text(sdf2.format(orderPrivateCar.getTravelTime())); Element start_address_english = document.getElementById("start_address_english"); @@ -3145,7 +3148,7 @@ Element lost_item_french = document.getElementById("lost_item_french"); lost_item_french.attr("href", "https://igo.i-go.group/mailbox/user/lossGoods.html?language=" + language + "&orderId=" + id + "&orderType=1"); Element track_french = document.getElementById("track_french"); - track_french.attr("href", "https://igo.i-go.group/mailbox/user/location.html?orderId=" + id); + track_french.attr("href", "https://igo.i-go.group/mailbox/user/location.html?orderId=" + id + "&language=" + language); Element pay_time_french = document.getElementById("pay_time_french"); pay_time_french.text(DateUtil.conversionFormat(language, sdf1.format(orderPrivateCar.getEndServiceTime()))); Elements driver_french = document.getElementsByClass("driver_french"); @@ -3158,7 +3161,7 @@ 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 / " + orderPrivateCar.getDuration() + "minutes"); + lc_french.text("Distance: " + aDouble1 + "km / " + serviceTime + "minutes"); Element start_time_french = document.getElementById("start_time_french"); start_time_french.text(sdf2.format(orderPrivateCar.getTravelTime())); Element start_address_french = document.getElementById("start_address_french"); @@ -3235,8 +3238,8 @@ new Thread(new Runnable() { @Override public void run() { - pushUtil.pushOrderState(1, orderPrivateCar.getUserId(), orderPrivateCar.getId(), 1, orderPrivateCar.getState(), 0, ""); - pushUtil.pushOrderState(2, orderPrivateCar.getDriverId(), orderPrivateCar.getId(), 1, orderPrivateCar.getState(), 0, ""); + pushUtil.pushOrderState(1, orderPrivateCar.getUserId(), orderPrivateCar.getId(), 1, orderPrivateCar.getState(), 0, "", "user"); + pushUtil.pushOrderState(2, orderPrivateCar.getDriverId(), orderPrivateCar.getId(), 1, orderPrivateCar.getState(), 0, "", "user"); } }).start(); -- Gitblit v1.7.1