package com.ruoyi.system.mapper;

import com.ruoyi.system.domain.PoNews;

import java.util.Date;
import java.util.List;

/**
 * 消息Mapper接口
 * @date 2023-01-15
 */
public interface PoNewsMapper
{
    /**
     * 根据Id查询
     * @param newsId
     * @return
     */
    public PoNews selectPoNewsByNewsId(String newsId);

    /**
     * 分页查询
     * @param poNews
     * @return
     */
    public List<PoNews> selectPoNewsList(PoNews poNews);

    /**
     * 新增
     * @param poNews
     * @return
     */
    public int insertPoNews(PoNews poNews);

    /**
     * 修改
     * @param poNews
     * @return
     */
    public int updatePoNews(PoNews poNews);

    /**
     * 删除
     * @param newsId
     * @return
     */
    public int deletePoNewsByNewsId(String newsId);

    /**
     * 批量删除
     * @param newsIds
     * @return
     */
    public int deletePoNewsByNewsIds(String[] newsIds);

    /**
     * 标题时间都不为空
     * @param title
     * @param newsTimeStart
     * @param newsTimeEnd
     * @return
     */
    List<PoNews> selectPoNewsListByTitleAndNewsTimeStartAndNewsTimeEnd(String title, Date newsTimeStart, Date newsTimeEnd);

    /**
     * 标题不为空时间为空
     * @param title
     * @return
     */
    List<PoNews> selectPoNewsListByTitle(String title);

    /**
     * 标题为空时间不为空
     * @param newsTimeStart
     * @param newsTimeEnd
     * @return
     */
    List<PoNews> selectPoNewsByTime(Date newsTimeStart, Date newsTimeEnd);

    /**
     * 获取详细消息内容
     * @param newsId
     * @return
     */
    PoNews selectContentByNewsId(String newsId);

    /**
     * 检验消息标题是否重复
     * @param newsTitle
     * @return
     */
    PoNews checkPostNewsTitleUnique(String newsTitle);

    /**
     * 检验消息图片是否重复
     * @param image
     * @return
     */
    PoNews checkPostNewsImageUnique(String image);



    /**
     * 查询用户Id
     *
     * @param newsId
     * @return
     */
    List<PoNews> selectUserByNewsId(String newsId);


    /**
     * 校验时间是否相同
     * @param createTime
     * @return
     */
    PoNews checkPostNewsTimeUnique(Date createTime);

}

