package com.ruoyi.study.service; import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.common.core.domain.R; import com.ruoyi.study.domain.*; import com.ruoyi.study.dto.StudyWeekDTO; import com.ruoyi.study.vo.*; import java.util.List; /** *

* 学习类型 听 周目配置 服务类 *

* * @author 无关风月 * @since 2024-04-26 */ public interface ITStudyService extends IService { /** * 查询周目列表 * * @param type 所属类型 * @param quarter 季度 * @param userId 用户id * @return 列表 */ List weekList(Integer type, Integer quarter, Integer userId); /** * 获取学习进度及学习时长等信息 * * @param studyRecord 学习进度 * @param week 所属周目 * @return 学习信息 */ TUserStudy studySchedule(TUserStudy studyRecord, Integer week); /** * 自主学习1-听音选图 * * @param week 周目 * @param day 所属day * @param studyListens 数据集合 * @return 单个题组下所包含的所有图片及语音 */ StudyListenResultVO listenSelectPicture(Integer week, Integer day, List studyListens,Integer userId); /** * 自主游戏1-超级听力 * * @param difficulty 难度(0入门、1中级、2高级) * @param week 所属周目 * @param game 游戏信息 * @param userid 用户id */ void checkDifficulty(Integer difficulty, Integer week, TGame game, Integer userid); /** * 自主学习2-看图选音 * * @param week 周目 * @param day 所属day * @param lookList 数据集合 * @return 单个题组下所包含的所有图片及语音 */ R pictureSelectVoice(Integer week, Integer day, List lookList, Integer userId); /** * 自主学习3-归纳排除 * * @param week 周目 * @param day 所属day * @param inductionList 归纳排除 * @return 题目信息 */ R induceExclude(Integer week, Integer day, List inductionList,Integer userId); /** * 自主学习4-有问有答 * * @param week 周目 * @param day 所属day * @param answerList 有问有答 * @return 题目信息 */ R questionsAndAnswers(Integer week, Integer day, List answerList,Integer userId); /** * 自主学习5-音图相配 * * @param week 周目 * @param day 所属day * @param pair 音图相配 * @return 题目信息 */ R pictureMateVoice(Integer week, Integer day, List pair,Integer userId); /** * 计算用户当前week的学习进度 * * @param result 用户学习信息 * @param week 周目 * @return 当前week学习进度 */ int computeSchedule(TUserStudy result, Integer week); /** * 获取本次学习可获得总积分 * * @param studyIds 题组id * @param type 类型 * @param accuracy 正确率 * @return 积分 */ int computeTotalIntegral(List studyIds, Integer type, Integer accuracy); /** * 计算剩余学习周目 * * @param studyRecord 学习进度信息 * @param studyList 学习配置列表 * @return 剩余周目 */ int residueWeek(TUserStudy studyRecord, List studyList); /** * 校验超级听力是否通过 * * @param game 游戏信息 * @param userid 用户信息 */ void checkClearance(TGame game, Integer userid); /** * 获取当前周目游戏难度 * * @param studyRecord 学习进度 * @param week 周目 * @return 难度 */ Integer userGameDifficulty(TUserStudy studyRecord, Integer week); }