Commit 1c033c10 by 邹磊浩

修改代码

parent 805dbde1
......@@ -83,16 +83,18 @@ public class DbCollectListController extends BaseController {
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody DbCollectListBo bo) {
bo.setUserId(getUserId());
return toAjax(iDbCollectListService.insertByBo(bo));
}
/**
* 修改收藏
* 【小程序】修改收藏
*/
@Log(title = "收藏", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody DbCollectListBo bo) {
bo.setUserId(getUserId());
return toAjax(iDbCollectListService.updateByBo(bo));
}
......
......@@ -2,7 +2,6 @@ package com.ruoyi.school.paper.controller;
import java.util.List;
import java.util.Arrays;
import java.util.concurrent.TimeUnit;
import cn.dev33.satoken.annotation.SaIgnore;
import com.ruoyi.school.paper.domain.request.ErrorTopicRequest;
......
......@@ -24,31 +24,26 @@ public class DbCollectListBo extends BaseEntity {
/**
* 主键id
*/
@NotNull(message = "主键id不能为空", groups = { EditGroup.class })
private Long id;
/**
* 用户id
*/
@NotNull(message = "用户id不能为空", groups = { AddGroup.class, EditGroup.class })
private Long userId;
/**
* 题目id
*/
@NotNull(message = "题目id不能为空", groups = { AddGroup.class, EditGroup.class })
private Long questionBankId;
/**
* 备注
*/
@NotBlank(message = "备注不能为空", groups = { AddGroup.class, EditGroup.class })
private String remark;
/**
* 状态:0正常,1删除
*/
@NotNull(message = "状态:0正常,1删除不能为空", groups = { AddGroup.class, EditGroup.class })
private Integer status;
......
package com.ruoyi.school.paper.domain.vo;
import com.ruoyi.school.paper.domain.DbQuestionBankAnswerTestPaper;
import lombok.Data;
import java.io.Serializable;
......@@ -12,6 +13,11 @@ import java.util.List;
public class ErrorTopicListDetailVo implements Serializable {
/**
* 题目编号
*/
private Long questionBankId;
/**
* 类别名称
*/
private String typeName;
......@@ -22,6 +28,11 @@ public class ErrorTopicListDetailVo implements Serializable {
private String intensity;
/**
* 阶段名称
*/
private String phaseName;
/**
* 习题种类
*/
private String species;
......@@ -51,5 +62,5 @@ public class ErrorTopicListDetailVo implements Serializable {
/**
* 选项标签集合
*/
private List<OptionVo> options;
private List<DbQuestionBankAnswerTestPaper> options;
}
package com.ruoyi.school.paper.domain.vo;
import com.ruoyi.school.paper.domain.DbQuestionBankAnswerTestPaper;
import com.sun.org.apache.xpath.internal.objects.XString;
import lombok.Data;
import java.io.Serializable;
......@@ -71,10 +70,15 @@ public class MyErrorTopicListVo implements Serializable {
/**
* 选项标签集合
*/
private List<DbQuestionBankAnswerTestPaperVo> options;
private List<DbQuestionBankAnswerTestPaper> options;
/**
* 优秀答案
*/
private List<GoodsAnswersVo> goodsAnswers;
/**
* 习题种类:1填空,2选择,3解答
*/
private Long species;
}
......@@ -27,7 +27,7 @@ import org.apache.ibatis.annotations.Mapper;
public interface DbErrorListMapper extends BaseMapperPlus<DbErrorListMapper, DbErrorList, DbErrorListVo> {
Page<ErrorTopicListVo> findErrorTopicPage(IPage<ErrorTopicListVo> iPage, @Param("request") ErrorTopicRequest request);
List<ErrorTopicListDetailVo> findErrorTopicListDetailById(@Param("id") Long id);
ErrorTopicListDetailVo getErrorTopicListDetailById(@Param("id") Long id);
Page<MyErrorTopicListVo> findMyErrorTopicListVoPage(IPage<ErrorTopicListVo> iPage, @Param("request") ErrorTopicRequest request);
}
......@@ -43,25 +43,10 @@ public class DbErrorListServiceImpl implements IDbErrorListService {
*/
@Override
public ErrorTopicListDetailVo queryById(Long id) {
List<ErrorTopicListDetailVo> errorTopicListDetailVoList = baseMapper.findErrorTopicListDetailById(id);
if (CollectionUtils.isNotEmpty(errorTopicListDetailVoList)) {
List<OptionVo> list = errorTopicListDetailVoList.stream()
.map(errorTopicListDetailVo -> {
OptionVo optionVo = new OptionVo();
optionVo.setOptionTag(errorTopicListDetailVo.getOptionTag());
optionVo.setOptionContent(errorTopicListDetailVo.getOptionContent());
return optionVo;
})
.collect(Collectors.toList());
ErrorTopicListDetailVo firstErrorTopicListDetailVo = errorTopicListDetailVoList.get(0);
ErrorTopicListDetailVo errorTopicListDetailVo = new ErrorTopicListDetailVo();
errorTopicListDetailVo.setTopic(firstErrorTopicListDetailVo.getTopic());
errorTopicListDetailVo.setIntensity(firstErrorTopicListDetailVo.getIntensity());
errorTopicListDetailVo.setSpecies(firstErrorTopicListDetailVo.getSpecies());
errorTopicListDetailVo.setTypeName(firstErrorTopicListDetailVo.getTypeName());
errorTopicListDetailVo.setRightAnswers(firstErrorTopicListDetailVo.getRightAnswers());
errorTopicListDetailVo.setOptions(list);
ErrorTopicListDetailVo errorTopicListDetailVo = baseMapper.getErrorTopicListDetailById(id);
if (null != errorTopicListDetailVo) {
List<DbQuestionBankAnswerTestPaper> dbQuestionBankAnswerTestPapers = dbQuestionBankAnswerTestPaperMapper.selectList(Wrappers.<DbQuestionBankAnswerTestPaper>lambdaQuery().eq(DbQuestionBankAnswerTestPaper::getQuestionBankId, errorTopicListDetailVo.getQuestionBankId()));
errorTopicListDetailVo.setOptions(dbQuestionBankAnswerTestPapers);
return errorTopicListDetailVo;
}
return null;
......@@ -149,13 +134,25 @@ public class DbErrorListServiceImpl implements IDbErrorListService {
Page<MyErrorTopicListVo> myErrorTopicListVoPage = baseMapper.findMyErrorTopicListVoPage(pageQuery.build(), request);
List<MyErrorTopicListVo> records = myErrorTopicListVoPage.getRecords();
if (CollectionUtils.isNotEmpty(records)) {
records.forEach(myErrorTopicListVo -> {
//根据每到题目查询对应的选项
//拿到对应选项填充至每道错题当中
Optional.ofNullable(dbQuestionBankAnswerTestPaperMapper.selectVoList(Wrappers.<DbQuestionBankAnswerTestPaper>lambdaQuery().eq(DbQuestionBankAnswerTestPaper::getQuestionBankId, myErrorTopicListVo.getQuestionBankId())))
.ifPresent(myErrorTopicListVo::setOptions);
//获取题目集ID
List<Long> questionBankIds = records.stream()
.map(MyErrorTopicListVo::getQuestionBankId)
.collect(Collectors.toList());
//查询所有选项并根据题目id分组
Map<Long, List<DbQuestionBankAnswerTestPaper>> optionsMap = dbQuestionBankAnswerTestPaperMapper
.selectList(Wrappers.<DbQuestionBankAnswerTestPaper>lambdaQuery()
.in(DbQuestionBankAnswerTestPaper::getQuestionBankId, questionBankIds))
.stream()
.collect(Collectors.groupingBy(DbQuestionBankAnswerTestPaper::getQuestionBankId));
//选项set至每道题目中
records.parallelStream().forEach(myErrorTopicListVo -> {
List<DbQuestionBankAnswerTestPaper> options = optionsMap.get(myErrorTopicListVo.getQuestionBankId());
myErrorTopicListVo.setOptions(options);
});
}
return TableDataInfo.build(myErrorTopicListVoPage);
}
}
......@@ -24,16 +24,11 @@
dqbtp.topic as topic
FROM
db_error_list AS del
LEFT JOIN db_test_paper_record AS dtpr ON del.paper_id = dtpr.test_paper_id
LEFT JOIN db_test_paper_record_detail AS dtprd ON dtpr.id = dtprd.record_id
LEFT JOIN db_question_bank_test_paper AS dqbtp ON dqbtp.test_paper_id = del.paper_id
LEFT JOIN db_question_bank AS dqbtp ON dqbtp.id = del.question_bank_id
<where>
<if test="request.categoryId != null">
dqbtp.category_id = #{request.categoryId}
</if>
<if test="request.species != null">
and dqbtp.species = #{request.species}
</if>
<if test="request.type != null">
and dqbtp.type = #{request.type}
</if>
......@@ -42,22 +37,19 @@
</if>
</where>
</select>
<select id="findErrorTopicListDetailById" resultType="com.ruoyi.school.paper.domain.vo.ErrorTopicListDetailVo"
<select id="getErrorTopicListDetailById" resultType="com.ruoyi.school.paper.domain.vo.ErrorTopicListDetailVo"
parameterType="java.lang.Long">
SELECT dqt.type_value AS typeName,
dqbtp.intensity AS intensity,
dqbtp.species AS species,
dqbtp.topic AS topic,
dqbtp.right_answers AS rightAnswers,
dpbatp.option_tag AS optionTag,
dpbatp.option_content AS optionContent
dqb.intensity AS intensity,
dqb.species AS species,
dqb.topic AS topic,
dqb.right_answers AS rightAnswers,
sd.dept_name AS phaseName,
del.question_bank_id AS questionBankId
FROM db_error_list AS del
LEFT JOIN db_test_paper_record AS dtpr ON del.paper_id = dtpr.test_paper_id
LEFT JOIN db_test_paper_record_detail AS dtprd ON dtpr.id = dtprd.record_id
LEFT JOIN db_question_bank_answer_test_paper AS dpbatp
ON dtprd.question_bank_id = dpbatp.question_bank_id
LEFT JOIN db_question_bank_test_paper AS dqbtp ON dqbtp.test_paper_id = del.paper_id
LEFT JOIN db_question_type AS dqt ON dqt.id = dqbtp.category_id
LEFT JOIN db_question_bank dqb ON dqb.id = del.question_bank_id
LEFT JOIN sys_dept sd ON sd.dept_id = dqb.phase_id
LEFT JOIN db_question_type dqt ON dqt.id = dqb.category_id
WHERE del.id = #{id}
</select>
<select id="findMyErrorTopicListVoPage" resultType="com.ruoyi.school.paper.domain.vo.MyErrorTopicListVo">
......@@ -66,7 +58,8 @@
dtprd.question_bank_id AS questionBankId,
dqbtp.topic AS topic,
dtprd.answer AS answer,
dtprd.correct_answer AS correctAnswer
dtprd.correct_answer AS correctAnswer,
dqbtp.species AS species
FROM
db_error_list AS del
LEFT JOIN db_test_paper_record AS dtpr ON del.record_id = dtpr.id
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment