package cn.iocoder.yudao.module.inspection.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import cn.iocoder.yudao.module.inspection.entity.InspectionNews;
import cn.iocoder.yudao.module.inspection.entity.InspectionNewsAssociation;
import cn.iocoder.yudao.module.inspection.entity.InspectionNewsComment;


import java.util.List;

/**
 * 【请填写功能名称】Service接口
 *
 * @author ruoyi
 * @date 2023-08-03
 */
public interface IInspectionNewsService extends IService<InspectionNews>
{
    /**
     * 查询【请填写功能名称】
     *
     * @param id 【请填写功能名称】主键
     * @return 【请填写功能名称】
     */
    public InspectionNews selectInspectionNewsById(Long id);

    /**
     * 查询【请填写功能名称】列表
     *
     * @param inspectionNews 【请填写功能名称】
     * @return 【请填写功能名称】集合
     */
    public IPage<InspectionNews> selectInspectionNewsList(Page<InspectionNews> page, InspectionNews inspectionNews);
    List<InspectionNews> appHomeNewsList();
    List<String> listGfClass(String type);

    /**
     * 新增【请填写功能名称】
     *
     * @param inspectionNews 【请填写功能名称】
     * @return 结果
     */
    public int insertInspectionNews(InspectionNews inspectionNews);

    /**
     * 修改【请填写功能名称】
     *
     * @param inspectionNews 【请填写功能名称】
     * @return 结果
     */
    public int updateInspectionNews(InspectionNews inspectionNews);

    /**
     * 批量删除【请填写功能名称】
     *
     * @param ids 需要删除的【请填写功能名称】主键集合
     * @return 结果
     */
    public int deleteInspectionNewsByIds(Long[] ids);

    /**
     * 删除【请填写功能名称】信息
     *
     * @param id 【请填写功能名称】主键
     * @return 结果
     */
    public int deleteInspectionNewsById(Long id);

    /**
     * 点赞/阅读/收藏
     * @param id
     * @param type
     * @param status
     * @return
     */
    void likeOrCollect(Long id, String type);

    /**
     * 新增评论
     * @param inspectionNewsComment
     * @return
     */
    void addInspectionNewsComment(InspectionNewsComment inspectionNewsComment);

    void addReadNum(Long id,Long objectId);
    InspectionNews getDetail(Long newsId);
    IPage<InspectionNews> collectionNews(Page<InspectionNews> page, String newsName);
    Integer newMsgNum(Long partnerId);
    IPage<InspectionNews> msgList(Page<InspectionNews> page, Long partnerId);

}
