Commit 3674ae68 by zhengyunfei

答题记录详情列表修改

新增审批阅卷列表接口
parent 556759aa
......@@ -43,7 +43,7 @@ public class DbTestPaperRecordController extends BaseController {
private final IDbTestPaperRecordService iDbTestPaperRecordService;
/**
* 【PC】 审批阅卷阶段列表
* 【PC】 审批阅卷班级列表
*/
@GetMapping("/getPhaseList")
public TableDataInfo<DbTestPaperVo> getPhaseList(DbTestPaperBo bo, PageQuery pageQuery) {
......
......@@ -42,7 +42,7 @@ public class DbTestPaperBo extends BaseEntity {
/**
* 阶段id
*/
@NotNull(message = "阶段id不能为空", groups = {AddGroup.class, EditGroup.class})
// @NotNull(message = "阶段id不能为空", groups = {AddGroup.class, EditGroup.class})
private Long phaseId;
/**
......@@ -54,9 +54,9 @@ public class DbTestPaperBo extends BaseEntity {
/**
* 强度:1基础,2中等,3提高(多个中间用逗号分割)
*/
@NotBlank(message = "强度不能为空", groups = {AddGroup.class, EditGroup.class})
// @NotBlank(message = "强度不能为空", groups = {AddGroup.class, EditGroup.class})
private String intensity;
private List<String> intensitys;
private List<Integer> intensitys;
/**
* 总分:100,150
......@@ -75,5 +75,5 @@ public class DbTestPaperBo extends BaseEntity {
@NotNull(message = "状态:0正常,1删除不能为空", groups = { EditGroup.class })
private Integer status;
private String nickName;
}
......@@ -94,7 +94,7 @@ public class DbTestPaperRecordDetailVo {
private String righAnswersPic;
@TableField(exist = false)
private List<DbQuestionBankAnswerTestPaperVo> answers;
private List<DbQuestionBankAnswerTestPaperVo> options;
@TableField(exist = false)
private List<GoodsAnswersVo> goodsAnswers;
......
......@@ -72,5 +72,13 @@ public class DbTestPaperVo {
@ExcelProperty(value = "状态:0正常,1删除")
private Integer status;
/**
* 阶段班级
*/
private String phaseClass;
/**
* 用户昵称
*/
private String nickName;
}
......@@ -11,5 +11,5 @@ public class GoodsAnswersVo {
private String goodsAnswer;
private String userName;
private String nickName;
}
......@@ -22,7 +22,12 @@ public interface DbTestPaperRecordMapper extends BaseMapperPlus<DbTestPaperRecor
Page<DbTestPaperRecordVo> getTestPaperlist(Page<Object> build, @Param("bo") DbTestPaperRecordBo bo);
/**
* pd段 审批阅卷阶段列表
* pc段 审批阅卷班级列表
*/
Page<DbTestPaperVo> getPhaseList(Page<Object> build, @Param("bo") DbTestPaperBo bo);
/**
* 审批阅卷学生列表
*/
Page<DbTestPaperVo> getClassList(Page<Object> build, @Param("bo") DbTestPaperBo bo);
}
......@@ -61,7 +61,7 @@ public interface IDbTestPaperRecordService {
DbTestPaperRecord getOne(Wrapper<DbTestPaperRecord> wrapper);
/**
* 【PC】 审批阅卷阶段列表
* 【PC】 审批阅卷班级列表
*/
TableDataInfo<DbTestPaperVo> getPhaseList(DbTestPaperBo bo, PageQuery pageQuery);
......
......@@ -44,7 +44,6 @@ public class DbTestPaperRecordDetailServiceImpl implements IDbTestPaperRecordDet
*/
@Override
public TableDataInfo<DbTestPaperRecordDetailVo> queryPageList(DbTestPaperRecordDetailBo bo, PageQuery pageQuery) {
Page<DbTestPaperRecordDetailVo> result = baseMapper.queryPageList(pageQuery.build(), bo);
return TableDataInfo.build(result);
}
......
......@@ -137,7 +137,7 @@ public class DbTestPaperRecordServiceImpl implements IDbTestPaperRecordService {
}
/**
* 审批阅卷阶段列表【PC】
* 审批阅卷班级列表【PC】
*/
@Override
public TableDataInfo<DbTestPaperVo> getPhaseList(DbTestPaperBo bo, PageQuery pageQuery) {
......@@ -150,6 +150,7 @@ public class DbTestPaperRecordServiceImpl implements IDbTestPaperRecordService {
*/
@Override
public TableDataInfo<DbTestPaperVo> getClassList(DbTestPaperBo bo, PageQuery pageQuery) {
return null;
Page<DbTestPaperVo> result = baseMapper.getClassList(pageQuery.build(), bo);
return TableDataInfo.build(result);
}
}
......@@ -2,6 +2,7 @@ package com.ruoyi.school.paper.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import com.baomidou.dynamic.datasource.annotation.Slave;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
......@@ -24,6 +25,7 @@ import com.ruoyi.school.paper.service.IDbTestPaperService;
import com.ruoyi.system.service.ISysDeptService;
import com.ruoyi.system.service.ISysUserService;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.ArrayUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
......@@ -37,6 +39,7 @@ import java.util.stream.Collectors;
* @author zyf
* @date 2023-07-20
*/
@Slf4j
@RequiredArgsConstructor
@Service
public class DbTestPaperServiceImpl implements IDbTestPaperService {
......@@ -151,10 +154,12 @@ public class DbTestPaperServiceImpl implements IDbTestPaperService {
@Transactional(rollbackFor = Exception.class)
public Boolean randomGeneration(DbTestPaperBo bo) {
DbTestPaper add = BeanUtil.toBean(bo, DbTestPaper.class);
add.setIntensity(String.join(",", bo.getIntensitys()));
List<String> stringList = bo.getIntensitys().stream().map(String::valueOf).collect(Collectors.toList());
add.setIntensity(String.join(",", stringList));
// 根据班级id获取阶段信息
SysDept phase = deptService.getParent(bo.getClassId());
add.setPhaseId(phase.getDeptId());
bo.setPhaseId(phase.getDeptId());
baseMapper.insert(add);
// 从redis中获取所有题目
List<DbQuestionBank> dbQuestionBanks = JsonUtils.parseArray(RedisUtils.getCacheObject(DEFAULT_QUESTIOBN_BANK_KEY), DbQuestionBank.class);
......@@ -162,15 +167,15 @@ public class DbTestPaperServiceImpl implements IDbTestPaperService {
Map<Integer, List<DbQuestionBank>> collect = dbQuestionBanks.stream()
.filter(bank -> bank.getCategoryId().equals(bo.getCategoryId())
&& bank.getPhaseId().equals(bo.getPhaseId())
&& ArrayUtils.contains(bo.getIntensity().split(","), bank.getIntensity())
&& bo.getIntensitys().contains(bank.getIntensity())
).collect(Collectors.groupingBy(DbQuestionBank::getSpecies));
// 根据习题种类分组
// 选择题
List<DbQuestionBank> select = collect.get("2");
List<DbQuestionBank> select = collect.get(2);
// 填空题
List<DbQuestionBank> gapFilling = collect.get("1");
List<DbQuestionBank> gapFilling = collect.get(1);
// 解答题
List<DbQuestionBank> resolve = collect.get("3");
List<DbQuestionBank> resolve = collect.get(3);
// 随机筛选题目
List<DbQuestionBankTestPaper> papers = new ArrayList<>();
List<DbQuestionBankTestPaper> selectList = null;
......@@ -191,7 +196,7 @@ public class DbTestPaperServiceImpl implements IDbTestPaperService {
}
questionBankTestPaperMapper.insertBatch(papers);
this.saveSelectListOptions(add.getId());
return null;
return true;
}
/**
......@@ -226,7 +231,7 @@ public class DbTestPaperServiceImpl implements IDbTestPaperService {
* @return
*/
private List<DbQuestionBankTestPaper> generatePaper(List<DbQuestionBank> list, int num, Integer totalPoints, Long paperId) {
System.out.println("系统正在随机抽取题目生成试卷,这可能需要一段时间,请耐心等候···");
log.info("系统正在随机抽取题目生成试卷,这可能需要一段时间,请耐心等候···");
HashSet<DbQuestionBankTestPaper> paper = new HashSet<>();//用来存储题目,set集合去重复
//这个while循环用来生成不重复的一套题目
while (paper.size() != num) {
......
......@@ -21,43 +21,52 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<resultMap type="com.ruoyi.school.paper.domain.vo.DbTestPaperRecordDetailVo" id="TestPaperRecordDetailResult">
<result property="topic" column="topic"/>
<result property="questionBankId" column="question_bank_id"/>
<result property="answer" column="answer"/>
<result property="answerPic" column="answers_pic"/>
<result property="score" column="score"/>
<result property="correctAnswer" column="correctAnswer"/>
<result property="righAnswersPic" column="right_answers_pic"/>
<collection property="answers" ofType="com.ruoyi.school.paper.domain.vo.DbQuestionBankAnswerTestPaperVo">
<collection property="options" javaType="java.util.List" column="question_bank_id" select="getOptionList" ofType="com.ruoyi.school.paper.domain.vo.DbQuestionBankAnswerTestPaperVo">
<result property="optionTag" column="option_tag"/>
<result property="optionContent" column="option_content"/>
</collection>
<collection property="goodsAnswers" ofType="com.ruoyi.school.paper.domain.vo.GoodsAnswersVo">
<collection property="goodsAnswers" javaType="java.util.List" column="question_bank_id" select="getGoodsAnserList" ofType="com.ruoyi.school.paper.domain.vo.GoodsAnswersVo">
<result property="goodsAnswer" column="goods_answer"/>
<result property="userName" column="user_name"/>
<result property="nickName" column="nick_name"/>
</collection>
</resultMap>
<select id="queryPageList" resultMap="TestPaperRecordDetailResult">
SELECT dqbatp.topic,
dqbatp.right_answers as correctAnswer,
SELECT
dqbatp.topic,
dtprd.question_bank_id,
dqbatp.right_answers AS correctAnswer,
dqbatp.right_answers_pic,
dtprd.answer,
dtprd.answers_pic,
dtprd.score,
d.option_tag,
d.option_content,
m.answer goods_answer,
m.user_name
FROM db_test_paper_record_detail dtprd
dtprd.score
FROM
db_test_paper_record_detail dtprd
LEFT JOIN db_question_bank_test_paper dqbatp ON dtprd.question_bank_id = dqbatp.id
LEFT JOIN db_question_bank_answer_test_paper d ON dtprd.question_bank_id = d.question_bank_id
LEFT JOIN (SELECT a.answer,
su.user_name,
a.question_bank_id
FROM db_test_paper_record_detail a
WHERE
dtprd.record_id = #{bo.recordId}
</select>
<select id="getOptionList" resultType="com.ruoyi.school.paper.domain.vo.DbQuestionBankAnswerTestPaperVo">
select option_tag, option_content from db_question_bank_answer_test_paper where question_bank_id = #{question_bank_id}
</select>
<select id="getGoodsAnserList" resultType="com.ruoyi.school.paper.domain.vo.GoodsAnswersVo">
SELECT
a.answer as goods_answer,
su.nick_name
FROM
db_test_paper_record_detail a
LEFT JOIN db_test_paper_record dtpr ON a.record_id = dtpr.id
LEFT JOIN sys_user su ON dtpr.user_id = su.user_id
WHERE a.question_bank_id = #{bo.questionBankId,jdbcType=BIGINT}
AND good = 0) m ON m.question_bank_id = dqbatp.id
WHERE dtprd.record_id = #{bo.recordId,jdbcType=BIGINT}
WHERE
a.question_bank_id = #{question_bank_id}
AND good = 0
</select>
</mapper>
......@@ -21,7 +21,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
select dtpr.*,dtp.test_name
from db_test_paper_record dtpr
left join db_test_paper dtp on dtpr.test_paper_id = dtp.id
where dtpr.user_id = #{bo.userId,jdbcType=BIGINT}
where dtpr.user_id = #{bo.userId,jdbcType=BIGINT} and dtpr.status > 0
</select>
<select id="getPhaseList" resultType="com.ruoyi.school.paper.domain.vo.DbTestPaperVo">
......@@ -34,11 +34,30 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
LEFT JOIN sys_dept phase on dtp.phase_id = phase.dept_id
left join sys_dept class on dtp.class_id = class.dept_id
where dtpr.status in (1, 2, 3)
<if test="bo.phaseId != null">
and dtp.phase_id = #{bo.phaseId,jdbcType=BIGINT}
<if test="bo.classId != null">
and dtp.class_id = #{bo.classId,jdbcType=BIGINT}
</if>
<if test="bo.testName != null and bo.testName != ''">
and dtp.test_name like concat('%', #{bo.testName,jdbcType=VARCHAR}, '%')
</if>
</select>
<select id="getClassList" resultType="com.ruoyi.school.paper.domain.vo.DbTestPaperVo">
select dtpr.id,
su.nick_name,
dtp.total_points,
concat(phase.dept_name, '', class.dept_name) as phase_class
from db_test_paper_record dtpr
left join db_test_paper dtp on dtp.id = dtpr.test_paper_id
left join sys_user su on su.user_id = dtpr.user_id
LEFT JOIN sys_dept phase on dtp.phase_id = phase.dept_id
left join sys_dept class on dtp.class_id = class.dept_id
where dtpr.status in (1, 2, 3)
<if test="bo.classId != null">
and dtp.class_id = #{bo.classId,jdbcType=BIGINT}
</if>
<if test="bo.nickName != null and bo.testName != ''">
and su.nick_name like concat('%', #{bo.nickName,jdbcType=VARCHAR}, '%')
</if>
</select>
</mapper>
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