liujie
6 天以前 2e9e8c6680f6bc152f14f0acb7d565027460fd95
DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java
@@ -29,7 +29,6 @@
import com.stylefeng.guns.modular.taxi.dao.OrderTaxiMapper;
import com.stylefeng.guns.modular.taxi.model.OrderTaxi;
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;
@@ -156,7 +155,7 @@
        List<Driver> drivers = driverMapper.queryIdleDriver(type, companyId);
        List<Driver> list = new ArrayList<>();
        for(Driver driver : drivers){
            String value = (String) redisTemplate.opsForValue().get("DRIVER" + String.valueOf(driver.getId()));
            String value = (String) redisTemplate.opsForValue().get("dache:DRIVER" + String.valueOf(driver.getId()));
            if(null != value){
                Map<String, Double> distance1 = geodesyUtil.getDistance(lon + "," + lat, value);
                double d = Double.valueOf(distance1.get("WGS84")).doubleValue();
@@ -173,7 +172,7 @@
        List<Driver> drivers = driverMapper.queryIdleDriver_(type, serverCarModelId, companyId);
        List<Driver> list = new ArrayList<>();
        for(Driver driver : drivers){
            String value = (String) redisTemplate.opsForValue().get("DRIVER" + String.valueOf(driver.getId()));
            String value = (String) redisTemplate.opsForValue().get("dache:DRIVER" + String.valueOf(driver.getId()));
            if(null != value){
                Map<String, Double> distance1 = geodesyUtil.getDistance(lon + "," + lat, value);
                double d = Double.valueOf(distance1.get("WGS84")).doubleValue();
@@ -563,8 +562,8 @@
        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());
//        TokenResult token1 = RongCloudUtil.getToken(driver.getId().toString(), driver.getName(), driver.getHeadImgUrl());
//        loginWarpper.setRongYunToken(token1.getToken());
        //创建高德猎鹰的终端数据
//        String tid = gdFalconUtil.createTerminal(phone);
@@ -1330,7 +1329,7 @@
        String s = JwtTokenUtil.generateToken(String.valueOf(driver.getId()));
        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);
        redisTemplate.opsForValue().set("dache:DRIVER_" + driver.getId(), s);
    
    
        LoginWarpper loginWarpper = new LoginWarpper();
@@ -1426,7 +1425,7 @@
        String s = JwtTokenUtil.generateToken(String.valueOf(driver.getId()));
        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);
        redisTemplate.opsForValue().set("dache:DRIVER_" + driver.getId(), s);
    
    
        LoginWarpper loginWarpper = new LoginWarpper();
@@ -1512,7 +1511,7 @@
        String s = JwtTokenUtil.generateToken(String.valueOf(driver.getId()));
        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);
        redisTemplate.opsForValue().set("dache:DRIVER_" + driver.getId(), s);
    
    
        LoginWarpper loginWarpper = new LoginWarpper();
@@ -1620,9 +1619,9 @@
        Driver driver = driverMapper.selectById(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);//清除车载端登录的标识
        redisTemplate.delete("dache:DRIVER_" + driver.getPhone());//删除后台冻结相关缓存
        redisTemplate.delete("dache:DRIVER_" + id);//清除存储的token
        redisTemplate.delete("dache:DEVICE_" + id);//清除车载端登录的标识
        return ResultUtil.success();
    }
@@ -1630,17 +1629,17 @@
    public DriverIndexVo queryHomeDataFromDriver(Integer uid) {
        DriverIndexVo driverIndexVo = new DriverIndexVo();
        // 获取快车订单
        List<OrderPrivateCar> orderPrivateCars = orderPrivateCarMapper.selectList(new EntityWrapper<OrderPrivateCar>().ne("state", 10).eq("driverId", uid).like("insertTime", LocalDate.now().toString()));
        List<OrderPrivateCar> orderPrivateCars = orderPrivateCarMapper.selectList(new EntityWrapper<OrderPrivateCar>().in("state", Arrays.asList(7, 8, 9)).eq("driverId", uid).like("insertTime", LocalDate.now().toString()));
        // 跨城订单
        List<OrderCrossCity> orderCrossCities = orderCrossCityMapper.selectList(new EntityWrapper<OrderCrossCity>().ne("state", 10).eq("driverId", uid).like("insertTime", LocalDate.now().toString()));
        List<OrderCrossCity> orderCrossCities = orderCrossCityMapper.selectList(new EntityWrapper<OrderCrossCity>().in("state", Arrays.asList(7, 8, 9)).eq("driverId", uid).like("insertTime", LocalDate.now().toString()));
        // 出租车订单
        List<OrderTaxi> orderTaxis = orderTaxiMapper.selectList(new EntityWrapper<OrderTaxi>().ne("state", 10).eq("driverId", uid).like("insertTime", LocalDate.now().toString()));
        List<OrderTaxi> orderTaxis = orderTaxiMapper.selectList(new EntityWrapper<OrderTaxi>().in("state", Arrays.asList(7, 8, 9)).eq("driverId", uid).like("insertTime", LocalDate.now().toString()));
        driverIndexVo.setTodayOrderNum(orderPrivateCars.size() + orderCrossCities.size() + orderTaxis.size());
        double sum = orderPrivateCars.stream().mapToDouble(OrderPrivateCar::getOrderMoney).sum();
        double sum1 = orderCrossCities.stream().mapToDouble(OrderCrossCity::getOrderMoney).sum();
        double sum2 = orderTaxis.stream().mapToDouble(OrderTaxi::getOrderMoney).sum();
        double sum2 = orderTaxis.stream().filter(e->e.getOrderMoney()!=null).mapToDouble(OrderTaxi::getOrderMoney).sum();
        driverIndexVo.setTodayOrderMoney(new BigDecimal(sum +sum1+sum2));
@@ -1795,16 +1794,16 @@
     */
    private void singlePointLogin(Integer id) {
        //开始验证当前账号是否在别处登录
        String value = (String) redisTemplate.opsForValue().get("DRIVER_" + id);
        String value = (String) redisTemplate.opsForValue().get("dache:DRIVER_" + id);
        if (ToolUtil.isNotEmpty(value)) {//将另外设备上的强迫下线(如果是车载端不需要下线)
            //开始清除redis中无效的数据
            Driver driver = driverMapper.selectById(id);
            String key = (String) redisTemplate.opsForValue().get("DRIVER_" + driver.getPhone());
            String key = (String) redisTemplate.opsForValue().get("dache:DRIVER_" + driver.getPhone());
            if(ToolUtil.isNotEmpty(key)){
                redisTemplate.delete(key);//删除个人信息数据
            }
            redisTemplate.delete("DRIVER_" + driver.getPhone());//删除后台冻结相关缓存
            redisTemplate.delete("DRIVER_" + id);//清除存储的token
            redisTemplate.delete("dache:DRIVER_" + driver.getPhone());//删除后台冻结相关缓存
            redisTemplate.delete("dache:DRIVER_" + id);//清除存储的token
        }
    }
    
@@ -1831,8 +1830,8 @@
                usernamePasswordToken, simpleAuthenticationInfo);
        String s = JwtTokenUtil.generateToken(String.valueOf(driver.getId()));
        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);
        redisTemplate.opsForValue().set("dache:DRIVER_" + driver.getPhone(), s.substring(s.length() - 32));
        redisTemplate.opsForValue().set("dache:DRIVER_" + driver.getId(), s);
        return s;
    }