From f0d44c4bf251611e80cbb736b85e7768ad88eb4a Mon Sep 17 00:00:00 2001
From: puhanshu <a9236326>
Date: 星期六, 18 九月 2021 11:34:16 +0800
Subject: [PATCH] 修复议事投票小程序bug

---
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActDiscussCommentDAO.java           |   56 +++++++++++++++------------
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActDiscussCommentDOMapper.xml                               |   24 ++++++++++++
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActDiscussServiceImpl.java |   19 +++++++++
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActDiscussDOMapper.xml                                      |    2 
 4 files changed, 74 insertions(+), 27 deletions(-)

diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActDiscussCommentDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActDiscussCommentDAO.java
index b9e917a..729aa49 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActDiscussCommentDAO.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActDiscussCommentDAO.java
@@ -31,31 +31,37 @@
 //            " </if> " +
 //            " </where>" +
 //            "</script>")
-    @Select("" +
-            "SELECT\n" +
-            "u.`name` userName,\n" +
-            "IFNULL(u.`nick_name`,'社区管理员') as userNickName,\n" +
-            "u.`image_url`,\n" +
-            "u.phone,\n" +
-            "c.`comment`,\n" +
-            "c.`parent_id`,\n" +
-            "c.`is_author`,\n" +
-            "c.`is_topping`,\n" +
-            "COUNT( cu.id ) num,\n" +
-            "c.create_at,\n" +
-            "c.id \n" +
-            "FROM\n" +
-            "com_act_discuss_comment c\n" +
-            "JOIN sys_user u ON c.user_id = u.user_id\n" +
-            "LEFT JOIN com_act_discuss_comment_user cu on c.id=cu.disscuss_comment_id\n" +
-            "WHERE\n" +
-            "FIND_IN_SET(\n" +
-            "\tc.id,\n" +
-            "getChildren ( #{id} )) and c.parent_id !=0 \n" +
-            "GROUP BY c.id\n" +
-            "ORDER BY\n" +
-            "create_at desc")
-    List<ComActDiscussCommentVO> selectChilds(Long id);
+//    @Select("" +
+//            "SELECT\n" +
+//            "u.`name` userName,\n" +
+//            "IFNULL(u.`nick_name`,'社区管理员') as userNickName,\n" +
+//            "u.`image_url`,\n" +
+//            "u.phone,\n" +
+//            "c.`comment`,\n" +
+//            "c.`parent_id`,\n" +
+//            "c.`is_author`,\n" +
+//            "c.`is_topping`,\n" +
+//            "COUNT( cu.id ) num,\n" +
+//            "c.create_at,\n" +
+//            "c.id \n" +
+//            "FROM\n" +
+//            "com_act_discuss_comment c\n" +
+//            "JOIN sys_user u ON c.user_id = u.user_id\n" +
+//            "LEFT JOIN com_act_discuss_comment_user cu on c.id=cu.disscuss_comment_id\n" +
+//            "WHERE\n" +
+//            "FIND_IN_SET(\n" +
+//            "\tc.id,\n" +
+//            "getChildren ( #{id} )) and c.parent_id !=0 \n" +
+//            "GROUP BY c.id\n" +
+//            "ORDER BY\n" +
+//            "create_at desc")
+
+    /**
+     * 获取子评论
+     * @param parentId
+     * @return
+     */
+    List<ComActDiscussCommentVO> selectChilds(@Param("parentId") Long parentId);
 
     /**
      * 该评论下所有回复内容
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActDiscussServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActDiscussServiceImpl.java
index 537a391..2dbcd46 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActDiscussServiceImpl.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActDiscussServiceImpl.java
@@ -597,9 +597,12 @@
         IPage<ComActDiscussVO> iPage = comActDiscussDAO.pageDiscussApplets(page, pageComActDiscussDTO);
         List<ComActDiscussVO> records = iPage.getRecords();
         if (!ObjectUtils.isEmpty(records)) {
+            List<String> viewNumKeys = new ArrayList<>();
             records.forEach(comActDiscussVO -> {
                 Integer type = comActDiscussVO.getType();
                 Long id = comActDiscussVO.getId();
+                String viewNumKey = String.join("_", DISCUSS_VIEW_NUM_PREFIX, id.toString());
+                viewNumKeys.add(viewNumKey);
                 if (type.equals(2)) {
                     List<ComActDiscussOptionDO> comActDiscussOptionDOS = comActDiscussOptionDAO.selectList(
                             new QueryWrapper<ComActDiscussOptionDO>().lambda().eq(ComActDiscussOptionDO::getDiscussId, id));
@@ -663,6 +666,17 @@
                     comActDiscussVO.setHaveVote(haveVote > 0 ? 1 : 0);
                 }
             });
+            ValueOperations opsForValue = stringRedisTemplate.opsForValue();
+            List<String> viewNumList = opsForValue.multiGet(viewNumKeys);
+            for (ComActDiscussVO discussVO : records) {
+                try {
+                    discussVO.setViewsNum(Integer.parseInt(viewNumList.get(0)));
+                    viewNumList.remove(0);
+                } catch (IndexOutOfBoundsException e) {
+                    //数据存在异常了,跳过,继续执行正确的
+                    continue;
+                }
+            }
         }
         return R.ok(iPage);
     }
@@ -889,7 +903,10 @@
             comActDiscussVO.setHaveSign(comActDiscussVO1.getHaveSign());
             comActDiscussVO.setHaveVote(comActDiscussVO1.getHaveVote());
         }
-
+        String viewNumKey = String.join("_", DISCUSS_VIEW_NUM_PREFIX, id.toString());
+        ValueOperations opsForValue = stringRedisTemplate.opsForValue();
+        int viewNum = Integer.parseInt((String) opsForValue.get(viewNumKey));
+        comActDiscussVO.setViewsNum(viewNum);
         return R.ok(comActDiscussVO);
     }
 
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActDiscussCommentDOMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActDiscussCommentDOMapper.xml
index edad65c..d511f6c 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActDiscussCommentDOMapper.xml
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActDiscussCommentDOMapper.xml
@@ -35,5 +35,29 @@
             where cadc.parent_id = #{id} and cadc.is_del = 2
         order by cadc.create_at desc
     </select>
+    <select id="selectChilds" resultType="com.panzhihua.common.model.vos.community.ComActDiscussCommentVO">
+        SELECT
+            u.`name` userName,
+            IFNULL(u.`nick_name`,'社区管理员') AS userNickName,
+            u.`image_url`,
+            u.phone,
+            c.`comment`,
+            c.`parent_id`,
+            c.`is_author`,
+            c.`is_topping`,
+            COUNT( cu.id ) num,
+            c.create_at,
+            c.id
+            FROM
+            com_act_discuss_comment c
+            JOIN sys_user u ON c.user_id = u.user_id
+            LEFT JOIN com_act_discuss_comment_user cu ON c.id=cu.disscuss_comment_id
+            WHERE
+            FIND_IN_SET(
+            c.id,
+            getChildren ( #{parentId} )) AND c.parent_id != 0 AND c.is_del = 2
+            GROUP BY c.id
+            ORDER BY create_at desc
+    </select>
 
 </mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActDiscussDOMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActDiscussDOMapper.xml
index 4afca94..289e91b 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActDiscussDOMapper.xml
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActDiscussDOMapper.xml
@@ -159,7 +159,7 @@
     <select id="pageDiscussApplets" resultType="com.panzhihua.common.model.vos.community.ComActDiscussVO">
         SELECT t.* FROM (
             SELECT d.id, d.vote_title, if(d.address IS NULL OR d.address='null',a.name,d.address )address, d.photo_pah,
-                d.`discuss_subject`, d.type, d.end_time, d.status, d.views_num, d.join_num, d.fabulous_num AS signNum,
+                d.`discuss_subject`, d.type, d.end_time, d.status, d.join_num, d.fabulous_num AS signNum,
                 d.comment_num AS commentNum, d.release_at, d.img_width, d.img_height, d.is_repeat, d.count, u.type AS userType, if(u.type=1,u.name,a.name) userName,
                 if(u.type=1,u.nick_name,a.name) userNickName,
                 <if test='pageComActDiscussDTO.loginUserId != null '>

--
Gitblit v1.7.1