package com.ruoyi.syzy.service;

import java.util.List;
import java.util.Map;
import java.util.Set;

import com.ruoyi.syzy.criteria.XkxcCriteria;
import com.ruoyi.syzy.domain.BBusiWishXkcx;
import com.ruoyi.syzy.dto.XkxcSchemeDTO;

/**
 * 院校专业分数线Service接口
 * 
 * @author mingxue
 * @date 2021-08-18
 */
public interface IBBusiWishXkcxService {
    /**
     * 查询院校专业分数线
     * 
     * @param id 院校专业分数线ID
     * @return 院校专业分数线
     */
    public BBusiWishXkcx selectBBusiWishXkcxById(Long id);
    public List<Integer> selectBBusiWishXkcxYears(String location);
    public Map<String,Object> selectBBusiWishXkcxCourse();
    /**
     * 查询院校专业分数线列表
     * 
     * @param bBusiWishXkcx 院校专业分数线
     * @return 院校专业分数线集合
     */
    public List<BBusiWishXkcx> selectBBusiWishXkcxList(BBusiWishXkcx bBusiWishXkcx);
    public List<BBusiWishXkcx> selectBBusiWishXkcxRandom(Integer count);

    /**
     * 选科查询
     * 
     * @param params
     * @return
     */
    public List<BBusiWishXkcx> listByCourses(XkxcCriteria criteria);
    public List<BBusiWishXkcx> listByMarjors(XkxcCriteria criteria);
    public List<Long> selectUniversityIds(XkxcCriteria criteria);

    /**
     * 已选科目
     * 
     * @return
     */
    public List<BBusiWishXkcx> listCoursesByUser(XkxcCriteria criteria);

    /**
     * 新增院校专业分数线
     * 
     * @param bBusiWishXkcx 院校专业分数线
     * @return 结果
     */
    public int insertBBusiWishXkcx(BBusiWishXkcx bBusiWishXkcx);

    /**
     * 修改院校专业分数线
     * 
     * @param bBusiWishXkcx 院校专业分数线
     * @return 结果
     */
    public int updateBBusiWishXkcx(BBusiWishXkcx bBusiWishXkcx);

    /**
     * 批量删除院校专业分数线
     * 
     * @param ids 需要删除的院校专业分数线ID
     * @return 结果
     */
    public int deleteBBusiWishXkcxByIds(Long[] ids);

    /**
     * 删除院校专业分数线信息
     * 
     * @param id 院校专业分数线ID
     * @return 结果
     */
    public int deleteBBusiWishXkcxById(Long id);

    /**
     * 添加收藏
     * 
     * @param refId
     */
    public void addCollect(Long refId);

    /**
     * 取消收藏
     * 
     * @param refId
     */
    public void removeCollect(Long refId);

    /**
     * @param idList
     * @return
     */
    public List<XkxcSchemeDTO> listSchemeBySubmitId(List<String> idList);

    /**
     * 我的选科方案
     * 
     * @return
     */
    public List<XkxcSchemeDTO> listMyScheme();

}
