帮我注释下代码Override public List getQuestionsByBankIdInteger bankId String username 协同过滤 获取历史考试中错题 User user = userServicegetUserByUsernameusername; QueryWrapperExamRecord wrapper = new QueryWr
// 通过传入的题库id和用户名获取题目列表,使用协同过滤的方法
@Override
public List
// 获取该用户的历史考试记录
User user = userService.getUserByUsername(username);
QueryWrapper<ExamRecord> wrapper = new QueryWrapper<>();
wrapper.eq("user_id", user.getId());
List<ExamRecord> examRecords = examRecordMapper.selectList(wrapper);
// 根据历史考试记录中的错题记录查询错题列表
List<Integer> quesIds = new ArrayList<>();
for (ExamRecord examRecord : examRecords) {
String errorQuestionIds = examRecord.getErrorQuestionIds();
if (!StringUtils.isEmpty(errorQuestionIds)) {
String[] split = errorQuestionIds.split(",");
for (String s : split) {
quesIds.add(Integer.valueOf(s));
}
}
}
// 获取题库信息
QuestionBank bank = questionBankMapper.selectById(bankId);
// 根据题库和错题记录查询单选、多选、判断题列表
List<Question> questions = null;
if (CollectionUtils.isEmpty(quesIds)) {
questions = questionMapper.selectList(
new QueryWrapper<Question>().like("qu_bank_name",
bank.getBankName()).in("qu_type", 1, 2, 3));
} else {
questions = questionMapper.selectList(
new QueryWrapper<Question>().like("qu_bank_name",
bank.getBankName()).in("qu_type", 1, 2, 3)
.in("id", quesIds));
}
return questions;
原文地址: http://www.cveoy.top/t/topic/eAbr 著作权归作者所有。请勿转载和采集!