package com.ruoyi.dxp.service;

import java.util.List;

import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.dxp.domain.DataShare;
import com.ruoyi.dxp.dto.CompareShareDataResultDto;
import com.ruoyi.dxp.dto.AuditDto;
import com.ruoyi.dxp.dto.DataShareBatch;
import com.ruoyi.dxp.dto.ShareDataSaveDto;

/**
 * 共享数据Service接口
 *
 * @author jy
 * @date 2022-11-21
 */
public interface IDataShareService {
    /**
     * 查询共享数据
     *
     * @param id 共享数据主键
     * @return 共享数据
     */
    public DataShare selectDataShareById(Long id);

    /**
     * 查询共享数据列表
     *
     * @param dataShare 共享数据
     * @return 共享数据集合
     */
    public List<DataShare> selectDataShareList(DataShare dataShare);

    /**
     * 查询热门共享数据列表
     *
     * @param dataShare 共享数据
     * @return 共享数据集合
     */
    public List<DataShare> selectHotDataShareList(DataShare dataShare);

    /**
     * 新增共享数据
     *
     * @param dataShare 共享数据
     * @return 结果
     */
    public AjaxResult insertDataShare(DataShare dataShare);

    /**
     * 批量添加共享数据
     *
     * @param dataShareBatch 批量对象
     * @return 结果
     */
    public AjaxResult batchDataShare(DataShareBatch dataShareBatch);

    /**
     * 修改共享数据
     *
     * @param dataShare 共享数据
     * @return 结果
     */
    public int updateDataShare(DataShare dataShare);

    /**
     * 删除共享数据信息
     *
     * @param id 共享数据主键
     * @return 结果
     */
    public AjaxResult deleteDataShareById(Long id);

    /**
     * 检查共享数据是否存在变化
     *
     * @param id 共享数据主键
     * @return 变化结果
     */
    public CompareShareDataResultDto checkChange(Long id) throws Exception;

    /**
     * 保存共享数据
     *
     * @param dto 共享数据
     * @return 保存结果
     */
    public AjaxResult save(ShareDataSaveDto dto);

    /**
     * 审核
     * @param auditDto 审核对象
     * @return 审核结果
     */
    public AjaxResult audit(AuditDto auditDto);

    /**
     * 增加浏览次数
     * @param id 文献id
     */
    public void addViewCount(Long id);
}
