luodangjia
2024-06-11 9d2babb8bb99d55d76eab0558fd9f510652b270c
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,17 +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.CompareFace;
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;
@@ -27,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;
@@ -76,7 +77,8 @@
    @Autowired
    private IOrderLogisticsService orderLogisticsService;
    @Autowired
    private SysReformistMapper sysReformistMapper;
    /**
     * 获取短信验证码
@@ -331,9 +333,18 @@
            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("/base/driver/face")
    @PostMapping("/api/driver/face")
    @ApiOperation(value = "面容识别", tags = {"司机端-登录"}, notes = "")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
@@ -349,12 +360,43 @@
            //通过第三方进行识别
            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);
            driver.setFailCount(driver.getFailCount()==null? 2: driver.getFailCount()+1);
            driverService.updateById(driver);
            if (driver.getFailCount()==5){
            if (driver.getFailCount()>6){
                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,"已满五次,退回主页");
            }
            //成功的话保存最后识别时间
@@ -750,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();