From c7cd444e95f0193f363576340bbe2fe0b82d0fb0 Mon Sep 17 00:00:00 2001 From: 13693261870 <252740454@qq.com> Date: 星期三, 09 八月 2023 10:36:45 +0800 Subject: [PATCH] 1 --- src/main/java/com/moon/server/controller/all/PermsController.java | 38 ++++++++++--------- src/main/java/com/moon/server/entity/sys/RoleLayerEntity.java | 18 ++++----- src/main/java/com/moon/server/mapper/sys/LayerMapper.java | 8 ++++ src/main/java/com/moon/server/service/sys/LayerService.java | 27 +++++++++++++ src/main/resources/mapper/sys/LayerMapper.xml | 15 +++++++ src/main/java/com/moon/server/controller/sys/RoleLayerController.java | 2 src/main/java/com/moon/server/service/all/PermsService.java | 2 src/main/resources/mapper/sys/RoleLayerMapper.xml | 2 8 files changed, 80 insertions(+), 32 deletions(-) diff --git a/src/main/java/com/moon/server/controller/all/PermsController.java b/src/main/java/com/moon/server/controller/all/PermsController.java index 16db99a..8279d9e 100644 --- a/src/main/java/com/moon/server/controller/all/PermsController.java +++ b/src/main/java/com/moon/server/controller/all/PermsController.java @@ -1,6 +1,7 @@ package com.moon.server.controller.all; import com.moon.server.annotation.SysLog; +import com.moon.server.entity.sys.LayerEntity; import com.moon.server.entity.sys.MenuEntity; import com.moon.server.entity.sys.ResEntity; import com.moon.server.entity.sys.UserEntity; @@ -38,6 +39,25 @@ @Autowired LayerService layerService; + + @SysLog() + @ApiOperation(value = "鏌ヨ褰撳墠鐢ㄦ埛鐨勮祫婧愭巿鏉�") + @GetMapping(value = "/selectLayers") + public ResponseMsg<Object> selectLayers(HttpServletRequest req) { + try { + UserEntity ue = tokenService.getCurrentUser(req); + if (ue == null) { + return fail("鐢ㄦ埛鏈櫥褰�", null); + } + + String uid = StaticData.ADMIN.equals(ue.getUid()) ? null : ue.getUid(); + List<LayerEntity> rs = layerService.selectLayers(uid); + + return success(rs); + } catch (Exception ex) { + return fail(ex, null); + } + } @SysLog() @ApiOperation(value = "鏌ヨ褰撳墠鐢ㄦ埛鐨勮祫婧愭巿鏉�") @@ -180,22 +200,4 @@ return fail(ex, null); } } - - /*@SysLog() - @ApiOperation(value = "鏌ヨ鎵�鏈夊浘灞�") - @GetMapping(value = "/selectLayers") - public ResponseMsg<Object> selectLayers(HttpServletRequest req) { - try { - UserEntity ue = tokenService.getCurrentUser(req); - if (ue == null) { - return fail("鐢ㄦ埛鏈櫥褰�", null); - } - - List<LayerEntity> list = layerService.selectAll(); - - return success(list); - } catch (Exception ex) { - return fail(ex, null); - } - }*/ } diff --git a/src/main/java/com/moon/server/controller/sys/RoleLayerController.java b/src/main/java/com/moon/server/controller/sys/RoleLayerController.java index 6815a43..72fb16e 100644 --- a/src/main/java/com/moon/server/controller/sys/RoleLayerController.java +++ b/src/main/java/com/moon/server/controller/sys/RoleLayerController.java @@ -37,7 +37,7 @@ PermsService permsService; @SysLog() - @ApiOperation(value = "鏍规嵁瑙掕壊ID鏌ヨ璧勬簮") + @ApiOperation(value = "鏍规嵁瑙掕壊ID鏌ヨ鍥惧眰") @ApiImplicitParams({ @ApiImplicitParam(name = "roleid", value = "瑙掕壊ID", dataType = "Integer", paramType = "query", example = "1") }) diff --git a/src/main/java/com/moon/server/entity/sys/RoleLayerEntity.java b/src/main/java/com/moon/server/entity/sys/RoleLayerEntity.java index 7e0bac8..be61639 100644 --- a/src/main/java/com/moon/server/entity/sys/RoleLayerEntity.java +++ b/src/main/java/com/moon/server/entity/sys/RoleLayerEntity.java @@ -1,7 +1,5 @@ package com.moon.server.entity.sys; -import io.swagger.models.auth.In; - import java.io.Serializable; import java.sql.Timestamp; @@ -12,7 +10,7 @@ public class RoleLayerEntity implements Serializable { private static final long serialVersionUID = -773018130926889472L; - private int id; + private Integer id; private int roleid; @@ -30,7 +28,7 @@ private String enName; - private Integer type; + private Integer isLayer; private Integer pid; @@ -41,11 +39,11 @@ public RoleLayerEntity() { } - public int getId() { + public Integer getId() { return id; } - public void setId(int id) { + public void setId(Integer id) { this.id = id; } @@ -113,12 +111,12 @@ this.enName = enName; } - public Integer getType() { - return type; + public Integer getIsLayer() { + return isLayer; } - public void setType(Integer type) { - this.type = type; + public void setIsLayer(Integer isLayer) { + this.isLayer = isLayer; } public Integer getPid() { diff --git a/src/main/java/com/moon/server/mapper/sys/LayerMapper.java b/src/main/java/com/moon/server/mapper/sys/LayerMapper.java index 1aa15b6..477fb7e 100644 --- a/src/main/java/com/moon/server/mapper/sys/LayerMapper.java +++ b/src/main/java/com/moon/server/mapper/sys/LayerMapper.java @@ -14,6 +14,14 @@ @Repository public interface LayerMapper { /** + * 鏍规嵁鐢ㄦ埛ID鏌ヨ鍥惧眰鍒楄〃 + * + * @param uid 鐢ㄦ埛ID + * @return 鍥惧眰鍒楄〃 + */ + public List<LayerEntity> selectLayers(String uid); + + /** * 鏌ヨ璁板綍鏁� * * @param name 鍚嶇О diff --git a/src/main/java/com/moon/server/service/all/PermsService.java b/src/main/java/com/moon/server/service/all/PermsService.java index 5b0241e..a626b74 100644 --- a/src/main/java/com/moon/server/service/all/PermsService.java +++ b/src/main/java/com/moon/server/service/all/PermsService.java @@ -111,7 +111,7 @@ } /** - * 娓呴櫎鏉冮檺缂撳瓨 + * 娓呴櫎鎺堟潈缂撳瓨 */ public void clearPermsCache() { redisService.clearKeys(RedisCacheKey.permsRootKey()); diff --git a/src/main/java/com/moon/server/service/sys/LayerService.java b/src/main/java/com/moon/server/service/sys/LayerService.java index cd502b7..bdd0441 100644 --- a/src/main/java/com/moon/server/service/sys/LayerService.java +++ b/src/main/java/com/moon/server/service/sys/LayerService.java @@ -1,12 +1,18 @@ package com.moon.server.service.sys; +import com.moon.server.entity.all.RedisCacheKey; +import com.moon.server.entity.all.SettingData; import com.moon.server.entity.sys.LayerEntity; +import com.moon.server.entity.sys.ResEntity; import com.moon.server.helper.StringHelper; import com.moon.server.mapper.sys.LayerMapper; +import com.moon.server.service.all.RedisService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import javax.annotation.Resource; import java.util.List; +import java.util.concurrent.TimeUnit; /** * 鍥惧眰 @@ -14,9 +20,28 @@ */ @Service public class LayerService implements LayerMapper { - @Autowired + @Resource LayerMapper layerMapper; + @Resource + RedisService redisService; + + @Override + public List<LayerEntity> selectLayers(String uid) { + String key = RedisCacheKey.permsLayerKey(uid); + Object obj = redisService.get(key); + if (obj instanceof List<?>) { + return (List<LayerEntity>) obj; + } + + List<LayerEntity> list = layerMapper.selectLayers(uid); + if (list != null && list.size() > 0) { + redisService.put(key, list, SettingData.CACHE_EXPIRE, TimeUnit.MINUTES); + } + + return list; + } + @Override public Integer selectCount(String name) { name = StringHelper.getLikeUpperStr(name); diff --git a/src/main/resources/mapper/sys/LayerMapper.xml b/src/main/resources/mapper/sys/LayerMapper.xml index 24aff44..bcf5b4b 100644 --- a/src/main/resources/mapper/sys/LayerMapper.xml +++ b/src/main/resources/mapper/sys/LayerMapper.xml @@ -1,6 +1,21 @@ <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.moon.server.mapper.sys.LayerMapper"> + <select id="selectLayers" resultType="com.moon.server.entity.sys.LayerEntity"> + select distinct d.* + 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> + d.status = 1 + <if test="uid != null"> + and a.uid = #{uid} + </if> + </where> + order by d.id; + </select> + <select id="selectCount" resultType="java.lang.Integer"> select count(*) from lf.sys_layer <where> diff --git a/src/main/resources/mapper/sys/RoleLayerMapper.xml b/src/main/resources/mapper/sys/RoleLayerMapper.xml index ed1f14e..d96ee50 100644 --- a/src/main/resources/mapper/sys/RoleLayerMapper.xml +++ b/src/main/resources/mapper/sys/RoleLayerMapper.xml @@ -3,7 +3,7 @@ <mapper namespace="com.moon.server.mapper.sys.RoleLayerMapper"> <select id="selectLayersByRole" resultType="com.moon.server.entity.sys.RoleLayerEntity"> with rs as (select id, layerid from lf.sys_role_layer where roleid = #{roleid}) - select (select id from rs b where b.layerid = a.id) "id", a.id "layerid", a.cn_name, a.en_name, a.type, a.pid, a.level, a.order_num + select (select id from rs b where b.layerid = a.id) "id", a.id "layerid", a.cn_name, a.en_name, a.is_layer, a.pid, a.level, a.order_num from lf.sys_layer a order by a.id; </select> -- Gitblit v1.9.3