From ccad1f7a9e0cf2b80f89c5442bfec1e774f23a55 Mon Sep 17 00:00:00 2001
From: 13693261870 <252740454@qq.com>
Date: 星期四, 24 八月 2023 11:05:14 +0800
Subject: [PATCH] 修改图层表的标识字段

---
 src/main/java/com/moon/server/controller/all/PermsController.java |   19 +++++++++
 src/main/java/com/moon/server/mapper/sys/LayerMapper.java         |   11 +++++
 src/main/java/com/moon/server/entity/sys/LayerEntity.java         |   10 +++++
 src/main/java/com/moon/server/service/sys/LayerService.java       |   20 +++++++++-
 src/main/java/com/moon/server/controller/sys/LayerController.java |    4 +-
 src/main/resources/mapper/sys/LayerMapper.xml                     |   39 +++++++++++++++----
 src/main/java/com/moon/server/entity/all/RedisCacheKey.java       |    7 +++
 7 files changed, 97 insertions(+), 13 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 7a5780b..3ec3983 100644
--- a/src/main/java/com/moon/server/controller/all/PermsController.java
+++ b/src/main/java/com/moon/server/controller/all/PermsController.java
@@ -60,6 +60,25 @@
     }
 
     @SysLog()
+    @ApiOperation(value = "鏌ヨ褰撳墠鐢ㄦ埛鐨勬姇褰卞浘灞傛巿鏉�")
+    @GetMapping(value = "/selectProjectLayers")
+    public ResponseMsg<Object> selectProjectLayers(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.selectProjectLayers(uid);
+
+            return success(null == rs ? 0 : rs.size(), rs);
+        } catch (Exception ex) {
+            return fail(ex, null);
+        }
+    }
+
+    @SysLog()
     @ApiOperation(value = "鏌ヨ褰撳墠鐢ㄦ埛鐨勮祫婧愭巿鏉�")
     @GetMapping(value = "/selectRes")
     public ResponseMsg<Object> selectRes(HttpServletRequest req) {
diff --git a/src/main/java/com/moon/server/controller/sys/LayerController.java b/src/main/java/com/moon/server/controller/sys/LayerController.java
index 58a7525..eda4d8b 100644
--- a/src/main/java/com/moon/server/controller/sys/LayerController.java
+++ b/src/main/java/com/moon/server/controller/sys/LayerController.java
@@ -65,9 +65,9 @@
     @SysLog()
     @ApiOperation(value = "鏌ヨ鎵�鏈�")
     @GetMapping(value = "/selectAll")
-    public ResponseMsg<List<LayerEntity>> selectAll() {
+    public ResponseMsg<List<LayerEntity>> selectAll(Integer flag) {
         try {
-            List<LayerEntity> list = layerService.selectAll();
+            List<LayerEntity> list = layerService.selectAll(flag);
 
             return success(list);
         } catch (Exception ex) {
diff --git a/src/main/java/com/moon/server/entity/all/RedisCacheKey.java b/src/main/java/com/moon/server/entity/all/RedisCacheKey.java
index f270c79..af80a99 100644
--- a/src/main/java/com/moon/server/entity/all/RedisCacheKey.java
+++ b/src/main/java/com/moon/server/entity/all/RedisCacheKey.java
@@ -48,6 +48,13 @@
     }
 
     /**
+     * 鎶曞奖鍥惧眰鎺堟潈閿�
+     */
+    public static String permsProjectLayerKey(String key) {
+        return "perms:projectLayer:" + key;
+    }
+
+    /**
      * 鑿滃崟鎺堟潈閿�
      */
     public static String permsMenusKey(String key) {
diff --git a/src/main/java/com/moon/server/entity/sys/LayerEntity.java b/src/main/java/com/moon/server/entity/sys/LayerEntity.java
index 0fdfb5a..6c8d46d 100644
--- a/src/main/java/com/moon/server/entity/sys/LayerEntity.java
+++ b/src/main/java/com/moon/server/entity/sys/LayerEntity.java
@@ -56,6 +56,8 @@
 
     private int category;
 
+    private int flag;
+
     public LayerEntity() {
     }
 
@@ -242,4 +244,12 @@
     public void setCategory(int category) {
         this.category = category;
     }
+
+    public int getFlag() {
+        return flag;
+    }
+
+    public void setFlag(int flag) {
+        this.flag = flag;
+    }
 }
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 477fb7e..6305198 100644
--- a/src/main/java/com/moon/server/mapper/sys/LayerMapper.java
+++ b/src/main/java/com/moon/server/mapper/sys/LayerMapper.java
@@ -22,6 +22,14 @@
     public List<LayerEntity> selectLayers(String uid);
 
     /**
+     * 鏍规嵁鐢ㄦ埛ID鏌ヨ鍥炬姇褰卞眰鍒楄〃
+     *
+     * @param uid 鐢ㄦ埛ID
+     * @return 鎶曞奖鍥惧眰鍒楄〃
+     */
+    public List<LayerEntity> selectProjectLayers(String uid);
+
+    /**
      * 鏌ヨ璁板綍鏁�
      *
      * @param name 鍚嶇О
@@ -42,9 +50,10 @@
     /**
      * 鏌ヨ鎵�鏈�
      *
+     * @param flag 鍥惧眰鏍囪瘑
      * @return
      */
-    public List<LayerEntity> selectAll();
+    public List<LayerEntity> selectAll(Integer flag);
 
     /**
      * 鏍规嵁ID鏌ヨ
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 bdd0441..640c95f 100644
--- a/src/main/java/com/moon/server/service/sys/LayerService.java
+++ b/src/main/java/com/moon/server/service/sys/LayerService.java
@@ -43,6 +43,22 @@
     }
 
     @Override
+    public List<LayerEntity> selectProjectLayers(String uid) {
+        String key = RedisCacheKey.permsProjectLayerKey(uid);
+        Object obj = redisService.get(key);
+        if (obj instanceof List<?>) {
+            return (List<LayerEntity>) obj;
+        }
+
+        List<LayerEntity> list = layerMapper.selectProjectLayers(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);
 
@@ -57,8 +73,8 @@
     }
 
     @Override
-    public List<LayerEntity> selectAll() {
-        return layerMapper.selectAll();
+    public List<LayerEntity> selectAll(Integer flag) {
+        return layerMapper.selectAll(flag);
     }
 
     @Override
diff --git a/src/main/resources/mapper/sys/LayerMapper.xml b/src/main/resources/mapper/sys/LayerMapper.xml
index 260be70..27b8849 100644
--- a/src/main/resources/mapper/sys/LayerMapper.xml
+++ b/src/main/resources/mapper/sys/LayerMapper.xml
@@ -9,7 +9,23 @@
             inner join lf.sys_layer d on c.layerid = d.id
             left join lf.sys_res e on d.resid = e.id and e.status = 2
         <where>
-            d.status between 1 and 2
+            d.status = 1 and d.flag = 0
+            <if test="uid != null">
+                and a.uid = #{uid}
+            </if>
+        </where>
+        order by d.id;
+    </select>
+
+    <select id="selectProjectLayers" resultType="com.moon.server.entity.sys.LayerEntity">
+        select distinct d.*, e.proxy
+        from lf.sys_user a
+        inner join lf.sys_role_user b on a.id = b.userid
+        inner join lf.sys_role_layer c on b.roleid = c.roleid
+        inner join lf.sys_layer d on c.layerid = d.id
+        left join lf.sys_res e on d.resid = e.id and e.status = 2
+        <where>
+            d.status = 1 and d.flag = 1
             <if test="uid != null">
                 and a.uid = #{uid}
             </if>
@@ -38,7 +54,14 @@
     </select>
 
     <select id="selectAll" resultType="com.moon.server.entity.sys.LayerEntity">
-        select * from lf.sys_layer order by id desc;
+        select *
+        from lf.sys_layer
+        <where>
+            <if test="flag != null">
+                flag = #{flag}
+            </if>
+        </where>
+        order by id desc;
     </select>
 
     <select id="selectById" resultType="com.moon.server.entity.sys.LayerEntity">
@@ -47,17 +70,17 @@
 
     <insert id="insert" parameterType="com.moon.server.entity.sys.LayerEntity">
         insert into lf.sys_layer
-        (pid,cn_name,en_name,url,is_layer,is_show,icon,level,order_num,status,create_user,create_time,bak,elev,resid,type,data,tab,category)
+        (pid,cn_name,en_name,url,is_layer,is_show,icon,level,order_num,status,create_user,create_time,bak,elev,resid,type,data,tab,category,flag)
         values
-        (#{pid},#{cnName},#{enName},#{url},#{isLayer},#{isShow},#{icon},#{level},#{orderNum},#{status},#{createUser},now(),#{bak},#{elev},#{resid},#{type},#{data},#{tab},#{category})
+        (#{pid},#{cnName},#{enName},#{url},#{isLayer},#{isShow},#{icon},#{level},#{orderNum},#{status},#{createUser},now(),#{bak},#{elev},#{resid},#{type},#{data},#{tab},#{category},#{flag})
     </insert>
 
     <insert id="inserts">
         insert into lf.sys_layer
-        (pid,cn_name,en_name,url,is_layer,is_show,icon,level,order_num,status,create_user,create_time,bak,elev,resid,type,data,tab,category)
+        (pid,cn_name,en_name,url,is_layer,is_show,icon,level,order_num,status,create_user,create_time,bak,elev,resid,type,data,tab,category,flag)
         values
         <foreach collection="list" item="item" index="index" separator=",">
-            (#{item.pid},#{item.cnName},#{item.enName},#{item.url},#{item.isLayer},#{item.isShow},#{item.icon},#{item.level},#{item.orderNum},#{item.status},#{item.createUser},now(),#{item.bak},#{item.elev},#{item.resid},#{item.type},#{item.data},#{item.tab},#{item.category})
+            (#{item.pid},#{item.cnName},#{item.enName},#{item.url},#{item.isLayer},#{item.isShow},#{item.icon},#{item.level},#{item.orderNum},#{item.status},#{item.createUser},now(),#{item.bak},#{item.elev},#{item.resid},#{item.type},#{item.data},#{item.tab},#{item.category},#{item.flag})
         </foreach>
     </insert>
 
@@ -74,14 +97,14 @@
 
     <update id="update">
         update lf.sys_layer
-        set pid=#{pid},cn_name=#{cnName},en_name=#{enName},url=#{url},is_layer=#{isLayer},is_show=#{isShow},icon=#{icon},level=#{level},order_num=#{orderNum},status=#{status},update_user=#{updateUser},update_time=now(),bak=#{bak},elev=#{elev},resid=#{resid},type=#{type},data=#{data},tab=#{tab},category=#{category}
+        set pid=#{pid},cn_name=#{cnName},en_name=#{enName},url=#{url},is_layer=#{isLayer},is_show=#{isShow},icon=#{icon},level=#{level},order_num=#{orderNum},status=#{status},update_user=#{updateUser},update_time=now(),bak=#{bak},elev=#{elev},resid=#{resid},type=#{type},data=#{data},tab=#{tab},category=#{category},flag=#{flag}
         where id=#{id}
     </update>
 
     <update id="updates">
         <foreach collection="list" item="item" index="index" separator=";">
             update lf.sys_layer
-            set pid=#{item.pid},cn_name=#{item.cnName},en_name=#{item.enName},url=#{item.url},is_layer=#{item.isLayer},is_show=#{item.isShow},icon=#{item.icon},level=#{item.level},order_num=#{item.orderNum},status=#{item.status},update_user=#{item.updateUser},update_time=now(),bak=#{item.bak},elev=#{item.elev},resid=#{item.resid},type=#{item.type},data=#{item.data},tab=#{item.tab},category=#{item.category}
+            set pid=#{item.pid},cn_name=#{item.cnName},en_name=#{item.enName},url=#{item.url},is_layer=#{item.isLayer},is_show=#{item.isShow},icon=#{item.icon},level=#{item.level},order_num=#{item.orderNum},status=#{item.status},update_user=#{item.updateUser},update_time=now(),bak=#{item.bak},elev=#{item.elev},resid=#{item.resid},type=#{item.type},data=#{item.data},tab=#{item.tab},category=#{item.category},flag=#{item.flag}
             where id = #{item.id}
         </foreach>
     </update>

--
Gitblit v1.9.3