
package com.tmerclub.cloud.multishop.mapper;

import com.tmerclub.cloud.multishop.dto.NoticeDTO;
import com.tmerclub.cloud.multishop.model.Notice;
import com.tmerclub.cloud.multishop.vo.NoticeVO;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 公告
 *
 * @author YXF
 * @date 2020-11-25 17:57:56
 */
public interface NoticeMapper {

    /**
     * 获取公告列表
     * * @param noticeDTO 搜索参数
     * @return 公告列表
     */
    List<NoticeVO> list(@Param("notice") NoticeDTO noticeDTO);

    /**
     * 根据公告id获取公告
     *
     * @param id 公告id
     * @return 公告
     */
    NoticeVO getById(@Param("id") Long id);

    /**
     * 根据公告id改变公告已读状态
     *
     * @param id
     */
    void updateIsLearning(@Param("id") Long id);

    /**
     * 保存公告
     *
     * @param notice 公告
     */
    void save(@Param("notice") Notice notice);

    /**
     * 更新公告
     *
     * @param notice 公告
     */
    void update(@Param("notice") Notice notice);

    /**
     * 根据公告id删除公告
     *
     * @param id
     */
    void deleteById(@Param("id") Long id);

    /**
     * 批量保存公告
     * @param noticeList
     */
    void saveBatch(@Param("noticeList") List<Notice> noticeList);

    /**
     * 根据信息获取
     * @param noticeDTO
     * @return
     */
    List<NoticeVO> listAllByTypeAndShopId(@Param("notice") NoticeDTO noticeDTO);
}
