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.community.ComActDynVO;
|
import com.panzhihua.common.model.vos.screen.DateScreenVO;
|
import com.panzhihua.common.model.vos.screen.DynamicWorkVO;
|
import com.panzhihua.service_community.model.dos.ComActDynDO;
|
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.Map;
|
|
/**
|
* @program: springcloud_k8s_panzhihuazhihuishequ
|
* @description: 社区动态
|
* @author: huang.hongfa weixin hhf9596 qq 959656820
|
* @create: 2020-12-07 14:06
|
**/
|
@Mapper
|
public interface ComActDynDAO extends BaseMapper<ComActDynDO> {
|
@Select("<script> " +
|
"SELECT " +
|
"d.id, " +
|
"d.title, " +
|
"COUNT(u.id)readNum, " +
|
"d.`status`, " +
|
"d.`content`, " +
|
"d.`cover`, " +
|
"d.`type`, " +
|
"d.`cover_mode`, " +
|
"d.is_topping, " +
|
"d.publish_at, " +
|
"d.create_at, " +
|
"ca.name as communityName " +
|
"FROM " +
|
"com_act_dyn d " +
|
"LEFT JOIN com_act_dyn_user u ON d.id = u.dyn_id " +
|
"LEFT JOIN com_act ca ON d.community_id = ca.community_id " +
|
"WHERE 1=1 " +
|
"<if test='comActDynVO.choice == 0 '>" +
|
"and d.community_id=#{comActDynVO.communityId} " +
|
" </if> " +
|
"<if test='comActDynVO.title != null and comActDynVO.title.trim() != ""'>" +
|
"AND d.title like concat(#{comActDynVO.title},'%') " +
|
" </if> " +
|
"<if test='comActDynVO.isTopping != null '>" +
|
"AND d.is_topping = #{comActDynVO.isTopping} " +
|
" </if> " +
|
"<if test='comActDynVO.status != null '>" +
|
"AND d.`status` = #{comActDynVO.status} " +
|
" </if> " +
|
"<if test='comActDynVO.publishAtBegin != null '>" +
|
"AND d.publish_at BETWEEN #{comActDynVO.publishAtBegin} " +
|
"AND #{comActDynVO.publishAtEnd}" +
|
" </if> " +
|
" group by d.id "+
|
" order by d.is_topping desc, d.create_at desc "+
|
"</script>")
|
IPage<ComActDynVO> pageDynamic(Page page, @Param("comActDynVO") ComActDynVO comActDynVO);
|
@Update("update com_act_dyn set `status`=1 WHERE `status`=0 and TIMESTAMPDIFF(MINUTE, SYSDATE(), publish_at)<=0 ")
|
int timedTaskDynStatus();
|
|
@Select("<script> " +
|
"SELECT " +
|
"d.id, " +
|
"d.title, " +
|
"COUNT(u.id)readNum, " +
|
"d.`status`, " +
|
"d.`content`, " +
|
"d.`cover`, " +
|
"d.`type`, " +
|
"d.`cover_mode`, " +
|
"d.is_topping, " +
|
"d.publish_at, " +
|
"d.create_at, " +
|
"ca.name as communityName " +
|
"FROM " +
|
"com_act_dyn d " +
|
"LEFT JOIN com_act_dyn_user u ON d.id = u.dyn_id " +
|
"LEFT JOIN com_act ca ON d.community_id = ca.community_id " +
|
"WHERE " +
|
"d.community_id=#{comActDynVO.communityId} " +
|
"<if test='comActDynVO.title != null and comActDynVO.title.trim() != ""'>" +
|
"AND d.title like concat(#{comActDynVO.title},'%') " +
|
" </if> " +
|
"<if test='comActDynVO.isTopping != null '>" +
|
"AND d.is_topping = #{comActDynVO.isTopping} " +
|
" </if> " +
|
"<if test='comActDynVO.status != null '>" +
|
"AND d.`status` = #{comActDynVO.status} " +
|
" </if> " +
|
"<if test='comActDynVO.type != null '>" +
|
"AND d.type = #{comActDynVO.type} " +
|
" </if> " +
|
"<if test='comActDynVO.publishAtBegin != null '>" +
|
"AND d.publish_at BETWEEN #{comActDynVO.publishAtBegin} " +
|
"AND #{comActDynVO.publishAtEnd}" +
|
" </if> " +
|
" group by d.id "+
|
" order by d.is_topping desc, d.create_at desc "+
|
"</script>")
|
IPage<ComActDynVO> pageDynamicByAdmin(Page page, @Param("comActDynVO") ComActDynVO comActDynVO);
|
|
@Select("SELECT " +
|
" count( cad.id ) AS dynTotal, " +
|
" (select count(id) from com_act_dyn where community_id = #{communityId} and create_at LIKE CONCAT(#{nowDate},'%')) as currentNum " +
|
"FROM " +
|
" com_act_dyn AS cad " +
|
"WHERE " +
|
" community_id = #{communityId}")
|
Map<String, Long> countByCommunityId(@Param("communityId") Long communityId, @Param("nowDate")String nowDate);
|
|
@Select("select create_at as startTime,(select create_at from com_act_dyn where community_id = #{communityId} order by create_at desc LIMIT 1 ) as endTime from com_act_dyn where community_id = #{communityId} order by create_at asc LIMIT 1")
|
DateScreenVO countByAvgCommunityId(@Param("communityId") Long communityId);
|
|
@Select("SELECT " +
|
"(SELECT COUNT(id) FROM com_act_dyn WHERE community_id = #{communityId} AND create_at < #{end}) AS dynTotal, " +
|
"(SELECT COUNT(id) FROM com_act_dyn WHERE community_id = #{communityId} AND #{start} < create_at AND create_at < #{end}) AS dynAdd " +
|
" FROM DUAL")
|
DynamicWorkVO countByTime(@Param("start")String start, @Param("end")String end, @Param("communityId")Long communityId);
|
}
|