xuhy
2024-05-28 5470d21a35286abe41fafc25a7deaabefd7c55da
DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java
@@ -1,6 +1,7 @@
package com.stylefeng.guns.modular.api;
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,14 +9,13 @@
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.dao.SysReformistMapper;
import com.stylefeng.guns.modular.system.model.*;
import com.stylefeng.guns.modular.system.util.ALiSendSms;
//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.*;
@@ -75,7 +75,8 @@
    @Autowired
    private IOrderLogisticsService orderLogisticsService;
    @Autowired
    private SysReformistMapper sysReformistMapper;
    /**
     * 获取短信验证码
@@ -325,6 +326,39 @@
    public ResultUtil<LoginWarpper> driverLogin(String phone, String password){
        try {
            return driverService.driverLogin(phone, password);
        }catch (Exception e){
            e.printStackTrace();
            return ResultUtil.runErr();
        }
    }
    @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());
                driverService.updateById(driver);
                return ResultUtil.success();
            }
            driver.setFailCount(driver.getFailCount()==null? 0: driver.getFailCount()+1);
            driverService.updateById(driver);
            if (driver.getFailCount()==5){
                return new ResultUtil<>(-1,"已满五次,退回主页");
            }
            //成功的话保存最后识别时间
            return ResultUtil.error("人脸认证失败,请重试");
        }catch (Exception e){
            e.printStackTrace();
            return ResultUtil.runErr();
@@ -716,7 +750,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();