From f9b9131367d9ba6fe852130b12083c0f5ea68bbb Mon Sep 17 00:00:00 2001 From: zhibing.pu <393733352@qq.com> Date: 星期一, 27 五月 2024 17:26:16 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/2.0' into 2.0 --- DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java | 134 ++++++++++++++++++++++++++++++-------------- 1 files changed, 91 insertions(+), 43 deletions(-) diff --git a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java index fb57212..a28d5db 100644 --- a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java +++ b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java @@ -18,6 +18,7 @@ import com.stylefeng.guns.modular.system.service.*; import com.stylefeng.guns.modular.system.util.*; import com.stylefeng.guns.modular.system.util.GoogleMap.AddressComponentsVo; +import com.stylefeng.guns.modular.system.util.GoogleMap.FleetEngineUtil; import com.stylefeng.guns.modular.system.util.GoogleMap.GoogleMapUtil; import com.stylefeng.guns.modular.system.util.GoogleMap.ReverseGeocodeVo; import com.stylefeng.guns.modular.system.util.itextpdf.HtmlToPdfUtils; @@ -153,6 +154,13 @@ @Autowired private TEmailService emailService; + + @Autowired + private FleetEngineUtil fleetEngineUtil; + + + @Resource + private CarModelMapper carModelMapper; @Override @@ -266,7 +274,7 @@ Element email1_user = document.getElementById("email1_user"); email1_user.text("Hello ,"); Element email1_content = document.getElementById("email1_content"); - email1_content.text("Your package pickup code is " + authCode + ", please complete the verification within 5 minutes"); + email1_content.text("Your delivery pickup code is " + authCode + ", please complete the verification within 5 minutes"); } if(3 == language){ document.getElementById("chinese").remove(); @@ -285,7 +293,7 @@ Element email2_user = document.getElementById("email2_user"); email2_user.text("Hello ,"); Element email2_content = document.getElementById("email2_content"); - email2_content.text("Le code de ramassage de votre colis est " + authCode + ", veuillez effectuer la verification dans les 5minutes."); + email2_content.text("Le code de ramassage de votre livraison est " + authCode + ", veuillez effectuer la verification dans les 5minutes."); } EmailUtil.send(email, language == 1 ? "邮箱验证" : language == 2 ? "Verification code" : "Code de validation", document.html()); return ResultUtil.success(); @@ -327,9 +335,16 @@ List<Map<String, Object>> query = driverActivityRegisteredMapper.query(userType, driver.getCompanyId()); BigDecimal bigDecimal = new BigDecimal("0"); for(Map<String, Object> map : query){ + DriverActivityHistory dah = new DriverActivityHistory(); + dah.setActivityId(Integer.valueOf(map.get("id").toString())); + dah.setDriverId(uid); + dah.setType(1); + DriverActivityHistory driverActivityHistory = driverActivityHistoryMapper.selectOne(dah); + driverActivityHistory.setCarryOut(2); + driverActivityHistoryMapper.updateById(driverActivityHistory); if(Double.valueOf(String.valueOf(map.get("money"))).compareTo(0D) > 0){ bigDecimal = bigDecimal.add(new BigDecimal(String.valueOf(map.get("money")))); - incomeService.saveData(2, driver.getId(), 1, Integer.valueOf(String.valueOf(map.get("id"))), null, Double.valueOf(String.valueOf(map.get("money")))); + incomeService.saveData(2, driver.getId(), 1, driverActivityHistory.getId(), null, Double.valueOf(String.valueOf(map.get("money")))); } } driver.setActivityMoney(bigDecimal.add(new BigDecimal(driver.getActivityMoney())).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); @@ -425,9 +440,9 @@ tEmail.setWeek(week); boolean am = cn.hutool.core.date.DateUtil.isAM(new Date()); if(am){ - tEmail.setAmOrPm(language==1?"上午":language==2?"AM":"Dans la matinée"); + tEmail.setAmOrPm(language==1?"上午":language==2?"morning":"matin"); }else { - tEmail.setAmOrPm(language==1?"下午":language==2?"PM":"après-midi"); + tEmail.setAmOrPm(language==1?"下午":language==2?"afternoon":"après-midi"); } emailService.insert(tEmail); } @@ -515,9 +530,16 @@ List<Map<String, Object>> query = driverActivityRegisteredMapper.query(userType, driver.getCompanyId()); BigDecimal bigDecimal = new BigDecimal("0"); for(Map<String, Object> map : query){ + DriverActivityHistory dah = new DriverActivityHistory(); + dah.setActivityId(Integer.valueOf(map.get("id").toString())); + dah.setDriverId(uid); + dah.setType(1); + DriverActivityHistory driverActivityHistory = driverActivityHistoryMapper.selectOne(dah); + driverActivityHistory.setCarryOut(2); + driverActivityHistoryMapper.updateById(driverActivityHistory); if(Double.valueOf(String.valueOf(map.get("money"))).compareTo(0D) > 0){ bigDecimal = bigDecimal.add(new BigDecimal(String.valueOf(map.get("money")))); - incomeService.saveData(2, driver.getId(), 1, Integer.valueOf(String.valueOf(map.get("id"))), null, Double.valueOf(String.valueOf(map.get("money")))); + incomeService.saveData(2, driver.getId(), 1, driverActivityHistory.getId(), null, Double.valueOf(String.valueOf(map.get("money")))); } } driver.setActivityMoney(bigDecimal.add(new BigDecimal(driver.getActivityMoney())).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); @@ -613,9 +635,9 @@ tEmail.setWeek(week); boolean am = cn.hutool.core.date.DateUtil.isAM(new Date()); if(am){ - tEmail.setAmOrPm(language==1?"上午":language==2?"AM":"Dans la matinée"); + tEmail.setAmOrPm(language==1?"上午":language==2?"morning":"matin"); }else { - tEmail.setAmOrPm(language==1?"下午":language==2?"PM":"après-midi"); + tEmail.setAmOrPm(language==1?"下午":language==2?"afternoon":"après-midi"); } emailService.insert(tEmail); } @@ -880,9 +902,9 @@ tEmail.setWeek(week); boolean am = cn.hutool.core.date.DateUtil.isAM(new Date()); if(am){ - tEmail.setAmOrPm(language==1?"上午":language==2?"AM":"Dans la matinée"); + tEmail.setAmOrPm(language==1?"上午":language==2?"morning":"matin"); }else { - tEmail.setAmOrPm(language==1?"下午":language==2?"PM":"après-midi"); + tEmail.setAmOrPm(language==1?"下午":language==2?"afternoon":"après-midi"); } emailService.insert(tEmail); } @@ -994,9 +1016,9 @@ tEmail.setWeek(week); boolean am = cn.hutool.core.date.DateUtil.isAM(new Date()); if(am){ - tEmail.setAmOrPm(language==1?"上午":language==2?"AM":"Dans la matinée"); + tEmail.setAmOrPm(language==1?"上午":language==2?"morning":"matin"); }else { - tEmail.setAmOrPm(language==1?"下午":language==2?"PM":"après-midi"); + tEmail.setAmOrPm(language==1?"下午":language==2?"afternoon":"après-midi"); } emailService.insert(tEmail); } @@ -1077,6 +1099,14 @@ loginWarpper.setJumpCode("200000"); } } + + //司机登录,添加谷歌上的车辆信息 + Car car = carService.selectById(driver.getCarId()); + String vehicles = fleetEngineUtil.getVehicles(driver.getCarId()); + if(ToolUtil.isEmpty(vehicles)){ + CarModel carModel = carModelMapper.selectById(car.getCarModelId()); + fleetEngineUtil.createVehicles(carModel.getSeat() - 1, car.getCarLicensePlate(), driver.getCarId()); + } return ResultUtil.success(loginWarpper); } @@ -1150,6 +1180,7 @@ public ResultUtil work(Integer uid, String type, Integer language) throws Exception { DriverWork driverWork = driverWorkMapper.queryNewWork(uid, null, 1); Driver driver = this.selectById(uid); + Car car = carService.selectById(driver.getCarId()); if(null != driverWork){//作下班操作 //检测是否有未完成的订单 List<Map<String, Object>> list = orderService.queryOrderList(1, 1, 10, uid, language); @@ -1160,6 +1191,15 @@ driverWork.setState(2); driverWorkMapper.updateById(driverWork); driver.setState(1); + + //司机下班,修改谷歌上的车辆信息 + CarModel carModel = carModelMapper.selectById(car.getCarModelId()); + String vehicles = fleetEngineUtil.getVehicles(driver.getCarId()); + if(ToolUtil.isEmpty(vehicles)){ + fleetEngineUtil.createVehicles(carModel.getSeat() - 1, car.getCarLicensePlate(), driver.getCarId()); + }else{ + fleetEngineUtil.updateVehicles("OFFLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), driver.getCarId()); + } }else{ LoginWarpper loginWarpper = new LoginWarpper(); if(driver.getCompanyId()==null){ @@ -1178,7 +1218,6 @@ if(driver.getAuthState()==4){ return ResultUtil.error(language == 1 ? "请完善资料后再出车" : language == 2 ? "Please complete data before driving." : "Veuillez compléter les données avant de conduire."); } - Car car = carService.selectById(driver.getCarId()); if(car==null){ return ResultUtil.error(language == 1 ? "请完善资料后再出车" : language == 2 ? "Please complete data before driving." : "Veuillez compléter les données avant de conduire."); } @@ -1195,6 +1234,15 @@ driverWork.setType(type); driverWorkMapper.insert(driverWork); driver.setState(2); + + //司机上班,修改谷歌上的车辆信息 + CarModel carModel = carModelMapper.selectById(car.getCarModelId()); + String vehicles = fleetEngineUtil.getVehicles(driver.getCarId()); + if(ToolUtil.isEmpty(vehicles)){ + fleetEngineUtil.createVehicles(carModel.getSeat() - 1, car.getCarLicensePlate(), driver.getCarId()); + }else{ + fleetEngineUtil.updateVehicles("ONLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), driver.getCarId()); + } } this.updateById(driver); return ResultUtil.success(); @@ -1314,7 +1362,7 @@ baseWarpper.setName(language == 1 ? "跨城出行" : language == 2 ? "Cross-town travel" : "Se déplacer à travers la ville"); break; case 4: - baseWarpper.setName(language == 1 ? "包裹" : language == 2 ? "Package" : "Livraison"); + baseWarpper.setName(language == 1 ? "包裹" : language == 2 ? "Delivery" : "Livraison"); break; case 5: baseWarpper.setName(language == 1 ? "跨城小件物流" : language == 2 ? "Cross-city small parts logistics" : "Logistique des petites pièces à travers la ville"); @@ -1505,9 +1553,9 @@ tEmail.setWeek(week); boolean am = cn.hutool.core.date.DateUtil.isAM(new Date()); if(am){ - tEmail.setAmOrPm(language==1?"上午":language==2?"AM":"Dans la matinée"); + tEmail.setAmOrPm(language==1?"上午":language==2?"morning":"matin"); }else { - tEmail.setAmOrPm(language==1?"下午":language==2?"PM":"après-midi"); + tEmail.setAmOrPm(language==1?"下午":language==2?"afternoon":"après-midi"); } emailService.insert(tEmail); } @@ -1630,7 +1678,7 @@ */ @Override public List<Map<String, Object>> queryActivityIncome(Integer language, Integer uid, Integer pageNum, Integer size) throws Exception { - List<Map<String, Object>> query = incomeService.query(language,2, uid, 1, pageNum, size); + List<Map<String, Object>> query = incomeService.query(language,2, uid, Arrays.asList(1), pageNum, size); return query; } @@ -1645,7 +1693,7 @@ */ @Override public List<Map<String, Object>> queryTotalRevenue(Integer language, Integer uid, Integer pageNum, Integer size) throws Exception { - List<Map<String, Object>> query = incomeService.query(language, 2, uid, 2, pageNum, size); + List<Map<String, Object>> query = incomeService.query(language, 2, uid, Arrays.asList(2, 3, 5, 6, 7), pageNum, size); return query; } @@ -1669,14 +1717,14 @@ case 1://邀请司机注册 DriverActivityRegistered driverActivityRegistered = driverActivityRegisteredMapper.selectById(dah.getActivityId()); activityWarpper.setId(driverActivityRegistered.getId()); - activityWarpper.setContent(language == 1 ? "邀请司机注册奖励" + driverActivityRegistered.getMoney() + "元" : + activityWarpper.setContent(language == 1 ? "邀请司机注册奖励GHS" + driverActivityRegistered.getMoney() : language == 2 ? " Invite drivers to register for a reward of GHS" + driverActivityRegistered.getMoney(): "Invitez les chauffeurs à s’inscrire pour une récompense de GHS" + driverActivityRegistered.getMoney()); break; case 2://邀请用户注册 DriverActivityRegistered driverActivityRegistered1 = driverActivityRegisteredMapper.selectById(dah.getActivityId()); activityWarpper.setId(driverActivityRegistered1.getId()); - activityWarpper.setContent(language == 1 ? "邀请用户注册奖励" + driverActivityRegistered1.getMoney() + "元" : + activityWarpper.setContent(language == 1 ? "邀请用户注册奖励GHS" + driverActivityRegistered1.getMoney() : language == 2 ? "Invite users to register for a reward of GHS" + driverActivityRegistered1.getMoney(): "Invitez les utilisateurs à s’inscrire pour une récompense de GHS" + driverActivityRegistered1.getMoney()); break; @@ -1685,7 +1733,7 @@ activityWarpper.setId(driverActivityOnline.getId()); StringBuffer sb = new StringBuffer(language == 1 ? "今日" : language == 2 ? "Today, stay online receiving orders of " : "Aujourd’hui, reste en ligne à recevoir des commandes "); - DriverOnline query = driverOnlineMapper.query(uid, sdf1.format(new Date()), 0); + DriverOnline query = driverOnlineMapper.query(uid, sdf1.format(new Date()), driverActivityOnline.getType(), 0); Integer hour = 0; if(null != query){ hour = Long.valueOf(query.getDuration() / 3600).intValue(); @@ -1701,10 +1749,10 @@ sb.append("城际出行"); continue; case 4: - sb.append(language == 1 ? "包裹" : language == 2 ? "package" : "de colis"); + sb.append(language == 1 ? "包裹" : language == 2 ? "delivery" : "de livraison"); break; } - String str = language == 1 ? "累计在线" +driverActivityOnline.getOnline() + "小时奖励" +driverActivityOnline.getMoney() + "元" : + String str = language == 1 ? "累计在线" +driverActivityOnline.getOnline() + "小时奖励GHS" +driverActivityOnline.getMoney(): language == 2 ? " for " + driverActivityOnline.getOnline() + " hours to get a reward of GHS" + driverActivityOnline.getMoney(): " pendant " + driverActivityOnline.getOnline() + " heures afin d'obtenir une récompense de GHS" + driverActivityOnline.getMoney(); activityWarpper.setContent(sb.append(str).toString()); @@ -1713,14 +1761,14 @@ case 4://订单量 DriverActivityOrder driverActivityOrder = driverActivityOrderMapper.selectById(dah.getActivityId()); activityWarpper.setId(driverActivityOrder.getId()); - activityWarpper.setContent(language == 1 ? "今日" + driverActivityOrder.getStart() + "-" + driverActivityOrder.getEnd() + "累计接单" + driverActivityOrder.getOrderNum() + "单奖励" + driverActivityOrder.getMoney() + "元" : + activityWarpper.setContent(language == 1 ? "今日" + driverActivityOrder.getStart() + "-" + driverActivityOrder.getEnd() + "累计接单" + driverActivityOrder.getOrderNum() + "单奖励GHS" + driverActivityOrder.getMoney(): language == 2 ? "Today " + driverActivityOrder.getStart() + "-" + driverActivityOrder.getEnd() + ", complete " + driverActivityOrder.getOrderNum() + " orders for a reward of GHS" + driverActivityOrder.getMoney() : "Aujourd’hui de " + driverActivityOrder.getStart() + " à " + driverActivityOrder.getEnd() + ", complétez " + driverActivityOrder.getOrderNum() + " commandes pour une récompense de GHS" + driverActivityOrder.getMoney()); - SimpleDateFormat sdf = new SimpleDateFormat("H:m"); - Date start = sdf.parse(driverActivityOrder.getStart()); - Date end = sdf.parse(driverActivityOrder.getEnd()); + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + Date start = sdf.parse(sdf1.format(time) + " " + driverActivityOrder.getStart() + ":00"); + Date end = sdf.parse(sdf1.format(time) + " " + driverActivityOrder.getEnd() + ":59"); Integer integer = orderService.queryOrderNum(uid, start, end); - activityWarpper.setCarryOut(integer > driverActivityOrder.getOrderNum() ? driverActivityOrder.getOrderNum() + "/" + driverActivityOrder.getOrderNum() : integer + "/" + driverActivityOrder.getOrderNum()); + activityWarpper.setCarryOut(integer.compareTo(driverActivityOrder.getOrderNum()) > 0 ? driverActivityOrder.getOrderNum() + "/" + driverActivityOrder.getOrderNum() : integer + "/" + driverActivityOrder.getOrderNum()); break; } list.add(activityWarpper); @@ -1869,9 +1917,9 @@ tEmail.setWeek(week); boolean am = cn.hutool.core.date.DateUtil.isAM(new Date()); if(am){ - tEmail.setAmOrPm(language==1?"上午":language==2?"AM":"Dans la matinée"); + tEmail.setAmOrPm(language==1?"上午":language==2?"morning":"matin"); }else { - tEmail.setAmOrPm(language==1?"下午":language==2?"PM":"après-midi"); + tEmail.setAmOrPm(language==1?"下午":language==2?"afternoon":"après-midi"); } emailService.insert(tEmail); } @@ -1985,9 +2033,9 @@ tEmail.setWeek(week); boolean am = cn.hutool.core.date.DateUtil.isAM(new Date()); if(am){ - tEmail.setAmOrPm(language==1?"上午":language==2?"AM":"Dans la matinée"); + tEmail.setAmOrPm(language==1?"上午":language==2?"morning":"matin"); }else { - tEmail.setAmOrPm(language==1?"下午":language==2?"PM":"après-midi"); + tEmail.setAmOrPm(language==1?"下午":language==2?"afternoon":"après-midi"); } emailService.insert(tEmail); } @@ -2102,9 +2150,9 @@ tEmail.setWeek(week); boolean am = cn.hutool.core.date.DateUtil.isAM(new Date()); if(am){ - tEmail.setAmOrPm(language==1?"上午":language==2?"AM":"Dans la matinée"); + tEmail.setAmOrPm(language==1?"上午":language==2?"morning":"matin"); }else { - tEmail.setAmOrPm(language==1?"下午":language==2?"PM":"après-midi"); + tEmail.setAmOrPm(language==1?"下午":language==2?"afternoon":"après-midi"); } emailService.insert(tEmail); } @@ -2219,9 +2267,9 @@ tEmail.setWeek(week); boolean am = cn.hutool.core.date.DateUtil.isAM(new Date()); if(am){ - tEmail.setAmOrPm(language==1?"上午":language==2?"AM":"Dans la matinée"); + tEmail.setAmOrPm(language==1?"上午":language==2?"morning":"matin"); }else { - tEmail.setAmOrPm(language==1?"下午":language==2?"PM":"après-midi"); + tEmail.setAmOrPm(language==1?"下午":language==2?"afternoon":"après-midi"); } emailService.insert(tEmail); } @@ -2248,7 +2296,7 @@ continue; } Long duration = Long.valueOf(dao.getOnline() * 3600); - List<DriverOnline> driverOnlines = driverOnlineMapper.queryList(sdf.format(new Date()), duration); + List<DriverOnline> driverOnlines = driverOnlineMapper.queryList(sdf.format(new Date()), dao.getType(), duration); for (DriverOnline driverOnline : driverOnlines) { if(dah.getDriverId().compareTo(driverOnline.getDriverId()) == 0){ dah.setCarryOut(2);//完成状态 @@ -2264,7 +2312,7 @@ this.updateById(driver); //添加收入记录 - incomeService.saveData(2, driverOnline.getDriverId(), 1, dao.getId(), null, dah.getMoney()); + incomeService.saveData(2, driverOnline.getDriverId(), 1, dah.getId(), null, dah.getMoney()); if(ToolUtil.isNotEmpty(driver.getEmail())) { @@ -2355,9 +2403,9 @@ tEmail.setWeek(week); boolean am = cn.hutool.core.date.DateUtil.isAM(new Date()); if(am){ - tEmail.setAmOrPm(language==1?"上午":language==2?"AM":"Dans la matinée"); + tEmail.setAmOrPm(language==1?"上午":language==2?"morning":"matin"); }else { - tEmail.setAmOrPm(language==1?"下午":language==2?"PM":"après-midi"); + tEmail.setAmOrPm(language==1?"下午":language==2?"afternoon":"après-midi"); } emailService.insert(tEmail); } @@ -2384,7 +2432,7 @@ this.updateById(driver); //添加收入记录 - incomeService.saveData(2, dah.getDriverId(), 1, dao.getId(), null, dah.getMoney()); + incomeService.saveData(2, dah.getDriverId(), 1, dah.getId(), null, dah.getMoney()); if(ToolUtil.isNotEmpty(driver.getEmail())) { String path1 = templatePath + "driver/index.html"; @@ -2475,9 +2523,9 @@ tEmail.setWeek(week); boolean am = cn.hutool.core.date.DateUtil.isAM(new Date()); if(am){ - tEmail.setAmOrPm(language==1?"上午":language==2?"AM":"Dans la matinée"); + tEmail.setAmOrPm(language==1?"上午":language==2?"morning":"matin"); }else { - tEmail.setAmOrPm(language==1?"下午":language==2?"PM":"après-midi"); + tEmail.setAmOrPm(language==1?"下午":language==2?"afternoon":"après-midi"); } emailService.insert(tEmail); } -- Gitblit v1.7.1