From 0178e6cd1335ec3cb0445adf48954b4aba4ea903 Mon Sep 17 00:00:00 2001
From: liujie <1793218484@qq.com>
Date: 星期二, 12 八月 2025 11:49:02 +0800
Subject: [PATCH] Merge branch 'master' of http://120.76.84.145:10101/gitblit/r/java/QianYunTong
---
DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java | 109 ++++++++++++++++++++++++++++++++++++++----------------
1 files changed, 76 insertions(+), 33 deletions(-)
diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java
index fe336f4..65b676f 100644
--- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java
+++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java
@@ -44,7 +44,7 @@
import javax.servlet.http.HttpServletRequest;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
-import java.time.LocalDateTime;
+import java.time.LocalDate;
import java.util.*;
import java.util.concurrent.TimeUnit;
@@ -156,7 +156,7 @@
List<Driver> drivers = driverMapper.queryIdleDriver(type, companyId);
List<Driver> list = new ArrayList<>();
for(Driver driver : drivers){
- String value = (String) redisTemplate.opsForValue().get("DRIVER" + String.valueOf(driver.getId()));
+ String value = (String) redisTemplate.opsForValue().get("dache:DRIVER" + String.valueOf(driver.getId()));
if(null != value){
Map<String, Double> distance1 = geodesyUtil.getDistance(lon + "," + lat, value);
double d = Double.valueOf(distance1.get("WGS84")).doubleValue();
@@ -173,7 +173,7 @@
List<Driver> drivers = driverMapper.queryIdleDriver_(type, serverCarModelId, companyId);
List<Driver> list = new ArrayList<>();
for(Driver driver : drivers){
- String value = (String) redisTemplate.opsForValue().get("DRIVER" + String.valueOf(driver.getId()));
+ String value = (String) redisTemplate.opsForValue().get("dache:DRIVER" + String.valueOf(driver.getId()));
if(null != value){
Map<String, Double> distance1 = geodesyUtil.getDistance(lon + "," + lat, value);
double d = Double.valueOf(distance1.get("WGS84")).doubleValue();
@@ -401,14 +401,19 @@
driver.setSex(registeredWarpper.getSex());
driver.setIdCard(registeredWarpper.getIdCard());
+
driver.setArea(registeredWarpper.getArea());
- driver.setAreaCode(registeredWarpper.getAreaCode());
+ driver.setAreaCode(registeredWarpper.getPlaceOfEmployment());
driver.setCity(registeredWarpper.getCity());
driver.setCityCode(registeredWarpper.getCityCode());
driver.setProvince(registeredWarpper.getProvince());
driver.setProvinceCode(registeredWarpper.getProvinceCode());
+ driver.setCompanyId(registeredWarpper.getCompanyId());
+ if(registeredWarpper.getCompanyId()==null){
+ return ResultUtil.error("请选择服务商");
+ }
- String code = registeredWarpper.getAreaCode();
+ String code = registeredWarpper.getPlaceOfEmployment();
Company query = companyCityService.query(code);
if(null == query){
return ResultUtil.error("选择从业地暂未开通业务");
@@ -633,6 +638,10 @@
driverWorkMapper.updateById(driverWork);
driver.setState(1);
+ // 更新车辆使用状态
+ carService.updateUseState(uid);
+
+
new Thread(new Runnable() {
@Override
public void run() {
@@ -649,6 +658,18 @@
return ResultUtil.error("车辆正在使用中");
}
}
+
+ //判断车辆是否正在使用中
+ Car car = carService.selectById(driver.getCarId());
+ if(car.getUseDriverId() != null && !car.getUseDriverId().equals(uid)){
+ return ResultUtil.error("当前绑定车辆正在使用中,请更换车辆");
+ }else if(car.getUseDriverId()==null){
+ car.setUseDriverId(uid);
+ carService.updateById(car);
+ }
+
+
+
driverWork = new DriverWork();
driverWork.setState(1);
driverWork.setDriverId(uid);
@@ -696,6 +717,9 @@
driverWorkMapper.updateById(driverWork);
driver.setState(1);
+ // 更新车辆使用状态
+ carService.updateUseState(uid);
+
new Thread(new Runnable() {
@Override
public void run() {
@@ -705,6 +729,18 @@
}
}).start();
}else{
+
+ //判断车辆是否正在使用中
+ Car car = carService.selectById(driver.getCarId());
+ if(car.getUseDriverId() != null && !car.getUseDriverId().equals(uid)){
+ return ResultUtil.error("当前绑定车辆正在使用中,请更换车辆");
+ }else if(car.getUseDriverId()==null){
+ car.setUseDriverId(uid);
+ carService.updateById(car);
+ }
+
+
+
driverWork = new DriverWork();
driverWork.setState(1);
driverWork.setDriverId(uid);
@@ -896,10 +932,17 @@
if(driver.getState() == 3){
return ResultUtil.error("还在服务中,不能更换");
}
- boolean idle = carService.idle(carId);
+// boolean idle = carService.idle(carId);
+ // 修改是否别司机在使用
+ boolean idle = carService.useState(carId,uid);
if(!idle){
return ResultUtil.error("当前车辆已经有其他司机在使用,请更换车辆");
}
+ // 将所有绑定他的车 =null
+ carService.updateUseState(carId,uid);
+ Car car = carService.selectById(carId);
+ car.setUseDriverId(uid);
+ carService.updateById( car);
driver.setCarId(carId);
this.updateById(driver);
return ResultUtil.success();
@@ -1287,7 +1330,7 @@
String s = JwtTokenUtil.generateToken(String.valueOf(driver.getId()));
redisTemplate.opsForValue().set(s.substring(s.length() - 32), String.valueOf(driver.getId()), 7, TimeUnit.DAYS);
redisTemplate.opsForValue().set(driver.getPhone(), s.substring(s.length() - 32));
- redisTemplate.opsForValue().set("DRIVER_" + driver.getId(), s);
+ redisTemplate.opsForValue().set("dache:DRIVER_" + driver.getId(), s);
LoginWarpper loginWarpper = new LoginWarpper();
@@ -1383,7 +1426,7 @@
String s = JwtTokenUtil.generateToken(String.valueOf(driver.getId()));
redisTemplate.opsForValue().set(s.substring(s.length() - 32), String.valueOf(driver.getId()), 7, TimeUnit.DAYS);
redisTemplate.opsForValue().set(driver.getPhone(), s.substring(s.length() - 32));
- redisTemplate.opsForValue().set("DRIVER_" + driver.getId(), s);
+ redisTemplate.opsForValue().set("dache:DRIVER_" + driver.getId(), s);
LoginWarpper loginWarpper = new LoginWarpper();
@@ -1469,7 +1512,7 @@
String s = JwtTokenUtil.generateToken(String.valueOf(driver.getId()));
redisTemplate.opsForValue().set(s.substring(s.length() - 32), String.valueOf(driver.getId()), 7, TimeUnit.DAYS);
redisTemplate.opsForValue().set(driver.getPhone(), s.substring(s.length() - 32));
- redisTemplate.opsForValue().set("DRIVER_" + driver.getId(), s);
+ redisTemplate.opsForValue().set("dache:DRIVER_" + driver.getId(), s);
LoginWarpper loginWarpper = new LoginWarpper();
@@ -1577,9 +1620,9 @@
Driver driver = driverMapper.selectById(id);
String key = (String) redisTemplate.opsForValue().get(driver.getPhone());
redisTemplate.delete(key);//删除个人信息数据
- redisTemplate.delete("DRIVER_" + driver.getPhone());//删除后台冻结相关缓存
- redisTemplate.delete("DRIVER_" + id);//清除存储的token
- redisTemplate.delete("DEVICE_" + id);//清除车载端登录的标识
+ redisTemplate.delete("dache:DRIVER_" + driver.getPhone());//删除后台冻结相关缓存
+ redisTemplate.delete("dache:DRIVER_" + id);//清除存储的token
+ redisTemplate.delete("dache:DEVICE_" + id);//清除车载端登录的标识
return ResultUtil.success();
}
@@ -1587,11 +1630,11 @@
public DriverIndexVo queryHomeDataFromDriver(Integer uid) {
DriverIndexVo driverIndexVo = new DriverIndexVo();
// 获取快车订单
- List<OrderPrivateCar> orderPrivateCars = orderPrivateCarMapper.selectList(new EntityWrapper<OrderPrivateCar>().ne("state", 10).eq("driverId", uid).like("insertTime", LocalDateTime.now().toString()));
+ List<OrderPrivateCar> orderPrivateCars = orderPrivateCarMapper.selectList(new EntityWrapper<OrderPrivateCar>().ne("state", 10).eq("driverId", uid).like("insertTime", LocalDate.now().toString()));
// 跨城订单
- List<OrderCrossCity> orderCrossCities = orderCrossCityMapper.selectList(new EntityWrapper<OrderCrossCity>().ne("state", 10).eq("driverId", uid).like("insertTime", LocalDateTime.now().toString()));
+ List<OrderCrossCity> orderCrossCities = orderCrossCityMapper.selectList(new EntityWrapper<OrderCrossCity>().ne("state", 10).eq("driverId", uid).like("insertTime", LocalDate.now().toString()));
// 出租车订单
- List<OrderTaxi> orderTaxis = orderTaxiMapper.selectList(new EntityWrapper<OrderTaxi>().ne("state", 10).eq("driverId", uid).like("insertTime", LocalDateTime.now().toString()));
+ List<OrderTaxi> orderTaxis = orderTaxiMapper.selectList(new EntityWrapper<OrderTaxi>().ne("state", 10).eq("driverId", uid).like("insertTime", LocalDate.now().toString()));
driverIndexVo.setTodayOrderNum(orderPrivateCars.size() + orderCrossCities.size() + orderTaxis.size());
@@ -1601,9 +1644,9 @@
driverIndexVo.setTodayOrderMoney(new BigDecimal(sum +sum1+sum2));
- BigDecimal reduce = orderPrivateCarMapper.selectList(new EntityWrapper<OrderPrivateCar>().eq("promotionDriverId", uid).like("insertTime", LocalDateTime.now().toString())).stream().map(OrderPrivateCar::getPromotionMoney).reduce(BigDecimal.ZERO, BigDecimal::add);
- BigDecimal reduce1 = orderCrossCityMapper.selectList(new EntityWrapper<OrderCrossCity>().eq("promotionDriverId", uid).like("insertTime", LocalDateTime.now().toString())).stream().map(OrderCrossCity::getPromotionMoney).reduce(BigDecimal.ZERO, BigDecimal::add);
- BigDecimal reduce2 = orderTaxiMapper.selectList(new EntityWrapper<OrderTaxi>().eq("promotionDriverId", uid).like("insertTime", LocalDateTime.now().toString())).stream().map(OrderTaxi::getPromotionMoney).reduce(BigDecimal.ZERO, BigDecimal::add);
+ BigDecimal reduce = orderPrivateCarMapper.selectList(new EntityWrapper<OrderPrivateCar>().eq("promotionDriverId", uid).like("insertTime", LocalDate.now().toString())).stream().map(OrderPrivateCar::getPromotionMoney).reduce(BigDecimal.ZERO, BigDecimal::add);
+ BigDecimal reduce1 = orderCrossCityMapper.selectList(new EntityWrapper<OrderCrossCity>().eq("promotionDriverId", uid).like("insertTime", LocalDate.now().toString())).stream().map(OrderCrossCity::getPromotionMoney).reduce(BigDecimal.ZERO, BigDecimal::add);
+ BigDecimal reduce2 = orderTaxiMapper.selectList(new EntityWrapper<OrderTaxi>().eq("promotionDriverId", uid).like("insertTime", LocalDate.now().toString())).stream().map(OrderTaxi::getPromotionMoney).reduce(BigDecimal.ZERO, BigDecimal::add);
driverIndexVo.setTodayPromotionMoney(reduce.add(reduce1).add(reduce2));
return driverIndexVo;
};
@@ -1622,9 +1665,9 @@
List<OrderTaxi> orderTaxis = orderTaxiMapper.selectList(new EntityWrapper<OrderTaxi>().ne("state", 10).eq("driverId", uid));
DriverOrderDataVo driverOrderDataVo = new DriverOrderDataVo();
driverOrderDataVo.setAllOrderNum(orderPrivateCars.size() + orderCrossCities.size() + orderTaxis.size());
- long count = orderPrivateCars.stream().filter(e -> simpleDateFormat.format(e.getInsertTime()).equals(LocalDateTime.now().toString())).count();
- long count1 = orderCrossCities.stream().filter(e -> simpleDateFormat.format(e.getInsertTime()).equals(LocalDateTime.now().toString())).count();
- long count2 = orderTaxis.stream().filter(e -> simpleDateFormat.format(e.getInsertTime()).equals(LocalDateTime.now().toString())).count();
+ long count = orderPrivateCars.stream().filter(e -> simpleDateFormat.format(e.getInsertTime()).equals(LocalDate.now().toString())).count();
+ long count1 = orderCrossCities.stream().filter(e -> simpleDateFormat.format(e.getInsertTime()).equals(LocalDate.now().toString())).count();
+ long count2 = orderTaxis.stream().filter(e -> simpleDateFormat.format(e.getInsertTime()).equals(LocalDate.now().toString())).count();
driverOrderDataVo.setTodayOrderNum((int) (count+count1+count2));
Date date = new Date();
@@ -1668,9 +1711,9 @@
- double count = orderPrivateCars.stream().filter(e -> simpleDateFormat.format(e.getInsertTime()).equals(LocalDateTime.now().toString())).mapToDouble(OrderPrivateCar::getOrderMoney).sum();
- double count1 = orderCrossCities.stream().filter(e -> simpleDateFormat.format(e.getInsertTime()).equals(LocalDateTime.now().toString())).mapToDouble(OrderCrossCity::getOrderMoney).sum();
- double count2 = orderTaxis.stream().filter(e -> simpleDateFormat.format(e.getInsertTime()).equals(LocalDateTime.now().toString())).mapToDouble(OrderTaxi::getOrderMoney).sum();
+ double count = orderPrivateCars.stream().filter(e -> simpleDateFormat.format(e.getInsertTime()).equals(LocalDate.now().toString())).mapToDouble(OrderPrivateCar::getOrderMoney).sum();
+ double count1 = orderCrossCities.stream().filter(e -> simpleDateFormat.format(e.getInsertTime()).equals(LocalDate.now().toString())).mapToDouble(OrderCrossCity::getOrderMoney).sum();
+ double count2 = orderTaxis.stream().filter(e -> simpleDateFormat.format(e.getInsertTime()).equals(LocalDate.now().toString())).mapToDouble(OrderTaxi::getOrderMoney).sum();
driverOrderDataVo.setTodayOrderMoney(new BigDecimal(count+count1+count2));
@@ -1715,9 +1758,9 @@
- BigDecimal count = orderPrivateCars.stream().filter(e -> simpleDateFormat.format(e.getInsertTime()).equals(LocalDateTime.now().toString())).map(OrderPrivateCar::getPromotionMoney).reduce(BigDecimal.ZERO, BigDecimal::add);
- BigDecimal count1 = orderCrossCities.stream().filter(e -> simpleDateFormat.format(e.getInsertTime()).equals(LocalDateTime.now().toString())).map(OrderCrossCity::getPromotionMoney).reduce(BigDecimal.ZERO, BigDecimal::add);
- BigDecimal count2 = orderTaxis.stream().filter(e -> simpleDateFormat.format(e.getInsertTime()).equals(LocalDateTime.now().toString())).map(OrderTaxi::getPromotionMoney).reduce(BigDecimal.ZERO, BigDecimal::add);
+ BigDecimal count = orderPrivateCars.stream().filter(e -> simpleDateFormat.format(e.getInsertTime()).equals(LocalDate.now().toString())).map(OrderPrivateCar::getPromotionMoney).reduce(BigDecimal.ZERO, BigDecimal::add);
+ BigDecimal count1 = orderCrossCities.stream().filter(e -> simpleDateFormat.format(e.getInsertTime()).equals(LocalDate.now().toString())).map(OrderCrossCity::getPromotionMoney).reduce(BigDecimal.ZERO, BigDecimal::add);
+ BigDecimal count2 = orderTaxis.stream().filter(e -> simpleDateFormat.format(e.getInsertTime()).equals(LocalDate.now().toString())).map(OrderTaxi::getPromotionMoney).reduce(BigDecimal.ZERO, BigDecimal::add);
driverOrderDataVo.setTodayOrderMoney(count.add(count1).add(count2));
@@ -1752,16 +1795,16 @@
*/
private void singlePointLogin(Integer id) {
//开始验证当前账号是否在别处登录
- String value = (String) redisTemplate.opsForValue().get("DRIVER_" + id);
+ String value = (String) redisTemplate.opsForValue().get("dache:DRIVER_" + id);
if (ToolUtil.isNotEmpty(value)) {//将另外设备上的强迫下线(如果是车载端不需要下线)
//开始清除redis中无效的数据
Driver driver = driverMapper.selectById(id);
- String key = (String) redisTemplate.opsForValue().get("DRIVER_" + driver.getPhone());
+ String key = (String) redisTemplate.opsForValue().get("dache:DRIVER_" + driver.getPhone());
if(ToolUtil.isNotEmpty(key)){
redisTemplate.delete(key);//删除个人信息数据
}
- redisTemplate.delete("DRIVER_" + driver.getPhone());//删除后台冻结相关缓存
- redisTemplate.delete("DRIVER_" + id);//清除存储的token
+ redisTemplate.delete("dache:DRIVER_" + driver.getPhone());//删除后台冻结相关缓存
+ redisTemplate.delete("dache:DRIVER_" + id);//清除存储的token
}
}
@@ -1788,8 +1831,8 @@
usernamePasswordToken, simpleAuthenticationInfo);
String s = JwtTokenUtil.generateToken(String.valueOf(driver.getId()));
redisTemplate.opsForValue().set(s.substring(s.length() - 32), String.valueOf(driver.getId()), 7, TimeUnit.DAYS);
- redisTemplate.opsForValue().set("DRIVER_" + driver.getPhone(), s.substring(s.length() - 32));
- redisTemplate.opsForValue().set("DRIVER_" + driver.getId(), s);
+ redisTemplate.opsForValue().set("dache:DRIVER_" + driver.getPhone(), s.substring(s.length() - 32));
+ redisTemplate.opsForValue().set("dache:DRIVER_" + driver.getId(), s);
return s;
}
--
Gitblit v1.7.1