管道基础大数据平台系统开发-【后端】-Server
1
13693261870
2022-09-30 74c698fb0f094d7d322cfe6a218cf7c86e82a43f
1
已修改8个文件
148 ■■■■ 文件已修改
data/db.sql 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/lf/server/controller/sys/SignController.java 53 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/lf/server/mapper/data/TokenMapper.java 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/lf/server/mapper/data/UsersMapper.java 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/lf/server/service/data/TokenService.java 48 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/lf/server/service/data/UsersService.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/data/TokenMapper.xml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/data/UsersMapper.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data/db.sql
@@ -340,6 +340,9 @@
/*insert into lf.sys_token (token,ip) values (new_guid(),'192.168.20.106');
insert into lf.sys_token (token,ip,expire,create_time) values (new_guid(),'192.168.20.107',now()::timestamp + '1 year 4 hour',now()::timestamp + '1 year');*/
select * from lf.sys_token where token='91cf74dc-1d03-4937-983f-88810589b112' and expire > now() limit 1;
select * from lf.sys_user where id=(select create_user from lf.sys_token where token='91cf74dc-1d03-4937-983f-88810589b112' and expire > now() limit 1);
select * from lf.sys_token;
select * from lf.sys_token_2022;
select * from lf.sys_token_2023;
src/main/java/com/lf/server/controller/sys/SignController.java
@@ -122,11 +122,11 @@
     * @return
     */
    @GetMapping(value = "/logout")
    public ResponseMsg<Object> logout(HttpServletRequest req, HttpServletResponse res) {
    public ResponseMsg<Boolean> logout(HttpServletRequest req, HttpServletResponse res) {
        try {
            String token = WebHelper.getToken(req);
            if (StringHelper.isEmpty(token)) {
                return fail("没有检测到令牌", null);
                return fail("没有检测到令牌", false);
            }
            //...
@@ -134,36 +134,12 @@
            return success(flag ? "用户已登录" : "用户未登录", flag);
        } catch (Exception ex) {
            return fail(ex.getMessage(), null);
            return fail(ex.getMessage(), false);
        }
    }
    /**
     * 检查令牌
     *
     * @param req
     * @param res
     * @return
     */
    @GetMapping(value = "/check")
    public ResponseMsg<Object> check(HttpServletRequest req, HttpServletResponse res) {
        try {
            String token = WebHelper.getToken(req);
            if (StringHelper.isEmpty(token)) {
                return fail("没有检测到令牌", null);
            }
            //...
            Boolean flag = tokenService.isLogin(req, res);
            return success(flag ? "用户已登录" : "用户未登录", flag);
        } catch (Exception ex) {
            return fail(ex.getMessage(), null);
        }
    }
    /**
     * 是否登录
     * 是/否登录
     *
     * @return ResponseMsg<String>
     */
@@ -177,4 +153,25 @@
            return fail(ex.getMessage(), false);
        }
    }
    /**
     * 获取当前用户
     *
     * @param req
     * @param res
     * @return
     */
    @GetMapping("/getCurrentUser")
    public ResponseMsg<UsersEntity> getCurrentUser(HttpServletRequest req, HttpServletResponse res) {
        try {
            UsersEntity ue = tokenService.getCurrentUser(req);
            if (ue == null) {
                return fail("没有找到", null);
            }
            return success(ue);
        } catch (Exception ex) {
            return fail(ex.getMessage(), null);
        }
    }
}
src/main/java/com/lf/server/mapper/data/TokenMapper.java
@@ -28,7 +28,7 @@
    /**
     * 根据表名分页查询
     *
     * @param token    表名
     * @param token  表名
     * @param limit  记录表
     * @param offset 偏移量
     * @return 列表
@@ -37,6 +37,7 @@
    /**
     * 添加数据
     *
     * @param tokenEntity
     * @return
     */
@@ -44,6 +45,7 @@
    /**
     * 批量添加
     *
     * @param tokenEntity
     * @return
     */
@@ -67,6 +69,7 @@
    /**
     * 修改数据
     *
     * @param tokenEntity
     * @return
     */
@@ -74,17 +77,23 @@
    /**
     * 查询单条数据
     *
     * @param id
     * @return
     */
    public TokenEntity selectToken(int id);
    /**
     * 根据token值查询一条记录
     * @param token
     * @return
     */
    public TokenEntity selectOneByToken(String token);
    /**
     * 查询全部数据
     *
     * @return
     */
    public List<TokenEntity> selectTokenAll();
}
src/main/java/com/lf/server/mapper/data/UsersMapper.java
@@ -34,7 +34,16 @@
    public List<UsersEntity> selectByPage(String uname, Integer limit, Integer offset);
    /**
     * 根据token有效期查询
     *
     * @param token
     * @return
     */
    public UsersEntity selectByToken(String token);
    /**
     * 添加数据
     *
     * @param usersEntity
     * @return
     */
@@ -82,6 +91,7 @@
    /**
     * 根据uid查询
     *
     * @param uid
     * @return
     */
@@ -93,5 +103,4 @@
     * @return
     */
    public List<UsersEntity> selectUserAll();
}
}
src/main/java/com/lf/server/service/data/TokenService.java
@@ -29,6 +29,9 @@
    @Autowired
    TokenMapper tokenMapper;
    @Autowired
    UsersService usersService;
    @Override
    public Integer selectCount(String token) {
        return tokenMapper.selectCount(token);
@@ -70,6 +73,11 @@
    }
    @Override
    public TokenEntity selectOneByToken(String token) {
        return tokenMapper.selectOneByToken(token);
    }
    @Override
    public List<TokenEntity> selectTokenAll() {
        return tokenMapper.selectTokenAll();
    }
@@ -97,7 +105,7 @@
    }
    /**
     * 是否登录
     * 是/否登录
     *
     * @param req
     * @param res
@@ -110,7 +118,15 @@
        }
        // redis
        if (redisService.hasKey(RedisCacheKey.signTokenKey(token))) {
        String tokenKey = RedisCacheKey.signTokenKey(token);
        if (redisService.hasKey(tokenKey)) {
            return true;
        }
        // db
        TokenEntity te = selectOneByToken(token);
        if (te != null) {
            redisService.put(tokenKey, te, te.getDuration(), TimeUnit.MINUTES);
            return true;
        }
@@ -128,13 +144,21 @@
            return null;
        }
        String key = RedisCacheKey.signTokenKey(token);
        Object obj = redisService.get(key);
        String tokenKey = RedisCacheKey.signTokenKey(token);
        // redis
        Object obj = redisService.get(tokenKey);
        if (obj != null && obj instanceof TokenEntity) {
            return (TokenEntity) obj;
        }
        return null;
        // db
        TokenEntity te = selectOneByToken(token);
        if (te != null) {
            redisService.put(tokenKey, te, te.getDuration(), TimeUnit.MINUTES);
        }
        return te;
    }
    /**
@@ -158,6 +182,7 @@
    /**
     * 获取当前用户
     *
     * @param req
     * @return
     */
@@ -168,11 +193,22 @@
        }
        String userKey = RedisCacheKey.signUserKey(token);
        // redis
        Object obj = redisService.get(userKey);
        if (obj != null && obj instanceof UsersEntity) {
            return (UsersEntity) obj;
        }
        return null;
        // db
        UsersEntity ue = usersService.selectByToken(token);
        if (ue != null) {
            TokenEntity te = getEntityByToken(token);
            if (te != null) {
                redisService.put(userKey, ue, te.getDuration(), TimeUnit.MINUTES);
            }
        }
        return ue;
    }
}
src/main/java/com/lf/server/service/data/UsersService.java
@@ -47,6 +47,11 @@
    }
    @Override
    public UsersEntity selectByToken(String token) {
        return usersMapper.selectByToken(token);
    }
    @Override
    public Integer insertUser(UsersEntity usersEntity) {
        return usersMapper.insertUser(usersEntity);
    }
src/main/resources/mapper/data/TokenMapper.xml
@@ -39,6 +39,10 @@
        select * from lf.sys_token where id = #{id}
    </select>
    <select id="selectOneByToken" resultType="com.lf.server.entity.data.TokenEntity">
        select * from lf.sys_token where token = #{token} and expire > now() limit 1
    </select>
    <insert id="insertToken" parameterType="com.lf.server.entity.data.TokenEntity">
        <selectKey resultType="java.lang.Integer" order="AFTER" keyProperty="id">
            select currval('lf.sys_token_id_seq'::regclass) as id
src/main/resources/mapper/data/UsersMapper.xml
@@ -44,6 +44,11 @@
        select * from lf.sys_user where uid = #{uid}
    </select>
    <select id="selectByToken" resultType="com.lf.server.entity.data.UsersEntity">
        select * from lf.sys_user where id = (
          select create_user from lf.sys_token where token=#{token} and expire > now() limit 1)
    </select>
    <insert id="insertUser"  parameterType="com.lf.server.entity.data.UsersEntity">
       insert into lf.sys_user
       (depid,uid,uname,pwd,salt,sex,native,contact,job,email,addr,edu,idcard,status,create_user,create_time,bak)