From 71a01448f9e6de4a05381a74e415b9f0964cddef Mon Sep 17 00:00:00 2001 From: Pu Zhibing <393733352@qq.com> Date: 星期四, 24 七月 2025 19:21:23 +0800 Subject: [PATCH] 新增部分三方接口 --- DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java | 322 ++++++++++++++++++++++++++++++----------------------- 1 files changed, 181 insertions(+), 141 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..354d01b 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,11 +12,16 @@ 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.SMSUtil; +import com.stylefeng.guns.modular.system.util.qianyuntong.UserUtil; +import com.stylefeng.guns.modular.system.util.qianyuntong.model.QYTUserInfo; +import com.stylefeng.guns.modular.system.util.qianyuntong.model.SendSmsRequest; import com.stylefeng.guns.modular.system.warpper.ActivityWarpper; import com.stylefeng.guns.modular.system.warpper.BaseWarpper; import com.stylefeng.guns.modular.system.warpper.LoginWarpper; import com.stylefeng.guns.modular.system.warpper.RegisteredWarpper; import com.stylefeng.guns.modular.taxi.service.IOrderTaxiService; +import io.rong.models.response.TokenResult; import org.apache.shiro.authc.SimpleAuthenticationInfo; import org.apache.shiro.authc.UsernamePasswordToken; import org.apache.shiro.authc.credential.HashedCredentialsMatcher; @@ -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; - + + @Resource + private RedisTemplate<String, Object> 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,36 +148,44 @@ 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);//设置五分钟过期 - String templateCode = ""; - switch (type){ - case 1: - templateCode = "SMS_154775435";//身份验证 - break; - case 2: - templateCode = "SMS_154775434";//登录确认 - break; - case 3: - templateCode = "SMS_154775432";//用户注册 - break; - case 4: - 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); +// //发送验证码短信 +// redisTemplate.opsForValue().set(phone, authCode, 5, TimeUnit.MINUTES);//设置五分钟过期 +// String templateCode = ""; +// switch (type) { +// case 1: +// templateCode = "SMS_154775435";//身份验证 +// break; +// case 2: +// templateCode = "SMS_154775434";//登录确认 +// break; +// case 3: +// templateCode = "SMS_154775432";//用户注册 +// break; +// case 4: +// 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); + SendSmsRequest request = new SendSmsRequest(); + request.setDestAddress(phone); + request.setTemplateId("TPL202410290001"); + Map<String, String> templateParams = new HashMap<>(); + templateParams.put("code", authCode); + request.setTemplateParams(templateParams); + request.setCode("code"); + request.setSpId("T8d5hdfg"); + SMSUtil.sendSms(request); + redisTemplate.opsForValue().set(phone, authCode, 5, TimeUnit.MINUTES);//设置五分钟过期 return ResultUtil.success(); } @@ -186,7 +199,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; } @@ -332,11 +345,23 @@ @Override public ResultUtil updateDriver(RegisteredWarpper registeredWarpper, Integer uid) throws Exception { Driver driver = this.selectById(uid); + //调用中台接口校验实名信息 + Boolean auth = UserUtil.idCardAuth(registeredWarpper.getName(), registeredWarpper.getIdCard()); + if(!auth){ + return ResultUtil.error("实名认证失败,请输入正确的姓名和身份证号码"); + } driver.setName(registeredWarpper.getName()); driver.setSex(registeredWarpper.getSex()); driver.setIdCard(registeredWarpper.getIdCard()); - String code = registeredWarpper.getPlaceOfEmployment(); + driver.setArea(registeredWarpper.getArea()); + driver.setAreaCode(registeredWarpper.getAreaCode()); + driver.setCity(registeredWarpper.getCity()); + driver.setCityCode(registeredWarpper.getCityCode()); + driver.setProvince(registeredWarpper.getProvince()); + driver.setProvinceCode(registeredWarpper.getProvinceCode()); + + String code = registeredWarpper.getAreaCode(); Company query = companyCityService.query(code); if(null == query){ return ResultUtil.error("选择从业地暂未开通业务"); @@ -383,7 +408,7 @@ boolean b = true; for(String t : split){ for(DriverService driverService : list){ - if(driverService.getType() == Integer.valueOf(t)){ + if(driverService.getType().equals(Integer.valueOf(t))){ b = false; break; } @@ -456,33 +481,42 @@ @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){ + Company company = companyMapper.selectById(driver.getCompanyId()); + //查询中台员工数据 + List<QYTUserInfo> userInfoByPhone = UserUtil.getUserInfoByPhone(driver.getPhone(), company.getEnterCode()); + if (null == userInfoByPhone || userInfoByPhone.size() == 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); + TokenResult token1 = RongCloudUtil.getToken(driver.getId().toString(), driver.getName(), driver.getHeadImgUrl()); + loginWarpper.setRongYunToken(token1.getToken()); //创建高德猎鹰的终端数据 String tid = gdFalconUtil.createTerminal(phone); @@ -524,7 +558,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 +791,24 @@ @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); + Company company = companyMapper.selectById(driver1.getCompanyId()); + List<QYTUserInfo> userInfoByPhone = UserUtil.getUserInfoByPhone(driver1.getPhone(), company.getEnterCode()); + if (null == userInfoByPhone || userInfoByPhone.size() == 0) { + return ResultUtil.error("账号未注册"); + } + driver1.setAccount(phone); driver1.setPhone(phone); this.updateById(driver1); - + smsrecordService.saveData(7, phone, code, "短信验证码【" + code + "】已发到您的手机,验证码将在5分钟后失效,请及时登录!"); return ResultUtil.success(); } @@ -813,10 +853,10 @@ if(driver.getState() == 3){ return ResultUtil.error("还在服务中,不能更换"); } -// boolean idle = carService.idle(carId); -// if(!idle){ -// return ResultUtil.error("车辆已被绑定了"); -// } + boolean idle = carService.idle(carId); + if(!idle){ + return ResultUtil.error("当前车辆已经有其他司机在使用,请更换车辆"); + } driver.setCarId(carId); this.updateById(driver); return ResultUtil.success(); @@ -1187,7 +1227,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 +1235,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 +1258,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 +1325,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 +1333,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 +1354,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 +1411,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 +1419,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 +1440,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 +1466,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 +1548,49 @@ 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()); + if(ToolUtil.isNotEmpty(key)){ + 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 +1598,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