罗元桥
2021-08-30 eda58e0e6d4abdd2b060e28867d103045845aa69
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActActivityDAO.java
@@ -1,24 +1,24 @@
package com.panzhihua.service_community.dao;
import java.util.Date;
import java.util.List;
import java.util.Map;
import com.panzhihua.common.model.vos.community.ComActActivityStatisticsVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;
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.bigscreen.work.ScreenActActivityListDTO;
import com.panzhihua.common.model.vos.community.ComActActivityVO;
import com.panzhihua.common.model.vos.community.CommunityActivitiesVO;
import com.panzhihua.common.model.vos.community.CommunityGovernanceTrendsVO;
import com.panzhihua.common.model.vos.community.screen.work.ActActivityListVO;
import com.panzhihua.common.model.vos.partybuilding.PageActivityMembersVO;
import com.panzhihua.common.model.vos.screen.CarouselInfoVO;
import com.panzhihua.service_community.model.dos.ComActActivityDO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;
import java.util.Date;
import java.util.List;
import java.util.Map;
/**
 * @program: springcloud_k8s_panzhihuazhihuishequ
@@ -28,131 +28,70 @@
 **/
@Mapper
public interface ComActActivityDAO extends BaseMapper<ComActActivityDO> {
    //    @Select("<script> " +
//            " <where>" +
//            "<if test='nameCn != null and nameCn.trim() != &quot;&quot;'>" +
//            " </if> " +
//            "<if test='nameCn != null and nameCn.trim() != &quot;&quot;'>" +
//            " </if> " +
//            "<if test='nameCn != null and nameCn.trim() != &quot;&quot;'>" +
//            " </if> " +
//            " </where>" +
//            "</script>")
    @Select("<script> " +
            "SELECT  " +
            "a.id, " +
            "a.activity_name, " +
            "u.`name` sponsorName, " +
            "a.activity_addr, " +
            "a.`status`, " +
            "a.publish_at, " +
            "a.begin_at, " +
            "a.cover, " +
            "a.end_at, " +
            "a.volunteer_max, " +
            "count(if(s.is_volunteer=1,s.id,null))volunteer_now, "+
            "count(if(s.is_volunteer=0,s.id,null))participant_now, "+
            "a.participant_max, " +
            "a.sign_up_begin, " +
            "a.sign_up_end, " +
            "ca.name as communityName  " +
            "FROM " +
            "com_act_activity a  " +
            "join sys_user u on a.sponsor_id=u.user_id " +
            "left join com_act_act_sign s on a.id=s.activity_id  "+
            "left join com_act ca on a.community_id=ca.community_id  "+
            " where 1=1 " +
    // @Select("<script> " +
    // " <where>" +
    // "<if test='nameCn != null and nameCn.trim() != &quot;&quot;'>" +
    // " </if> " +
    // "<if test='nameCn != null and nameCn.trim() != &quot;&quot;'>" +
    // " </if> " +
    // "<if test='nameCn != null and nameCn.trim() != &quot;&quot;'>" +
    // " </if> " +
    // " </where>" +
    // "</script>")
    @Select("<script> " + "SELECT  " + "a.id, " + "a.activity_name, " + "u.`name` sponsorName, " + "a.activity_addr, "
        + "a.`status`, " + "a.publish_at, " + "a.begin_at, " + "a.cover, " + "a.end_at, " + "a.volunteer_max, "
        + "count(if(s.is_volunteer=1,s.id,null))volunteer_now, "
        + "count(if(s.is_volunteer=0,s.id,null))participant_now, " + "a.participant_max, " + "a.sign_up_begin, "
        + "a.sign_up_end, " + "ca.name as communityName  " + "FROM " + "com_act_activity a  "
        + "join sys_user u on a.sponsor_id=u.user_id " + "left join com_act_act_sign s on a.id=s.activity_id  "
        + "left join com_act ca on a.community_id=ca.community_id  " + " where 1=1 " +
            "<if test='comActActivityVO.choice == 0 '>" +
            "AND a.community_id=#{comActActivityVO.communityId} " +
            " </if> " +
        "<if test='comActActivityVO.choice == 0 '>" + "AND a.community_id=#{comActActivityVO.communityId} " + " </if> "
        +
            "<if test='comActActivityVO.activityName != null and comActActivityVO.activityName.trim() != &quot;&quot;'>" +
            " and a.activity_name like concat(#{comActActivityVO.activityName},'%')   " +
            " </if> " +
            "<if test='comActActivityVO.status != null and comActActivityVO.status !=0 and comActActivityVO.isIng==null'>" +
            "AND a.`status` = #{comActActivityVO.status}  " +
            " </if> " +
            "<if test='comActActivityVO.status != null and comActActivityVO.status !=0 and comActActivityVO.isIng!=null and comActActivityVO.isIng==1'>" +
            "AND a.`status` in (3,4)  " +
            " </if> " +
            "<if test='comActActivityVO.isApplets != null and comActActivityVO.isApplets ==1'>" +
            "AND a.`status` != 1 AND  a.`status` != 6   " +
            " </if> " +
            "<if test='comActActivityVO.beginAt != null '>" +
            "AND a.begin_at <![CDATA[ >= ]]> #{comActActivityVO.beginAt} AND a.end_at <![CDATA[ <= ]]> #{comActActivityVO.endAt}  " +
            " </if> " +
            "<if test='comActActivityVO.type != null and comActActivityVO.type==1 '>" +
            "AND a.volunteer_max!=0  " +
            " </if> " +
            "<if test='comActActivityVO.type != null and comActActivityVO.type==2 '>" +
            "AND a.participant_max!=0  " +
            " </if> " +
            " group by a.id "+
            " order by a.status asc,a.publish_at desc "+
            "</script>")
    IPage<ComActActivityVO> pageActivity( Page page, @Param("comActActivityVO") ComActActivityVO comActActivityVO);
        "<if test='comActActivityVO.activityName != null and comActActivityVO.activityName.trim() != &quot;&quot;'>"
        + " and a.activity_name like concat(#{comActActivityVO.activityName},'%')   " + " </if> "
        + "<if test='comActActivityVO.status != null and comActActivityVO.status !=0 and comActActivityVO.isIng==null'>"
        + "AND a.`status` = #{comActActivityVO.status}  " + " </if> "
        + "<if test='comActActivityVO.status != null and comActActivityVO.status !=0 and comActActivityVO.isIng!=null and comActActivityVO.isIng==1'>"
        + "AND a.`status` in (3,4)  " + " </if> "
        + "<if test='comActActivityVO.isApplets != null and comActActivityVO.isApplets ==1'>"
        + "AND a.`status` != 1 AND  a.`status` != 6   " + " </if> " + "<if test='comActActivityVO.beginAt != null '>"
        + "AND a.begin_at <![CDATA[ >= ]]> #{comActActivityVO.beginAt} AND a.end_at <![CDATA[ <= ]]> #{comActActivityVO.endAt}  "
        + " </if> " + "<if test='comActActivityVO.type != null and comActActivityVO.type==1 '>"
        + "AND a.volunteer_max!=0  " + " </if> "
        + "<if test='comActActivityVO.type != null and comActActivityVO.type==2 '>" + "AND a.participant_max!=0  "
        + " </if> " + " group by a.id " + " order by a.status asc,a.publish_at desc " + "</script>")
    IPage<ComActActivityVO> pageActivity(Page page, @Param("comActActivityVO") ComActActivityVO comActActivityVO);
    @Select("SELECT  " +
            "u.name sponsorName, " +
            "ca.name communityName, " +
            "count(if(s.is_volunteer=1,s.id,null))volunteer_now, "+
            "count(if(s.is_volunteer=0,s.id,null))participant_now, "+
            "a.*  " +
            "FROM  " +
            "com_act_activity a  " +
            "join sys_user u on a.sponsor_id=u.user_id  "+
            "left join com_act_act_sign s on a.id=s.activity_id  "+
            "left join com_act ca on a.community_id=ca.community_id  "+
            "where a.id=#{id}  "+
            " group by a.id "
    )
    @Select("SELECT  " + "u.name sponsorName, " + "ca.name communityName, "
        + "count(if(s.is_volunteer=1,s.id,null))volunteer_now, "
        + "count(if(s.is_volunteer=0,s.id,null))participant_now, " + "a.*  " + "FROM  " + "com_act_activity a  "
        + "join sys_user u on a.sponsor_id=u.user_id  " + "left join com_act_act_sign s on a.id=s.activity_id  "
        + "left join com_act ca on a.community_id=ca.community_id  " + "where a.id=#{id}  " + " group by a.id ")
    ComActActivityVO inforActivity(Long id);
    @Select("SELECT " +
            "a.*  " +
            "FROM " +
            "com_act_act_sign s " +
            "JOIN com_act_activity a ON s.activity_id = a.id  " +
            "WHERE " +
            "s.user_id = #{comActActivityVO.sponsorId}  " +
            "ORDER BY " +
            "s.create_at DESC")
    @Select("SELECT " + "a.*  " + "FROM " + "com_act_act_sign s " + "JOIN com_act_activity a ON s.activity_id = a.id  "
        + "WHERE " + "s.user_id = #{comActActivityVO.sponsorId}  " + "ORDER BY " + "s.create_at DESC")
    IPage<ComActActivityVO> pageMyActivity(Page page, @Param("comActActivityVO") ComActActivityVO comActActivityVO);
    @Select("select " +
            "t.activity_name," +
            "t.id," +
            "t.end_at," +
            "t.begin_at," +
            "t.cover," +
            "t.status " +
            "from com_act_act_sign s  " +
            "join sys_user u on s.user_id=u.user_id and u.phone=#{phone} and s.is_volunteer=1 " +
            "join com_act_activity t on s.activity_id=t.id and t.status=5")
    @Select("select " + "t.activity_name," + "t.id," + "t.end_at," + "t.begin_at," + "t.cover," + "t.status "
        + "from com_act_act_sign s  "
        + "join sys_user u on s.user_id=u.user_id and u.phone=#{phone} and s.is_volunteer=1 "
        + "join com_act_activity t on s.activity_id=t.id and t.status=5")
    List<ComActActivityVO> listActivityByPhone(String phone);
    @Select("select t.id from ( " +
            "SELECT  " +
            "a.id, " +
            "a.activity_name, " +
            "COUNT(case when s.is_volunteer=1 then s.id else null end )volunteernum, " +
            "COUNT(case when s.is_volunteer=0 then s.id else null end)usernum, " +
            "a.participant_min, " +
            "a.volunteer_min " +
            "FROM " +
            "com_act_activity a  " +
            "LEFT JOIN com_act_act_sign s on a.id=s.activity_id  " +
            "WHERE " +
            "a.`status` in(3,4) and TIMESTAMPDIFF(MINUTE,SYSDATE(),a.sign_up_end)<=0 " +
            "GROUP BY a.id)t WHERE t.usernum<participant_min or t.volunteernum<volunteer_min")
    @Select("select t.id from ( " + "SELECT  " + "a.id, " + "a.activity_name, "
        + "COUNT(case when s.is_volunteer=1 then s.id else null end )volunteernum, "
        + "COUNT(case when s.is_volunteer=0 then s.id else null end)usernum, " + "a.participant_min, "
        + "a.volunteer_min " + "FROM " + "com_act_activity a  " + "LEFT JOIN com_act_act_sign s on a.id=s.activity_id  "
        + "WHERE " + "a.`status` in(3,4) and TIMESTAMPDIFF(MINUTE,SYSDATE(),a.sign_up_end)<=0 "
        + "GROUP BY a.id)t WHERE t.usernum<participant_min or t.volunteernum<volunteer_min")
    List<Long> selectTimedTaskActActivity();
    @Update("<script> " +
       "update com_act_activity set `status`=6 where id in " +
            "<foreach item=\"item\" collection=\"longs\" separator=\",\" open=\"(\" close=\")\" index=\"\"> "+
            "#{item} "+
            "</foreach> "+
        "</script>")
    @Update("<script> " + "update com_act_activity set `status`=6 where id in "
        + "<foreach item=\"item\" collection=\"longs\" separator=\",\" open=\"(\" close=\")\" index=\"\"> " + "#{item} "
        + "</foreach> " + "</script>")
    int updateIdBatch(@Param("longs") List<Long> longs);
    @Update("update com_act_activity set `status`=2 where `status`=1 and TIMESTAMPDIFF(MINUTE,SYSDATE(),publish_at)<=0")
@@ -163,185 +102,105 @@
    @Update("update com_act_activity set `status`=5 where `status` in (3,4) and TIMESTAMPDIFF(MINUTE,SYSDATE(),sign_up_end)<=0")
    int updateStatusToBeginActiveOrEnd();
    @Select("<script> " +
            "select t.* from ( " +
            "SELECT  " +
            "a.id, " +
            "a.activity_name, " +
            "u.`name` sponsorName, " +
            "a.activity_addr, " +
            "a.participant_max, " +
            "count(if(s.is_volunteer=1,null,s.id))participant_now, "+
            "a.volunteer_max, " +
            "count(if(s.is_volunteer=1,s.id,null))volunteer_now, "+
            "a.`status`, " +
            "a.publish_at, " +
            "a.begin_at, " +
            "a.end_at, " +
            "a.sign_up_begin, " +
            "a.sign_up_end " +
            "FROM " +
            " com_act_activity a  " +
            " LEFT JOIN sys_user u on a.sponsor_id=u.user_id " +
            " LEFT JOIN com_act_act_sign s on a.id=s.activity_id " +
            "WHERE " +
            "  a.`status` = 1 and a.community_id=#{comActActivityVO.communityId} " +
            "<if test='comActActivityVO.activityName != null and comActActivityVO.activityName !=&quot;&quot;'>" +
            " and a.activity_name LIKE concat( #{comActActivityVO.activityName}, '%' )  " +
            " </if> " +
            "<if test='comActActivityVO.status != null and comActActivityVO.status !=0 and comActActivityVO.status !=1'>" +
            "AND a.`status` = 99  " +
            " </if> " +
            "<if test='comActActivityVO.beginAt != null '>" +
            "AND a.begin_at <![CDATA[ >= ]]> #{comActActivityVO.beginAt} AND a.end_at <![CDATA[ <= ]]> #{comActActivityVO.endAt}  " +
            " </if> " +
            "group by a.id " +
            "  " +
            " union all " +
            "select t1.* from ( "+
            "  " +
            " SELECT  " +
            "a.id, " +
            "a.activity_name, " +
            "u.`name` sponsorName, " +
            "a.activity_addr, " +
            "a.participant_max, " +
            "count(if(s.is_volunteer=1,null,s.id))participant_now, "+
            "a.volunteer_max, " +
            "count(if(s.is_volunteer=1,s.id,null))volunteer_now, "+
            "a.`status`, " +
            "a.publish_at, " +
            "a.begin_at, " +
            "a.end_at, " +
            "a.sign_up_begin, " +
            "a.sign_up_end " +
            "FROM " +
            " com_act_activity a  " +
            " LEFT JOIN sys_user u on a.sponsor_id=u.user_id " +
            " LEFT JOIN com_act_act_sign s on a.id=s.activity_id " +
            "WHERE " +
            "  a.`status` != 1 and a.community_id=#{comActActivityVO.communityId} " +
            "<if test='comActActivityVO.activityName != null and comActActivityVO.activityName !=&quot;&quot;'>" +
            " and a.activity_name LIKE concat( #{comActActivityVO.activityName}, '%' )  " +
            " </if> " +
            "<if test='comActActivityVO.status != null and comActActivityVO.status !=0 '>" +
            "AND a.`status` = #{comActActivityVO.status}  " +
            " </if> " +
            "<if test='comActActivityVO.beginAt != null '>" +
            "AND a.begin_at <![CDATA[ >= ]]> #{comActActivityVO.beginAt} AND a.end_at <![CDATA[ <= ]]> #{comActActivityVO.endAt}  " +
            " </if> " +
            " group by a.id order by a.publish_at desc)t1 )t"+
            "</script>")
    IPage<ComActActivityVO> pageActivityCommunityBack(Page page, @Param("comActActivityVO") ComActActivityVO comActActivityVO);
    @Select("<script> " + "select t.* from ( " + "SELECT  " + "a.id, " + "a.activity_name, " + "u.`name` sponsorName, "
        + "a.activity_addr, " + "a.participant_max, " + "count(if(s.is_volunteer=1,null,s.id))participant_now, "
        + "a.volunteer_max, " + "count(if(s.is_volunteer=1,s.id,null))volunteer_now, " + "a.`status`, "
        + "a.publish_at, " + "a.begin_at, " + "a.end_at, " + "a.sign_up_begin, " + "a.sign_up_end " + "FROM "
        + " com_act_activity a  " + " LEFT JOIN sys_user u on a.sponsor_id=u.user_id "
        + " LEFT JOIN com_act_act_sign s on a.id=s.activity_id " + "WHERE "
        + "  a.`status` = 1 and a.community_id=#{comActActivityVO.communityId} "
        + "<if test='comActActivityVO.activityName != null and comActActivityVO.activityName !=&quot;&quot;'>"
        + " and a.activity_name LIKE concat( #{comActActivityVO.activityName}, '%' )  " + " </if> "
        + "<if test='comActActivityVO.status != null and comActActivityVO.status !=0 and comActActivityVO.status !=1'>"
        + "AND a.`status` = 99  " + " </if> " + "<if test='comActActivityVO.beginAt != null '>"
        + "AND a.begin_at <![CDATA[ >= ]]> #{comActActivityVO.beginAt} AND a.end_at <![CDATA[ <= ]]> #{comActActivityVO.endAt}  "
        + " </if> " + "group by a.id " + "  " + " union all " + "select t1.* from ( " + "  " + " SELECT  " + "a.id, "
        + "a.activity_name, " + "u.`name` sponsorName, " + "a.activity_addr, " + "a.participant_max, "
        + "count(if(s.is_volunteer=1,null,s.id))participant_now, " + "a.volunteer_max, "
        + "count(if(s.is_volunteer=1,s.id,null))volunteer_now, " + "a.`status`, " + "a.publish_at, " + "a.begin_at, "
        + "a.end_at, " + "a.sign_up_begin, " + "a.sign_up_end " + "FROM " + " com_act_activity a  "
        + " LEFT JOIN sys_user u on a.sponsor_id=u.user_id " + " LEFT JOIN com_act_act_sign s on a.id=s.activity_id "
        + "WHERE " + "  a.`status` != 1 and a.community_id=#{comActActivityVO.communityId} "
        + "<if test='comActActivityVO.activityName != null and comActActivityVO.activityName !=&quot;&quot;'>"
        + " and a.activity_name LIKE concat( #{comActActivityVO.activityName}, '%' )  " + " </if> "
        + "<if test='comActActivityVO.status != null and comActActivityVO.status !=0 '>"
        + "AND a.`status` = #{comActActivityVO.status}  " + " </if> " + "<if test='comActActivityVO.beginAt != null '>"
        + "AND a.begin_at <![CDATA[ >= ]]> #{comActActivityVO.beginAt} AND a.end_at <![CDATA[ <= ]]> #{comActActivityVO.endAt}  "
        + " </if> " + " group by a.id order by a.publish_at desc)t1 )t" + "</script>")
    IPage<ComActActivityVO> pageActivityCommunityBack(Page page,
        @Param("comActActivityVO") ComActActivityVO comActActivityVO);
    @Select("select id from com_act_activity where `status` in (3,4) and TIMESTAMPDIFF(MINUTE,SYSDATE(),sign_up_end)<=0")
    List<Long> getActivityEndIds();
    @Update("update com_act_activity set `status`=4 where `status`=3 and TIMESTAMPDIFF(MINUTE,SYSDATE(),sign_up_end)<=0")
    int updateStatusToBeginAfterSingEnd();
    @Select("select GROUP_CONCAT(t.x1,',',t.x2,',',t.x3,',',t.x4) from ( " +
            "SELECT " +
            "(select COUNT(d.id) from com_act_discuss d where  d.community_id=#{communityId})x1, " +
            "(select COUNT(w.id) from com_act_micro_wish w where  w.community_id=#{communityId})x2, " +
            "(select COUNT(p.id) from com_act_easy_photo p where  p.community_id=#{communityId})x3, " +
            " COUNT( a.id ) x4 " +
            "FROM " +
            " com_pb_activity a  " +
            "WHERE " +
            "  a.community_id =#{communityId})t")
    @Select("select GROUP_CONCAT(t.x1,',',t.x2,',',t.x3,',',t.x4) from ( " + "SELECT "
        + "(select COUNT(d.id) from com_act_discuss d where  d.community_id=#{communityId})x1, "
        + "(select COUNT(w.id) from com_act_micro_wish w where  w.community_id=#{communityId})x2, "
        + "(select COUNT(p.id) from com_act_easy_photo p where  p.community_id=#{communityId})x3, "
        + " COUNT( a.id ) x4 " + "FROM " + " com_pb_activity a  " + "WHERE " + "  a.community_id =#{communityId})t")
    String selectCommunityGovernanceTrendsVO(Long communityId);
    @Select(" " +
            " SELECT " +
            " (select COUNT(d.id) from com_act_discuss d where DATE_FORMAT(d.create_at,'%Y-%m-%d')=DATE_FORMAT(#{date},'%Y-%m-%d') and d.community_id=#{communityId})discuss, " +
            " (select COUNT(w.id) from com_act_micro_wish w where DATE_FORMAT(w.create_at,'%Y-%m-%d')=DATE_FORMAT(#{date},'%Y-%m-%d') and w.community_id=#{communityId})microWish, " +
            " (select COUNT(p.id) from com_act_easy_photo p where DATE_FORMAT(p.create_at,'%Y-%m-%d')=DATE_FORMAT(#{date},'%Y-%m-%d') and p.community_id=#{communityId})eashPhoto, " +
            " (select COUNT(pa.id) from com_pb_activity pa where DATE_FORMAT(pa.create_at,'%Y-%m-%d')=DATE_FORMAT(#{date},'%Y-%m-%d') and pa.community_id=#{communityId})pbActivity, " +
            "  COUNT( a.id ) actActivity " +
            " FROM " +
            "  com_pb_activity a  " +
            " WHERE " +
            "  DATE_FORMAT( a.create_at, '%Y-%m-%d' )=DATE_FORMAT(#{date},'%Y-%m-%d')  " +
            "  AND a.community_id =#{communityId}")
    CommunityActivitiesVO selectCommunityActivitiesVO(@Param("communityId") Long communityId, @Param("date")Date date);
    @Select("SELECT " +
            " count( caa.id ) as totalNum, " +
            " (select count(id) from com_act_activity where `status` IN (1,2,3,4,5) and volunteer_min = 0 and community_id = #{communityId}) as commonNum, " +
            " (select count(id) from com_act_activity where `status` IN (1,2,3,4,5) and volunteer_min > 0 and community_id = #{communityId}) as volunteerNum, " +
            " (select count(caas.user_id) from com_act_act_sign as caas left join com_act_activity as caa on caa.id = caas.activity_id where caa.`status` IN (1,2,3,4,5) and is_volunteer = 0 and caa.community_id = #{communityId}) as commonPeopleNum, " +
            " (select count(caas.user_id) from com_act_act_sign as caas left join com_act_activity as caa on caa.id = caas.activity_id where caa.`status` IN (1,2,3,4,5) and is_volunteer = 1 and caa.community_id = #{communityId}) as volunteerPeopleNum, " +
            " (select count(id) from com_act_activity where `status` IN (1,2,3,4,5) and community_id = #{communityId} and create_at between date_sub(curdate() - day(curdate()) +1,interval 1 month) and now()) as currentNum " +
            "FROM " +
            " com_act_activity AS caa  " +
            "WHERE " +
            " caa.`status` IN (1,2,3,4,5) and community_id = #{communityId}")
    Map<String, Long> countByCommunityId(@Param("communityId")Long communityId,@Param("nowDate")String nowDate);
    @Select(" " + " SELECT "
        + " (select COUNT(d.id) from com_act_discuss d where DATE_FORMAT(d.create_at,'%Y-%m-%d')=DATE_FORMAT(#{date},'%Y-%m-%d') and d.community_id=#{communityId})discuss, "
        + " (select COUNT(w.id) from com_act_micro_wish w where DATE_FORMAT(w.create_at,'%Y-%m-%d')=DATE_FORMAT(#{date},'%Y-%m-%d') and w.community_id=#{communityId})microWish, "
        + " (select COUNT(p.id) from com_act_easy_photo p where DATE_FORMAT(p.create_at,'%Y-%m-%d')=DATE_FORMAT(#{date},'%Y-%m-%d') and p.community_id=#{communityId})eashPhoto, "
        + " (select COUNT(pa.id) from com_pb_activity pa where DATE_FORMAT(pa.create_at,'%Y-%m-%d')=DATE_FORMAT(#{date},'%Y-%m-%d') and pa.community_id=#{communityId})pbActivity, "
        + "  COUNT( a.id ) actActivity " + " FROM " + "  com_pb_activity a  " + " WHERE "
        + "  DATE_FORMAT( a.create_at, '%Y-%m-%d' )=DATE_FORMAT(#{date},'%Y-%m-%d')  "
        + "  AND a.community_id =#{communityId}")
    CommunityActivitiesVO selectCommunityActivitiesVO(@Param("communityId") Long communityId, @Param("date") Date date);
    @Select("SELECT id,activity_name as content,IF(volunteer_max = 0,'居民活动','志愿者活动') AS typeName  FROM com_act_activity " +
            "WHERE community_id = #{communityId} AND (status = 3 OR status = 4 OR status = 5) ORDER BY create_at DESC LIMIT #{pageSize}")
    List<CarouselInfoVO> screenActivity(@Param("communityId")Long communityId, @Param("pageSize")Integer pageSize);
    @Select("SELECT " + " count( caa.id ) as totalNum, "
        + " (select count(id) from com_act_activity where `status` IN (1,2,3,4,5) and volunteer_min = 0 and community_id = #{communityId}) as commonNum, "
        + " (select count(id) from com_act_activity where `status` IN (1,2,3,4,5) and volunteer_min > 0 and community_id = #{communityId}) as volunteerNum, "
        + " (select count(caas.user_id) from com_act_act_sign as caas left join com_act_activity as caa on caa.id = caas.activity_id where caa.`status` IN (1,2,3,4,5) and is_volunteer = 0 and caa.community_id = #{communityId}) as commonPeopleNum, "
        + " (select count(caas.user_id) from com_act_act_sign as caas left join com_act_activity as caa on caa.id = caas.activity_id where caa.`status` IN (1,2,3,4,5) and is_volunteer = 1 and caa.community_id = #{communityId}) as volunteerPeopleNum, "
        + " (select count(id) from com_act_activity where `status` IN (1,2,3,4,5) and community_id = #{communityId} and create_at between date_sub(curdate() - day(curdate()) +1,interval 1 month) and now()) as currentNum "
        + "FROM " + " com_act_activity AS caa  " + "WHERE "
        + " caa.`status` IN (1,2,3,4,5) and community_id = #{communityId}")
    Map<String, Long> countByCommunityId(@Param("communityId") Long communityId, @Param("nowDate") String nowDate);
    @Select("SELECT id,activity_name as content,IF(volunteer_max = 0,'居民活动','志愿者活动') AS typeName  FROM com_act_activity "
        + "WHERE community_id = #{communityId} AND (status = 3 OR status = 4 OR status = 5) ORDER BY create_at DESC LIMIT #{pageSize}")
    List<CarouselInfoVO> screenActivity(@Param("communityId") Long communityId, @Param("pageSize") Integer pageSize);
    @Select("SELECT cover FROM com_act_activity WHERE community_id = #{communityId}")
    List<String> listImg(@Param("communityId")Long communityId);
    List<String> listImg(@Param("communityId") Long communityId);
    @Select("<script> " +
            "SELECT " +
            " caa.id, " +
            " su.`name` AS userName , " +
            " su.image_url, " +
            " caa.sponsor_id, " +
            " caa.`status`, " +
            " caa.create_at, " +
            " caa.begin_at, " +
            " caa.end_at, " +
            " caa.sign_up_begin, " +
            " caa.sign_up_end, " +
            " caa.volunteer_min, " +
            " caa.volunteer_max, " +
            " caa.participant_min, " +
            " caa.participant_max, " +
            " caa.activity_name, " +
            " caa.cover, " +
            " caa.content, " +
            " caa.activity_addr  " +
            "FROM " +
            " com_act_activity AS caa " +
            " LEFT JOIN sys_user AS su ON su.user_id = caa.sponsor_id" +
            " <where> "+
            "<if test='actActivityListDTO.communityId != null '>" +
            " and caa.community_id = #{actActivityListDTO.communityId} " +
            " </if> " +
            "<if test='actActivityListDTO.startTime!=null and actActivityListDTO.startTime != &quot;&quot;'>" +
            " AND DATE_FORMAT(caa.create_at,'%Y-%m-%d %H:%i:%s') <![CDATA[ >= ]]> #{actActivityListDTO.startTime} " +
            " </if> " +
            "<if test='actActivityListDTO.endTime!=null and actActivityListDTO.endTime != &quot;&quot;'>" +
            " AND DATE_FORMAT(caa.create_at,'%Y-%m-%d %H:%i:%s') <![CDATA[ <= ]]> #{actActivityListDTO.endTime} " +
            " </if> " +
            "<if test='actActivityListDTO.type!=null'>" +
            " AND caa.status = #{actActivityListDTO.type} " +
            " </if> " +
            " </where> "+
            "ORDER BY " +
            " caa.create_at DESC " +
            " </script>")
    IPage<ActActivityListVO> getScreenActActivityList(Page page, @Param("actActivityListDTO") ScreenActActivityListDTO actActivityListDTO);
    @Select("<script> " + "SELECT " + " caa.id, " + " su.`name` AS userName , " + " su.image_url, "
        + " caa.sponsor_id, " + " caa.`status`, " + " caa.create_at, " + " caa.begin_at, " + " caa.end_at, "
        + " caa.sign_up_begin, " + " caa.sign_up_end, " + " caa.volunteer_min, " + " caa.volunteer_max, "
        + " caa.participant_min, " + " caa.participant_max, " + " caa.activity_name, " + " caa.cover, "
        + " caa.content, " + " caa.activity_addr  " + "FROM " + " com_act_activity AS caa "
        + " LEFT JOIN sys_user AS su ON su.user_id = caa.sponsor_id" + " <where> "
        + "<if test='actActivityListDTO.communityId != null '>"
        + " and caa.community_id = #{actActivityListDTO.communityId} " + " </if> "
        + "<if test='actActivityListDTO.startTime!=null and actActivityListDTO.startTime != &quot;&quot;'>"
        + " AND DATE_FORMAT(caa.create_at,'%Y-%m-%d %H:%i:%s') <![CDATA[ >= ]]> #{actActivityListDTO.startTime} "
        + " </if> " + "<if test='actActivityListDTO.endTime!=null and actActivityListDTO.endTime != &quot;&quot;'>"
        + " AND DATE_FORMAT(caa.create_at,'%Y-%m-%d %H:%i:%s') <![CDATA[ <= ]]> #{actActivityListDTO.endTime} "
        + " </if> " + "<if test='actActivityListDTO.type!=null'>" + " AND caa.status = #{actActivityListDTO.type} "
        + " </if> " + " </where> " + "ORDER BY " + " caa.create_at DESC " + " </script>")
    IPage<ActActivityListVO> getScreenActActivityList(Page page,
        @Param("actActivityListDTO") ScreenActActivityListDTO actActivityListDTO);
    @Select("SELECT " +
            " count( caas.id ) AS volunteerCount,( " +
            " SELECT " +
            "  count( caas1.id )  " +
            " FROM " +
            "  com_act_act_sign AS caas1 " +
            "  LEFT JOIN sys_user AS su1 ON su1.user_id = caas1.user_id  " +
            " WHERE " +
            "  su1.is_volunteer = 0  " +
            "  AND caas1.activity_id = #{activityId}  " +
            " ) AS participantCount  " +
            "FROM " +
            " com_act_act_sign AS caas " +
            " LEFT JOIN sys_user AS su ON su.user_id = caas.user_id  " +
            "WHERE " +
            " su.is_volunteer = 1  " +
            " AND activity_id = #{activityId} ")
    @Select("SELECT " + " count( caas.id ) AS volunteerCount,( " + " SELECT " + "  count( caas1.id )  " + " FROM "
        + "  com_act_act_sign AS caas1 " + "  LEFT JOIN sys_user AS su1 ON su1.user_id = caas1.user_id  " + " WHERE "
        + "  su1.is_volunteer = 0  " + "  AND caas1.activity_id = #{activityId}  " + " ) AS participantCount  "
        + "FROM " + " com_act_act_sign AS caas " + " LEFT JOIN sys_user AS su ON su.user_id = caas.user_id  " + "WHERE "
        + " su.is_volunteer = 1  " + " AND activity_id = #{activityId} ")
    ActActivityListVO getScreenActActivityPeopleCount(@Param("activityId") Long activityId);
    ComActActivityStatisticsVO activityStatistics (@Param("activityId") Long activityId);
    /**
     * 查询置于顶部的进行中活动
     * @param communityId 社区id
     * @return 活动列表
     */
    List<ComActActivityVO> getIndexTopActivityList(@Param("communityId") Long communityId);
}