package com.panzhihua.service_community.dao; import java.util.HashMap; 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; 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; /** * @program: springcloud_k8s_panzhihuazhihuishequ * @description: 一起议 * @author: huang.hongfa weixin hhf9596 qq 959656820 * @create: 2021-01-22 14:49 **/ @Mapper public interface ComActDiscussDAO extends BaseMapper { // @Select("") @Select("select type,name,phone,image_url,nick_name from sys_user where user_id=#{userId}") LoginUserInfoVO selectUserByUserId(Long userId); // @Select("") IPage pageDiscuss(Page page, @Param("pageComActDiscussDTO") PageComActDiscussDTO pageComActDiscussDTO); Integer getCommentNum(@Param("id") String id); IPage pageDiscussAdmin(Page page, @Param("pageComActDiscussDTO") PageComActDiscussDTO pageComActDiscussDTO); @Select("") IPage pageDiscussComment(Page page, @Param("pageComActDiscussCommentDTO") PageComActDiscussCommentDTO pageComActDiscussCommentDTO); /** * 议事投票-评论-后台分页查询 * * @param pageComActDiscussCommentDTO * 分页查询参数 * @return ComActDiscussCommentVO */ IPage pageDiscussCommentAdmin(Page page, @Param("pageComActDiscussCommentDTO") PageComActDiscussCommentDTO pageComActDiscussCommentDTO); /** * 默认查询评论下两条回复信息 * @param commentId 评论id * @return 回复列表 */ List getDiscussCommentReplyList(@Param("commentId") Long commentId); // @Select("") IPage pageDiscussApplets(Page page, @Param("pageComActDiscussDTO") PageComActDiscussDTO pageComActDiscussDTO); // @Select("") IPage 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); Map 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 screenDiscuss(@Param("communityId") Long communityId, @Param("pageSize") Integer pageSize); @Select("") IPage 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 getScreenDiscussOptionList(@Param("discussId") Long discussId); /** * 更新一起议主题状态 * @param discussId * @param status */ void updateStatusById(@Param("discussId") Long discussId, @Param("status") int status); /** * 增加评论总数和参与讨论总数 * @param discussId 一起议主键id * @param isFirstComment 是否首次参与 */ void incrCommentAndJoinNumById(@Param("discussId") Long discussId, @Param("isFirstComment") boolean isFirstComment, @Param("isAddComment") boolean isAddComment); /** * 一起议点赞/取消点赞 增加/减少点赞总数 * @param discussId 一起议主键id * @param isIncr 是否是新增 */ void incrOrDecrFabulousNumByType(@Param("discussId") Long discussId, @Param("isIncr") Boolean isIncr); /** * 批量更新浏览量 * @param needDealMap id-viewNum参数合集 * @return */ int batchUpdateViewNum(@Param("needDealMap") HashMap needDealMap); int deleteId(@Param("id") String id); /** * 居民自治-议事投票类型占比统计 * @param communityId * @return */ List selectTypePercent(@Param("communityId") Long communityId); /** * 获取一起议标题 * @param type * @param communityId * @param pageSize * @return */ List getTitles(@Param("type") int type, @Param("communityId") Long communityId, @Param("pageSize") Integer pageSize); /** * 金沙定制页面-四长四员院落议事展示列表 * @param pageBaseDTO * @return */ IPage pageCourtyardDiscuss(@Param("page") Page page, @Param("pageBaseDTO") PageBaseDTO pageBaseDTO); /** * 金沙定制页面-院落议事基础统计数据 * @param communityId * @return */ BigScreenCourtyardStatisticsInfo getCourtyardBaseData(@Param("communityId") Long communityId); }