管道基础大数据平台系统开发-【后端】-Server
1
13693261870
2022-09-30 c15739adf58aa87002516f151d6314b8caecbb29
src/main/java/com/lf/server/service/data/TokenService.java
@@ -1,5 +1,7 @@
package com.lf.server.service.data;
import com.lf.server.entity.all.StaticData;
import com.lf.server.entity.data.LoginEntity;
import com.lf.server.entity.data.TokenEntity;
import com.lf.server.entity.data.UsersEntity;
import com.lf.server.entity.sys.RedisCacheKey;
@@ -32,6 +34,9 @@
    @Autowired
    UsersService usersService;
    @Autowired
    LoginService loginService;
    @Override
    public Integer selectCount(String token) {
        return tokenMapper.selectCount(token);
@@ -40,6 +45,21 @@
    @Override
    public List<TokenEntity> selectByPage(String token, Integer limit, Integer offset) {
        return tokenMapper.selectByPage(token, limit, offset);
    }
    @Override
    public TokenEntity selectToken(int id) {
        return tokenMapper.selectToken(id);
    }
    @Override
    public TokenEntity selectOneByToken(String token) {
        return tokenMapper.selectOneByToken(token);
    }
    @Override
    public List<TokenEntity> selectTokenAll() {
        return tokenMapper.selectTokenAll();
    }
    @Override
@@ -68,18 +88,8 @@
    }
    @Override
    public TokenEntity selectToken(int id) {
        return tokenMapper.selectToken(id);
    }
    @Override
    public TokenEntity selectOneByToken(String token) {
        return tokenMapper.selectOneByToken(token);
    }
    @Override
    public List<TokenEntity> selectTokenAll() {
        return tokenMapper.selectTokenAll();
    public Integer updateTokenExpire(TokenEntity tokenEntity) {
        return tokenMapper.updateTokenExpire(tokenEntity);
    }
    /**
@@ -134,6 +144,48 @@
    }
    /**
     * 登出
     *
     * @param token
     * @param req
     * @return
     */
    public Boolean logout(String token, HttpServletRequest req) {
        TokenEntity te = getEntityByToken(token);
        if (te == null) {
            return false;
        }
        // 清除Cookie
        WebHelper.deleteCookie(StaticData.TOKEN_COOKIE_KEY, req);
        // 清除缓存
        String tokenKey = RedisCacheKey.signTokenKey(token);
        redisService.delete(tokenKey);
        // 获取当前用户
        UsersEntity ue = getCurrentUser(req);
        if (te == null) {
            return false;
        }
        // db,设置令牌过期
        te.setUpdateUser(ue.getId());
        Integer rows = updateTokenExpire(te);
        if (rows == 0) {
            return false;
        }
        // 写日志
        LoginEntity le = loginService.getNewLogin(ue.getId(), req);
        le.setType(3);
        rows = loginService.insertLogin(le);
        return rows > 0;
    }
    /**
     * 根据令牌获取实体
     *
     * @param token