package com.ruoyi.dxp.service;

import java.util.List;

import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.dxp.domain.ServiceShare;
import com.ruoyi.dxp.dto.CompareShareServiceResultDto;
import com.ruoyi.dxp.dto.AuditDto;
import com.ruoyi.dxp.dto.ServiceShareSave;

/**
 * 服务共享Service接口
 * 
 * @author jy
 * @date 2022-11-29
 */
public interface IServiceShareService 
{
    /**
     * 查询服务共享
     * 
     * @param id 服务共享主键
     * @return 服务共享
     */
    public ServiceShare selectServiceShareById(Long id);

    /**
     * 查询服务共享列表
     * 
     * @param serviceShare 服务共享
     * @return 服务共享集合
     */
    public List<ServiceShare> selectServiceShareList(ServiceShare serviceShare);

    /**
     * 查询热门服务共享列表
     *
     * @param serviceShare 服务共享
     * @return 服务共享集合
     */
    public List<ServiceShare> selectHotServiceShareList(ServiceShare serviceShare);

    /**
     * 新增服务共享
     * 
     * @param serviceShare 服务共享
     * @return 结果
     */
    public int insertServiceShare(ServiceShare serviceShare);

    /**
     * 修改服务共享
     * 
     * @param serviceShare 服务共享
     * @return 结果
     */
    public int updateServiceShare(ServiceShare serviceShare);

    /**
     * 删除服务共享信息
     * 
     * @param id 服务共享主键
     * @return 结果
     */
    public AjaxResult deleteServiceShareById(Long id);

    /**
     * 检查共享服务是否存在变化
     *
     * @param id 共享服务id
     * @return 变化结果
     */
    public CompareShareServiceResultDto checkChange(Long id) throws Exception;

    /**
     * 保存共享服务
     * @param serviceShareSave 保存对象
     * @return 结果
     */
    public AjaxResult save(ServiceShareSave serviceShareSave);

    /**
     * 挂载
     * @param serviceIds 整合服务id
     * @return
     */
    public void mount(List<Long> serviceIds) throws Exception;

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

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