From 06c5eda038f967dc0c0261e16eff0ad1a18e41e7 Mon Sep 17 00:00:00 2001
From: luodangjia <luodangjia>
Date: 星期三, 05 六月 2024 15:52:58 +0800
Subject: [PATCH] 6.5

---
 DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java |  101 ++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 92 insertions(+), 9 deletions(-)

diff --git a/DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java b/DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java
index 7622f76..ae4b1a8 100644
--- a/DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java
+++ b/DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java
@@ -1,6 +1,8 @@
 package com.stylefeng.guns.modular.api;
+import java.util.Date;
 
 import com.alibaba.fastjson.JSON;
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.stylefeng.guns.core.util.ToolUtil;
 import com.stylefeng.guns.modular.crossCity.model.OrderCrossCity;
 import com.stylefeng.guns.modular.crossCity.server.IOrderCrossCityService;
@@ -8,16 +10,14 @@
 import com.stylefeng.guns.modular.smallLogistics.server.IOrderLogisticsService;
 import com.stylefeng.guns.modular.specialTrain.model.OrderPrivateCar;
 import com.stylefeng.guns.modular.specialTrain.server.IOrderPrivateCarService;
-import com.stylefeng.guns.modular.system.model.Income;
-import com.stylefeng.guns.modular.system.model.UserInfo;
-import com.stylefeng.guns.modular.system.util.ALiSendSms;
+import com.stylefeng.guns.modular.system.dao.DriverWorkMapper;
+import com.stylefeng.guns.modular.system.dao.SysReformistMapper;
+import com.stylefeng.guns.modular.system.dao.TDriverFacialFailMapper;
+import com.stylefeng.guns.modular.system.model.*;
+import com.stylefeng.guns.modular.system.util.*;
 //import com.stylefeng.guns.modular.system.util.ICBCPayUtil;
-import com.stylefeng.guns.modular.system.util.HuaWeiSMSUtil;
 import com.stylefeng.guns.modular.system.warpper.ActivityWarpper;
-import com.stylefeng.guns.modular.system.model.Driver;
-import com.stylefeng.guns.modular.system.model.OrderPosition;
 import com.stylefeng.guns.modular.system.service.*;
-import com.stylefeng.guns.modular.system.util.ResultUtil;
 import com.stylefeng.guns.modular.system.warpper.*;
 import com.stylefeng.guns.modular.taxi.model.OrderTaxi;
 import com.stylefeng.guns.modular.taxi.service.IOrderTaxiService;
@@ -26,8 +26,10 @@
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.web.bind.annotation.*;
 
+import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import java.text.SimpleDateFormat;
@@ -75,7 +77,8 @@
     @Autowired
     private IOrderLogisticsService orderLogisticsService;
 
-
+    @Autowired
+    private SysReformistMapper sysReformistMapper;
 
     /**
      * 获取短信验证码
@@ -325,6 +328,79 @@
     public ResultUtil<LoginWarpper> driverLogin(String phone, String password){
         try {
             return driverService.driverLogin(phone, password);
+        }catch (Exception e){
+            e.printStackTrace();
+            return ResultUtil.runErr();
+        }
+    }
+    @Resource
+    private DriverWorkMapper driverWorkMapper;
+    @Autowired
+    private IOrderService orderService;
+    @Autowired
+    private PushMinistryOfTransportUtil pushMinistryOfTransportUtil;
+    @Value("${pushMinistryOfTransport}")
+    private boolean pushMinistryOfTransport;
+    @Resource
+    private TDriverFacialFailMapper driverFacialFailMapper;
+    @ResponseBody
+    @PostMapping("/api/driver/face")
+    @ApiOperation(value = "面容识别", tags = {"司机端-登录"}, notes = "")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
+            @ApiImplicitParam(value = "面容文件地址", name = "url", required = true, dataType = "String")
+    })
+    public ResultUtil<LoginWarpper> driverLogin(String url,HttpServletRequest request){
+        try {
+            Integer uid = driverService.getUserIdFormRedis(request);
+            if(null == uid){
+                return ResultUtil.tokenErr();
+            }
+            Driver driver = driverService.selectById(uid);
+            //通过第三方进行识别
+            if (CompareFace.faceCompare(url, driver.getFaceImgUrl())){
+                driver.setLastFacialTime(new Date());
+                driver.setFailCount(0);
+                driverService.updateById(driver);
+                return ResultUtil.success();
+            }
+            driver.setFailCount(driver.getFailCount()==null? 0: driver.getFailCount()+1);
+            driverService.updateById(driver);
+            if (driver.getFailCount()>=5){
+                DriverWork driverWork = driverWorkMapper.queryNewWork(uid, null, 1);
+                List<Map<String, Object>> list = orderService.queryOrderList(1, 1, 10, uid);
+                if(list.size() > 0){
+                    return ResultUtil.error("还有未完成的订单,不能进行下班操作");
+                }
+                driverWork.setEndTime(new Date());
+                driverWork.setState(2);
+                driverWorkMapper.updateById(driverWork);
+                driver.setState(1);
+
+                new Thread(new Runnable() {
+                    @Override
+                    public void run() {
+                        if(pushMinistryOfTransport){//上传数据
+                            pushMinistryOfTransportUtil.operateLogout(uid);
+                        }
+                    }
+                }).start();
+
+                TDriverFacialFail tDriverFacialFail = new TDriverFacialFail();
+                tDriverFacialFail.setDriverId(driver.getId());
+                tDriverFacialFail.setCity("成都市");
+                tDriverFacialFail.setCityCode("510100");
+                tDriverFacialFail.setFacialPicture(url);
+                tDriverFacialFail.setCreateTime(new Date());
+                driverFacialFailMapper.insert(tDriverFacialFail);
+//                tDriverFacialFail.setIsDelete(0);
+
+
+
+                return new ResultUtil<>(-1,"已满五次,退回主页");
+            }
+            //成功的话保存最后识别时间
+            return ResultUtil.error("人脸认证失败,请重试");
         }catch (Exception e){
             e.printStackTrace();
             return ResultUtil.runErr();
@@ -716,7 +792,14 @@
             if(null == uid){
                 return ResultUtil.tokenErr();
             }
-            Map<String, Object> map = driverService.queryPhone(uid);
+            String wechat = "";
+            Driver driver = driverService.selectById(uid);
+            List<SysReformist> companyId = sysReformistMapper.selectList(new EntityWrapper<SysReformist>().eq("companyId", driver.getCompanyId()));
+            for (SysReformist sysReformist : companyId) {
+                wechat = sysReformist.getDriverQrCode();
+            }
+
+            Map<String, Object> map = driverService.queryPhone(uid,wechat);
             return ResultUtil.success(map);
         }catch (Exception e){
             e.printStackTrace();

--
Gitblit v1.7.1