package com.ruoyi.mall.mapper;

import com.ruoyi.mall.domain.MallAcceptRule;
import com.ruoyi.mall.domain.Vo.CountRuleVO;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 录取原则Mapper接口
 *
 * @author Lsm
 * @date 2023-10-18
 */
public interface MallAcceptRuleMapper
{
    /**
     * 查询录取原则
     *
     * @param acceptRuleId 录取原则主键
     * @return 录取原则
     */
    public MallAcceptRule selectMallAcceptRuleByAcceptRuleId(Long acceptRuleId);


    /**
     * 录取字符串查询
     * @param ruleStr 字符串
     * @return
     */
    public MallAcceptRule selectMallAcceptRuleByAcceptRuleStr(@Param("ruleStr")String ruleStr);

    /**
     * 录取字符串查询
     * @param ruleStr 字符串
     * @return
     */
    public List<MallAcceptRule> selectMallAcceptRuleByAcceptRuleStr2(@Param("ruleStr")String ruleStr);

    /**
     * 录取原则
     * @return
     */
    public List<MallAcceptRule> selectNewAcceptRule();

    /**
     * 专科查询
     * @param ruleStr
     * @return
     */
    public MallAcceptRule selectRuleStr(@Param("ruleStr")String ruleStr);

    /**
     *  查找录取原则
     * @param ruleClass 类型0-本科1-专科
     * @param fullCulture 文化满分
     * @param fullMajor 专业满分
     * @param ruleStr 录取原则字符串
     * @return 结果
     */
    public MallAcceptRule selectMallAcceptRuleByAcceptRule(@Param("ruleClass")Integer ruleClass,
                                                           @Param("fullCulture")Integer fullCulture,
                                                           @Param("fullMajor")Integer fullMajor,
                                                           @Param("ruleStr")String ruleStr) ;

    /**
     * 查询录取原则列表
     *
     * @param mallAcceptRule 录取原则
     * @return 录取原则集合
     */
    public List<MallAcceptRule> selectMallAcceptRuleList(MallAcceptRule mallAcceptRule);

    /**
     * 新增录取原则
     *
     * @param mallAcceptRule 录取原则
     * @return 结果
     */
    public int insertMallAcceptRule(MallAcceptRule mallAcceptRule);

    /**
     * 修改录取原则
     *
     * @param mallAcceptRule 录取原则
     * @return 结果
     */
    public int updateMallAcceptRule(MallAcceptRule mallAcceptRule);

    /**
     * 删除录取原则
     *
     * @param acceptRuleId 录取原则主键
     * @return 结果
     */
    public int deleteMallAcceptRuleByAcceptRuleId(Long acceptRuleId);

    /**
     * 批量删除录取原则
     *
     * @param acceptRuleIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteMallAcceptRuleByAcceptRuleIds(Long[] acceptRuleIds);

    /**
     * 录取规则列表
     * @return 结果
     */
    public List<MallAcceptRule> selectRuleList();

    /**
     * 计算方法-本科计算方法列表
     * @return 结果
     */
    public List<CountRuleVO> selectSendRuleListForCount();

    /**
     * 专科计算方法
     * @return 结果
     */
    public CountRuleVO selectTrainingMethod();

    /**
     * 录取原则列表
     * @param ruleClass 类别(0-本科,1-专科)
     * @return
     */
    public List<CountRuleVO> selectNewAcceptRuleList(@Param("ruleClass")Long ruleClass);
}
