月球大数据地理空间分析展示平台-【后端】-月球后台服务
1
13693261870
2023-07-10 cace96726d1e9a3dee35eefd135330a7ddc2d700
1
已修改7个文件
82 ■■■■ 文件已修改
src/main/java/com/moon/server/entity/all/RedisCacheKey.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/moon/server/interceptor/ProxyFilter.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/moon/server/mapper/all/PermsMapper.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/moon/server/service/all/PermsService.java 23 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/moon/server/service/all/RedisService.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/moon/server/service/sys/TokenService.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/all/PermsMapper.xml 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/moon/server/entity/all/RedisCacheKey.java
@@ -41,6 +41,13 @@
    }
    /**
     * 资源列表授权键
     */
    public static String permsResListKey(String key) {
        return "perms:resList:" + key;
    }
    /**
     * 菜单授权键
     */
    public static String permsMenusKey(String key) {
src/main/java/com/moon/server/interceptor/ProxyFilter.java
@@ -1,10 +1,12 @@
package com.moon.server.interceptor;
import com.moon.server.entity.all.ResAuthEntity;
import com.moon.server.entity.all.StaticData;
import com.moon.server.entity.sys.TokenEntity;
import com.moon.server.entity.sys.UserEntity;
import com.moon.server.helper.StringHelper;
import com.moon.server.helper.WebHelper;
import com.moon.server.service.all.PermsService;
import com.moon.server.service.all.SysService;
import com.moon.server.service.sys.ResLogService;
@@ -24,6 +26,9 @@
public class ProxyFilter implements Filter {
    @Resource
    private SysService sysService;
    @Resource
    private PermsService permsService;
    @Resource
    private ResLogService resLogService;
@@ -150,8 +155,9 @@
        return te.getIp().equals(ip);
    }
    private boolean checkPerms(int resId){
    private boolean checkPerms(UserEntity ue, int resId){
        String uid = StaticData.ADMIN.equals(ue.getUid()) ? null : ue.getUid();
        List<ResAuthEntity> rs = permsService.selectRes(uid);
        return true;
    }
src/main/java/com/moon/server/mapper/all/PermsMapper.java
@@ -25,6 +25,14 @@
    public List<ResAuthEntity> selectRes(String uid);
    /**
     * 根据用户Uid查询资源列表
     *
     * @param uid
     * @return
     */
    public List<Integer> selectResList(String uid);
    /**
     * 根据用户Uid查询菜单授权
     *
     * @param uid
src/main/java/com/moon/server/service/all/PermsService.java
@@ -38,6 +38,22 @@
    }
    @Override
    public List<Integer> selectResList(String uid) {
        String key = RedisCacheKey.permsResListKey(uid);
        Object obj = redisService.get(key);
        if (obj instanceof List<?>) {
            return (List<Integer>) obj;
        }
        List<Integer> list = permsMapper.selectResList(uid);
        if (list != null && list.size() > 0) {
            redisService.put(key, list, SettingData.CACHE_EXPIRE, TimeUnit.MINUTES);
        }
        return list;
    }
    @Override
    public List<MenusAuthEntity> selectMenus(String uid) {
        String key = RedisCacheKey.permsMenusKey(uid);
        Object obj = redisService.get(key);
@@ -97,15 +113,14 @@
    public void clearResCache() {
        redisService.clearKeys(RedisCacheKey.permsResKey(""));
        redisService.clearKeys(RedisCacheKey.permsResListKey(""));
    }
    public void clearPermsCache() {
        redisService.clearKeys(RedisCacheKey.permsMenusKey(""));
        redisService.clearKeys(RedisCacheKey.permsPermsKey(""));
        redisService.clearKeys(RedisCacheKey.permsPermsEntityKey(""));
        redisService.clearKeys(RedisCacheKey.permsRootKey());
    }
    public void clearAllCache() {
        redisService.clearKeys(RedisCacheKey.permsRootKey());
        redisService.clearAll();
    }
}
src/main/java/com/moon/server/service/all/RedisService.java
@@ -73,7 +73,9 @@
     * @param key 键
     */
    public void delete(String key) {
        redisTemplate.delete(key);
        if (hasKey(key)) {
            redisTemplate.delete(key);
        }
    }
    /**
@@ -83,7 +85,9 @@
     */
    public void clearKeys(String subKeyString) {
        Set<String> keys = redisTemplate.keys(subKeyString + "*");
        redisTemplate.delete(keys);
        if (null != keys && keys.size() > 0) {
            redisTemplate.delete(keys);
        }
    }
    /**
@@ -91,6 +95,8 @@
     */
    public void clearAll() {
        Set<String> keys = redisTemplate.keys("*");
        redisTemplate.delete(keys);
        if (null != keys && keys.size() > 0) {
            redisTemplate.delete(keys);
        }
    }
}
src/main/java/com/moon/server/service/sys/TokenService.java
@@ -158,13 +158,9 @@
        // 清除缓存
        String tokenKey = RedisCacheKey.signTokenKey(token);
        if (redisService.hasKey(tokenKey)) {
            redisService.delete(tokenKey);
        }
        redisService.delete(tokenKey);
        String userKey = RedisCacheKey.signUserKey(te.getToken());
        if (redisService.hasKey(userKey)) {
            redisService.delete(userKey);
        }
        redisService.delete(userKey);
        // db,设置令牌过期
        te.setUpdateUser(ue.getId());
src/main/resources/mapper/all/PermsMapper.xml
@@ -15,6 +15,20 @@
        order by d.id
    </select>
    <select id="selectResList" resultType="java.lang.Integer">
        select distinct d.id
        from lf.sys_user a
        inner join lf.sys_role_user b on a.id = b.userid
        inner join lf.sys_role_res c on b.roleid = c.roleid
        inner join lf.sys_res d on c.resid = d.id
        <where>
            <if test="uid != null">
                a.uid = #{uid}
            </if>
        </where>
        order by d.id
    </select>
    <select id="selectMenus" resultType="com.moon.server.entity.all.MenusAuthEntity">
        select distinct e.id,e.pid,e.cn_name,e.en_name,e.url,e.perms,e.type,e.css,e.icon,e.level,e.order_num,e.is_show
        from lf.sys_user a