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