无关风月
2024-07-19 da17bcdbbea86029461447634ea0371a489da19a
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
package com.ruoyi.study.service;
 
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;
 
/**
 * <p>
 * 学习类型 听 周目配置 服务类
 * </p>
 *
 * @author 无关风月
 * @since 2024-04-26
 */
public interface ITStudyService extends IService<TStudy> {
 
    /**
     * 查询周目列表
     *
     * @param type    所属类型
     * @param quarter 季度
     * @param userId  用户id
     * @return 列表
     */
    List<StudyWeekDTO> 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<TStudyListen> studyListens);
 
    /**
     * 自主游戏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 单个题组下所包含的所有图片及语音
     */
    StudyLookResultVO pictureSelectVoice(Integer week, Integer day, List<TStudyLook> lookList);
 
    /**
     * 自主学习3-归纳排除
     *
     * @param week          周目
     * @param day           所属day
     * @param inductionList 归纳排除
     * @return 题目信息
     */
    StudyInductionResultVO induceExclude(Integer week, Integer day, List<TStudyInduction> inductionList);
 
    /**
     * 自主学习4-有问有答
     *
     * @param week       周目
     * @param day        所属day
     * @param answerList 有问有答
     * @return 题目信息
     */
    StudyAnswerResultVO questionsAndAnswers(Integer week, Integer day, List<TStudyAnswer> answerList);
 
    /**
     * 自主学习5-音图相配
     *
     * @param week 周目
     * @param day  所属day
     * @param pair 音图相配
     * @return 题目信息
     */
    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);
}