package com.ruoyi.hezhi.service;

import com.ruoyi.hezhi.domain.TbExamSubjectAnswer;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

/**
 * 考试题目答案选项Service接口
 *
 * @author ruoyi
 * @date 2024-11-04
 */
public interface ITbExamSubjectAnswerService
{
    /**
     * 查询考试题目答案选项
     *
     * @param examSubjectAnswerId 考试题目答案选项主键
     * @return 考试题目答案选项
     */
    public TbExamSubjectAnswer selectTbExamSubjectAnswerByExamSubjectAnswerId(Long examSubjectAnswerId);

    /**
     * 查询考试题目答案选项列表
     *
     * @param tbExamSubjectAnswer 考试题目答案选项
     * @return 考试题目答案选项集合
     */
    public List<TbExamSubjectAnswer> selectTbExamSubjectAnswerList(TbExamSubjectAnswer tbExamSubjectAnswer);

    /**
     * 新增考试题目答案选项
     *
     * @param tbExamSubjectAnswer 考试题目答案选项
     * @return 结果
     */
    public int insertTbExamSubjectAnswer(TbExamSubjectAnswer tbExamSubjectAnswer);

    /**
     * 修改考试题目答案选项
     *
     * @param tbExamSubjectAnswer 考试题目答案选项
     * @return 结果
     */
    public int updateTbExamSubjectAnswer(TbExamSubjectAnswer tbExamSubjectAnswer);

    /**
     * 批量删除考试题目答案选项
     *
     * @param examSubjectAnswerIds 需要删除的考试题目答案选项主键集合
     * @return 结果
     */
    public int deleteTbExamSubjectAnswerByExamSubjectAnswerIds(Long[] examSubjectAnswerIds);

    /**
     * 删除考试题目答案选项信息
     *
     * @param examSubjectAnswerId 考试题目答案选项主键
     * @return 结果
     */
    public int deleteTbExamSubjectAnswerByExamSubjectAnswerId(Long examSubjectAnswerId);

    /**
     * 批量新增考试题目答案选项
     *
     * @param list 考试题目答案选项
     * @return 结果
     */
    public int batchInsertTbExamSubjectAnswer(List<TbExamSubjectAnswer> list);

    /**
     * 查询答案ID集合和答案集合
     *
     * @param examSubjectId 考试题目主键ID
     * @param examSubjectNo 考试题目编号
     * @return 结果
     */
    public Map<String, Object> selectAnswerIdsAndAnswer(Long examSubjectId, String examSubjectNo);

    /**
     * 查询考试题目答案选项列表（考试题目编号）
     *
     * @param examSubjectNo 考试题目编号
     * @return 考试题目答案选项集合
     */
    public List<TbExamSubjectAnswer> selectTbExamSubjectAnswerListBy(String examSubjectNo);

    /**
     * 批量删除考试题目答案选项信息（考试题目编号）
     *
     * @param examSubjectNo 考试题目编号
     * @return 结果
     */
    public int batchDeleteTbExamSubjectAnswerByExamSubjectNo(String examSubjectNo);

    /**
     * 论述题分数
     *
     * @param examSubjectNo 考试题目编号
     * @param myAnswer 答案
     * @return 结果
     */
    public BigDecimal getDiscussScore(String examSubjectNo, String myAnswer);
}
