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