月球大数据地理空间分析展示平台-【后端】-月球后台服务
13693261870
2023-10-08 cd5ddb61527d65c72e78c6f475d5026bb5beb0e4
src/main/java/com/moon/server/service/sys/TokenService.java
@@ -58,6 +58,16 @@
    }
    @Override
    public List<TokenEntity> selectByIds(List<Integer> ids) {
        return tokenMapper.selectByIds(ids);
    }
    @Override
    public TokenEntity selectOneById(Integer id) {
        return tokenMapper.selectOneById(id);
    }
    @Override
    public TokenEntity selectOneByToken(String token) {
        return tokenMapper.selectOneByToken(token);
    }
@@ -79,11 +89,27 @@
    @Override
    public Integer deleteToken(int id) {
        TokenEntity entity = tokenMapper.selectToken(id);
        if (null == entity) {
            return 0;
        }
        clearCache(entity.getToken());
        return tokenMapper.deleteToken(id);
    }
    @Override
    public Integer deleteTokens(List<Integer> ids) {
        List<TokenEntity> list = tokenMapper.selectByIds(ids);
        if (null == list || list.isEmpty()) {
            return 0;
        }
        for (TokenEntity entity : list) {
            clearCache(entity.getToken());
        }
        return tokenMapper.deleteTokens(ids);
    }
@@ -94,6 +120,7 @@
    @Override
    public Integer updateTokenExpire(TokenEntity tokenEntity) {
        clearCache(tokenEntity.getToken());
        return tokenMapper.updateTokenExpire(tokenEntity);
    }
@@ -156,16 +183,6 @@
            return false;
        }
        // 清除缓存
        String tokenKey = RedisCacheKey.signTokenKey(token);
        if (redisService.hasKey(tokenKey)) {
            redisService.delete(tokenKey);
        }
        String userKey = RedisCacheKey.signUserKey(te.getToken());
        if (redisService.hasKey(userKey)) {
            redisService.delete(userKey);
        }
        // db,设置令牌过期
        te.setUpdateUser(ue.getId());
        Integer rows = updateTokenExpire(te);
@@ -178,6 +195,16 @@
        rows = loginService.insertLogin(le);
        return rows > 0;
    }
    /**
     * 清除缓存
     */
    public void clearCache(String token) {
        String tokenKey = RedisCacheKey.signTokenKey(token);
        redisService.delete(tokenKey);
        String userKey = RedisCacheKey.signUserKey(token);
        redisService.delete(userKey);
    }
    /**
@@ -226,6 +253,14 @@
     */
    public UserEntity getCurrentUser(HttpServletRequest req) {
        String token = WebHelper.getToken(req);
        return getUserByToken(token);
    }
    /**
     * 根据令牌获取用户
     */
    public UserEntity getUserByToken(String token) {
        if (StringHelper.isNull(token)) {
            return null;
        }