package com.ssj.service.kmt.service;


import com.ssj.bean.kmt.kmt.domain.KmtExerciseBook;
import com.ssj.framework.core.common.service.BaseService;

import java.util.List;

/**
 * @author Mount Liu
 * @date 2020/04/14
 */
public interface KmtExerciseBookService extends BaseService<KmtExerciseBook, String> {
    /**
     * 查找相同的练习册
     *
     * @param bookName
     * @param grade
     * @param courseName
     * @param semester
     * @param version
     * @param userYear
     * @param bookType
     * @return
     */
    KmtExerciseBook findSameBook(String bookName, String grade, String courseName, int semester, int version, int userYear, int bookType);

    void updateAnswerCorrecterIdById(String teacherId, String exerciseBookId);

    void updateAnswerCorrecterIdByIds(String teacherId, List<String> exerciseBookIds);

    /**
     * 分配题目加工人
     * @param teacherId
     * @param exerciseBookIds
     */
    void updateHandleUserIdByIds(String teacherId, List<String> exerciseBookIds);

    /**
     * 分配题目审核人
     * @param teacherId
     * @param exerciseBookIds
     */
    void updateAuditingUserId(String teacherId, List<String> exerciseBookIds);

    /**
     * 分配解析加工人
     * @param teacherId
     * @param exerciseBookIds
     */
    void updateAnalysisUserId(String teacherId, List<String> exerciseBookIds);

    /**
     * 分配解析审核人
     * @param teacherId
     * @param exerciseBookIds
     */
    void updateAnalysisAuditerId(String teacherId, List<String> exerciseBookIds);


    /**
     * 更新kmt_exercise_book版本数据
     *
     * @param type    0：更新versionName为null没有版本的数据；1：更新全部versionName版本数据
     * @param subject 更新指定科目的，为null则不指定
     * @param version 更新指定版本的，需要联合subject，为null则不指定
     */
    void updateVersion(int type, String subject, Integer version);

    void updateExerciseLib();

    /**
     * 合并重复练习册数据
     */
    void mergeSameExerciseBooks();

    void updateKmtExerciseBookByKmtExerciseModify();

    /**
     * 更新kmt_exercise_book.status
     *
     * @param exerciseBookId 练习册id
     * @param status status更新为？
     */
    void updateExerciseBookStatus(String exerciseBookId, String status);
}
