liujie
2025-06-09 70d2a5d0f9c6951b2d4cac954041ed73582ff7eb
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActDiscussDAO.java
@@ -4,6 +4,9 @@
import java.util.List;
import java.util.Map;
import com.panzhihua.common.model.dtos.PageBaseDTO;
import com.panzhihua.common.model.vos.community.StatisticsCommVO;
import com.panzhihua.common.model.vos.community.bigscreen.BigScreenCourtyardStatisticsInfo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
@@ -48,7 +51,7 @@
//        + "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}"
//        + " where d.community_id = ${pageComActDiscussDTO.communityId}"
//        + "<if test='pageComActDiscussDTO.subject != null and pageComActDiscussDTO.subject.trim() != &quot;&quot;'>"
//        + " and d.`discuss_subject` LIKE concat( #{pageComActDiscussDTO.subject}, '%' )  " + " </if> "
//        + "<if test='pageComActDiscussDTO.begin != null '>" + "AND d.create_at BETWEEN #{pageComActDiscussDTO.begin}  "
@@ -56,6 +59,10 @@
//        + "</script>")
    IPage<ComActDiscussVO> pageDiscuss(Page page,
        @Param("pageComActDiscussDTO") PageComActDiscussDTO pageComActDiscussDTO);
    Integer getCommentNum(@Param("id") String id);
    IPage<ComActDiscussVO> pageDiscussAdmin(Page page,
                                       @Param("pageComActDiscussDTO") PageComActDiscussDTO pageComActDiscussDTO);
@@ -106,7 +113,7 @@
//        + "LEFT JOIN com_act_discuss_user du ON d.id = du.discuss_id  "
//        + "<if test='pageComActDiscussDTO.loginUserId != null '>"
//        + "LEFT JOIN com_act_discuss_option_user ou on do.id=ou.discuss_option_id and ou.user_id=#{pageComActDiscussDTO.loginUserId} "
//        + " </if> " + " where d.community_id=#{pageComActDiscussDTO.communityId}" + " and d.is_del = 2"
//        + " </if> " + " where d.community_id = ${pageComActDiscussDTO.communityId}" + " and d.is_del = 2"
//        + "<if test='pageComActDiscussDTO.type != null '>"
//        + " and d.`type` = #{pageComActDiscussDTO.type}  " + " </if> "
//        + "<if test='pageComActDiscussDTO.subject != null and pageComActDiscussDTO.subject.trim() != &quot;&quot;'>"
@@ -141,7 +148,7 @@
    IPage<ComActDiscussCommentVO> pageDiscussCommentApplets(Page page,
        @Param("pageComActDiscussCommentDTO") PageComActDiscussCommentDTO pageComActDiscussCommentDTO);
    @Select("select name,address from com_act where community_id=#{communityId}")
    @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 "
@@ -152,26 +159,16 @@
        + "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 = #{communityId} AND create_at between date_sub(curdate() - day(curdate()) +1,interval 1 month) and now())AS currentNum,"
        + "(SELECT COUNT(id)  FROM com_act_discuss WHERE community_id = #{communityId} AND TYPE = 1)AS imgNum," + "("
        + "SELECT " + " count(distinct cadc.user_id) " + "FROM " + " com_act_discuss_comment AS cadc "
        + " LEFT JOIN com_act_discuss AS cad ON cad.id = cadc.discuss_id "
        + " where cad.type = 1 and cad.community_id = #{communityId} " + ")AS imgPeopleNum," + "("
        + "select count(user_id) from ( " + "SELECT " + " distinct cadc.user_id " + "FROM "
        + " com_act_discuss_comment AS cadc " + " LEFT JOIN com_act_discuss AS cad ON cad.id = cadc.discuss_id "
        + " where cad.type = 2 and cad.community_id = #{communityId} " + " union all "
        + " SELECT DISTINCT cadou.user_id  FROM com_act_discuss_option_user AS cadou LEFT JOIN com_act_discuss_option AS cado ON cado.id = cadou.discuss_option_id left join com_act_discuss as cad on cad.id = cado.discuss_id where cad.community_id = #{communityId}"
        + ") t" + ")AS votePeopleNum " + " 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}")
    @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 test='discussListDTO.communityId != null '>" + " and cad.community_id = ${discussListDTO.communityId} "
        + " </if> " + "<if test='discussListDTO.startTime!=null and discussListDTO.startTime != &quot;&quot;'>"
        + " AND DATE_FORMAT(cad.create_at,'%Y-%m-%d %H:%i:%s') <![CDATA[ >= ]]> #{discussListDTO.startTime} "
        + " </if> " + "<if test='discussListDTO.endTime!=null and discussListDTO.endTime != &quot;&quot;'>"
@@ -186,13 +183,6 @@
    List<ComActDiscussOptionVO> getScreenDiscussOptionList(@Param("discussId") Long discussId);
    /**
     * 添加议事投票评论数
     * @param discussId 议事投票
     * @param num   添加数量
     */
    void addCommentCount(@Param("discussId") Long discussId,@Param("num") Integer num);
    /**
     * 更新一起议主题状态
     * @param discussId
     * @param status
@@ -204,7 +194,8 @@
     * @param discussId 一起议主键id
     * @param isFirstComment 是否首次参与
     */
    void incrCommentAndJoinNumById(@Param("discussId") Long discussId, @Param("isFirstComment") boolean isFirstComment);
    void incrCommentAndJoinNumById(@Param("discussId") Long discussId, @Param("isFirstComment") boolean isFirstComment,
                                   @Param("isAddComment") boolean isAddComment);
    /**
     * 一起议点赞/取消点赞 增加/减少点赞总数
@@ -219,4 +210,36 @@
     * @return
     */
    int batchUpdateViewNum(@Param("needDealMap") HashMap<Long, Integer> needDealMap);
    int deleteId(@Param("id") String id);
    /**
     * 居民自治-议事投票类型占比统计
     * @param communityId
     * @return
     */
    List<StatisticsCommVO> selectTypePercent(@Param("communityId") Long communityId);
    /**
     * 获取一起议标题
     * @param type
     * @param communityId
     * @param pageSize
     * @return
     */
    List<String> getTitles(@Param("type") int type, @Param("communityId") Long communityId, @Param("pageSize") Integer pageSize);
    /**
     * 金沙定制页面-四长四员院落议事展示列表
     * @param pageBaseDTO
     * @return
     */
    IPage<ComActDiscussVO> pageCourtyardDiscuss(@Param("page") Page page, @Param("pageBaseDTO") PageBaseDTO pageBaseDTO);
    /**
     * 金沙定制页面-院落议事基础统计数据
     * @param communityId
     * @return
     */
    BigScreenCourtyardStatisticsInfo getCourtyardBaseData(@Param("communityId") Long communityId);
}