From 0dc953b5cb037762fb3eeed15ecca0b925ebe148 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期四, 23 三月 2023 00:13:27 +0800
Subject: [PATCH] 新增加司机端接口

---
 driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/DriverWorkServiceImpl.java |   46 ++++++++++++++++++++++++++++++++++++----------
 1 files changed, 36 insertions(+), 10 deletions(-)

diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/DriverWorkServiceImpl.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/DriverWorkServiceImpl.java
index be255cf..9b94d76 100644
--- a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/DriverWorkServiceImpl.java
+++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/DriverWorkServiceImpl.java
@@ -1,16 +1,20 @@
 package com.supersavedriving.driver.modular.system.service.impl;
 
 import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import com.supersavedriving.driver.core.util.ToolUtil;
+import com.supersavedriving.driver.modular.system.service.*;
 import com.supersavedriving.driver.modular.system.dao.DriverWorkMapper;
 import com.supersavedriving.driver.modular.system.model.Driver;
 import com.supersavedriving.driver.modular.system.model.DriverWork;
+import com.supersavedriving.driver.modular.system.model.OrderTransfer;
 import com.supersavedriving.driver.modular.system.model.SystemConfig;
-import com.supersavedriving.driver.modular.system.service.IDriverService;
-import com.supersavedriving.driver.modular.system.service.IDriverWorkService;
-import com.supersavedriving.driver.modular.system.service.ISystemConfigService;
+import com.supersavedriving.driver.modular.system.service.*;
+import com.supersavedriving.driver.modular.system.util.RedisUtil;
 import com.supersavedriving.driver.modular.system.util.ResultUtil;
+import com.supersavedriving.driver.modular.system.service.IDriverWorkService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -30,6 +34,15 @@
     @Autowired
     private ISystemConfigService systemConfigService;
 
+    @Autowired
+    private IOrderService orderService;
+
+    @Autowired
+    private IOrderTransferService orderTransferService;
+
+    @Autowired
+    private RedisUtil redisUtil;
+
 
 
 
@@ -47,6 +60,18 @@
         if(driver.getBalance() == null || driver.getBalance().compareTo(num1) < 0){
             return ResultUtil.error("账户余额不足,请先充值");
         }
+        systemConfig = systemConfigService.selectOne(new EntityWrapper<SystemConfig>().eq("type", 1));
+        JSONObject jsonObject = JSON.parseObject(systemConfig.getContent());
+        Integer num5 = jsonObject.getInteger("num5");
+        OrderTransfer orderTransfer = orderTransferService.selectOne(new EntityWrapper<OrderTransfer>().eq("oldDriverId", driverId)
+                .eq("status", 1).isNotNull("successTime").orderBy("createTime desc limit 0, 1"));
+        if(null != orderTransfer){
+            int i = Double.valueOf((System.currentTimeMillis() - orderTransfer.getSuccessTime().getTime()) / 60000).intValue();
+            if(num5 > i){
+                return ResultUtil.error("暂时还无法上班,请稍后重试");
+            }
+        }
+
         DriverWork driverWork = this.selectOne(new EntityWrapper<DriverWork>().eq("driverId", 1).eq("status", 1));
         if(null != driverWork){
             return ResultUtil.error("您正在上班中");
@@ -56,7 +81,7 @@
         driverWork.setWorkTime(new Date());
         driverWork.setOnlineTime(0L);
         driverWork.setStatus(1);
-        this.updateById(driverWork);
+        this.insert(driverWork);
         return ResultUtil.success();
     }
 
@@ -70,16 +95,17 @@
      */
     @Override
     public ResultUtil driverOffWork(Integer driverId, Long onlineTime) throws Exception {
-        DriverWork driverWork = this.selectOne(new EntityWrapper<DriverWork>().eq("driverId", 1).eq("status", 2));
-        if(null != driverWork){
-            return ResultUtil.error("您已下班,不能重复操作");
-        }
-        driverWork = this.selectOne(new EntityWrapper<DriverWork>().eq("driverId", 1).eq("status", 1));
+        DriverWork driverWork = this.selectOne(new EntityWrapper<DriverWork>().eq("driverId", driverId).eq("status", 1));
         if(null == driverWork){
             return ResultUtil.error("您还未上班");
         }
         driverWork.setOffWorkTime(new Date());
-        driverWork.setOnlineTime(onlineTime);
+        driverWork.setOnlineTime(0L);
+        String value = redisUtil.getValue("ONLINE" + driverId);
+        if(ToolUtil.isNotEmpty(value)){
+            Integer online = Integer.valueOf(value.split("_")[0]);
+            driverWork.setOnlineTime(online.longValue());
+        }
         driverWork.setStatus(2);
         this.updateById(driverWork);
         return ResultUtil.success();

--
Gitblit v1.7.1