From 8675ddc7e76f418ee47adc50ee7bac35171a9620 Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期日, 15 六月 2025 01:59:48 +0800
Subject: [PATCH] 更新司机端中台接口

---
 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java |  279 ++++++++++++++++++++++++++++++++-----------------------
 1 files changed, 160 insertions(+), 119 deletions(-)

diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java
index af01a12..51414dd 100644
--- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java
+++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java
@@ -1,7 +1,5 @@
 package com.stylefeng.guns.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.stylefeng.guns.core.common.constant.JwtConstants;
@@ -14,6 +12,11 @@
 import com.stylefeng.guns.modular.system.model.*;
 import com.stylefeng.guns.modular.system.service.*;
 import com.stylefeng.guns.modular.system.util.*;
+import com.stylefeng.guns.modular.system.util.qianyuntong.EmployeeUtil;
+import com.stylefeng.guns.modular.system.util.qianyuntong.SMSUtil;
+import com.stylefeng.guns.modular.system.util.qianyuntong.model.EditStaffNodeRequest;
+import com.stylefeng.guns.modular.system.util.qianyuntong.model.GetStaffNodeRequest;
+import com.stylefeng.guns.modular.system.util.qianyuntong.model.StaffNodeInfo;
 import com.stylefeng.guns.modular.system.warpper.ActivityWarpper;
 import com.stylefeng.guns.modular.system.warpper.BaseWarpper;
 import com.stylefeng.guns.modular.system.warpper.LoginWarpper;
@@ -26,6 +29,7 @@
 import org.apache.shiro.util.ByteSource;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
+import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
@@ -33,6 +37,7 @@
 import java.math.BigDecimal;
 import java.text.SimpleDateFormat;
 import java.util.*;
+import java.util.concurrent.TimeUnit;
 
 
 @Service
@@ -61,46 +66,46 @@
 
     @Resource
     private CompanyMapper companyMapper;
-
+    
     @Resource
     private DriverActivityRegisteredMapper driverActivityRegisteredMapper;
-
+    
     @Resource
     private DriverActivityOrderMapper driverActivityOrderMapper;
-
+    
     @Resource
     private DriverActivityOnlineMapper driverActivityOnlineMapper;
-
+    
     @Resource
     private DriverActivityHistoryMapper driverActivityHistoryMapper;
-
+    
     @Resource
     private UserCouponRecordMapper userCouponRecordMapper;
-
+    
     @Resource
     private DriverOrdersMapper driverOrdersMapper;
-
+    
     @Autowired
-    private RedisUtil redisUtil;
-
+    private RedisTemplate redisTemplate;
+    
     @Autowired
     private ALiSendSms aLiSendSms;
-
+    
     @Autowired
     private ICompanyCityService companyCityService;
-
+    
     @Autowired
     private GDFalconUtil gdFalconUtil;
-
+    
     @Autowired
     private IOrderService orderService;
-
+    
     @Autowired
     private ISmsrecordService smsrecordService;
-
+    
     @Autowired
     private ICarService carService;
-
+    
     @Autowired
     private IReassignService reassignService;
 
@@ -143,16 +148,16 @@
     public ResultUtil queryCaptcha(String phone, Integer type) throws Exception {
         Random random = new Random();
         StringBuffer sb = new StringBuffer();
-        for(int i = 0; i < 4; i++){
+        for (int i = 0; i < 4; i++) {
             sb.append((int) (random.nextDouble() * 10));
         }
         String authCode = sb.toString();
         String sms = "短信验证码【" + authCode + "】已发到您的手机,验证码将在5分钟后失效,请及时登录!";
-
+    
         //发送验证码短信
-        redisUtil.setStrValue(phone, authCode, 5 * 60);//设置五分钟过期
+        redisTemplate.opsForValue().set(phone, authCode, 5, TimeUnit.MINUTES);//设置五分钟过期
         String templateCode = "";
-        switch (type){
+        switch (type) {
             case 1:
                 templateCode = "SMS_154775435";//身份验证
                 break;
@@ -166,13 +171,14 @@
                 templateCode = "SMS_154775431";//修改密码
                 break;
         }
-        String sData = aLiSendSms.sendSms(phone, "SMS_229715276", "{\"code\":\"" + authCode + "\"}");
-        JSONObject jsonObject = JSON.parseObject(sData);
-        String message = jsonObject.getString("Message");
-        if(!"OK".equals(message)){
-            return ResultUtil.error("");
-        }
-        System.out.println(sms);
+//        String sData = aLiSendSms.sendSms(phone, "SMS_229715276", "{\"code\":\"" + authCode + "\"}");
+//        JSONObject jsonObject = JSON.parseObject(sData);
+//        String message = jsonObject.getString("Message");
+//        if(!"OK".equals(message)){
+//            return ResultUtil.error("");
+//        }
+//        System.out.println(sms);
+        SMSUtil.sendVerifyCode(phone);
         return ResultUtil.success();
     }
 
@@ -186,7 +192,7 @@
      */
     @Override
     public boolean checkCaptcha(String phone, String code) throws Exception {
-        Object value = redisUtil.getValue(phone);
+        Object value = redisTemplate.opsForValue().get(phone);
         if("1234".equals(code)){
             return true;
         }
@@ -456,34 +462,44 @@
     @Override
     public ResultUtil<LoginWarpper> driverLogin(String phone, String password) throws Exception {
         Driver driver = driverMapper.queryByPhone(phone);
-        if(null == driver){
+        if (null == driver) {
             return ResultUtil.error("账号未注册");
         }
-        if(ToolUtil.isNotEmpty(driver.getIdCard()) && driver.getAuthState() == 1){
+        //查询中台员工数据
+        GetStaffNodeRequest request = new GetStaffNodeRequest();
+        request.setEmpId(driver.getEmpId());
+        request.setEntercode(driver.getEntercode());
+        request.setMobile(driver.getPhone());
+        StaffNodeInfo staffNode = EmployeeUtil.getStaffNode(request);
+        if (null == staffNode || staffNode.getIsValid().equals("0")) {
+            return ResultUtil.error("账号未注册");
+        }
+    
+        if (ToolUtil.isNotEmpty(driver.getIdCard()) && driver.getAuthState() == 1) {
             return ResultUtil.error("账号正在审核中,请耐心等待");
         }
-        if(driver.getAuthState() == 3){
+        if (driver.getAuthState() == 3) {
             return ResultUtil.error("账号已被冻结,请联系管理员");
         }
-        if(!driver.getPassword().equals(ShiroKit.md5(password, salt))){
+        if (!driver.getPassword().equals(ShiroKit.md5(password, salt))) {
             return ResultUtil.error("密码错误");
         }
-
-        String value = redisUtil.getValue("DEVICE_" + driver.getId());
-        if(ToolUtil.isNotEmpty(value)){
+    
+        String value = (String) redisTemplate.opsForValue().get("DEVICE_" + driver.getId());
+        if (ToolUtil.isNotEmpty(value)) {
             return ResultUtil.error("当前账户正在车载端登录");
         }
-
+    
         //调用单点登录逻辑
         this.singlePointLogin(driver.getId());
-
+    
         String token = this.getToken(driver, password);
         LoginWarpper loginWarpper = new LoginWarpper();
         loginWarpper.setId(driver.getId());
         loginWarpper.setToken(token);
         loginWarpper.setAppid(UUIDUtil.getRandomCode());
         loginWarpper.setState(ToolUtil.isEmpty(driver.getIdCard()) ? 1 : 0);
-
+    
         //创建高德猎鹰的终端数据
         String tid = gdFalconUtil.createTerminal(phone);
         loginWarpper.setServerId(gdFalconUtil.getServerId());
@@ -524,7 +540,7 @@
             }else{
                 key = requestHeader;
             }
-            String value = redisUtil.getValue(key);
+            String value = (String) redisTemplate.opsForValue().get(key);
             return null != value ? Integer.valueOf(value) : null;
         }else{
             return null;
@@ -757,18 +773,45 @@
     @Override
     public ResultUtil updatePhone(String phone, String code, Integer uid) throws Exception {
         Driver driver = driverMapper.queryByPhone(phone);
-        if(null != driver){
+        if (null != driver) {
             return ResultUtil.error("电话号码已被注册");
         }
         boolean b = this.checkCaptcha(phone, code);
-        if(!b){
+        if (!b) {
             return ResultUtil.error("验证码无效");
         }
         Driver driver1 = this.selectById(uid);
+        GetStaffNodeRequest request = new GetStaffNodeRequest();
+        request.setEmpId(driver1.getEmpId());
+        request.setEntercode(driver1.getEntercode());
+        request.setMobile(driver1.getPhone());
+        StaffNodeInfo staffNode = EmployeeUtil.getStaffNode(request);
+        if ("0".equals(staffNode.getIsValid())) {
+            return ResultUtil.error("无效的司机账号");
+        }
+        EditStaffNodeRequest editStaffNodeRequest = new EditStaffNodeRequest();
+        editStaffNodeRequest.setEmpId(staffNode.getEmpId());
+        editStaffNodeRequest.setMobile(staffNode.getMphone());
+        editStaffNodeRequest.setEntercode(staffNode.getEnterNum());
+        editStaffNodeRequest.setEnterId(staffNode.getEnterId());
+        editStaffNodeRequest.setEmpName(staffNode.getEmpName());
+        editStaffNodeRequest.setEmpNickname(staffNode.getEmpNickname());
+        editStaffNodeRequest.setLoginNo(staffNode.getLoginNo());
+        editStaffNodeRequest.setMphone(phone);
+        editStaffNodeRequest.setEmail(staffNode.getEmail());
+        editStaffNodeRequest.setDeptId(staffNode.getDeptId());
+        editStaffNodeRequest.setPositionId(1);
+        editStaffNodeRequest.setSuperLevel(0);
+        editStaffNodeRequest.setHideMobile(0);
+        Boolean editStaffNode = EmployeeUtil.editStaffNode(editStaffNodeRequest);
+        if (!editStaffNode) {
+            return ResultUtil.error("修改手机号码失败");
+        }
+    
         driver1.setAccount(phone);
         driver1.setPhone(phone);
         this.updateById(driver1);
-
+    
         smsrecordService.saveData(7, phone, code, "短信验证码【" + code + "】已发到您的手机,验证码将在5分钟后失效,请及时登录!");
         return ResultUtil.success();
     }
@@ -1187,7 +1230,7 @@
             driverOrdersMapper.insert(query);
         }
         DriverWork driverWork = driverWorkMapper.queryNewWork(driver.getId(), 2, 1);
-        if(null == driverWork){
+        if (null == driverWork) {
             driverWork = new DriverWork();
             driverWork.setStartTime(new Date());
             driverWork.setDriverId(driver.getId());
@@ -1195,22 +1238,22 @@
             driverWork.setType("2");
             driverWorkMapper.insert(driverWork);
         }
-        if(driver.getState() == 1){
+        if (driver.getState() == 1) {
             driver.setState(2);
             driverMapper.updateById(driver);
         }
-
-
+    
+    
         //调用单点登录清除缓存数据
         this.singlePointLogin(driver.getId());
-
+    
         //封装请求账号密码为shiro可验证的token
         UsernamePasswordToken usernamePasswordToken = new UsernamePasswordToken(driver.getPhone(), jobNum.toCharArray());
         String credentials = ShiroKit.md5(driver.getJobNumber(), salt);
         ByteSource credentialsSalt = new Md5Hash(salt);
         SimpleAuthenticationInfo simpleAuthenticationInfo = new SimpleAuthenticationInfo(
                 new ShiroUser(), credentials, credentialsSalt, "");
-
+    
         //校验用户账号密码
         HashedCredentialsMatcher md5CredentialsMatcher = new HashedCredentialsMatcher();
         md5CredentialsMatcher.setHashAlgorithmName(ShiroKit.hashAlgorithmName);
@@ -1218,16 +1261,16 @@
         boolean passwordTrueFlag = md5CredentialsMatcher.doCredentialsMatch(
                 usernamePasswordToken, simpleAuthenticationInfo);
         String s = JwtTokenUtil.generateToken(String.valueOf(driver.getId()));
-        redisUtil.setStrValue(s.substring(s.length() - 32), String.valueOf(driver.getId()), 7 * 24 * 60 * 60);
-        redisUtil.setStrValue(driver.getPhone(), s.substring(s.length() - 32));
-        redisUtil.setStrValue("DRIVER_" + driver.getId(), s);
-
-
+        redisTemplate.opsForValue().set(s.substring(s.length() - 32), String.valueOf(driver.getId()), 7, TimeUnit.DAYS);
+        redisTemplate.opsForValue().set(driver.getPhone(), s.substring(s.length() - 32));
+        redisTemplate.opsForValue().set("DRIVER_" + driver.getId(), s);
+    
+    
         LoginWarpper loginWarpper = new LoginWarpper();
         loginWarpper.setId(driver.getId());
         loginWarpper.setToken(s);
         loginWarpper.setAppid(UUIDUtil.getRandomCode());
-
+    
         //创建高德猎鹰的终端数据
         String tid = gdFalconUtil.createTerminal(driver.getPhone());
         loginWarpper.setServerId(gdFalconUtil.getServerId());
@@ -1285,7 +1328,7 @@
             driverOrdersMapper.insert(query);
         }
         DriverWork driverWork = driverWorkMapper.queryNewWork(driver.getId(), 2, 1);
-        if(null == driverWork){
+        if (null == driverWork) {
             driverWork = new DriverWork();
             driverWork.setStartTime(new Date());
             driverWork.setDriverId(driver.getId());
@@ -1293,20 +1336,20 @@
             driverWork.setType("2");
             driverWorkMapper.insert(driverWork);
         }
-        if(driver.getState() == 1){
+        if (driver.getState() == 1) {
             driver.setState(2);
             driverMapper.updateById(driver);
         }
-
+    
         this.singlePointLogin(driver.getId());//清除缓存实现单点登录
-
+    
         //封装请求账号密码为shiro可验证的token
         UsernamePasswordToken usernamePasswordToken = new UsernamePasswordToken(driver.getPhone(), identification.toCharArray());
         String credentials = ShiroKit.md5(driver.getIdCard(), salt);
         ByteSource credentialsSalt = new Md5Hash(salt);
         SimpleAuthenticationInfo simpleAuthenticationInfo = new SimpleAuthenticationInfo(
                 new ShiroUser(), credentials, credentialsSalt, "");
-
+    
         //校验用户账号密码
         HashedCredentialsMatcher md5CredentialsMatcher = new HashedCredentialsMatcher();
         md5CredentialsMatcher.setHashAlgorithmName(ShiroKit.hashAlgorithmName);
@@ -1314,16 +1357,16 @@
         boolean passwordTrueFlag = md5CredentialsMatcher.doCredentialsMatch(
                 usernamePasswordToken, simpleAuthenticationInfo);
         String s = JwtTokenUtil.generateToken(String.valueOf(driver.getId()));
-        redisUtil.setStrValue(s.substring(s.length() - 32), String.valueOf(driver.getId()), 7 * 24 * 60 * 60);
-        redisUtil.setStrValue(driver.getPhone(), s.substring(s.length() - 32));
-        redisUtil.setStrValue("DRIVER_" + driver.getId(), s);
-
-
+        redisTemplate.opsForValue().set(s.substring(s.length() - 32), String.valueOf(driver.getId()), 7, TimeUnit.DAYS);
+        redisTemplate.opsForValue().set(driver.getPhone(), s.substring(s.length() - 32));
+        redisTemplate.opsForValue().set("DRIVER_" + driver.getId(), s);
+    
+    
         LoginWarpper loginWarpper = new LoginWarpper();
         loginWarpper.setId(driver.getId());
         loginWarpper.setToken(s);
         loginWarpper.setAppid(UUIDUtil.getRandomCode());
-
+    
         //创建高德猎鹰的终端数据
         String tid = gdFalconUtil.createTerminal(driver.getPhone());
         loginWarpper.setServerId(gdFalconUtil.getServerId());
@@ -1371,7 +1414,7 @@
             driverOrdersMapper.insert(query);
         }
         DriverWork driverWork = driverWorkMapper.queryNewWork(driver.getId(), 2, 1);
-        if(null == driverWork){
+        if (null == driverWork) {
             driverWork = new DriverWork();
             driverWork.setStartTime(new Date());
             driverWork.setDriverId(driver.getId());
@@ -1379,20 +1422,20 @@
             driverWork.setType("2");
             driverWorkMapper.insert(driverWork);
         }
-        if(driver.getState() == 1){
+        if (driver.getState() == 1) {
             driver.setState(2);
             driverMapper.updateById(driver);
         }
-
+    
         this.singlePointLogin(driver.getId());//清除缓存实现单点登录
-
+    
         //封装请求账号密码为shiro可验证的token
         UsernamePasswordToken usernamePasswordToken = new UsernamePasswordToken(driver.getPhone(), taxiAptitudeCard.toCharArray());
         String credentials = ShiroKit.md5(driver.getTaxiAptitudeCard(), salt);
         ByteSource credentialsSalt = new Md5Hash(salt);
         SimpleAuthenticationInfo simpleAuthenticationInfo = new SimpleAuthenticationInfo(
                 new ShiroUser(), credentials, credentialsSalt, "");
-
+    
         //校验用户账号密码
         HashedCredentialsMatcher md5CredentialsMatcher = new HashedCredentialsMatcher();
         md5CredentialsMatcher.setHashAlgorithmName(ShiroKit.hashAlgorithmName);
@@ -1400,16 +1443,16 @@
         boolean passwordTrueFlag = md5CredentialsMatcher.doCredentialsMatch(
                 usernamePasswordToken, simpleAuthenticationInfo);
         String s = JwtTokenUtil.generateToken(String.valueOf(driver.getId()));
-        redisUtil.setStrValue(s.substring(s.length() - 32), String.valueOf(driver.getId()), 7 * 24 * 60 * 60);
-        redisUtil.setStrValue(driver.getPhone(), s.substring(s.length() - 32));
-        redisUtil.setStrValue("DRIVER_" + driver.getId(), s);
-
-
+        redisTemplate.opsForValue().set(s.substring(s.length() - 32), String.valueOf(driver.getId()), 7, TimeUnit.DAYS);
+        redisTemplate.opsForValue().set(driver.getPhone(), s.substring(s.length() - 32));
+        redisTemplate.opsForValue().set("DRIVER_" + driver.getId(), s);
+    
+    
         LoginWarpper loginWarpper = new LoginWarpper();
         loginWarpper.setId(driver.getId());
         loginWarpper.setToken(s);
         loginWarpper.setAppid(UUIDUtil.getRandomCode());
-
+    
         //创建高德猎鹰的终端数据
         String tid = gdFalconUtil.createTerminal(driver.getPhone());
         loginWarpper.setServerId(gdFalconUtil.getServerId());
@@ -1426,12 +1469,12 @@
     public void taskOffWork() throws Exception {
         List<Driver> drivers = driverMapper.selectList(new EntityWrapper<Driver>().eq("authState", 2).ne("state", 3));
         Long now = Long.valueOf(System.currentTimeMillis());
-        for(Driver driver : drivers){
-            String value = redisUtil.getValue("DEVICE_" + driver.getId());
-            if(ToolUtil.isNotEmpty(value) && now.compareTo(Long.valueOf(value) + (60 * 60 * 1000)) > 0){
+        for (Driver driver : drivers) {
+            String value = (String) redisTemplate.opsForValue().get("DEVICE_" + driver.getId());
+            if (ToolUtil.isNotEmpty(value) && now.compareTo(Long.valueOf(value) + (60 * 60 * 1000)) > 0) {
                 driver.setState(1);
                 driverMapper.updateById(driver);
-                redisUtil.remove("DEVICE_" + driver.getId());
+                redisTemplate.delete("DEVICE_" + driver.getId());
             }
         }
     }
@@ -1508,40 +1551,47 @@
     public ResultUtil loginOut(Integer id) throws Exception {
         //开始清除redis中无效的数据
         Driver driver = driverMapper.selectById(id);
-        String key = redisUtil.getValue(driver.getPhone());
-        redisUtil.remove(key);//删除个人信息数据
-        redisUtil.remove("DRIVER_" + driver.getPhone());//删除后台冻结相关缓存
-        redisUtil.remove("DRIVER_" + id);//清除存储的token
-        redisUtil.remove("DEVICE_" + id);//清除车载端登录的标识
+        String key = (String) redisTemplate.opsForValue().get(driver.getPhone());
+        redisTemplate.delete(key);//删除个人信息数据
+        redisTemplate.delete("DRIVER_" + driver.getPhone());//删除后台冻结相关缓存
+        redisTemplate.delete("DRIVER_" + id);//清除存储的token
+        redisTemplate.delete("DEVICE_" + id);//清除车载端登录的标识
         return ResultUtil.success();
     }
-
-
+    
     /**
-     * 获取编号
-     * @return
+     * 单点登录
+     *
+     * @param id
      */
-    public String getCode(){
-        int count = driverMapper.getCount();
-        String code = String.valueOf(1000001 + count);
-        return "D" + code.substring(1);
+    private void singlePointLogin(Integer id) {
+        //开始验证当前账号是否在别处登录
+        String value = (String) redisTemplate.opsForValue().get("DRIVER_" + id);
+        if (ToolUtil.isNotEmpty(value)) {//将另外设备上的强迫下线(如果是车载端不需要下线)
+            //开始清除redis中无效的数据
+            Driver driver = driverMapper.selectById(id);
+            String key = (String) redisTemplate.opsForValue().get("DRIVER_" + driver.getPhone());
+            redisTemplate.delete(key);//删除个人信息数据
+            redisTemplate.delete("DRIVER_" + driver.getPhone());//删除后台冻结相关缓存
+            redisTemplate.delete("DRIVER_" + id);//清除存储的token
+        }
     }
-
-
+    
     /**
      * 获取token
+     *
      * @param driver
      * @param password
      * @return
      */
-    private String getToken(Driver driver, String password){
+    private String getToken(Driver driver, String password) {
         //封装请求账号密码为shiro可验证的token
         UsernamePasswordToken usernamePasswordToken = new UsernamePasswordToken(driver.getPhone(), password.toCharArray());
         String credentials = driver.getPassword();
         ByteSource credentialsSalt = new Md5Hash(salt);
         SimpleAuthenticationInfo simpleAuthenticationInfo = new SimpleAuthenticationInfo(
                 new ShiroUser(), credentials, credentialsSalt, "");
-
+        
         //校验用户账号密码
         HashedCredentialsMatcher md5CredentialsMatcher = new HashedCredentialsMatcher();
         md5CredentialsMatcher.setHashAlgorithmName(ShiroKit.hashAlgorithmName);
@@ -1549,30 +1599,21 @@
         boolean passwordTrueFlag = md5CredentialsMatcher.doCredentialsMatch(
                 usernamePasswordToken, simpleAuthenticationInfo);
         String s = JwtTokenUtil.generateToken(String.valueOf(driver.getId()));
-        redisUtil.setStrValue(s.substring(s.length() - 32), String.valueOf(driver.getId()), 7 * 24 * 60 * 60);
-        redisUtil.setStrValue("DRIVER_" + driver.getPhone(), s.substring(s.length() - 32));
-        redisUtil.setStrValue("DRIVER_" + driver.getId(), s);
+        redisTemplate.opsForValue().set(s.substring(s.length() - 32), String.valueOf(driver.getId()), 7, TimeUnit.DAYS);
+        redisTemplate.opsForValue().set("DRIVER_" + driver.getPhone(), s.substring(s.length() - 32));
+        redisTemplate.opsForValue().set("DRIVER_" + driver.getId(), s);
         return s;
     }
-
-
-
-
+    
     /**
-     * 单点登录
-     * @param id
+     * 获取编号
+     *
+     * @return
      */
-    private void singlePointLogin(Integer id){
-        //开始验证当前账号是否在别处登录
-        String value = redisUtil.getValue("DRIVER_" + id);
-        if(ToolUtil.isNotEmpty(value)){//将另外设备上的强迫下线(如果是车载端不需要下线)
-            //开始清除redis中无效的数据
-            Driver driver = driverMapper.selectById(id);
-            String key = redisUtil.getValue("DRIVER_" + driver.getPhone());
-            redisUtil.remove(key);//删除个人信息数据
-            redisUtil.remove("DRIVER_" + driver.getPhone());//删除后台冻结相关缓存
-            redisUtil.remove("DRIVER_" + id);//清除存储的token
-        }
+    public String getCode() {
+        int count = driverMapper.getCount();
+        String code = String.valueOf(1000001 + count);
+        return "D" + code.substring(1);
     }
-
+    
 }

--
Gitblit v1.7.1