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.vos.community.ComActActivityVO;
|
import com.panzhihua.common.model.vos.partybuilding.PageActivityMembersVO;
|
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.List;
|
|
/**
|
* @program: springcloud_k8s_panzhihuazhihuishequ
|
* @description: 社区活动
|
* @author: huang.hongfa weixin hhf9596 qq 959656820
|
* @create: 2020-12-07 13:59
|
**/
|
@Mapper
|
public interface ComActActivityDAO extends BaseMapper<ComActActivityDO> {
|
// @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("<script> " +
|
"SELECT \n" +
|
"a.id,\n" +
|
"a.activity_name,\n" +
|
"u.`name` sponsorName,\n" +
|
"a.activity_addr,\n" +
|
"a.`status`,\n" +
|
"a.publish_at,\n" +
|
"a.begin_at,\n" +
|
"a.cover,\n" +
|
"a.end_at,\n" +
|
"a.volunteer_max,\n" +
|
"count(if(s.is_volunteer=1,s.id,null))volunteer_now,\n"+
|
"count(if(s.is_volunteer=0,s.id,null))participant_now,\n"+
|
"a.participant_max,\n" +
|
"a.sign_up_begin,\n" +
|
"a.sign_up_end\n" +
|
"FROM\n" +
|
"com_act_activity a \n" +
|
"join sys_user u on a.sponsor_id=u.user_id\n" +
|
"left join com_act_act_sign s on a.id=s.activity_id \n"+
|
" where a.community_id=#{comActActivityVO.communityId}" +
|
"<if test='comActActivityVO.activityName != null and comActActivityVO.activityName.trim() != ""'>" +
|
" and a.activity_name = #{comActActivityVO.activityName} \n" +
|
" </if> " +
|
"<if test='comActActivityVO.status != null and comActActivityVO.status !=0'>" +
|
"AND a.`status` = #{comActActivityVO.status} \n" +
|
" </if> " +
|
"<if test='comActActivityVO.beginAt != null '>" +
|
"AND a.begin_at <![CDATA[ >= ]]> #{comActActivityVO.beginAt} AND a.end_at <![CDATA[ <= ]]> #{comActActivityVO.endAt} \n" +
|
" </if> " +
|
" group by a.id "+
|
"</script>")
|
IPage<ComActActivityVO> pageActivity( Page page, @Param("comActActivityVO") ComActActivityVO comActActivityVO);
|
|
@Select("SELECT \n" +
|
"u.name sponsorName,\n" +
|
"count(if(s.is_volunteer=1,s.id,null))volunteer_now,\n"+
|
"count(if(s.is_volunteer=0,s.id,null))participant_now,\n"+
|
"a.* \n" +
|
"FROM \n" +
|
"com_act_activity a \n" +
|
"join sys_user u on a.sponsor_id=u.user_id \n"+
|
"left join com_act_act_sign s on a.id=s.activity_id \n"+
|
"where a.id=#{id} \n"+
|
" group by a.id "
|
)
|
ComActActivityVO inforActivity(Long id);
|
|
@Select("SELECT\n" +
|
"a.* \n" +
|
"FROM\n" +
|
"com_act_act_sign s\n" +
|
"JOIN com_act_activity a ON s.activity_id = a.id \n" +
|
"WHERE\n" +
|
"s.user_id = #{comActActivityVO.sponsorId} \n" +
|
"ORDER BY\n" +
|
"s.create_at DESC")
|
IPage<ComActActivityVO> pageMyActivity(Page page, @Param("comActActivityVO") ComActActivityVO comActActivityVO);
|
|
@Select("select t.activity_name,t.id,t.end_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 (\n" +
|
"SELECT \n" +
|
"a.id,\n" +
|
"a.activity_name,\n" +
|
"COUNT(case when s.is_volunteer=1 then s.id else null end )volunteernum,\n" +
|
"COUNT(case when s.is_volunteer=0 then s.id else null end)usernum,\n" +
|
"a.participant_min,\n" +
|
"a.volunteer_min\n" +
|
"FROM\n" +
|
"com_act_activity a \n" +
|
"LEFT JOIN com_act_act_sign s on a.id=s.activity_id \n" +
|
"WHERE\n" +
|
"a.`status` in(3,4) and DATEDIFF(SYSDATE(),a.sign_up_end)>=0\n" +
|
"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\n" +
|
"<foreach item=\"item\" collection=\"longs\" separator=\",\" open=\"(\" close=\")\" index=\"\">\n"+
|
"#{item}\n"+
|
"</foreach>\n"+
|
"</script>")
|
int updateIdBatch(@Param("longs") List<Long> longs);
|
|
@Update("update com_act_activity set `status`=2 where `status`=1 and DATEDIFF(SYSDATE(),publish_at)>=0")
|
int updateStatusToNotBegin();
|
|
@Update("update com_act_activity set `status`=3 where `status`=2 and DATEDIFF(SYSDATE(),sign_up_begin)>=0")
|
int updateStatusToBeginSign();
|
|
@Update("update com_act_activity set `status`=(if(DATEDIFF(SYSDATE(),end_at)>=0,5,4)) where `status`=3 and DATEDIFF(SYSDATE(),begin_at)>=0")
|
int updateStatusToBeginActiveOrEnd();
|
}
|