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