CeDo
2021-05-07 de91c84954157bb9f8b6d938cbe0b1b51fb6e65d
springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/dao/ComBpActivityDAO.java
@@ -3,12 +3,14 @@
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.LoginUserInfoVO;
import com.panzhihua.common.model.vos.partybuilding.PageActivityMembersVO;
import com.panzhihua.common.model.vos.partybuilding.PartyBuildingActivityVO;
import com.panzhihua.service_dangjian.model.dos.ComBpActivityDO;
import com.panzhihua.service_dangjian.model.dos.ComPbActivityDO;
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;
@@ -19,26 +21,36 @@
 * @create: 2020-11-30 17:59
 **/
@Mapper
public interface ComBpActivityDAO extends BaseMapper<ComBpActivityDO> {
public interface ComBpActivityDAO extends BaseMapper<ComPbActivityDO> {
    //    @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\n" +
            "a.id activityId,\n" +
            "a.NAME,\n" +
            "a.id,\n" +
            "a.name,\n" +
            "a.address,\n" +
            "a.status,\n" +
            "a.create_at releaseTimeBegin,\n" +
            "a.activity_time_begin,\n" +
            "a.activity_time_end,\n" +
            "a.enroll_time_begin,\n" +
            "a.release_time,\n" +
            "a.enroll_time_end \n" +
            "FROM\n" +
            "com_pb_activity_member m\n" +
            "JOIN com_bp_activity a ON m.activity_id = a.id \n" +
            "JOIN com_pb_activity a ON m.activity_id = a.id \n" +
            "WHERE\n" +
            "m.member_id = 1 \n" +
            "m.member_id = #{id} \n" +
            "<if test='name != null and name.trim() != &quot;&quot;'>" +
            "AND a.`name` = #{name} \n" +
            "AND a.`name` like concat (#{name},'%')  \n" +
            " </if> " +
            "<if test='releaseTimeBegin != null '>" +
            "AND a.create_at BETWEEN #{releaseTimeBegin} \n" +
@@ -54,33 +66,89 @@
    @Select("<script> " +
            "SELECT\n" +
            "id,\n" +
            "NAME,\n" +
            "address,\n" +
            "STATUS,\n" +
            "release_time,\n" +
            "activity_time_begin,\n" +
            "activity_time_end,\n" +
            "enroll_time_begin,\n" +
            "enroll_time_end \n" +
            "a.id,\n" +
            "a.name,\n" +
            "a.address,\n" +
            "a.status,\n" +
            "a.release_time,\n" +
            "a.activity_time_begin,\n" +
            "a.activity_time_end,\n" +
            "a.enroll_time_begin,\n" +
            "a.cover,\n" +
            "if(u.type=3 ,'管理员',u.name)createByName,\n" +
            "a.enroll_time_end \n" +
            "FROM\n" +
            "com_bp_activity \n" +
            "where community_id=#{partyBuildingActivityVO.communityId}\n"+
            "com_pb_activity a\n" +
            "left join sys_user u on a.create_by=u.user_id \n" +
            "where a.community_id=#{partyBuildingActivityVO.communityId}\n" +
            " and a.`status` not in(5,6) \n"+
            "<if test='partyBuildingActivityVO.name != null and partyBuildingActivityVO.name.trim() != &quot;&quot;'>" +
            "and name = #{partyBuildingActivityVO.name} \n" +
            "and a.name = #{partyBuildingActivityVO.name} \n" +
            " </if> " +
            "<if test='partyBuildingActivityVO.status != null and partyBuildingActivityVO.status != 0'>" +
            "AND `status` = #{partyBuildingActivityVO.status} \n" +
            "<if test='partyBuildingActivityVO.status != null and partyBuildingActivityVO.status != 0 and partyBuildingActivityVO.isAppliets ==null '>" +
            "AND a.`status` = #{partyBuildingActivityVO.status} \n" +
            " </if> " +
            "<if test='partyBuildingActivityVO.status != null and partyBuildingActivityVO.status != 0 and partyBuildingActivityVO.isAppliets !=null and partyBuildingActivityVO.isAppliets==1'>" +
            "AND a.`status` in (3,4) \n" +
            " </if> " +
            "<if test='partyBuildingActivityVO.releaseTimeBegin != null '>" +
            "AND release_time BETWEEN #{partyBuildingActivityVO.releaseTimeBegin} \n" +
            "AND a.release_time BETWEEN #{partyBuildingActivityVO.releaseTimeBegin} \n" +
            "AND #{partyBuildingActivityVO.releaseTimeEnd} \n" +
            " </if> " +
            "<if test='partyBuildingActivityVO.activityTimeBegin != null '>" +
            "AND activity_time_begin BETWEEN #{partyBuildingActivityVO.activityTimeBegin} \n" +
            "AND a.activity_time_begin BETWEEN #{partyBuildingActivityVO.activityTimeBegin} \n" +
            "AND #{partyBuildingActivityVO.activityTimeEnd}" +
            " </if> " +
            "order by create_at desc "+
            "order by a.create_at desc " +
            "</script>")
    IPage<PageActivityMembersVO> pageActivity(Page page, @Param("partyBuildingActivityVO") PartyBuildingActivityVO partyBuildingActivityVO);
    IPage<PartyBuildingActivityVO> pageActivity(Page page, @Param("partyBuildingActivityVO") PartyBuildingActivityVO partyBuildingActivityVO);
    @Select("select t.id from (\n" +
            "SELECT \n" +
            "a.participation_lowest_num,\n" +
            "a.name,\n" +
            "a.id,\n" +
            "COUNT(m.id)num\n" +
            "FROM\n" +
            "com_pb_activity a\n" +
            "LEFT JOIN com_pb_activity_member m ON a.id = m.activity_id\n" +
            "WHERE a.`status` in (3,4) and TIMESTAMPDIFF(MINUTE,SYSDATE(),a.enroll_time_end)<=0\n" +
            "GROUP BY a.id)t where t.num<t.participation_lowest_num")
    List<Long> selectTimedTaskPartyBuildingActivity();
    @Select("SELECT \n" +
            "u.user_id\n" +
            "FROM\n" +
            "com_pb_activity_member m\n" +
            "JOIN com_pb_member r on m.member_id=r.id\n" +
            "join sys_user u on r.id_card=u.id_card and u.type=1 \n" +
            "where m.activity_id=#{activityId}")
    List<Long> selectTimedTaskPartyBuildingActivityUserids(Long activityId);
    @Update("<script> " +
            "update com_pb_activity set `status`=6 WHERE id in \n" +
            "<foreach item=\"item\" collection=\"ids\" separator=\",\" open=\"(\" close=\")\" index=\"\"> \n" +
            "#{item}\n" +
            "</foreach>\n" +
            "</script>")
    int updateBatchIds(@Param("ids") List<Long> ids);
    @Update("update com_pb_activity set status=2 where `status`=1 and TIMESTAMPDIFF(MINUTE,SYSDATE(),release_time)<=0")
    int updateStatusToNotBegin();
    @Update("update com_pb_activity set status=3 where `status`=2 and TIMESTAMPDIFF(MINUTE,SYSDATE(),enroll_time_begin)<=0")
    int updateStatusToSign();
    @Update("update com_pb_activity set status=5 where `status` in (3,4) and TIMESTAMPDIFF(MINUTE,SYSDATE(),enroll_time_end)<=0")
    int updateStatusToActiveOrEnd();
    @Select("select type,name from sys_user where user_id=#{createBy}")
    LoginUserInfoVO selectUserInfoByUserId(Long createBy);
    /**
     * 根据社区id查询社区名称
     * @param communityId   社区id
     * @return  社区名字
     */
    @Select("select name from com_act where community_id=#{communityId}")
    String selectCommunityNameByCommunityId(Long communityId);
}