package com.yonge.cooleshow.bbs.dao;

import java.util.List;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yonge.cooleshow.bbs.dto.BbsPrivateMessageDto;
import com.yonge.cooleshow.bbs.dto.MessageReadDto;
import com.yonge.cooleshow.bbs.dto.PrivateMessagePersonVo;
import org.apache.ibatis.annotations.Param;
import com.yonge.cooleshow.bbs.entity.BbsPrivateMessage;
import com.yonge.cooleshow.bbs.vo.BbsPrivateMessageVo;
import com.yonge.cooleshow.bbs.dto.search.BbsPrivateMessageSearch;


public interface BbsPrivateMessageDao extends BaseMapper<BbsPrivateMessage> {
	/**
	 * 查询详情
	 *
	 * @author liweifan
	 * @date 2022-06-09 17:27:11
	 * @return: com.yonge.cooleshow.bbs.vo.BbsPrivateMessageVo
	 */
	BbsPrivateMessageVo detail(@Param("id") Long id);

	/**
	 * 分页查询
	 *
	 * @author liweifan
	 * @date 2022-06-09 17:27:11
	 * @return: com.yonge.cooleshow.bbs.vo.BbsPrivateMessageVo
	 */
	List<BbsPrivateMessageVo> selectPage(@Param("page") IPage page, @Param("param") BbsPrivateMessageSearch bbsPrivateMessage);

	/**
	 * 私信人员列表
	 *
	 * @param page  分页
	 * @param query 查询条件
	 * @return
	 */
	List<PrivateMessagePersonVo> selectPersonPage(@Param("page") IPage<PrivateMessagePersonVo> page, @Param("query") BbsPrivateMessageSearch query);

	/**
	 * 设置已读
	 *
	 * @param readDto
	 * @return
	 */
	boolean read(@Param("readDto") MessageReadDto readDto);

	/**
	 * 私信人员已读消息列表
	 */
	List<BbsPrivateMessage> selectMessagePage(@Param("page") IPage<BbsPrivateMessage> page, @Param("query") BbsPrivateMessageSearch query);

	/**
	 * 未读消息列表
	 *
	 * @param query
	 * @return
	 */
	List<BbsPrivateMessage> selectUnreadMessage(@Param("query") BbsPrivateMessageSearch query);
}