From 02f18587bd8860b305e2c688e20465be166bb48c Mon Sep 17 00:00:00 2001 From: huanghongfa <huanghongfa123456> Date: 星期四, 22 七月 2021 15:14:03 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/test' into test --- springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActDiscussDAO.java | 241 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 240 insertions(+), 1 deletions(-) diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActDiscussDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActDiscussDAO.java index b8358d1..403aa58 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActDiscussDAO.java +++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActDiscussDAO.java @@ -1,10 +1,25 @@ package com.panzhihua.service_community.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.panzhihua.common.model.dtos.community.PageComActDiscussCommentDTO; +import com.panzhihua.common.model.dtos.community.PageComActDiscussDTO; +import com.panzhihua.common.model.dtos.community.bigscreen.work.ScreenDiscussListDTO; import com.panzhihua.common.model.vos.LoginUserInfoVO; +import com.panzhihua.common.model.vos.community.ComActDiscussCommentVO; +import com.panzhihua.common.model.vos.community.ComActDiscussOptionVO; +import com.panzhihua.common.model.vos.community.ComActDiscussVO; +import com.panzhihua.common.model.vos.community.ComActVO; +import com.panzhihua.common.model.vos.community.screen.work.DiscussListVO; +import com.panzhihua.common.model.vos.screen.CarouselInfoVO; import com.panzhihua.service_community.model.dos.ComActDiscussDO; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; + +import java.util.List; +import java.util.Map; /** * @program: springcloud_k8s_panzhihuazhihuishequ @@ -24,6 +39,230 @@ // " </if> " + // " </where>" + // "</script>") - @Select("select type,name from sys_user where user_id=#{userId}") + @Select("select type,name,phone,image_url,nick_name from sys_user where user_id=#{userId}") LoginUserInfoVO selectUserByUserId(Long userId); + @Select("<script> " + + "select t.* from ("+ + "SELECT " + + "d.id, " + + "d.`discuss_subject`, " + + "d.type, " + + "COUNT( DISTINCT c.id ) commentNum, " + + "u.name userName, " + + "u.nick_name userNickName, " + + "d.create_at " + + "FROM " + + "com_act_discuss d " + + "JOIN sys_user u ON d.user_id = u.user_id " + + "LEFT JOIN com_act_discuss_comment c ON d.id = c.discuss_id " + + " where d.community_id=#{pageComActDiscussDTO.communityId}" + + "<if test='pageComActDiscussDTO.subject != null and pageComActDiscussDTO.subject.trim() != ""'>" + + " and d.`discuss_subject` LIKE concat( #{pageComActDiscussDTO.subject}, '%' ) " + + " </if> " + + "<if test='pageComActDiscussDTO.begin != null '>" + + "AND d.create_at BETWEEN #{pageComActDiscussDTO.begin} " + + "AND #{pageComActDiscussDTO.end} " + + " </if> " + + "GROUP BY " + + "d.id" + + ")t order by t.create_at desc "+ + "</script>") + IPage<ComActDiscussVO> pageDiscuss(Page page, @Param("pageComActDiscussDTO") PageComActDiscussDTO pageComActDiscussDTO); + + @Select("<script> " + + "select * from ("+ + "SELECT " + + "u.`name` userName, " + + "u.nick_name userNickName, " + + "u.phone, " + + "c.`comment`, " + + "c.`parent_id`, " + + "COUNT(DISTINCT 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 " + + "<if test='pageComActDiscussCommentDTO.name != null and pageComActDiscussCommentDTO.name.trim() != ""'>" + + "AND u.`name` LIKE concat( #{pageComActDiscussCommentDTO.name}, '%' ) " + + " </if> " + + "<if test='pageComActDiscussCommentDTO.account != null and pageComActDiscussCommentDTO.account.trim() != ""'>" + + "AND u.phone LIKE concat( #{pageComActDiscussCommentDTO.account}, '%' ) " + + " </if> " + + "LEFT JOIN com_act_discuss_comment_user cu ON c.id = cu.disscuss_comment_id " + + " where c.discuss_id=#{pageComActDiscussCommentDTO.id}" + + "<if test='pageComActDiscussCommentDTO.comment != null and pageComActDiscussCommentDTO.comment.trim() != ""'>" + + " and c.`comment` LIKE concat( '%', #{pageComActDiscussCommentDTO.comment" + + "}, '%' ) " + + " </if> " + + "GROUP BY " + + "c.id " + + ")t order by t.create_at desc"+ + "</script>") + IPage<ComActDiscussCommentVO> pageDiscussComment(Page page, @Param("pageComActDiscussCommentDTO")PageComActDiscussCommentDTO pageComActDiscussCommentDTO); + @Select("<script> " + + "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, " + + "u.type as userType, " + + "COUNT( DISTINCT c.id ) commentNum, " + + "COUNT( DISTINCT du.id ) signNum, " + + "if(u.type=1,u.name,a.name) userName, " + + "if(u.type=1,u.nick_name,a.name) userNickName, " + + "if(du.id is not null,1,0) haveSign, " + + "if(ou.id is not null,1,0) haveVote, " + + "u.image_url, " + + "d.create_at " + + "FROM " + + "com_act_discuss d " + + "JOIN sys_user u ON d.user_id = u.user_id " + + "JOIN com_act a ON d.community_id = a.community_id " + + "LEFT JOIN com_act_discuss_comment c ON d.id = c.discuss_id " + + "LEFT JOIN com_act_discuss_user du ON d.id = du.discuss_id " + + "LEFT JOIN com_act_discuss_option do ON d.id = do.discuss_id " + + "LEFT JOIN com_act_discuss_option_user ou on do.id=ou.discuss_option_id and ou.user_id=#{pageComActDiscussDTO.loginUserId} " + + " where d.community_id=#{pageComActDiscussDTO.communityId}" + + "<if test='pageComActDiscussDTO.subject != null and pageComActDiscussDTO.subject.trim() != ""'>" + + " and d.`discuss_subject` LIKE concat( #{pageComActDiscussDTO.subject}, '%' ) " + + " </if> " + + "<if test='pageComActDiscussDTO.userId != null and pageComActDiscussDTO.userId !=0 '>" + + " and d.`user_id` = #{pageComActDiscussDTO.userId} " + + " </if> " + + "<if test='pageComActDiscussDTO.begin != null '>" + + "AND d.create_at BETWEEN #{pageComActDiscussDTO.begin} " + + "AND #{pageComActDiscussDTO.end} " + + " </if> " + + "GROUP BY " + + "d.id" + + ")t order by t.create_at desc "+ + "</script>") + IPage<ComActDiscussVO> pageDiscussApplets(Page page, @Param("pageComActDiscussDTO")PageComActDiscussDTO pageComActDiscussDTO); + @Select("<script> " + + "select * from ("+ + "SELECT " + + "u.`name` userName, " + + "u.nick_name userNickName, " + + "u.`image_url`, " + + "u.phone, " + + "u.type as userType, " + + "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 " + + "JOIN com_act_discuss d ON c.discuss_id = d.id " + + "<if test='pageComActDiscussCommentDTO.name != null and pageComActDiscussCommentDTO.name.trim() != ""'>" + + "AND u.`name` LIKE concat( #{pageComActDiscussCommentDTO.name}, '%' ) " + + " </if> " + + "<if test='pageComActDiscussCommentDTO.account != null and pageComActDiscussCommentDTO.account.trim() != ""'>" + + "AND u.phone LIKE concat( #{pageComActDiscussCommentDTO.account}, '%' ) " + + " </if> " + + "LEFT JOIN com_act_discuss_comment_user cu ON c.id = cu.disscuss_comment_id " + + " where c.discuss_id=#{pageComActDiscussCommentDTO.id} and parent_id=0 " + + "<if test='pageComActDiscussCommentDTO.comment != null and pageComActDiscussCommentDTO.comment.trim() != ""'>" + + " and c.`comment` LIKE concat( '%', #{pageComActDiscussCommentDTO.comment" + + "}, '%' ) " + + " </if> " + + "GROUP BY " + + "c.id " + + ")t order by t.is_topping desc , t.create_at desc"+ + "</script>") + IPage<ComActDiscussCommentVO> pageDiscussCommentApplets(Page page, @Param("pageComActDiscussCommentDTO")PageComActDiscussCommentDTO pageComActDiscussCommentDTO); + + @Select("select name,address from com_act where community_id=#{communityId}") + ComActVO selectCommunity(Long communityId); + + @Select("SELECT " + + "if(du.id is not null,1,0)haveSign, " + + "if(ou.id is not null,1,0)haveVote " + + "FROM " + + "com_act_discuss d " + + "LEFT JOIN com_act_discuss_user du on d.id=du.discuss_id and du.`user_id`=#{loginUserId} " + + "LEFT JOIN com_act_discuss_option op on d.id=op.discuss_id " + + "LEFT JOIN com_act_discuss_option_user ou on op.id=ou.discuss_option_id and ou.user_id=#{loginUserId} " + + "WHERE " + + "d.id =#{id} " + + "GROUP BY d.id") + ComActDiscussVO selectHaveSignAndHaveVote(@Param("id") Long id, @Param("loginUserId")Long loginUserId); + + @Select(" SELECT COUNT(id) AS totalNum," + + "(SELECT COUNT(id) FROM com_act_discuss WHERE community_id = 2 AND create_at LIKE CONCAT('','%'))AS currentNum," + + "(SELECT COUNT(id) FROM com_act_discuss WHERE community_id = 2 AND TYPE = 1)AS imgNum," + + "(" + + "SELECT COUNT(DISTINCT(user_id)) FROM (" + + " SELECT c.user_id FROM com_act_discuss d INNER JOIN com_act_discuss_comment c ON d.id = c.discuss_id WHERE d.community_id = 2 AND d.type = 1 " + + " UNION ALL " + + " SELECT u.user_id FROM com_act_discuss d INNER JOIN com_act_discuss_comment c ON d.id = c.discuss_id INNER JOIN com_act_discuss_comment_user u ON c.id = u.disscuss_comment_id WHERE d.community_id = 2 AND d.type = 1 " + + "UNION ALL " + + " SELECT u.user_id FROM com_act_discuss d INNER JOIN com_act_discuss_option o ON d.id = o.discuss_id INNER JOIN com_act_discuss_option_user u ON o.id = u.discuss_option_id WHERE d.community_id = 2 AND d.type = 1 " + + " UNION ALL " + + " SELECT u.user_id FROM com_act_discuss d INNER JOIN com_act_discuss_user u ON d.id = u.discuss_id WHERE d.community_id = 2 AND d.type = 1 " + + ")d " + + ")AS commonPeopleNum," + + "(" + + "SELECT COUNT(DISTINCT(user_id)) FROM (" + + " SELECT c.user_id FROM com_act_discuss d INNER JOIN com_act_discuss_comment c ON d.id = c.discuss_id WHERE d.community_id = 2 AND d.type = 2 " + + " UNION ALL" + + " SELECT u.user_id FROM com_act_discuss d INNER JOIN com_act_discuss_comment c ON d.id = c.discuss_id INNER JOIN com_act_discuss_comment_user u ON c.id = u.disscuss_comment_id WHERE d.community_id = 2 AND d.type = 2 " + + "UNION ALL " + + " SELECT u.user_id FROM com_act_discuss d INNER JOIN com_act_discuss_option o ON d.id = o.discuss_id INNER JOIN com_act_discuss_option_user u ON o.id = u.discuss_option_id WHERE d.community_id = 2 AND d.type = 2 " + + " UNION ALL " + + " SELECT u.user_id FROM com_act_discuss d INNER JOIN com_act_discuss_user u ON d.id = u.discuss_id WHERE d.community_id = 2 AND d.type = 2 " + + ")d " + + ")AS volunteerPeopleNum " + + " FROM com_act_discuss") + Map<String, Long> countByCommunityId(@Param("communityId")Long communityId, @Param("date")String date); + + @Select(" SELECT id,discuss_subject AS content,IF(type = 1,'图文','投票') AS typeName FROM com_act_discuss WHERE community_id = #{communityId} ORDER BY create_at DESC LIMIT #{pageSize}") + List<CarouselInfoVO> screenDiscuss(@Param("communityId") Long communityId, @Param("pageSize")Integer pageSize); + + @Select("<script> " + + "SELECT " + + " cad.id, " + + " su.nick_name AS userName, " + + " su.image_url, " + + " cad.create_at, " + + " cad.type, " + + " cad.discuss_subject, " + + " cad.photo_pah " + + "FROM " + + " com_act_discuss AS cad " + + " LEFT JOIN sys_user AS su ON su.user_id = cad.user_id " + + " <where> "+ + "<if test='discussListDTO.communityId != null '>" + + " and cad.community_id = #{discussListDTO.communityId} " + + " </if> " + + "<if test='discussListDTO.startTime!=null and discussListDTO.startTime != ""'>" + + " AND DATE_FORMAT(cad.create_at,'%Y-%m-%d %H:%i:%s') <![CDATA[ >= ]]> #{discussListDTO.startTime} " + + " </if> " + + "<if test='discussListDTO.endTime!=null and discussListDTO.endTime != ""'>" + + " AND DATE_FORMAT(cad.create_at,'%Y-%m-%d %H:%i:%s') <![CDATA[ <= ]]> #{discussListDTO.endTime} " + + " </if> " + + "<if test='discussListDTO.type!=null'>" + + " AND cad.type = #{discussListDTO.type} " + + " </if> " + + " </where> "+ + "ORDER BY " + + " cad.create_at DESC " + + " </script>") + IPage<DiscussListVO> getScreenDiscussList(Page page, @Param("discussListDTO") ScreenDiscussListDTO discussListDTO); + + @Select("SELECT id, discuss_id, create_at, option_content" + + ",( SELECT count( id ) FROM com_act_discuss_option_user WHERE discuss_option_id = c.id ) AS num " + + " FROM " + + " com_act_discuss_option AS c " + + " WHERE c.discuss_id = #{discussId}" + + " ORDER BY " + + " num DESC") + List<ComActDiscussOptionVO> getScreenDiscussOptionList(@Param("discussId") Long discussId); } -- Gitblit v1.7.1