package com.panzhihua.service_community.dao; import java.util.Date; import java.util.List; import java.util.Map; import com.panzhihua.common.model.dtos.property.CommonPage; import com.panzhihua.common.model.vos.community.*; 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.PageBaseDTO; import com.panzhihua.common.model.dtos.community.bigscreen.work.ScreenActActivityListDTO; import com.panzhihua.common.model.vos.community.ComActActivityStatisticsVO; import com.panzhihua.common.model.vos.community.ComActActivityTypeVO; import com.panzhihua.common.model.vos.community.ComActActivityVO; import com.panzhihua.common.model.vos.community.CommunityActivitiesVO; import com.panzhihua.common.model.vos.community.PartyActivityStatics; import com.panzhihua.common.model.vos.community.PartyActivityTypeChart; import com.panzhihua.common.model.vos.community.StatisticsCommVO; import com.panzhihua.common.model.vos.community.screen.work.ActActivityListVO; import com.panzhihua.common.model.vos.screen.CarouselInfoVO; import com.panzhihua.service_community.model.dos.ComActActivityDO; /** * @program: springcloud_k8s_panzhihuazhihuishequ * @description: 社区活动 * @author: huang.hongfa weixin hhf9596 qq 959656820 * @create: 2020-12-07 13:59 **/ @Mapper public interface ComActActivityDAO extends BaseMapper { // @Select("") // @Select("") IPage 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 " // + "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 " // + "left join com_act ca on a.community_id=ca.community_id " + "where a.id=#{id} " + " group by a.id ") /** * 活动详情 * @param id * @return */ ComActActivityVO inforActivity(@Param("id") Long id); @Select("SELECT " + "a.* " + "FROM " + "(select * from com_act_act_sign where `status` = 1) 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 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 (select * from com_act_act_sign where `status` = 1) 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 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 (select * from com_act_act_sign where `status` = 1) 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 selectTimedTaskActActivity(); @Update("") int updateIdBatch(@Param("longs") List longs); @Update("update com_act_activity set `status`=3 where `status`=1 and TIMESTAMPDIFF(MINUTE,SYSDATE(),begin_at )<=0") int updateStatusToNotBegin(); @Update("update com_act_activity set `status`=3 where `status`=2 and TIMESTAMPDIFF(MINUTE,SYSDATE(),sign_up_begin)<=0") int updateStatusToBeginSign(); @Update("update com_act_activity set `status`=5 where `status` in (3,4) and TIMESTAMPDIFF(MINUTE,SYSDATE(),end_at)<=0") int updateStatusToBeginActiveOrEnd(); @Select("select id from com_act_activity where `status`=3 and TIMESTAMPDIFF(MINUTE,SYSDATE(),sign_up_end)<=0") List selectBeginIds(); // @Select("") /** * 分页查询社区活动 * @param page * @param comActActivityVO * @return */ IPage pageActivityCommunityBack(@Param("page") Page page, @Param("comActActivityVO") ComActActivityVO comActActivityVO); @Select("select id from com_act_activity where `status` in (3,4) and TIMESTAMPDIFF(MINUTE,SYSDATE(),end_at)<=0") List 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") 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 (select * from com_act_act_sign where `status` = 1) 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 caas.sign_identity != 3 and caa.community_id = ${communityId}) as commonPeopleNum, " + " (select count(caas.user_id) from (select * from com_act_act_sign where `status` = 1) 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 caas.sign_identity = 3 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 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 screenActivity(@Param("communityId") Long communityId, @Param("pageSize") Integer pageSize); @Select("SELECT cover FROM com_act_activity WHERE community_id = ${communityId}") List listImg(@Param("communityId") Long communityId); @Select("") IPage getScreenActActivityList(Page page, @Param("actActivityListDTO") ScreenActActivityListDTO actActivityListDTO); @Select("SELECT " + " count( caas.id ) AS volunteerCount,( " + " SELECT " + " count( caas1.id ) " + " FROM " + " (select * from com_act_act_sign where `status` = 1) 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 " + " (select * from com_act_act_sign where `status` = 1) 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 getIndexTopActivityList(@Param("communityId") Long communityId); /** * 获取活动类型(目前只有志愿者活动需要获取) * @param communityId * @param type * @return */ List listActivityType(@Param("communityId") Long communityId, @Param("type") Integer type); /** * 添加活动类型 * @param comActActivityTypeVO * @return */ int addActivityType(@Param("comActActivityTypeVO") ComActActivityTypeVO comActActivityTypeVO); /** * 居民活动分类统计数据 * @param communityId * @param isResidentAct * @return */ List selectResidentActHistogramData(@Param("communityId") Long communityId, @Param("isResidentAct") boolean isResidentAct); /** * 居民活动分类人口参与统计 * @param communityId * @param isResidentAct * @return */ List getIndexResidentActBaseData(@Param("communityId") Long communityId, @Param("isResidentAct") boolean isResidentAct); /** * 获取活动新增折线数据 * @param communityId * @param isResidentAct * @return */ List getActAddPolylineData(@Param("communityId") Long communityId, @Param("isResidentAct") boolean isResidentAct); /** * 获取活动累计折线数据 * @param communityId * @param isResidentAct * @param date * @return */ StatisticsCommVO getActTotalPolylineData(@Param("communityId") Long communityId, @Param("isResidentAct") boolean isResidentAct, @Param("date") String date); IPage indexActList(@Param("page") Page page, @Param("pageBaseDTO") PageBaseDTO pageBaseDTO, @Param("isResidentAct") boolean isResidentAct); /** * 查询项目活动列表 * @param page * @return */ IPage selectProjectActivity(Page page); /** * 根据社工id查询活动列表 * @param page * @param commonPage * @return */ IPage selectActivityBySocialWorker(Page page,@Param("commonPage") CommonPage commonPage); /** * [方法描述] 根据社区ID查询所属城市所在区区域代码, * * @param communityId * 社区ID * @return String 区域code * @author manailin * @date 2022/2/17 10:09 */ String getActBelongRegionCode(@Param("communityId") Long communityId); /** * 查询党员活动数量 * @param communityId * @return */ PartyActivityStatics selectActivityStatics(@Param("communityIds") List communityIds); /** * 党员活动饼状图 * @param communityId * @return */ List selectActivityChart(@Param("communityIds") List communityIds); /** * 党员活动柱状图 * @param communityId * @param year * @param date * @return */ Integer selectActivityLine(@Param("communityIds") List communityIds,@Param("year")String year,@Param("date")String date); /** * 分页查询党员详情活动 * @param page * @param commonPage * @return */ IPage partyMemberDetail(Page page,@Param("commonPage") CommonPage commonPage); /** * 导出党员详情活动 * @param commonPage * @return */ List exportPartyMemberDetail(@Param("commonPage") CommonPage commonPage); List selectListByRelationId(@Param("relationId") Long relationId,@Param("date")String date); /** * 查询进行中活动 * @param communityId 社区id * @return 活动列表 */ List selectListByCommunityId(@Param("communityId") Long communityId,@Param("date") String date,@Param("phone")String phone); /** * 获取项目活动 * @param page * @param comActActivityVO * @return */ IPage pageProjectActivity(@Param("page") Page page, @Param("comActActivityVO") ComActActivityVO comActActivityVO); List selectOpenIdByActivityId(Long id); /** * 大屏社区活动列表 * @param page * @return */ IPage pageActivityBigScreen(@Param("page") Page page); }