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.vos.LoginUserInfoVO;
|
import com.panzhihua.common.model.vos.community.ComActDiscussCommentVO;
|
import com.panzhihua.common.model.vos.community.ComActDiscussVO;
|
import com.panzhihua.common.model.vos.community.ComActVO;
|
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;
|
|
/**
|
* @program: springcloud_k8s_panzhihuazhihuishequ
|
* @description: 一起议
|
* @author: huang.hongfa weixin hhf9596 qq 959656820
|
* @create: 2021-01-22 14:49
|
**/
|
@Mapper
|
public interface ComActDiscussDAO extends BaseMapper<ComActDiscussDO> {
|
// @Select("<script> " +
|
// " <where>" +
|
// "<if test='nameCn != null and nameCn.trim() != ""'>" +
|
// " </if> " +
|
// "<if test='nameCn != null and nameCn.trim() != ""'>" +
|
// " </if> " +
|
// "<if test='nameCn != null and nameCn.trim() != ""'>" +
|
// " </if> " +
|
// " </where>" +
|
// "</script>")
|
@Select("select type,name,phone,image_url from sys_user where user_id=#{userId}")
|
LoginUserInfoVO selectUserByUserId(Long userId);
|
@Select("<script> " +
|
"select t.* from ("+
|
"SELECT\n" +
|
"d.id,\n" +
|
"d.`discuss_subject`,\n" +
|
"d.type,\n" +
|
"COUNT( DISTINCT c.id ) commentNum,\n" +
|
"u.name userName,\n" +
|
"d.create_at \n" +
|
"FROM\n" +
|
"com_act_discuss d\n" +
|
"JOIN sys_user u ON d.user_id = u.user_id\n" +
|
"LEFT JOIN com_act_discuss_comment c ON d.id = c.discuss_id \n" +
|
" where d.community_id=#{pageComActDiscussDTO.communityId}" +
|
"<if test='pageComActDiscussDTO.subject != null and pageComActDiscussDTO.subject.trim() != ""'>" +
|
" and d.`discuss_subject` LIKE concat( #{pageComActDiscussDTO.subject}, '%' ) \n" +
|
" </if> " +
|
"<if test='pageComActDiscussDTO.begin != null '>" +
|
"AND d.create_at BETWEEN #{pageComActDiscussDTO.begin} \n" +
|
"AND #{pageComActDiscussDTO.end} \n" +
|
" </if> " +
|
"GROUP BY\n" +
|
"d.id" +
|
")t order by t.create_at desc "+
|
"</script>")
|
IPage<ComActDiscussVO> pageDiscuss(Page page, @Param("pageComActDiscussDTO") PageComActDiscussDTO pageComActDiscussDTO);
|
|
@Select("<script> " +
|
"select * from ("+
|
"SELECT\n" +
|
"u.`name` userName,\n" +
|
"u.phone,\n" +
|
"c.`comment`,\n" +
|
"c.`parent_id`,\n" +
|
"COUNT(DISTINCT 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" +
|
"<if test='pageComActDiscussCommentDTO.name != null and pageComActDiscussCommentDTO.name.trim() != ""'>" +
|
"AND u.`name` LIKE concat( #{pageComActDiscussCommentDTO.name}, '%' ) \n" +
|
" </if> " +
|
"<if test='pageComActDiscussCommentDTO.account != null and pageComActDiscussCommentDTO.account.trim() != ""'>" +
|
"AND u.phone LIKE concat( #{pageComActDiscussCommentDTO.account}, '%' )\n" +
|
" </if> " +
|
"LEFT JOIN com_act_discuss_comment_user cu ON c.id = cu.disscuss_comment_id \n" +
|
" where c.discuss_id=#{pageComActDiscussCommentDTO.id}" +
|
"<if test='pageComActDiscussCommentDTO.comment != null and pageComActDiscussCommentDTO.comment.trim() != ""'>" +
|
" and c.`comment` LIKE concat( '%', #{pageComActDiscussCommentDTO.comment" +
|
"}, '%' ) \n" +
|
" </if> " +
|
"GROUP BY\n" +
|
"c.id\n" +
|
")t order by t.create_at desc"+
|
"</script>")
|
IPage<ComActDiscussCommentVO> pageDiscussComment(Page page, @Param("pageComActDiscussCommentDTO")PageComActDiscussCommentDTO pageComActDiscussCommentDTO);
|
@Select("<script> " +
|
"select t.* from ("+
|
"SELECT\n" +
|
"d.id,\n" +
|
"d.vote_title,\n" +
|
"d.address,\n" +
|
"d.photo_pah,\n" +
|
"d.`discuss_subject`,\n" +
|
"d.type,\n" +
|
"COUNT( DISTINCT c.id ) commentNum,\n" +
|
"COUNT( DISTINCT du.id ) signNum,\n" +
|
"if(u.type=1,u.name,a.name) userName,\n" +
|
"if(du.id is not null,1,0) haveSign,\n" +
|
"if(ou.id is not null,1,0) haveVote,\n" +
|
"u.image_url,\n" +
|
"d.create_at \n" +
|
"FROM\n" +
|
"com_act_discuss d\n" +
|
"JOIN sys_user u ON d.user_id = u.user_id\n" +
|
"JOIN com_act a ON d.community_id = a.community_id\n" +
|
"LEFT JOIN com_act_discuss_comment c ON d.id = c.discuss_id \n" +
|
"LEFT JOIN com_act_discuss_user du ON d.id = du.discuss_id \n" +
|
"LEFT JOIN com_act_discuss_option do ON d.id = do.discuss_id \n" +
|
"LEFT JOIN com_act_discuss_option_user ou on do.id=ou.discuss_option_id and ou.user_id=#{pageComActDiscussDTO.loginUserId}\n" +
|
" where d.community_id=#{pageComActDiscussDTO.communityId}" +
|
"<if test='pageComActDiscussDTO.subject != null and pageComActDiscussDTO.subject.trim() != ""'>" +
|
" and d.`discuss_subject` LIKE concat( #{pageComActDiscussDTO.subject}, '%' ) \n" +
|
" </if> " +
|
"<if test='pageComActDiscussDTO.userId != null and pageComActDiscussDTO.userId !=0 '>" +
|
" and d.`user_id` = #{pageComActDiscussDTO.userId} \n" +
|
" </if> " +
|
"<if test='pageComActDiscussDTO.begin != null '>" +
|
"AND d.create_at BETWEEN #{pageComActDiscussDTO.begin} \n" +
|
"AND #{pageComActDiscussDTO.end} \n" +
|
" </if> " +
|
"GROUP BY\n" +
|
"d.id" +
|
")t order by t.create_at desc "+
|
"</script>")
|
IPage<ComActDiscussVO> pageDiscussApplets(Page page, @Param("pageComActDiscussDTO")PageComActDiscussDTO pageComActDiscussDTO);
|
@Select("<script> " +
|
"select * from ("+
|
"SELECT\n" +
|
"u.`name` userName,\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" +
|
"JOIN com_act_discuss d ON c.discuss_id = d.id \n" +
|
"<if test='pageComActDiscussCommentDTO.name != null and pageComActDiscussCommentDTO.name.trim() != ""'>" +
|
"AND u.`name` LIKE concat( #{pageComActDiscussCommentDTO.name}, '%' ) \n" +
|
" </if> " +
|
"<if test='pageComActDiscussCommentDTO.account != null and pageComActDiscussCommentDTO.account.trim() != ""'>" +
|
"AND u.phone LIKE concat( #{pageComActDiscussCommentDTO.account}, '%' )\n" +
|
" </if> " +
|
"LEFT JOIN com_act_discuss_comment_user cu ON c.id = cu.disscuss_comment_id \n" +
|
" <where>" +
|
"<if test='pageComActDiscussCommentDTO.comment != null and pageComActDiscussCommentDTO.comment.trim() != ""'>" +
|
"c.`comment` LIKE concat( '%', #{pageComActDiscussCommentDTO.comment" +
|
"}, '%' ) \n" +
|
" </if> " +
|
" </where>" +
|
"GROUP BY\n" +
|
"c.id\n" +
|
")t order by t.is_topping desc , t.create_at desc"+
|
"</script>")
|
IPage<ComActDiscussCommentVO> pageDiscussCommentApplets(Page page, @Param("pageComActDiscussCommentDTO")PageComActDiscussCommentDTO pageComActDiscussCommentDTO);
|
|
@Select("select name from com_act where community_id=#{communityId}")
|
ComActVO selectCommunity(Long communityId);
|
|
@Select("SELECT \n" +
|
"if(du.id is not null,1,0)haveSign,\n" +
|
"if(ou.id is not null,1,0)haveVote\n" +
|
"FROM\n" +
|
"com_act_discuss d \n" +
|
"LEFT JOIN com_act_discuss_user du on d.id=du.discuss_id and du.`user_id`=#{loginUserId}\n" +
|
"LEFT JOIN com_act_discuss_option op on d.id=op.discuss_id\n" +
|
"LEFT JOIN com_act_discuss_option_user ou on op.id=ou.discuss_option_id and ou.user_id=#{loginUserId}\n" +
|
"WHERE\n" +
|
"d.id =#{id}\n" +
|
"GROUP BY d.id")
|
ComActDiscussVO selectHaveSignAndHaveVote(@Param("id") Long id, @Param("loginUserId")Long loginUserId);
|
}
|