hjl
2024-07-19 13fce7e5526de855f36e62fa0abb6864a15ef818
ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/service/ITStudyService.java
@@ -3,9 +3,9 @@
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.study.domain.*;
import com.ruoyi.study.dto.StudyWeekDTO;
import com.ruoyi.study.vo.*;
import java.util.List;
import java.util.Map;
/**
 * <p>
@@ -22,19 +22,19 @@
     *
     * @param type    所属类型
     * @param quarter 季度
     * @param userId  用户id
     * @return 列表
     */
    List<StudyWeekDTO> weekList(Integer type, Integer quarter);
    List<StudyWeekDTO> weekList(Integer type, Integer quarter, Integer userId);
    /**
     * 获取学习进度及学习时长等信息
     *
     * @param userId 用户id
     * @param week   周目
     * @param day    所属day
     * @param studyRecord 学习进度
     * @param week        所属周目
     * @return 学习信息
     */
    TUserStudy studySchedule(String userId, Integer week, Integer day);
    TUserStudy studySchedule(TUserStudy studyRecord, Integer week);
    /**
     * 自主学习1-听音选图
@@ -44,7 +44,7 @@
     * @param studyListens 数据集合
     * @return 单个题组下所包含的所有图片及语音
     */
    Map<String, Object> listenSelectPicture(Integer week, Integer day, List<TStudyListen> studyListens);
    StudyListenResultVO listenSelectPicture(Integer week, Integer day, List<TStudyListen> studyListens);
    /**
     * 自主游戏1-超级听力
@@ -52,8 +52,9 @@
     * @param difficulty 难度(0入门、1中级、2高级)
     * @param week       所属周目
     * @param game       游戏信息
     * @param userid     用户id
     */
    void checkDifficulty(Integer difficulty, Integer week, TGame game);
    void checkDifficulty(Integer difficulty, Integer week, TGame game, Integer userid);
    /**
     * 自主学习2-看图选音
@@ -63,27 +64,27 @@
     * @param lookList 数据集合
     * @return 单个题组下所包含的所有图片及语音
     */
    Map<String, Object> pictureSelectVoice(Integer week, Integer day, List<TStudyLook> lookList);
    StudyLookResultVO pictureSelectVoice(Integer week, Integer day, List<TStudyLook> lookList);
    /**
     * 自主学习3-归纳排除
     *
     * @param week 周目
     * @param day  所属day
     * @param week          周目
     * @param day           所属day
     * @param inductionList 归纳排除
     * @return 题目信息
     */
    Map<String, Object> induceExclude(Integer week, Integer day, List<TStudyInduction> inductionList);
    StudyInductionResultVO induceExclude(Integer week, Integer day, List<TStudyInduction> inductionList);
    /**
     * 自主学习4-有问有答
     *
     * @param week 周目
     * @param day  所属day
     * @param week       周目
     * @param day        所属day
     * @param answerList 有问有答
     * @return 题目信息
     */
    Map<String, Object> questionsAndAnswers(Integer week, Integer day, List<TStudyAnswer> answerList);
    StudyAnswerResultVO questionsAndAnswers(Integer week, Integer day, List<TStudyAnswer> answerList);
    /**
     * 自主学习5-音图相配
@@ -93,6 +94,50 @@
     * @param pair 音图相配
     * @return 题目信息
     */
    Map<String, Object> pictureMateVoice(Integer week, Integer day, TStudyPair pair);
    StudyPairResultVO pictureMateVoice(Integer week, Integer day, List<TStudyPair> pair);
    /**
     * 计算用户当前week的学习进度
     *
     * @param result 用户学习信息
     * @param week   周目
     * @return 当前week学习进度
     */
    int computeSchedule(TUserStudy result, Integer week);
    /**
     * 获取本次学习可获得总积分
     *
     * @param studyIds 题组id
     * @param type     类型
     * @param accuracy 正确率
     * @return 积分
     */
    int computeTotalIntegral(List<String> studyIds, Integer type, Integer accuracy);
    /**
     * 计算剩余学习周目
     *
     * @param studyRecord 学习进度信息
     * @param studyList   学习配置列表
     * @return 剩余周目
     */
    int residueWeek(TUserStudy studyRecord, List<TStudy> studyList);
    /**
     * 校验超级听力是否通过
     *
     * @param game   游戏信息
     * @param userid 用户信息
     */
    void checkClearance(TGame game, Integer userid);
    /**
     * 获取当前周目游戏难度
     *
     * @param studyRecord 学习进度
     * @param week        周目
     * @return 难度
     */
    Integer userGameDifficulty(TUserStudy studyRecord, Integer week);
}