From a07a063b9e2fbe1ea41b520274dd9821af5ee03a Mon Sep 17 00:00:00 2001 From: Pu Zhibing <393733352@qq.com> Date: 星期五, 17 十月 2025 15:46:05 +0800 Subject: [PATCH] 添加修改司机状态的定时任务 --- DriverZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/TaskUtil.java | 87 ++++++++++++++++++++++++++++++++++++++----- 1 files changed, 77 insertions(+), 10 deletions(-) diff --git a/DriverZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/TaskUtil.java b/DriverZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/TaskUtil.java index 0e16953..b23c202 100644 --- a/DriverZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/TaskUtil.java +++ b/DriverZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/TaskUtil.java @@ -1,12 +1,21 @@ package com.stylefeng.guns.modular.system.util; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.stylefeng.guns.modular.specialTrain.model.OrderPrivateCar; +import com.stylefeng.guns.modular.specialTrain.server.IOrderPrivateCarService; +import com.stylefeng.guns.modular.system.dao.DriverWorkMapper; +import com.stylefeng.guns.modular.system.model.Driver; +import com.stylefeng.guns.modular.system.model.DriverWork; import com.stylefeng.guns.modular.system.service.IDriverService; +import com.stylefeng.guns.modular.system.service.IDriverWorkService; import com.stylefeng.guns.modular.system.service.IOrderService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; +import java.util.Arrays; import java.util.HashSet; +import java.util.List; import java.util.Set; @@ -26,8 +35,14 @@ private JGPushUtil jgPushUtil; public Set<Integer> driverIds = new HashSet<>();//存储需要提醒司机预约单的司机id + @Autowired + private DriverWorkMapper driverWorkMapper; + @Autowired + private IDriverWorkService driverWorkService; + @Autowired + private IOrderPrivateCarService orderPrivateCarService; /** @@ -36,18 +51,32 @@ @Scheduled(fixedRate = 1000 * 60) public void taskMinute(){ try { + //修改满足活动条件的数据(在线时长,订单量) - driverService.taskMinute(); - //处于预约单 - orderService.reservationOrder(); - //处理车载端断电后的自动下班 - driverService.taskOffWork(); - //处理结束订单后30分钟解绑小号功能 - orderService.taskMidAxbUnBindSend(); +// driverService.taskMinute(); +// 处理车载端断电后的自动下班 +// driverService.taskOffWork(); +// 处理结束订单后30分钟解绑小号功能 +// orderService.taskMidAxbUnBindSend(); } catch (Exception e) { e.printStackTrace(); } } + + /** + * 每隔一分钟去处理的定时任务 + */ + @Scheduled(fixedRate = 1000 * 60) + public void taskMinute2(){ + try { + updateDriverState(); + //处于预约单 + orderService.reservationOrder(); + } catch (Exception e) { + e.printStackTrace(); + } + } + @@ -59,9 +88,9 @@ try { //处理未支付订单发送短信通知 orderService.taskSmsSend(); - for (Integer id: driverIds){ - jgPushUtil.push(1, "您的预约订单出行时间就要到了,请尽快前往预约地点接乘客", "DRIVER" + id); - } +// for (Integer id: driverIds){ +// jgPushUtil.push(1, "您的预约订单出行时间就要到了,请尽快前往预约地点接乘客", "DRIVER" + id); +// } this.driverIds.clear(); } catch (Exception e) { e.printStackTrace(); @@ -96,4 +125,42 @@ // e.printStackTrace(); // } // } + + + + + private void updateDriverState(){ + List<Driver> drivers = driverService.selectList(new EntityWrapper<Driver>().eq("authState", 2).ne("flag", 3)); + for (Driver driver : drivers) { + Integer state = driver.getState(); + int driverWork = driverWorkService.selectCount(new EntityWrapper<DriverWork>().eq("driverId", driver.getId()).eq("state", 1)); + int count = orderPrivateCarService.selectCount(new EntityWrapper<OrderPrivateCar>().eq("driverId", driver.getId()) + .in("state", Arrays.asList(2, 3, 4, 5, 11)).eq("isDelete", 1).last(" and (orderType = 1 or (orderType = 2 and UNIX_TIMESTAMP(travelTime) - UNIX_TIMESTAMP(NOW()) < 1800))")); + if(1 == state){ + if(count > 0){ + driver.setState(3); + } else if (count == 0 && driverWork > 0) { + driver.setState(2); + } + } + if(2 == state){ + if(count > 0){ + driver.setState(3); + } else if (0 == driverWork) { + driver.setState(1); + } + } + if(3 == state){ + if(count == 0 && driverWork > 0){ + driver.setState(2); + } + if (count == 0 && 0 == driverWork) { + driver.setState(1); + } + } + } + if(!drivers.isEmpty()){ + driverService.updateBatchById(drivers); + } + } } -- Gitblit v1.7.1