package com.qmth.jkserver.service;

import com.qmth.jkserver.params.callApi.SaveExamParams;
import com.qmth.jkserver.params.callApi.SaveStudentParams;
import com.qmth.jkserver.params.callApi.SaveSubjectParams;

import java.io.IOException;
import java.util.List;
import java.util.Map;

/**
 * @Description: 请求云阅卷接口处理接口
 * @Author: CaoZixuan
 * @Date: 2021-05-08
 */
public interface CallYunMarkApiService {

    /**
     * 根据考试id或考试编码调用云阅卷学生成绩接口
     *
     * @param examId   考试id
     * @param examCode 考试编号
     * @return 学生成绩
     */
    List<Map> callStudentScoreApi(Long examId, String examCode, Map<String, String> secretMap, Long schoolId) throws IOException;

    /**
     * 根据机考数据中心考试计划参数调用云阅卷考试创建接口
     *
     * @param saveExamParams 保存考试参数
     * @return 考试id
     */
    int callExamSaveApi(SaveExamParams saveExamParams, Map<String, String> secretMap, Long schoolId) throws IOException, IllegalAccessException;

    /**
     * 根据机考数据中心考生数据提取的科目参数调用云阅卷科目创建接口
     *
     * @param saveSubjectParams 新增/编辑项目参数
     * @return 更新的时间
     */
    String callSubjectSaveApi(SaveSubjectParams saveSubjectParams, Map<String, String> secretMap, Long schoolId) throws IOException, IllegalAccessException;

    /**
     * 根据机考数据中心考生数据提供的考生参数调用云阅卷考生创建/编辑接口
     *
     * @param saveStudentParams 新增/编辑考生数据
     * @return 更新的时间
     */
    String callStudentSaveApi(SaveStudentParams saveStudentParams, Map<String, String> secretMap, Long schoolId) throws IOException, IllegalAccessException;

    /**
     * 根据机考数据中心数据和所传的对象类型，对应上传云阅卷的各种附件
     *
     * @param obj 参数对象
     * @return 是否成功
     */
    boolean callFileUploadApi(Object obj, Map<String, String> secretMap, Long schoolId) throws IllegalAccessException, IOException;
}
