package com.ruoyi.mall.mapper;

import java.util.List;
import com.ruoyi.mall.domain.ReportIntelligence;
import com.ruoyi.mall.domain.Vo.MajorItemVo;
import com.ruoyi.mall.domain.Vo.ReportIntelligenceVo;
import org.apache.ibatis.annotations.Param;

/**
 * 志愿报告条目Mapper接口
 * 
 * @author ruoyi
 * @date 2023-10-28
 */
public interface ReportIntelligenceMapper 
{
    /**
     * 查询志愿报告条目
     * 
     * @param itemId 志愿报告条目主键
     * @return 志愿报告条目
     */
    public ReportIntelligence selectReportIntelligenceByItemId(Long itemId);

    /**
     * 查询志愿报告条目列表
     * 
     * @param reportIntelligence 志愿报告条目
     * @return 志愿报告条目集合
     */
    public List<ReportIntelligence> selectReportIntelligenceList(ReportIntelligence reportIntelligence);

    /**
     * 查询志愿条目展示列表 根据报告id
     */
    List<ReportIntelligenceVo> selectReportItemVoList(ReportIntelligence reportIntelligence);

    /**
     * 新增志愿报告条目
     * 
     * @param reportIntelligence 志愿报告条目
     * @return 结果
     */
    public int insertReportIntelligence(ReportIntelligence reportIntelligence);

    /**
     * 批量新增志愿报告条目
     */
    public int insertBatch(List<ReportIntelligenceVo> reportIntelligence);

    /**
     * 修改志愿报告条目
     * 
     * @param reportIntelligence 志愿报告条目
     * @return 结果
     */
    public int updateReportIntelligence(ReportIntelligence reportIntelligence);

    /** 批量更新志愿条目sort by itemId
     *
     * @param update
     * @return
     */
    int updateItemsSortByItemIds(List<ReportIntelligence> update);

    /**
     * 删除志愿报告条目
     * 
     * @param itemId 志愿报告条目主键
     * @return 结果
     */
    public int deleteReportIntelligenceByItemId(Long itemId);

    /**根据报告id 批量删除志愿条目*/
    int deleteByReportId(Long reportId);

    /**
     * 批量删除志愿报告条目
     * 
     * @param itemIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteReportIntelligenceByItemIds(Long[] itemIds);

    /**
     * 查询现年 已有报名人数  分文理科
     */
    List<MajorItemVo> reportNum(ReportIntelligence reportIntelligence);

    /**
     * 查询当前用户+批次的所有已报志愿
     */
    List<ReportIntelligenceVo> getUserItemList(ReportIntelligence reportIntelligence);
}
