package com.qmth.teachcloud.report.business.service;

import com.qmth.teachcloud.report.business.bean.params.CollegeCombineParams;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;
import java.util.List;
import java.util.concurrent.ExecutionException;

/**
 * @Description: 课程单元操作服务类（课程删除、以课程为单位的改名操作）
 * @Author: CaoZixuan
 * @Date: 2022-02-25
 */
public interface CourseUnitOperateService {

    /**
     * 演示用变更基础课程名
     *
     * @param file     文件
     * @param schoolId 学校id（检测器）
     * @return 结果
     */
    String changeBasicCourse(MultipartFile file, Long schoolId) throws IOException, NoSuchFieldException;

    /**
     * 演示用变更系统机构名
     *
     * @param file     文件
     * @param schoolId 学校id（检测器）
     * @return 结果
     */
    String changeSysOrg(MultipartFile file, Long schoolId) throws IOException, NoSuchFieldException;

    /**
     * 演示用变更用户
     *
     * @param file     文件
     * @param schoolId 学校id（检测器）
     * @return 结果
     */
    String changeSysUser(MultipartFile file, Long schoolId) throws IOException, NoSuchFieldException;

    /**
     * 演示用变更学生
     *
     * @param schoolId 学校id
     */
    void changeStudent(Long schoolId);

    /**
     * 制作真实数据
     */
    void createDemoData() throws ExecutionException, InterruptedException;


    /**
     * 将考察学院id合并到开课学院id
     *
     * @param schoolId                 学校id
     * @param collegeCombineParamsList 学院合并参数集合
     */
    void combineCollegeInspectToTeach(Long schoolId, List<CollegeCombineParams> collegeCombineParamsList);
}
