Commit d1354d02 by Wangmin

Merge remote-tracking branch 'origin/master'

parents 18f90407 aec8e435
......@@ -5,6 +5,7 @@ import java.util.Arrays;
import java.util.concurrent.TimeUnit;
import cn.dev33.satoken.annotation.SaIgnore;
import com.ruoyi.school.paper.domain.request.CollectListRequest;
import com.ruoyi.school.paper.domain.vo.MyCollectListVo;
import lombok.RequiredArgsConstructor;
......@@ -48,8 +49,9 @@ public class DbCollectListController extends BaseController {
* 查询我的收藏列表
*/
@GetMapping("/list")
public TableDataInfo<MyCollectListVo> list(@RequestParam("categoryId") Integer categoryId, PageQuery pageQuery) {
return iDbCollectListService.queryPageList(categoryId, getUserId(), pageQuery);
public TableDataInfo<MyCollectListVo> list(CollectListRequest request, PageQuery pageQuery) {
request.setUserId(getUserId());
return iDbCollectListService.queryPageList(request, pageQuery);
}
/**
......@@ -80,19 +82,19 @@ public class DbCollectListController extends BaseController {
* @return
*/
@Log(title = "收藏", businessType = BusinessType.INSERT)
@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;
......@@ -60,7 +59,7 @@ public class DbErrorListController extends BaseController {
*/
@GetMapping("/MyErrorTopicList")
public TableDataInfo<MyErrorTopicListVo> findMyErrorTopicListVoPage(ErrorTopicRequest request, PageQuery pageQuery) {
request.setUserId(1L);
request.setUserId(getUserId());
return iDbErrorListService.findMyErrorTopicListVoPage(pageQuery, request);
}
......
......@@ -12,10 +12,12 @@ import com.ruoyi.common.core.validate.EditGroup;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.helper.LoginHelper;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.school.paper.domain.DbTestPaperRecord;
import com.ruoyi.school.paper.domain.bo.DbTestPaperBo;
import com.ruoyi.school.paper.domain.bo.DbTestPaperRecordBo;
import com.ruoyi.school.paper.domain.vo.DbTestPaperRecordVo;
import com.ruoyi.school.paper.domain.vo.DbTestPaperVo;
import com.ruoyi.school.paper.domain.vo.MyErrorTopicListVo;
import com.ruoyi.school.paper.service.IDbTestPaperRecordService;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
......@@ -43,7 +45,7 @@ public class DbTestPaperRecordController extends BaseController {
private final IDbTestPaperRecordService iDbTestPaperRecordService;
/**
* 【PC】 审批阅卷阶段列表
* 【PC】 审批阅卷班级列表
*/
@GetMapping("/getPhaseList")
public TableDataInfo<DbTestPaperVo> getPhaseList(DbTestPaperBo bo, PageQuery pageQuery) {
......@@ -51,7 +53,7 @@ public class DbTestPaperRecordController extends BaseController {
}
/**
* 【PC】 审批阅卷班级列表
* 【PC】 审批阅卷学生列表
*/
@GetMapping("/getClassList")
public TableDataInfo<DbTestPaperVo> getClassList(DbTestPaperBo bo, PageQuery pageQuery) {
......@@ -59,6 +61,14 @@ public class DbTestPaperRecordController extends BaseController {
}
/**
* 【PC】 完成批卷完成批卷
*/
@PostMapping("/completeReadOver")
public R<Void> completeReadOver(DbTestPaperRecordBo bo) {
return iDbTestPaperRecordService.completeReadOver(bo);
}
/**
* 【小程序】查询答题记录列表
*/
@GetMapping("/testPaperlist")
......
......@@ -11,8 +11,11 @@ import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.school.paper.domain.bo.DbTestPaperRecordBo;
import com.ruoyi.school.paper.domain.bo.DbTestPaperRecordDetailBo;
import com.ruoyi.school.paper.domain.vo.DbTestPaperRecordDetailVo;
import com.ruoyi.school.paper.domain.vo.GoodsAnswersVo;
import com.ruoyi.school.paper.domain.vo.MyErrorTopicListVo;
import com.ruoyi.school.paper.service.IDbTestPaperRecordDetailService;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
......@@ -43,7 +46,22 @@ public class DbTestPaperRecordDetailController extends BaseController {
* 【小程序】查询答题记录详情列表
*/
@GetMapping("/list")
public TableDataInfo<DbTestPaperRecordDetailVo> list(DbTestPaperRecordDetailBo bo, PageQuery pageQuery) {
public TableDataInfo<MyErrorTopicListVo> list(DbTestPaperRecordDetailBo bo, PageQuery pageQuery) {
return iDbTestPaperRecordDetailService.queryPageList(bo, pageQuery);
}
/**
* 【小程序】查询答题记录优秀答案
*/
@GetMapping("/getGoodsAnswerList")
public TableDataInfo<GoodsAnswersVo> getGoodsAnswerList(DbTestPaperRecordDetailBo bo, PageQuery pageQuery) {
return iDbTestPaperRecordDetailService.getGoodsAnswerList(bo, pageQuery);
}
/**
* 【PC】查询学生答题记录列表
*/
@GetMapping("/getStudentAnswerRecordList")
public TableDataInfo<MyErrorTopicListVo> getStudentAnswerRecordList(DbTestPaperRecordDetailBo bo, PageQuery pageQuery) {
return iDbTestPaperRecordDetailService.queryPageList(bo, pageQuery);
}
......@@ -79,7 +97,7 @@ public class DbTestPaperRecordDetailController extends BaseController {
}
/**
* 修改答题记录详情
* [PC]修改答题记录详情
*/
@Log(title = "答题记录详情", businessType = BusinessType.UPDATE)
@RepeatSubmit()
......
......@@ -2,6 +2,7 @@ package com.ruoyi.school.paper.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import com.ruoyi.common.core.domain.BaseEntity;
import lombok.Data;
......@@ -38,8 +39,9 @@ public class DbCollectList extends BaseEntity {
*/
private String remark;
/**
* 状态:0正常,1删除
* 删除标志(0代表存在 2代表删除)
*/
private Integer status;
@TableLogic
private String delFlag;
}
......@@ -2,6 +2,7 @@ package com.ruoyi.school.paper.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import com.ruoyi.common.core.domain.BaseEntity;
import lombok.Data;
......@@ -43,12 +44,13 @@ public class DbErrorList extends BaseEntity {
*/
private Long recordId;
/**
* 备注
* 删除标志(0代表存在 2代表删除)
*/
private String remark;
@TableLogic
private String delFlag;
/**
* 状态:0正常,1删除
* 备注
*/
private Integer status;
private String remark;
}
......@@ -7,6 +7,8 @@ import com.ruoyi.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.math.BigDecimal;
/**
* 答题记录对象 db_test_paper_record
*
......@@ -46,7 +48,7 @@ public class DbTestPaperRecord extends BaseEntity {
/**
* 总得分
*/
private Long totalPoints;
private BigDecimal totalPoints;
/**
* 备注
*/
......
......@@ -42,13 +42,13 @@ public class DbBannerBo extends BaseEntity {
/**
* 备注
*/
@NotBlank(message = "备注不能为空", groups = { AddGroup.class, EditGroup.class })
// @NotBlank(message = "备注不能为空", groups = { AddGroup.class, EditGroup.class })
private String remark;
/**
* 状态:0正常,1删除
*/
@NotNull(message = "状态:0正常,1删除不能为空", groups = { AddGroup.class, EditGroup.class })
// @NotNull(message = "状态:0正常,1删除不能为空", groups = { AddGroup.class, EditGroup.class })
private Integer status;
......
package com.ruoyi.school.paper.domain.bo;
import com.alibaba.excel.annotation.ExcelProperty;
import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import lombok.Data;
......@@ -24,32 +25,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删除
* 删除标志(0代表存在 2代表删除)
*/
@NotNull(message = "状态:0正常,1删除不能为空", groups = { AddGroup.class, EditGroup.class })
private Integer status;
private String delFlag;
}
......@@ -51,11 +51,10 @@ public class DbErrorListBo extends BaseEntity {
* 备注
*/
private String remark;
/**
* 状态:0正常,1删除
* 删除标志(0代表存在 2代表删除)
*/
private Integer status;
private String delFlag;
}
......@@ -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;
}
......@@ -6,6 +6,7 @@ import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.*;
import java.math.BigDecimal;
import java.util.Date;
import com.ruoyi.common.core.domain.BaseEntity;
......@@ -49,7 +50,7 @@ public class DbTestPaperRecordBo extends BaseEntity {
* 总得分
*/
@NotNull(message = "总得分不能为空", groups = { AddGroup.class, EditGroup.class })
private Long totalPoints;
private BigDecimal totalPoints;
/**
* 备注
......
package com.ruoyi.school.paper.domain.request;
import lombok.Data;
import java.io.Serializable;
/**
* 我的收藏
*/
@Data
public class CollectListRequest implements Serializable {
/**
* 类别ID
*/
private Integer categoryId;
/**
* 习题种类:1填空,2选择,3解答
*/
private Integer species;
/**
* 用户编号
*/
private Long userId;
}
......@@ -2,6 +2,7 @@ package com.ruoyi.school.paper.domain.vo;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.ruoyi.common.annotation.ExcelDictFormat;
import com.ruoyi.common.convert.ExcelDictConvert;
import lombok.Data;
......@@ -46,10 +47,10 @@ public class DbCollectListVo {
private String remark;
/**
* 状态:0正常,1删除
* 删除标志(0代表存在 2代表删除)
*/
@ExcelProperty(value = "状态:0正常,1删除")
private Integer status;
@ExcelProperty(value = "删除标志(0代表存在 2代表删除)")
private String delFlag;
}
......@@ -2,6 +2,7 @@ package com.ruoyi.school.paper.domain.vo;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.ruoyi.common.annotation.ExcelDictFormat;
import com.ruoyi.common.convert.ExcelDictConvert;
import lombok.Data;
......@@ -58,10 +59,10 @@ public class DbErrorListVo {
private String remark;
/**
* 状态:0正常,1删除
* 删除标志(0代表存在 2代表删除)
*/
@ExcelProperty(value = "状态:0正常,1删除")
private Integer status;
@ExcelProperty(value = "删除标志(0代表存在 2代表删除)")
private String delFlag;
}
......@@ -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;
......
......@@ -5,6 +5,7 @@ import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.TableField;
import lombok.Data;
import java.math.BigDecimal;
/**
......@@ -47,7 +48,7 @@ public class DbTestPaperRecordVo {
* 总得分
*/
@ExcelProperty(value = "总得分")
private Long totalPoints;
private BigDecimal totalPoints;
/**
* 备注
......
......@@ -72,5 +72,22 @@ public class DbTestPaperVo {
@ExcelProperty(value = "状态:0正常,1删除")
private Integer status;
/**
* 阶段班级
*/
private String phaseClass;
/**
* 用户昵称
*/
private String nickName;
/**
* 用户id
*/
private Long userId;
/**
* 答题记录id
*/
private Long recordId;
}
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;
}
......@@ -11,5 +11,9 @@ public class GoodsAnswersVo {
private String goodsAnswer;
private String userName;
private String nickName;
private String goodsAnswerPic;
private Long count;
}
package com.ruoyi.school.paper.domain.vo;
import com.ruoyi.school.paper.domain.DbQuestionBankAnswerTestPaper;
import lombok.Data;
import java.io.Serializable;
......@@ -23,15 +24,26 @@ public class MyCollectListVo implements Serializable {
/**
* 正确答案
*/
private String rightAnswers;
private String answer;
/**
* 正确答案图片
*/
private String rightAnswersPic;
private String answerPic;
private Boolean collectFlag = Boolean.TRUE;
/**
* 习题种类:1填空,2选择,3解答
*/
private Long species;
/**
* 用户编号
*/
private Long userId;
/**
* 选项
*/
private List<DbQuestionBankAnswerVo> list;
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;
import java.math.BigDecimal;
import java.util.List;
/**
......@@ -18,6 +18,11 @@ public class MyErrorTopicListVo implements Serializable {
private Long id;
/**
* 答题记录id
*/
private Long recordId;
/**
* 错题名称
*/
private String topic;
......@@ -28,11 +33,26 @@ public class MyErrorTopicListVo implements Serializable {
private String answer;
/**
* 我的答案图片
*/
private String answerPic;
/**
* 正确答案
*/
private String correctAnswer;
/**
* 正确答案图片
*/
private String correctAnswerPic;
/**
* 我的得分
*/
private BigDecimal score = BigDecimal.ZERO;
/**
* 题目编号
*/
private Long questionBankId;
......@@ -48,7 +68,31 @@ public class MyErrorTopicListVo implements Serializable {
private String resolveVideo;
/**
* 题目类型 1填空,2选择,3解答
*/
private Integer species;
/**
* 选项标签集合
*/
private List<DbQuestionBankAnswerTestPaper> options;
/**
* 优秀答案
*/
private List<GoodsAnswersVo> goodsAnswers;
/**
*
*/
/**
* 是否收藏
*/
private Boolean collectFlag = Boolean.FALSE;
/**
* 优秀答案数量
*/
private Long goodsAnswerCount;
}
......@@ -3,12 +3,10 @@ package com.ruoyi.school.paper.mapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.school.paper.domain.DbCollectList;
import com.ruoyi.school.paper.domain.request.ErrorTopicRequest;
import com.ruoyi.school.paper.domain.request.CollectListRequest;
import com.ruoyi.school.paper.domain.vo.DbCollectListVo;
import com.ruoyi.common.core.mapper.BaseMapperPlus;
import com.ruoyi.school.paper.domain.vo.ErrorTopicListVo;
import com.ruoyi.school.paper.domain.vo.MyCollectListVo;
import com.ruoyi.school.paper.domain.vo.MyErrorTopicListVo;
import org.apache.ibatis.annotations.Param;
/**
......@@ -18,5 +16,7 @@ import org.apache.ibatis.annotations.Param;
* @date 2023-07-20
*/
public interface DbCollectListMapper extends BaseMapperPlus<DbCollectListMapper, DbCollectList, DbCollectListVo> {
Page<MyCollectListVo> findMyECollectListVoPage(IPage<MyCollectListVo> iPage,@Param("userId") Long userId, @Param("categoryId") Integer categoryId);
Page<MyCollectListVo> findMyECollectListVoPage(IPage<MyCollectListVo> iPage,@Param("request") CollectListRequest request);
long getListByRecord(@Param("recordId") Long recordId, @Param("questionBankId") Long questionBankId);
}
......@@ -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);
}
......@@ -3,11 +3,16 @@ package com.ruoyi.school.paper.mapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.core.mapper.BaseMapperPlus;
import com.ruoyi.school.paper.domain.DbTestPaperRecordDetail;
import com.ruoyi.school.paper.domain.bo.DbTestPaperRecordBo;
import com.ruoyi.school.paper.domain.bo.DbTestPaperRecordDetailBo;
import com.ruoyi.school.paper.domain.vo.DbTestPaperRecordDetailVo;
import com.ruoyi.school.paper.domain.vo.GoodsAnswersVo;
import com.ruoyi.school.paper.domain.vo.MyErrorTopicListVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.math.BigDecimal;
/**
* 答题记录详情Mapper接口
*
......@@ -17,5 +22,9 @@ import org.apache.ibatis.annotations.Param;
@Mapper
public interface DbTestPaperRecordDetailMapper extends BaseMapperPlus<DbTestPaperRecordDetailMapper, DbTestPaperRecordDetail, DbTestPaperRecordDetailVo> {
Page<DbTestPaperRecordDetailVo> queryPageList(Page<Object> build, @Param("bo") DbTestPaperRecordDetailBo bo);
Page<MyErrorTopicListVo> queryPageList(Page<Object> build, @Param("bo") DbTestPaperRecordDetailBo bo);
Page<GoodsAnswersVo> getGoodsAnserList(Page<Object> build, @Param("bo") DbTestPaperRecordDetailBo bo);
BigDecimal getTotalPoints(@Param("bo") DbTestPaperRecordBo bo);
}
......@@ -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);
}
package com.ruoyi.school.paper.service;
import com.ruoyi.school.paper.domain.DbCollectList;
import com.ruoyi.school.paper.domain.request.CollectListRequest;
import com.ruoyi.school.paper.domain.vo.DbCollectListVo;
import com.ruoyi.school.paper.domain.bo.DbCollectListBo;
import com.ruoyi.common.core.page.TableDataInfo;
......@@ -26,7 +27,7 @@ public interface IDbCollectListService {
/**
* 查询收藏列表
*/
TableDataInfo<MyCollectListVo> queryPageList(Integer categoryId,Long userId, PageQuery pageQuery);
TableDataInfo<MyCollectListVo> queryPageList(CollectListRequest request, PageQuery pageQuery);
/**
* 查询收藏列表
......
package com.ruoyi.school.paper.service;
import com.ruoyi.school.paper.domain.DbTestPaperRecordDetail;
import com.ruoyi.school.paper.domain.bo.DbTestPaperRecordBo;
import com.ruoyi.school.paper.domain.vo.DbTestPaperRecordDetailVo;
import com.ruoyi.school.paper.domain.bo.DbTestPaperRecordDetailBo;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.school.paper.domain.vo.GoodsAnswersVo;
import com.ruoyi.school.paper.domain.vo.MyErrorTopicListVo;
import java.util.Collection;
import java.util.List;
......@@ -25,7 +28,7 @@ public interface IDbTestPaperRecordDetailService {
/**
* 查询答题记录详情列表
*/
TableDataInfo<DbTestPaperRecordDetailVo> queryPageList(DbTestPaperRecordDetailBo bo, PageQuery pageQuery);
TableDataInfo<MyErrorTopicListVo> queryPageList(DbTestPaperRecordDetailBo bo, PageQuery pageQuery);
/**
* 查询答题记录详情列表
......@@ -48,4 +51,9 @@ public interface IDbTestPaperRecordDetailService {
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
boolean saveBatch(Collection<DbTestPaperRecordDetail> collection);
/**
* 【小程序】查询答题记录优秀答案
*/
TableDataInfo<GoodsAnswersVo> getGoodsAnswerList(DbTestPaperRecordDetailBo bo, PageQuery pageQuery);
}
......@@ -2,6 +2,7 @@ package com.ruoyi.school.paper.service;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.school.paper.domain.DbTestPaperRecord;
import com.ruoyi.school.paper.domain.bo.DbTestPaperBo;
......@@ -61,7 +62,7 @@ public interface IDbTestPaperRecordService {
DbTestPaperRecord getOne(Wrapper<DbTestPaperRecord> wrapper);
/**
* 【PC】 审批阅卷阶段列表
* 【PC】 审批阅卷班级列表
*/
TableDataInfo<DbTestPaperVo> getPhaseList(DbTestPaperBo bo, PageQuery pageQuery);
......@@ -69,4 +70,9 @@ public interface IDbTestPaperRecordService {
* 【PC】 审批阅卷班级列表
*/
TableDataInfo<DbTestPaperVo> getClassList(DbTestPaperBo bo, PageQuery pageQuery);
/**
* 完成批卷
*/
R<Void> completeReadOver(DbTestPaperRecordBo bo);
}
package com.ruoyi.school.paper.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.core.domain.PageQuery;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.ruoyi.school.paper.domain.DbQuestionBankAnswerTestPaper;
import com.ruoyi.school.paper.domain.request.CollectListRequest;
import com.ruoyi.school.paper.domain.vo.MyCollectListVo;
import com.ruoyi.school.paper.mapper.DbQuestionBankAnswerTestPaperMapper;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import com.ruoyi.school.paper.domain.bo.DbCollectListBo;
......@@ -18,6 +22,7 @@ import com.ruoyi.school.paper.service.IDbCollectListService;
import java.util.List;
import java.util.Map;
import java.util.Collection;
import java.util.Optional;
/**
* 收藏Service业务层处理
......@@ -31,6 +36,8 @@ public class DbCollectListServiceImpl implements IDbCollectListService {
private final DbCollectListMapper baseMapper;
private final DbQuestionBankAnswerTestPaperMapper dbQuestionBankAnswerTestPaperMapper;
/**
* 查询收藏
*/
......@@ -43,8 +50,19 @@ public class DbCollectListServiceImpl implements IDbCollectListService {
* 查询收藏列表
*/
@Override
public TableDataInfo<MyCollectListVo> queryPageList(Integer categoryId, Long userId, PageQuery pageQuery) {
Page<MyCollectListVo> result = baseMapper.findMyECollectListVoPage(pageQuery.build(), userId, categoryId);
public TableDataInfo<MyCollectListVo> queryPageList(CollectListRequest request, PageQuery pageQuery) {
Page<MyCollectListVo> result = baseMapper.findMyECollectListVoPage(pageQuery.build(), request);
List<MyCollectListVo> records = result.getRecords();
if (CollectionUtils.isNotEmpty(records)) {
records.forEach(res -> {
if (res.getSpecies() == 2L) {
//选择题查询选项集
Optional.ofNullable(dbQuestionBankAnswerTestPaperMapper.selectList(Wrappers.<DbQuestionBankAnswerTestPaper>lambdaQuery()
.eq(DbQuestionBankAnswerTestPaper::getQuestionBankId, res.getQuestionBankId())))
.ifPresent(res::setOptions);
}
});
}
return TableDataInfo.build(result);
}
......@@ -62,7 +80,6 @@ public class DbCollectListServiceImpl implements IDbCollectListService {
LambdaQueryWrapper<DbCollectList> lqw = Wrappers.lambdaQuery();
lqw.eq(bo.getUserId() != null, DbCollectList::getUserId, bo.getUserId());
lqw.eq(bo.getQuestionBankId() != null, DbCollectList::getQuestionBankId, bo.getQuestionBankId());
lqw.eq(bo.getStatus() != null, DbCollectList::getStatus, bo.getStatus());
return lqw;
}
......@@ -85,9 +102,11 @@ public class DbCollectListServiceImpl implements IDbCollectListService {
*/
@Override
public Boolean updateByBo(DbCollectListBo bo) {
DbCollectList update = BeanUtil.toBean(bo, DbCollectList.class);
validEntityBeforeSave(update);
return baseMapper.updateById(update) > 0;
DbCollectList dbCollectList = baseMapper.selectOne(Wrappers.<DbCollectList>lambdaQuery().eq(DbCollectList::getQuestionBankId, bo.getQuestionBankId()).eq(DbCollectList::getUserId, bo.getUserId()));
if (null != dbCollectList) {
return baseMapper.deleteById(dbCollectList.getId()) > 0;
}
return false;
}
/**
......
......@@ -7,11 +7,13 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.school.paper.domain.DbCollectList;
import com.ruoyi.school.paper.domain.DbErrorList;
import com.ruoyi.school.paper.domain.DbQuestionBankAnswerTestPaper;
import com.ruoyi.school.paper.domain.bo.DbErrorListBo;
import com.ruoyi.school.paper.domain.request.ErrorTopicRequest;
import com.ruoyi.school.paper.domain.vo.*;
import com.ruoyi.school.paper.mapper.DbCollectListMapper;
import com.ruoyi.school.paper.mapper.DbErrorListMapper;
import com.ruoyi.school.paper.mapper.DbQuestionBankAnswerTestPaperMapper;
import com.ruoyi.school.paper.service.IDbErrorListService;
......@@ -38,30 +40,18 @@ public class DbErrorListServiceImpl implements IDbErrorListService {
private final DbQuestionBankAnswerTestPaperMapper dbQuestionBankAnswerTestPaperMapper;
private final DbCollectListMapper dbCollectListMapper;
/**
* 查询错题集
*/
@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;
......@@ -92,7 +82,6 @@ public class DbErrorListServiceImpl implements IDbErrorListService {
lqw.eq(bo.getUserId() != null, DbErrorList::getUserId, bo.getUserId());
lqw.eq(bo.getPaperId() != null, DbErrorList::getPaperId, bo.getPaperId());
lqw.eq(bo.getQuestionBankId() != null, DbErrorList::getQuestionBankId, bo.getQuestionBankId());
lqw.eq(bo.getStatus() != null, DbErrorList::getStatus, bo.getStatus());
return lqw;
}
......@@ -149,13 +138,30 @@ 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.selectList(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 -> {
//判读是否收藏
Optional.ofNullable(dbCollectListMapper.selectOne(Wrappers.<DbCollectList>lambdaQuery().eq(DbCollectList::getUserId, request.getUserId())
.eq(DbCollectList::getQuestionBankId, myErrorTopicListVo.getQuestionBankId())))
.ifPresent(res -> {
myErrorTopicListVo.setCollectFlag(Boolean.TRUE);
});
List<DbQuestionBankAnswerTestPaper> options = optionsMap.get(myErrorTopicListVo.getQuestionBankId());
myErrorTopicListVo.setOptions(options);
});
}
return TableDataInfo.build(myErrorTopicListVoPage);
}
}
......@@ -2,14 +2,21 @@ package com.ruoyi.school.paper.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.helper.LoginHelper;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.school.paper.domain.DbCollectList;
import com.ruoyi.school.paper.domain.DbTestPaperRecordDetail;
import com.ruoyi.school.paper.domain.bo.DbTestPaperRecordBo;
import com.ruoyi.school.paper.domain.bo.DbTestPaperRecordDetailBo;
import com.ruoyi.school.paper.domain.vo.DbTestPaperRecordDetailVo;
import com.ruoyi.school.paper.domain.vo.GoodsAnswersVo;
import com.ruoyi.school.paper.domain.vo.MyErrorTopicListVo;
import com.ruoyi.school.paper.mapper.DbCollectListMapper;
import com.ruoyi.school.paper.mapper.DbTestPaperRecordDetailMapper;
import com.ruoyi.school.paper.service.IDbTestPaperRecordDetailService;
import lombok.RequiredArgsConstructor;
......@@ -30,6 +37,7 @@ import java.util.Map;
public class DbTestPaperRecordDetailServiceImpl implements IDbTestPaperRecordDetailService {
private final DbTestPaperRecordDetailMapper baseMapper;
private final DbCollectListMapper collectListMapper;
/**
* 查询答题记录详情
......@@ -43,9 +51,14 @@ public class DbTestPaperRecordDetailServiceImpl implements IDbTestPaperRecordDet
* 查询答题记录详情列表
*/
@Override
public TableDataInfo<DbTestPaperRecordDetailVo> queryPageList(DbTestPaperRecordDetailBo bo, PageQuery pageQuery) {
Page<DbTestPaperRecordDetailVo> result = baseMapper.queryPageList(pageQuery.build(), bo);
public TableDataInfo<MyErrorTopicListVo> queryPageList(DbTestPaperRecordDetailBo bo, PageQuery pageQuery) {
Page<MyErrorTopicListVo> result = baseMapper.queryPageList(pageQuery.build(), bo);
result.getRecords().forEach(row -> {
long count = collectListMapper.getListByRecord(row.getRecordId(), row.getQuestionBankId());
if (count > 0) {
row.setCollectFlag(Boolean.TRUE);
}
});
return TableDataInfo.build(result);
}
......@@ -117,4 +130,13 @@ public class DbTestPaperRecordDetailServiceImpl implements IDbTestPaperRecordDet
public boolean saveBatch(Collection<DbTestPaperRecordDetail> collection) {
return baseMapper.insertBatch(collection);
}
/**
* 【小程序】查询答题记录优秀答案
*/
@Override
public TableDataInfo<GoodsAnswersVo> getGoodsAnswerList(DbTestPaperRecordDetailBo bo, PageQuery pageQuery) {
Page<GoodsAnswersVo> goodsAnserList = baseMapper.getGoodsAnserList(pageQuery.build(), bo);
return TableDataInfo.build(goodsAnserList);
}
}
......@@ -6,17 +6,20 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.school.paper.domain.DbTestPaperRecord;
import com.ruoyi.school.paper.domain.bo.DbTestPaperBo;
import com.ruoyi.school.paper.domain.bo.DbTestPaperRecordBo;
import com.ruoyi.school.paper.domain.vo.DbTestPaperRecordVo;
import com.ruoyi.school.paper.domain.vo.DbTestPaperVo;
import com.ruoyi.school.paper.mapper.DbTestPaperRecordDetailMapper;
import com.ruoyi.school.paper.mapper.DbTestPaperRecordMapper;
import com.ruoyi.school.paper.service.IDbTestPaperRecordService;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.util.Collection;
import java.util.List;
import java.util.Map;
......@@ -32,6 +35,7 @@ import java.util.Map;
public class DbTestPaperRecordServiceImpl implements IDbTestPaperRecordService {
private final DbTestPaperRecordMapper baseMapper;
private final DbTestPaperRecordDetailMapper recordDetailMapper;
/**
* 查询答题记录
......@@ -137,7 +141,7 @@ public class DbTestPaperRecordServiceImpl implements IDbTestPaperRecordService {
}
/**
* 审批阅卷阶段列表【PC】
* 审批阅卷班级列表【PC】
*/
@Override
public TableDataInfo<DbTestPaperVo> getPhaseList(DbTestPaperBo bo, PageQuery pageQuery) {
......@@ -150,6 +154,23 @@ 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);
}
/**
* 完成批卷
*/
@Override
public R<Void> completeReadOver(DbTestPaperRecordBo bo) {
BigDecimal totalPoints = recordDetailMapper.getTotalPoints(bo);
DbTestPaperRecord record = baseMapper.selectById(bo.getId());
record.setTotalPoints(totalPoints);
record.setStatus(3);
int update = baseMapper.updateById(record);
if (update > 0){
return R.ok();
}
return R.fail();
}
}
......@@ -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) {
......
......@@ -9,7 +9,7 @@
<result property="userId" column="user_id"/>
<result property="questionBankId" column="question_bank_id"/>
<result property="remark" column="remark"/>
<result property="status" column="status"/>
<result property="delFlag" column="del_flag"/>
<result property="createTime" column="create_time"/>
<result property="createBy" column="create_by"/>
<result property="updateTime" column="update_time"/>
......@@ -19,21 +19,32 @@
SELECT
dcl.question_bank_id questionBankId,
dqb.topic AS topic,
dqb.right_answers AS rightAnswers,
dqb.right_answers_pic AS rightAnswersPic
dqb.right_answers AS answer,
dqb.right_answers_pic AS answerPic,
dqb.species AS species,
dcl.user_id AS userId
FROM
db_collect_list AS dcl
LEFT JOIN db_question_bank AS dqb ON dcl.question_bank_id = dqb.id
LEFT JOIN db_question_bank_answer AS dqba ON dqba.question_bank_id = dqb.id
<where>
dcl.user_id = #{userId}
LEFT JOIN db_question_bank_test_paper AS dqb ON dqb.id = dcl.question_bank_id
LEFT JOIN db_question_bank_answer_test_paper AS dqbat ON dqbat.question_bank_id = dqb.question_bank_id
<if test="categoryId != null">
and dqb.category_id = #{categoryId}
<where>
dcl.user_id = #{request.userId}
and dcl.del_flag = 0
<if test="request.categoryId != null">
and dqb.category_id = #{request.categoryId}
</if>
<if test="request.species != null">
and dqb.species = #{request.species}
</if>
</where>
</select>
<select id="getListByRecord" resultType="long">
select count(1)
from db_collect_list dcl
left join db_test_paper_record dtpr on dcl.user_id = dtpr.user_id
where dtpr.id = #{recordId,jdbcType=BIGINT}
and dcl.question_bank_id = #{questionBankId,jdbcType=BIGINT}
</select>
</mapper>
......@@ -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,36 +37,34 @@
</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">
SELECT
del.id AS id,
dtprd.question_bank_id AS questionBankId,
del.question_bank_id AS questionBankId,
dqbtp.topic AS topic,
dtprd.answer AS answer,
dtprd.correct_answer AS correctAnswer
dqbtp.right_answers 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
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 dtprd.question_bank_id = dqbtp.id
LEFT JOIN db_question_bank_test_paper AS dqbtp ON dqbtp.id = del.question_bank_id
LEFT JOIN db_test_paper_record AS dtpr ON dtpr.id = del.record_id
LEFT JOIN db_test_paper_record_detail AS dtprd ON dtprd.record_id = dtpr.id and dtprd.question_bank_id = del.question_bank_id
<where>
del.user_id = #{request.userId}
<if test="request.categoryId != null">
......
......@@ -19,45 +19,73 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="updateBy" column="update_by"/>
</resultMap>
<resultMap type="com.ruoyi.school.paper.domain.vo.DbTestPaperRecordDetailVo" id="TestPaperRecordDetailResult">
<resultMap type="com.ruoyi.school.paper.domain.vo.MyErrorTopicListVo" id="TestPaperRecordDetailResult">
<result property="recordId" column="record_id"/>
<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">
<result property="correctAnswerPic" column="correctAnswerPic"/>
<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">
<result property="goodsAnswer" column="goods_answer"/>
<result property="userName" column="user_name"/>
<collection property="goodsAnswerCount" column="{questionBankId = question_bank_id, recordId = record_id}" select="getHasGoodsAnserList" ofType="long">
</collection>
</resultMap>
<select id="queryPageList" resultMap="TestPaperRecordDetailResult">
SELECT dqbatp.topic,
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
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
SELECT
dtprd.id,
dqbatp.topic,
dtprd.record_id,
dtprd.question_bank_id,
dqbatp.right_answers AS correctAnswer,
dqbatp.right_answers_pic as correctAnswerPic,
dtprd.answer,
dtprd.answers_pic,
dtprd.score,
dqbatp.species
FROM
db_test_paper_record_detail dtprd
LEFT JOIN db_question_bank_test_paper dqbatp ON dtprd.question_bank_id = dqbatp.id
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="getHasGoodsAnserList" resultType="long" >
SELECT
count(1) as count
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 = #{questionBankId}
AND good = 0 and a.record_id = #{recordId}
</select>
<select id="getGoodsAnserList" resultType="com.ruoyi.school.paper.domain.vo.GoodsAnswersVo">
SELECT
a.answer as goods_answer,
a.answers_pic as goodsAnswerPic,
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 = #{bo.questionBankId}
AND good = 0 and a.record_id = #{bo.recordId}
</select>
<select id="getTotalPoints" resultType="java.math.BigDecimal">
select sum(score) from db_test_paper_record_detail where record_id = #{bo.id} and `status` = 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,31 @@ 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 as recordId,
SU.user_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