Commit d1354d02 by Wangmin

Merge remote-tracking branch 'origin/master'

parents 18f90407 aec8e435
...@@ -5,6 +5,7 @@ import java.util.Arrays; ...@@ -5,6 +5,7 @@ import java.util.Arrays;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
import cn.dev33.satoken.annotation.SaIgnore; import cn.dev33.satoken.annotation.SaIgnore;
import com.ruoyi.school.paper.domain.request.CollectListRequest;
import com.ruoyi.school.paper.domain.vo.MyCollectListVo; import com.ruoyi.school.paper.domain.vo.MyCollectListVo;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
...@@ -48,8 +49,9 @@ public class DbCollectListController extends BaseController { ...@@ -48,8 +49,9 @@ public class DbCollectListController extends BaseController {
* 查询我的收藏列表 * 查询我的收藏列表
*/ */
@GetMapping("/list") @GetMapping("/list")
public TableDataInfo<MyCollectListVo> list(@RequestParam("categoryId") Integer categoryId, PageQuery pageQuery) { public TableDataInfo<MyCollectListVo> list(CollectListRequest request, PageQuery pageQuery) {
return iDbCollectListService.queryPageList(categoryId, getUserId(), pageQuery); request.setUserId(getUserId());
return iDbCollectListService.queryPageList(request, pageQuery);
} }
/** /**
...@@ -80,19 +82,19 @@ public class DbCollectListController extends BaseController { ...@@ -80,19 +82,19 @@ public class DbCollectListController extends BaseController {
* @return * @return
*/ */
@Log(title = "收藏", businessType = BusinessType.INSERT) @Log(title = "收藏", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping() @PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody DbCollectListBo bo) { public R<Void> add(@Validated(AddGroup.class) @RequestBody DbCollectListBo bo) {
bo.setUserId(getUserId());
return toAjax(iDbCollectListService.insertByBo(bo)); return toAjax(iDbCollectListService.insertByBo(bo));
} }
/** /**
* 修改收藏 * 【小程序】修改收藏
*/ */
@Log(title = "收藏", businessType = BusinessType.UPDATE) @Log(title = "收藏", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping() @PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody DbCollectListBo bo) { public R<Void> edit(@Validated(EditGroup.class) @RequestBody DbCollectListBo bo) {
bo.setUserId(getUserId());
return toAjax(iDbCollectListService.updateByBo(bo)); return toAjax(iDbCollectListService.updateByBo(bo));
} }
......
...@@ -2,7 +2,6 @@ package com.ruoyi.school.paper.controller; ...@@ -2,7 +2,6 @@ package com.ruoyi.school.paper.controller;
import java.util.List; import java.util.List;
import java.util.Arrays; import java.util.Arrays;
import java.util.concurrent.TimeUnit;
import cn.dev33.satoken.annotation.SaIgnore; import cn.dev33.satoken.annotation.SaIgnore;
import com.ruoyi.school.paper.domain.request.ErrorTopicRequest; import com.ruoyi.school.paper.domain.request.ErrorTopicRequest;
...@@ -60,7 +59,7 @@ public class DbErrorListController extends BaseController { ...@@ -60,7 +59,7 @@ public class DbErrorListController extends BaseController {
*/ */
@GetMapping("/MyErrorTopicList") @GetMapping("/MyErrorTopicList")
public TableDataInfo<MyErrorTopicListVo> findMyErrorTopicListVoPage(ErrorTopicRequest request, PageQuery pageQuery) { public TableDataInfo<MyErrorTopicListVo> findMyErrorTopicListVoPage(ErrorTopicRequest request, PageQuery pageQuery) {
request.setUserId(1L); request.setUserId(getUserId());
return iDbErrorListService.findMyErrorTopicListVoPage(pageQuery, request); return iDbErrorListService.findMyErrorTopicListVoPage(pageQuery, request);
} }
......
...@@ -12,10 +12,12 @@ import com.ruoyi.common.core.validate.EditGroup; ...@@ -12,10 +12,12 @@ import com.ruoyi.common.core.validate.EditGroup;
import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.helper.LoginHelper; import com.ruoyi.common.helper.LoginHelper;
import com.ruoyi.common.utils.poi.ExcelUtil; 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.DbTestPaperBo;
import com.ruoyi.school.paper.domain.bo.DbTestPaperRecordBo; import com.ruoyi.school.paper.domain.bo.DbTestPaperRecordBo;
import com.ruoyi.school.paper.domain.vo.DbTestPaperRecordVo; import com.ruoyi.school.paper.domain.vo.DbTestPaperRecordVo;
import com.ruoyi.school.paper.domain.vo.DbTestPaperVo; import com.ruoyi.school.paper.domain.vo.DbTestPaperVo;
import com.ruoyi.school.paper.domain.vo.MyErrorTopicListVo;
import com.ruoyi.school.paper.service.IDbTestPaperRecordService; import com.ruoyi.school.paper.service.IDbTestPaperRecordService;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
...@@ -43,7 +45,7 @@ public class DbTestPaperRecordController extends BaseController { ...@@ -43,7 +45,7 @@ public class DbTestPaperRecordController extends BaseController {
private final IDbTestPaperRecordService iDbTestPaperRecordService; private final IDbTestPaperRecordService iDbTestPaperRecordService;
/** /**
* 【PC】 审批阅卷阶段列表 * 【PC】 审批阅卷班级列表
*/ */
@GetMapping("/getPhaseList") @GetMapping("/getPhaseList")
public TableDataInfo<DbTestPaperVo> getPhaseList(DbTestPaperBo bo, PageQuery pageQuery) { public TableDataInfo<DbTestPaperVo> getPhaseList(DbTestPaperBo bo, PageQuery pageQuery) {
...@@ -51,7 +53,7 @@ public class DbTestPaperRecordController extends BaseController { ...@@ -51,7 +53,7 @@ public class DbTestPaperRecordController extends BaseController {
} }
/** /**
* 【PC】 审批阅卷班级列表 * 【PC】 审批阅卷学生列表
*/ */
@GetMapping("/getClassList") @GetMapping("/getClassList")
public TableDataInfo<DbTestPaperVo> getClassList(DbTestPaperBo bo, PageQuery pageQuery) { public TableDataInfo<DbTestPaperVo> getClassList(DbTestPaperBo bo, PageQuery pageQuery) {
...@@ -59,6 +61,14 @@ public class DbTestPaperRecordController extends BaseController { ...@@ -59,6 +61,14 @@ public class DbTestPaperRecordController extends BaseController {
} }
/** /**
* 【PC】 完成批卷完成批卷
*/
@PostMapping("/completeReadOver")
public R<Void> completeReadOver(DbTestPaperRecordBo bo) {
return iDbTestPaperRecordService.completeReadOver(bo);
}
/**
* 【小程序】查询答题记录列表 * 【小程序】查询答题记录列表
*/ */
@GetMapping("/testPaperlist") @GetMapping("/testPaperlist")
......
...@@ -11,8 +11,11 @@ import com.ruoyi.common.core.validate.AddGroup; ...@@ -11,8 +11,11 @@ import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup; import com.ruoyi.common.core.validate.EditGroup;
import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.utils.poi.ExcelUtil; 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.bo.DbTestPaperRecordDetailBo;
import com.ruoyi.school.paper.domain.vo.DbTestPaperRecordDetailVo; 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 com.ruoyi.school.paper.service.IDbTestPaperRecordDetailService;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
...@@ -43,7 +46,22 @@ public class DbTestPaperRecordDetailController extends BaseController { ...@@ -43,7 +46,22 @@ public class DbTestPaperRecordDetailController extends BaseController {
* 【小程序】查询答题记录详情列表 * 【小程序】查询答题记录详情列表
*/ */
@GetMapping("/list") @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); return iDbTestPaperRecordDetailService.queryPageList(bo, pageQuery);
} }
...@@ -79,7 +97,7 @@ public class DbTestPaperRecordDetailController extends BaseController { ...@@ -79,7 +97,7 @@ public class DbTestPaperRecordDetailController extends BaseController {
} }
/** /**
* 修改答题记录详情 * [PC]修改答题记录详情
*/ */
@Log(title = "答题记录详情", businessType = BusinessType.UPDATE) @Log(title = "答题记录详情", businessType = BusinessType.UPDATE)
@RepeatSubmit() @RepeatSubmit()
......
...@@ -2,6 +2,7 @@ package com.ruoyi.school.paper.domain; ...@@ -2,6 +2,7 @@ package com.ruoyi.school.paper.domain;
import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import com.ruoyi.common.core.domain.BaseEntity; import com.ruoyi.common.core.domain.BaseEntity;
import lombok.Data; import lombok.Data;
...@@ -38,8 +39,9 @@ public class DbCollectList extends BaseEntity { ...@@ -38,8 +39,9 @@ public class DbCollectList extends BaseEntity {
*/ */
private String remark; private String remark;
/** /**
* 状态:0正常,1删除 * 删除标志(0代表存在 2代表删除)
*/ */
private Integer status; @TableLogic
private String delFlag;
} }
...@@ -2,6 +2,7 @@ package com.ruoyi.school.paper.domain; ...@@ -2,6 +2,7 @@ package com.ruoyi.school.paper.domain;
import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import com.ruoyi.common.core.domain.BaseEntity; import com.ruoyi.common.core.domain.BaseEntity;
import lombok.Data; import lombok.Data;
...@@ -43,12 +44,13 @@ public class DbErrorList extends BaseEntity { ...@@ -43,12 +44,13 @@ public class DbErrorList extends BaseEntity {
*/ */
private Long recordId; 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; ...@@ -7,6 +7,8 @@ import com.ruoyi.common.core.domain.BaseEntity;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import java.math.BigDecimal;
/** /**
* 答题记录对象 db_test_paper_record * 答题记录对象 db_test_paper_record
* *
...@@ -46,7 +48,7 @@ public class DbTestPaperRecord extends BaseEntity { ...@@ -46,7 +48,7 @@ public class DbTestPaperRecord extends BaseEntity {
/** /**
* 总得分 * 总得分
*/ */
private Long totalPoints; private BigDecimal totalPoints;
/** /**
* 备注 * 备注
*/ */
......
...@@ -42,13 +42,13 @@ public class DbBannerBo extends BaseEntity { ...@@ -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; private String remark;
/** /**
* 状态:0正常,1删除 * 状态:0正常,1删除
*/ */
@NotNull(message = "状态:0正常,1删除不能为空", groups = { AddGroup.class, EditGroup.class }) // @NotNull(message = "状态:0正常,1删除不能为空", groups = { AddGroup.class, EditGroup.class })
private Integer status; private Integer status;
......
package com.ruoyi.school.paper.domain.bo; 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.AddGroup;
import com.ruoyi.common.core.validate.EditGroup; import com.ruoyi.common.core.validate.EditGroup;
import lombok.Data; import lombok.Data;
...@@ -24,32 +25,26 @@ public class DbCollectListBo extends BaseEntity { ...@@ -24,32 +25,26 @@ public class DbCollectListBo extends BaseEntity {
/** /**
* 主键id * 主键id
*/ */
@NotNull(message = "主键id不能为空", groups = { EditGroup.class })
private Long id; private Long id;
/** /**
* 用户id * 用户id
*/ */
@NotNull(message = "用户id不能为空", groups = { AddGroup.class, EditGroup.class })
private Long userId; private Long userId;
/** /**
* 题目id * 题目id
*/ */
@NotNull(message = "题目id不能为空", groups = { AddGroup.class, EditGroup.class })
private Long questionBankId; private Long questionBankId;
/** /**
* 备注 * 备注
*/ */
@NotBlank(message = "备注不能为空", groups = { AddGroup.class, EditGroup.class })
private String remark; private String remark;
/** /**
* 状态:0正常,1删除 * 删除标志(0代表存在 2代表删除)
*/ */
@NotNull(message = "状态:0正常,1删除不能为空", groups = { AddGroup.class, EditGroup.class }) private String delFlag;
private Integer status;
} }
...@@ -51,11 +51,10 @@ public class DbErrorListBo extends BaseEntity { ...@@ -51,11 +51,10 @@ public class DbErrorListBo extends BaseEntity {
* 备注 * 备注
*/ */
private String remark; private String remark;
/** /**
* 状态:0正常,1删除 * 删除标志(0代表存在 2代表删除)
*/ */
private Integer status; private String delFlag;
} }
...@@ -42,7 +42,7 @@ public class DbTestPaperBo extends BaseEntity { ...@@ -42,7 +42,7 @@ public class DbTestPaperBo extends BaseEntity {
/** /**
* 阶段id * 阶段id
*/ */
@NotNull(message = "阶段id不能为空", groups = {AddGroup.class, EditGroup.class}) // @NotNull(message = "阶段id不能为空", groups = {AddGroup.class, EditGroup.class})
private Long phaseId; private Long phaseId;
/** /**
...@@ -54,9 +54,9 @@ public class DbTestPaperBo extends BaseEntity { ...@@ -54,9 +54,9 @@ public class DbTestPaperBo extends BaseEntity {
/** /**
* 强度:1基础,2中等,3提高(多个中间用逗号分割) * 强度:1基础,2中等,3提高(多个中间用逗号分割)
*/ */
@NotBlank(message = "强度不能为空", groups = {AddGroup.class, EditGroup.class}) // @NotBlank(message = "强度不能为空", groups = {AddGroup.class, EditGroup.class})
private String intensity; private String intensity;
private List<String> intensitys; private List<Integer> intensitys;
/** /**
* 总分:100,150 * 总分:100,150
...@@ -75,5 +75,5 @@ public class DbTestPaperBo extends BaseEntity { ...@@ -75,5 +75,5 @@ public class DbTestPaperBo extends BaseEntity {
@NotNull(message = "状态:0正常,1删除不能为空", groups = { EditGroup.class }) @NotNull(message = "状态:0正常,1删除不能为空", groups = { EditGroup.class })
private Integer status; private Integer status;
private String nickName;
} }
...@@ -6,6 +6,7 @@ import lombok.Data; ...@@ -6,6 +6,7 @@ import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import javax.validation.constraints.*; import javax.validation.constraints.*;
import java.math.BigDecimal;
import java.util.Date; import java.util.Date;
import com.ruoyi.common.core.domain.BaseEntity; import com.ruoyi.common.core.domain.BaseEntity;
...@@ -49,7 +50,7 @@ public class DbTestPaperRecordBo extends BaseEntity { ...@@ -49,7 +50,7 @@ public class DbTestPaperRecordBo extends BaseEntity {
* 总得分 * 总得分
*/ */
@NotNull(message = "总得分不能为空", groups = { AddGroup.class, EditGroup.class }) @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; ...@@ -2,6 +2,7 @@ package com.ruoyi.school.paper.domain.vo;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.ruoyi.common.annotation.ExcelDictFormat; import com.ruoyi.common.annotation.ExcelDictFormat;
import com.ruoyi.common.convert.ExcelDictConvert; import com.ruoyi.common.convert.ExcelDictConvert;
import lombok.Data; import lombok.Data;
...@@ -46,10 +47,10 @@ public class DbCollectListVo { ...@@ -46,10 +47,10 @@ public class DbCollectListVo {
private String remark; private String remark;
/** /**
* 状态:0正常,1删除 * 删除标志(0代表存在 2代表删除)
*/ */
@ExcelProperty(value = "状态:0正常,1删除") @ExcelProperty(value = "删除标志(0代表存在 2代表删除)")
private Integer status; private String delFlag;
} }
...@@ -2,6 +2,7 @@ package com.ruoyi.school.paper.domain.vo; ...@@ -2,6 +2,7 @@ package com.ruoyi.school.paper.domain.vo;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.ruoyi.common.annotation.ExcelDictFormat; import com.ruoyi.common.annotation.ExcelDictFormat;
import com.ruoyi.common.convert.ExcelDictConvert; import com.ruoyi.common.convert.ExcelDictConvert;
import lombok.Data; import lombok.Data;
...@@ -58,10 +59,10 @@ public class DbErrorListVo { ...@@ -58,10 +59,10 @@ public class DbErrorListVo {
private String remark; private String remark;
/** /**
* 状态:0正常,1删除 * 删除标志(0代表存在 2代表删除)
*/ */
@ExcelProperty(value = "状态:0正常,1删除") @ExcelProperty(value = "删除标志(0代表存在 2代表删除)")
private Integer status; private String delFlag;
} }
...@@ -94,7 +94,7 @@ public class DbTestPaperRecordDetailVo { ...@@ -94,7 +94,7 @@ public class DbTestPaperRecordDetailVo {
private String righAnswersPic; private String righAnswersPic;
@TableField(exist = false) @TableField(exist = false)
private List<DbQuestionBankAnswerTestPaperVo> answers; private List<DbQuestionBankAnswerTestPaperVo> options;
@TableField(exist = false) @TableField(exist = false)
private List<GoodsAnswersVo> goodsAnswers; private List<GoodsAnswersVo> goodsAnswers;
......
...@@ -5,6 +5,7 @@ import com.alibaba.excel.annotation.ExcelProperty; ...@@ -5,6 +5,7 @@ import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableField;
import lombok.Data; import lombok.Data;
import java.math.BigDecimal;
/** /**
...@@ -47,7 +48,7 @@ public class DbTestPaperRecordVo { ...@@ -47,7 +48,7 @@ public class DbTestPaperRecordVo {
* 总得分 * 总得分
*/ */
@ExcelProperty(value = "总得分") @ExcelProperty(value = "总得分")
private Long totalPoints; private BigDecimal totalPoints;
/** /**
* 备注 * 备注
......
...@@ -72,5 +72,22 @@ public class DbTestPaperVo { ...@@ -72,5 +72,22 @@ public class DbTestPaperVo {
@ExcelProperty(value = "状态:0正常,1删除") @ExcelProperty(value = "状态:0正常,1删除")
private Integer status; private Integer status;
/**
* 阶段班级
*/
private String phaseClass;
/**
* 用户昵称
*/
private String nickName;
/**
* 用户id
*/
private Long userId;
/**
* 答题记录id
*/
private Long recordId;
} }
package com.ruoyi.school.paper.domain.vo; package com.ruoyi.school.paper.domain.vo;
import com.ruoyi.school.paper.domain.DbQuestionBankAnswerTestPaper;
import lombok.Data; import lombok.Data;
import java.io.Serializable; import java.io.Serializable;
...@@ -12,6 +13,11 @@ import java.util.List; ...@@ -12,6 +13,11 @@ import java.util.List;
public class ErrorTopicListDetailVo implements Serializable { public class ErrorTopicListDetailVo implements Serializable {
/** /**
* 题目编号
*/
private Long questionBankId;
/**
* 类别名称 * 类别名称
*/ */
private String typeName; private String typeName;
...@@ -22,6 +28,11 @@ public class ErrorTopicListDetailVo implements Serializable { ...@@ -22,6 +28,11 @@ public class ErrorTopicListDetailVo implements Serializable {
private String intensity; private String intensity;
/** /**
* 阶段名称
*/
private String phaseName;
/**
* 习题种类 * 习题种类
*/ */
private String species; private String species;
...@@ -51,5 +62,5 @@ public class ErrorTopicListDetailVo implements Serializable { ...@@ -51,5 +62,5 @@ public class ErrorTopicListDetailVo implements Serializable {
/** /**
* 选项标签集合 * 选项标签集合
*/ */
private List<OptionVo> options; private List<DbQuestionBankAnswerTestPaper> options;
} }
...@@ -11,5 +11,9 @@ public class GoodsAnswersVo { ...@@ -11,5 +11,9 @@ public class GoodsAnswersVo {
private String goodsAnswer; private String goodsAnswer;
private String userName; private String nickName;
private String goodsAnswerPic;
private Long count;
} }
package com.ruoyi.school.paper.domain.vo; package com.ruoyi.school.paper.domain.vo;
import com.ruoyi.school.paper.domain.DbQuestionBankAnswerTestPaper;
import lombok.Data; import lombok.Data;
import java.io.Serializable; import java.io.Serializable;
...@@ -23,15 +24,26 @@ public class MyCollectListVo implements 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; package com.ruoyi.school.paper.domain.vo;
import com.ruoyi.school.paper.domain.DbQuestionBankAnswerTestPaper; import com.ruoyi.school.paper.domain.DbQuestionBankAnswerTestPaper;
import com.sun.org.apache.xpath.internal.objects.XString;
import lombok.Data; import lombok.Data;
import java.io.Serializable; import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List; import java.util.List;
/** /**
...@@ -18,6 +18,11 @@ public class MyErrorTopicListVo implements Serializable { ...@@ -18,6 +18,11 @@ public class MyErrorTopicListVo implements Serializable {
private Long id; private Long id;
/** /**
* 答题记录id
*/
private Long recordId;
/**
* 错题名称 * 错题名称
*/ */
private String topic; private String topic;
...@@ -28,11 +33,26 @@ public class MyErrorTopicListVo implements Serializable { ...@@ -28,11 +33,26 @@ public class MyErrorTopicListVo implements Serializable {
private String answer; private String answer;
/** /**
* 我的答案图片
*/
private String answerPic;
/**
* 正确答案 * 正确答案
*/ */
private String correctAnswer; private String correctAnswer;
/** /**
* 正确答案图片
*/
private String correctAnswerPic;
/**
* 我的得分
*/
private BigDecimal score = BigDecimal.ZERO;
/**
* 题目编号 * 题目编号
*/ */
private Long questionBankId; private Long questionBankId;
...@@ -48,7 +68,31 @@ public class MyErrorTopicListVo implements Serializable { ...@@ -48,7 +68,31 @@ public class MyErrorTopicListVo implements Serializable {
private String resolveVideo; private String resolveVideo;
/** /**
* 题目类型 1填空,2选择,3解答
*/
private Integer species;
/**
* 选项标签集合 * 选项标签集合
*/ */
private List<DbQuestionBankAnswerTestPaper> options; 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; ...@@ -3,12 +3,10 @@ package com.ruoyi.school.paper.mapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.school.paper.domain.DbCollectList; 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.school.paper.domain.vo.DbCollectListVo;
import com.ruoyi.common.core.mapper.BaseMapperPlus; 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.MyCollectListVo;
import com.ruoyi.school.paper.domain.vo.MyErrorTopicListVo;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
/** /**
...@@ -18,5 +16,7 @@ import org.apache.ibatis.annotations.Param; ...@@ -18,5 +16,7 @@ import org.apache.ibatis.annotations.Param;
* @date 2023-07-20 * @date 2023-07-20
*/ */
public interface DbCollectListMapper extends BaseMapperPlus<DbCollectListMapper, DbCollectList, DbCollectListVo> { 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; ...@@ -27,7 +27,7 @@ import org.apache.ibatis.annotations.Mapper;
public interface DbErrorListMapper extends BaseMapperPlus<DbErrorListMapper, DbErrorList, DbErrorListVo> { public interface DbErrorListMapper extends BaseMapperPlus<DbErrorListMapper, DbErrorList, DbErrorListVo> {
Page<ErrorTopicListVo> findErrorTopicPage(IPage<ErrorTopicListVo> iPage, @Param("request") ErrorTopicRequest request); 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); Page<MyErrorTopicListVo> findMyErrorTopicListVoPage(IPage<ErrorTopicListVo> iPage, @Param("request") ErrorTopicRequest request);
} }
...@@ -3,11 +3,16 @@ package com.ruoyi.school.paper.mapper; ...@@ -3,11 +3,16 @@ package com.ruoyi.school.paper.mapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.core.mapper.BaseMapperPlus; import com.ruoyi.common.core.mapper.BaseMapperPlus;
import com.ruoyi.school.paper.domain.DbTestPaperRecordDetail; 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.bo.DbTestPaperRecordDetailBo;
import com.ruoyi.school.paper.domain.vo.DbTestPaperRecordDetailVo; 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.Mapper;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import java.math.BigDecimal;
/** /**
* 答题记录详情Mapper接口 * 答题记录详情Mapper接口
* *
...@@ -17,5 +22,9 @@ import org.apache.ibatis.annotations.Param; ...@@ -17,5 +22,9 @@ import org.apache.ibatis.annotations.Param;
@Mapper @Mapper
public interface DbTestPaperRecordDetailMapper extends BaseMapperPlus<DbTestPaperRecordDetailMapper, DbTestPaperRecordDetail, DbTestPaperRecordDetailVo> { 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 ...@@ -22,7 +22,12 @@ public interface DbTestPaperRecordMapper extends BaseMapperPlus<DbTestPaperRecor
Page<DbTestPaperRecordVo> getTestPaperlist(Page<Object> build, @Param("bo") DbTestPaperRecordBo bo); Page<DbTestPaperRecordVo> getTestPaperlist(Page<Object> build, @Param("bo") DbTestPaperRecordBo bo);
/** /**
* pd段 审批阅卷阶段列表 * pc段 审批阅卷班级列表
*/ */
Page<DbTestPaperVo> getPhaseList(Page<Object> build, @Param("bo") DbTestPaperBo bo); 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; package com.ruoyi.school.paper.service;
import com.ruoyi.school.paper.domain.DbCollectList; 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.vo.DbCollectListVo;
import com.ruoyi.school.paper.domain.bo.DbCollectListBo; import com.ruoyi.school.paper.domain.bo.DbCollectListBo;
import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.core.page.TableDataInfo;
...@@ -26,7 +27,7 @@ public interface IDbCollectListService { ...@@ -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; package com.ruoyi.school.paper.service;
import com.ruoyi.school.paper.domain.DbTestPaperRecordDetail; 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.vo.DbTestPaperRecordDetailVo;
import com.ruoyi.school.paper.domain.bo.DbTestPaperRecordDetailBo; import com.ruoyi.school.paper.domain.bo.DbTestPaperRecordDetailBo;
import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.core.domain.PageQuery; 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.Collection;
import java.util.List; import java.util.List;
...@@ -25,7 +28,7 @@ public interface IDbTestPaperRecordDetailService { ...@@ -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 { ...@@ -48,4 +51,9 @@ public interface IDbTestPaperRecordDetailService {
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid); Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
boolean saveBatch(Collection<DbTestPaperRecordDetail> collection); boolean saveBatch(Collection<DbTestPaperRecordDetail> collection);
/**
* 【小程序】查询答题记录优秀答案
*/
TableDataInfo<GoodsAnswersVo> getGoodsAnswerList(DbTestPaperRecordDetailBo bo, PageQuery pageQuery);
} }
...@@ -2,6 +2,7 @@ package com.ruoyi.school.paper.service; ...@@ -2,6 +2,7 @@ package com.ruoyi.school.paper.service;
import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.ruoyi.common.core.domain.PageQuery; import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.school.paper.domain.DbTestPaperRecord; import com.ruoyi.school.paper.domain.DbTestPaperRecord;
import com.ruoyi.school.paper.domain.bo.DbTestPaperBo; import com.ruoyi.school.paper.domain.bo.DbTestPaperBo;
...@@ -61,7 +62,7 @@ public interface IDbTestPaperRecordService { ...@@ -61,7 +62,7 @@ public interface IDbTestPaperRecordService {
DbTestPaperRecord getOne(Wrapper<DbTestPaperRecord> wrapper); DbTestPaperRecord getOne(Wrapper<DbTestPaperRecord> wrapper);
/** /**
* 【PC】 审批阅卷阶段列表 * 【PC】 审批阅卷班级列表
*/ */
TableDataInfo<DbTestPaperVo> getPhaseList(DbTestPaperBo bo, PageQuery pageQuery); TableDataInfo<DbTestPaperVo> getPhaseList(DbTestPaperBo bo, PageQuery pageQuery);
...@@ -69,4 +70,9 @@ public interface IDbTestPaperRecordService { ...@@ -69,4 +70,9 @@ public interface IDbTestPaperRecordService {
* 【PC】 审批阅卷班级列表 * 【PC】 审批阅卷班级列表
*/ */
TableDataInfo<DbTestPaperVo> getClassList(DbTestPaperBo bo, PageQuery pageQuery); TableDataInfo<DbTestPaperVo> getClassList(DbTestPaperBo bo, PageQuery pageQuery);
/**
* 完成批卷
*/
R<Void> completeReadOver(DbTestPaperRecordBo bo);
} }
package com.ruoyi.school.paper.service.impl; package com.ruoyi.school.paper.service.impl;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.core.domain.PageQuery; import com.ruoyi.common.core.domain.PageQuery;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; 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.domain.vo.MyCollectListVo;
import com.ruoyi.school.paper.mapper.DbQuestionBankAnswerTestPaperMapper;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.ruoyi.school.paper.domain.bo.DbCollectListBo; import com.ruoyi.school.paper.domain.bo.DbCollectListBo;
...@@ -18,6 +22,7 @@ import com.ruoyi.school.paper.service.IDbCollectListService; ...@@ -18,6 +22,7 @@ import com.ruoyi.school.paper.service.IDbCollectListService;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Collection; import java.util.Collection;
import java.util.Optional;
/** /**
* 收藏Service业务层处理 * 收藏Service业务层处理
...@@ -31,6 +36,8 @@ public class DbCollectListServiceImpl implements IDbCollectListService { ...@@ -31,6 +36,8 @@ public class DbCollectListServiceImpl implements IDbCollectListService {
private final DbCollectListMapper baseMapper; private final DbCollectListMapper baseMapper;
private final DbQuestionBankAnswerTestPaperMapper dbQuestionBankAnswerTestPaperMapper;
/** /**
* 查询收藏 * 查询收藏
*/ */
...@@ -43,8 +50,19 @@ public class DbCollectListServiceImpl implements IDbCollectListService { ...@@ -43,8 +50,19 @@ public class DbCollectListServiceImpl implements IDbCollectListService {
* 查询收藏列表 * 查询收藏列表
*/ */
@Override @Override
public TableDataInfo<MyCollectListVo> queryPageList(Integer categoryId, Long userId, PageQuery pageQuery) { public TableDataInfo<MyCollectListVo> queryPageList(CollectListRequest request, PageQuery pageQuery) {
Page<MyCollectListVo> result = baseMapper.findMyECollectListVoPage(pageQuery.build(), userId, categoryId); 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); return TableDataInfo.build(result);
} }
...@@ -62,7 +80,6 @@ public class DbCollectListServiceImpl implements IDbCollectListService { ...@@ -62,7 +80,6 @@ public class DbCollectListServiceImpl implements IDbCollectListService {
LambdaQueryWrapper<DbCollectList> lqw = Wrappers.lambdaQuery(); LambdaQueryWrapper<DbCollectList> lqw = Wrappers.lambdaQuery();
lqw.eq(bo.getUserId() != null, DbCollectList::getUserId, bo.getUserId()); lqw.eq(bo.getUserId() != null, DbCollectList::getUserId, bo.getUserId());
lqw.eq(bo.getQuestionBankId() != null, DbCollectList::getQuestionBankId, bo.getQuestionBankId()); lqw.eq(bo.getQuestionBankId() != null, DbCollectList::getQuestionBankId, bo.getQuestionBankId());
lqw.eq(bo.getStatus() != null, DbCollectList::getStatus, bo.getStatus());
return lqw; return lqw;
} }
...@@ -85,9 +102,11 @@ public class DbCollectListServiceImpl implements IDbCollectListService { ...@@ -85,9 +102,11 @@ public class DbCollectListServiceImpl implements IDbCollectListService {
*/ */
@Override @Override
public Boolean updateByBo(DbCollectListBo bo) { public Boolean updateByBo(DbCollectListBo bo) {
DbCollectList update = BeanUtil.toBean(bo, DbCollectList.class); DbCollectList dbCollectList = baseMapper.selectOne(Wrappers.<DbCollectList>lambdaQuery().eq(DbCollectList::getQuestionBankId, bo.getQuestionBankId()).eq(DbCollectList::getUserId, bo.getUserId()));
validEntityBeforeSave(update); if (null != dbCollectList) {
return baseMapper.updateById(update) > 0; return baseMapper.deleteById(dbCollectList.getId()) > 0;
}
return false;
} }
/** /**
......
...@@ -7,11 +7,13 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers; ...@@ -7,11 +7,13 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.core.domain.PageQuery; import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.page.TableDataInfo; 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.DbErrorList;
import com.ruoyi.school.paper.domain.DbQuestionBankAnswerTestPaper; import com.ruoyi.school.paper.domain.DbQuestionBankAnswerTestPaper;
import com.ruoyi.school.paper.domain.bo.DbErrorListBo; import com.ruoyi.school.paper.domain.bo.DbErrorListBo;
import com.ruoyi.school.paper.domain.request.ErrorTopicRequest; import com.ruoyi.school.paper.domain.request.ErrorTopicRequest;
import com.ruoyi.school.paper.domain.vo.*; 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.DbErrorListMapper;
import com.ruoyi.school.paper.mapper.DbQuestionBankAnswerTestPaperMapper; import com.ruoyi.school.paper.mapper.DbQuestionBankAnswerTestPaperMapper;
import com.ruoyi.school.paper.service.IDbErrorListService; import com.ruoyi.school.paper.service.IDbErrorListService;
...@@ -38,30 +40,18 @@ public class DbErrorListServiceImpl implements IDbErrorListService { ...@@ -38,30 +40,18 @@ public class DbErrorListServiceImpl implements IDbErrorListService {
private final DbQuestionBankAnswerTestPaperMapper dbQuestionBankAnswerTestPaperMapper; private final DbQuestionBankAnswerTestPaperMapper dbQuestionBankAnswerTestPaperMapper;
private final DbCollectListMapper dbCollectListMapper;
/** /**
* 查询错题集 * 查询错题集
*/ */
@Override @Override
public ErrorTopicListDetailVo queryById(Long id) { public ErrorTopicListDetailVo queryById(Long id) {
List<ErrorTopicListDetailVo> errorTopicListDetailVoList = baseMapper.findErrorTopicListDetailById(id); ErrorTopicListDetailVo errorTopicListDetailVo = baseMapper.getErrorTopicListDetailById(id);
if (CollectionUtils.isNotEmpty(errorTopicListDetailVoList)) { if (null != errorTopicListDetailVo) {
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);
List<DbQuestionBankAnswerTestPaper> dbQuestionBankAnswerTestPapers = dbQuestionBankAnswerTestPaperMapper.selectList(Wrappers.<DbQuestionBankAnswerTestPaper>lambdaQuery().eq(DbQuestionBankAnswerTestPaper::getQuestionBankId, errorTopicListDetailVo.getQuestionBankId()));
errorTopicListDetailVo.setOptions(dbQuestionBankAnswerTestPapers);
return errorTopicListDetailVo; return errorTopicListDetailVo;
} }
return null; return null;
...@@ -92,7 +82,6 @@ public class DbErrorListServiceImpl implements IDbErrorListService { ...@@ -92,7 +82,6 @@ public class DbErrorListServiceImpl implements IDbErrorListService {
lqw.eq(bo.getUserId() != null, DbErrorList::getUserId, bo.getUserId()); lqw.eq(bo.getUserId() != null, DbErrorList::getUserId, bo.getUserId());
lqw.eq(bo.getPaperId() != null, DbErrorList::getPaperId, bo.getPaperId()); lqw.eq(bo.getPaperId() != null, DbErrorList::getPaperId, bo.getPaperId());
lqw.eq(bo.getQuestionBankId() != null, DbErrorList::getQuestionBankId, bo.getQuestionBankId()); lqw.eq(bo.getQuestionBankId() != null, DbErrorList::getQuestionBankId, bo.getQuestionBankId());
lqw.eq(bo.getStatus() != null, DbErrorList::getStatus, bo.getStatus());
return lqw; return lqw;
} }
...@@ -149,13 +138,30 @@ public class DbErrorListServiceImpl implements IDbErrorListService { ...@@ -149,13 +138,30 @@ public class DbErrorListServiceImpl implements IDbErrorListService {
Page<MyErrorTopicListVo> myErrorTopicListVoPage = baseMapper.findMyErrorTopicListVoPage(pageQuery.build(), request); Page<MyErrorTopicListVo> myErrorTopicListVoPage = baseMapper.findMyErrorTopicListVoPage(pageQuery.build(), request);
List<MyErrorTopicListVo> records = myErrorTopicListVoPage.getRecords(); List<MyErrorTopicListVo> records = myErrorTopicListVoPage.getRecords();
if (CollectionUtils.isNotEmpty(records)) { if (CollectionUtils.isNotEmpty(records)) {
records.forEach(myErrorTopicListVo -> { //获取题目集ID
//根据每到题目查询对应的选项 List<Long> questionBankIds = records.stream()
//拿到对应选项填充至每道错题当中 .map(MyErrorTopicListVo::getQuestionBankId)
Optional.ofNullable(dbQuestionBankAnswerTestPaperMapper.selectList(Wrappers.<DbQuestionBankAnswerTestPaper>lambdaQuery().eq(DbQuestionBankAnswerTestPaper::getQuestionBankId, myErrorTopicListVo.getQuestionBankId()))) .collect(Collectors.toList());
.ifPresent(myErrorTopicListVo::setOptions);
//查询所有选项并根据题目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); return TableDataInfo.build(myErrorTopicListVoPage);
} }
} }
...@@ -2,14 +2,21 @@ package com.ruoyi.school.paper.service.impl; ...@@ -2,14 +2,21 @@ package com.ruoyi.school.paper.service.impl;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; 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.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.core.domain.PageQuery; import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.helper.LoginHelper;
import com.ruoyi.common.utils.StringUtils; 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.DbTestPaperRecordDetail;
import com.ruoyi.school.paper.domain.bo.DbTestPaperRecordBo;
import com.ruoyi.school.paper.domain.bo.DbTestPaperRecordDetailBo; import com.ruoyi.school.paper.domain.bo.DbTestPaperRecordDetailBo;
import com.ruoyi.school.paper.domain.vo.DbTestPaperRecordDetailVo; 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.mapper.DbTestPaperRecordDetailMapper;
import com.ruoyi.school.paper.service.IDbTestPaperRecordDetailService; import com.ruoyi.school.paper.service.IDbTestPaperRecordDetailService;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
...@@ -30,6 +37,7 @@ import java.util.Map; ...@@ -30,6 +37,7 @@ import java.util.Map;
public class DbTestPaperRecordDetailServiceImpl implements IDbTestPaperRecordDetailService { public class DbTestPaperRecordDetailServiceImpl implements IDbTestPaperRecordDetailService {
private final DbTestPaperRecordDetailMapper baseMapper; private final DbTestPaperRecordDetailMapper baseMapper;
private final DbCollectListMapper collectListMapper;
/** /**
* 查询答题记录详情 * 查询答题记录详情
...@@ -43,9 +51,14 @@ public class DbTestPaperRecordDetailServiceImpl implements IDbTestPaperRecordDet ...@@ -43,9 +51,14 @@ public class DbTestPaperRecordDetailServiceImpl implements IDbTestPaperRecordDet
* 查询答题记录详情列表 * 查询答题记录详情列表
*/ */
@Override @Override
public TableDataInfo<DbTestPaperRecordDetailVo> queryPageList(DbTestPaperRecordDetailBo bo, PageQuery pageQuery) { public TableDataInfo<MyErrorTopicListVo> queryPageList(DbTestPaperRecordDetailBo bo, PageQuery pageQuery) {
Page<MyErrorTopicListVo> result = baseMapper.queryPageList(pageQuery.build(), bo);
Page<DbTestPaperRecordDetailVo> 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); return TableDataInfo.build(result);
} }
...@@ -117,4 +130,13 @@ public class DbTestPaperRecordDetailServiceImpl implements IDbTestPaperRecordDet ...@@ -117,4 +130,13 @@ public class DbTestPaperRecordDetailServiceImpl implements IDbTestPaperRecordDet
public boolean saveBatch(Collection<DbTestPaperRecordDetail> collection) { public boolean saveBatch(Collection<DbTestPaperRecordDetail> collection) {
return baseMapper.insertBatch(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; ...@@ -6,17 +6,20 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.core.domain.PageQuery; import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.school.paper.domain.DbTestPaperRecord; import com.ruoyi.school.paper.domain.DbTestPaperRecord;
import com.ruoyi.school.paper.domain.bo.DbTestPaperBo; import com.ruoyi.school.paper.domain.bo.DbTestPaperBo;
import com.ruoyi.school.paper.domain.bo.DbTestPaperRecordBo; import com.ruoyi.school.paper.domain.bo.DbTestPaperRecordBo;
import com.ruoyi.school.paper.domain.vo.DbTestPaperRecordVo; import com.ruoyi.school.paper.domain.vo.DbTestPaperRecordVo;
import com.ruoyi.school.paper.domain.vo.DbTestPaperVo; 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.mapper.DbTestPaperRecordMapper;
import com.ruoyi.school.paper.service.IDbTestPaperRecordService; import com.ruoyi.school.paper.service.IDbTestPaperRecordService;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.util.Collection; import java.util.Collection;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
...@@ -32,6 +35,7 @@ import java.util.Map; ...@@ -32,6 +35,7 @@ import java.util.Map;
public class DbTestPaperRecordServiceImpl implements IDbTestPaperRecordService { public class DbTestPaperRecordServiceImpl implements IDbTestPaperRecordService {
private final DbTestPaperRecordMapper baseMapper; private final DbTestPaperRecordMapper baseMapper;
private final DbTestPaperRecordDetailMapper recordDetailMapper;
/** /**
* 查询答题记录 * 查询答题记录
...@@ -137,7 +141,7 @@ public class DbTestPaperRecordServiceImpl implements IDbTestPaperRecordService { ...@@ -137,7 +141,7 @@ public class DbTestPaperRecordServiceImpl implements IDbTestPaperRecordService {
} }
/** /**
* 审批阅卷阶段列表【PC】 * 审批阅卷班级列表【PC】
*/ */
@Override @Override
public TableDataInfo<DbTestPaperVo> getPhaseList(DbTestPaperBo bo, PageQuery pageQuery) { public TableDataInfo<DbTestPaperVo> getPhaseList(DbTestPaperBo bo, PageQuery pageQuery) {
...@@ -150,6 +154,23 @@ public class DbTestPaperRecordServiceImpl implements IDbTestPaperRecordService { ...@@ -150,6 +154,23 @@ public class DbTestPaperRecordServiceImpl implements IDbTestPaperRecordService {
*/ */
@Override @Override
public TableDataInfo<DbTestPaperVo> getClassList(DbTestPaperBo bo, PageQuery pageQuery) { 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; ...@@ -2,6 +2,7 @@ package com.ruoyi.school.paper.service.impl;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil; 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.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
...@@ -24,6 +25,7 @@ import com.ruoyi.school.paper.service.IDbTestPaperService; ...@@ -24,6 +25,7 @@ import com.ruoyi.school.paper.service.IDbTestPaperService;
import com.ruoyi.system.service.ISysDeptService; import com.ruoyi.system.service.ISysDeptService;
import com.ruoyi.system.service.ISysUserService; import com.ruoyi.system.service.ISysUserService;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.ArrayUtils; import org.apache.commons.lang3.ArrayUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
...@@ -37,6 +39,7 @@ import java.util.stream.Collectors; ...@@ -37,6 +39,7 @@ import java.util.stream.Collectors;
* @author zyf * @author zyf
* @date 2023-07-20 * @date 2023-07-20
*/ */
@Slf4j
@RequiredArgsConstructor @RequiredArgsConstructor
@Service @Service
public class DbTestPaperServiceImpl implements IDbTestPaperService { public class DbTestPaperServiceImpl implements IDbTestPaperService {
...@@ -151,10 +154,12 @@ public class DbTestPaperServiceImpl implements IDbTestPaperService { ...@@ -151,10 +154,12 @@ public class DbTestPaperServiceImpl implements IDbTestPaperService {
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public Boolean randomGeneration(DbTestPaperBo bo) { public Boolean randomGeneration(DbTestPaperBo bo) {
DbTestPaper add = BeanUtil.toBean(bo, DbTestPaper.class); 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获取阶段信息 // 根据班级id获取阶段信息
SysDept phase = deptService.getParent(bo.getClassId()); SysDept phase = deptService.getParent(bo.getClassId());
add.setPhaseId(phase.getDeptId()); add.setPhaseId(phase.getDeptId());
bo.setPhaseId(phase.getDeptId());
baseMapper.insert(add); baseMapper.insert(add);
// 从redis中获取所有题目 // 从redis中获取所有题目
List<DbQuestionBank> dbQuestionBanks = JsonUtils.parseArray(RedisUtils.getCacheObject(DEFAULT_QUESTIOBN_BANK_KEY), DbQuestionBank.class); List<DbQuestionBank> dbQuestionBanks = JsonUtils.parseArray(RedisUtils.getCacheObject(DEFAULT_QUESTIOBN_BANK_KEY), DbQuestionBank.class);
...@@ -162,15 +167,15 @@ public class DbTestPaperServiceImpl implements IDbTestPaperService { ...@@ -162,15 +167,15 @@ public class DbTestPaperServiceImpl implements IDbTestPaperService {
Map<Integer, List<DbQuestionBank>> collect = dbQuestionBanks.stream() Map<Integer, List<DbQuestionBank>> collect = dbQuestionBanks.stream()
.filter(bank -> bank.getCategoryId().equals(bo.getCategoryId()) .filter(bank -> bank.getCategoryId().equals(bo.getCategoryId())
&& bank.getPhaseId().equals(bo.getPhaseId()) && bank.getPhaseId().equals(bo.getPhaseId())
&& ArrayUtils.contains(bo.getIntensity().split(","), bank.getIntensity()) && bo.getIntensitys().contains(bank.getIntensity())
).collect(Collectors.groupingBy(DbQuestionBank::getSpecies)); ).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> papers = new ArrayList<>();
List<DbQuestionBankTestPaper> selectList = null; List<DbQuestionBankTestPaper> selectList = null;
...@@ -191,7 +196,7 @@ public class DbTestPaperServiceImpl implements IDbTestPaperService { ...@@ -191,7 +196,7 @@ public class DbTestPaperServiceImpl implements IDbTestPaperService {
} }
questionBankTestPaperMapper.insertBatch(papers); questionBankTestPaperMapper.insertBatch(papers);
this.saveSelectListOptions(add.getId()); this.saveSelectListOptions(add.getId());
return null; return true;
} }
/** /**
...@@ -226,7 +231,7 @@ public class DbTestPaperServiceImpl implements IDbTestPaperService { ...@@ -226,7 +231,7 @@ public class DbTestPaperServiceImpl implements IDbTestPaperService {
* @return * @return
*/ */
private List<DbQuestionBankTestPaper> generatePaper(List<DbQuestionBank> list, int num, Integer totalPoints, Long paperId) { private List<DbQuestionBankTestPaper> generatePaper(List<DbQuestionBank> list, int num, Integer totalPoints, Long paperId) {
System.out.println("系统正在随机抽取题目生成试卷,这可能需要一段时间,请耐心等候···"); log.info("系统正在随机抽取题目生成试卷,这可能需要一段时间,请耐心等候···");
HashSet<DbQuestionBankTestPaper> paper = new HashSet<>();//用来存储题目,set集合去重复 HashSet<DbQuestionBankTestPaper> paper = new HashSet<>();//用来存储题目,set集合去重复
//这个while循环用来生成不重复的一套题目 //这个while循环用来生成不重复的一套题目
while (paper.size() != num) { while (paper.size() != num) {
......
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
<result property="userId" column="user_id"/> <result property="userId" column="user_id"/>
<result property="questionBankId" column="question_bank_id"/> <result property="questionBankId" column="question_bank_id"/>
<result property="remark" column="remark"/> <result property="remark" column="remark"/>
<result property="status" column="status"/> <result property="delFlag" column="del_flag"/>
<result property="createTime" column="create_time"/> <result property="createTime" column="create_time"/>
<result property="createBy" column="create_by"/> <result property="createBy" column="create_by"/>
<result property="updateTime" column="update_time"/> <result property="updateTime" column="update_time"/>
...@@ -19,21 +19,32 @@ ...@@ -19,21 +19,32 @@
SELECT SELECT
dcl.question_bank_id questionBankId, dcl.question_bank_id questionBankId,
dqb.topic AS topic, dqb.topic AS topic,
dqb.right_answers AS rightAnswers, dqb.right_answers AS answer,
dqb.right_answers_pic AS rightAnswersPic dqb.right_answers_pic AS answerPic,
dqb.species AS species,
dcl.user_id AS userId
FROM FROM
db_collect_list AS dcl db_collect_list AS dcl
LEFT JOIN db_question_bank AS dqb ON dcl.question_bank_id = dqb.id LEFT JOIN db_question_bank_test_paper AS dqb ON dqb.id = dcl.question_bank_id
LEFT JOIN db_question_bank_answer AS dqba ON dqba.question_bank_id = dqb.id LEFT JOIN db_question_bank_answer_test_paper AS dqbat ON dqbat.question_bank_id = dqb.question_bank_id
<where>
dcl.user_id = #{userId}
<if test="categoryId != null"> <where>
and dqb.category_id = #{categoryId} 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> </if>
</where> </where>
</select> </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> </mapper>
...@@ -24,16 +24,11 @@ ...@@ -24,16 +24,11 @@
dqbtp.topic as topic dqbtp.topic as topic
FROM FROM
db_error_list AS del db_error_list AS del
LEFT JOIN db_test_paper_record AS dtpr ON del.paper_id = dtpr.test_paper_id LEFT JOIN db_question_bank AS dqbtp ON dqbtp.id = del.question_bank_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
<where> <where>
<if test="request.categoryId != null"> <if test="request.categoryId != null">
dqbtp.category_id = #{request.categoryId} dqbtp.category_id = #{request.categoryId}
</if> </if>
<if test="request.species != null">
and dqbtp.species = #{request.species}
</if>
<if test="request.type != null"> <if test="request.type != null">
and dqbtp.type = #{request.type} and dqbtp.type = #{request.type}
</if> </if>
...@@ -42,36 +37,34 @@ ...@@ -42,36 +37,34 @@
</if> </if>
</where> </where>
</select> </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"> parameterType="java.lang.Long">
SELECT dqt.type_value AS typeName, SELECT dqt.type_value AS typeName,
dqbtp.intensity AS intensity, dqb.intensity AS intensity,
dqbtp.species AS species, dqb.species AS species,
dqbtp.topic AS topic, dqb.topic AS topic,
dqbtp.right_answers AS rightAnswers, dqb.right_answers AS rightAnswers,
dpbatp.option_tag AS optionTag, sd.dept_name AS phaseName,
dpbatp.option_content AS optionContent del.question_bank_id AS questionBankId
FROM db_error_list AS del 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_question_bank dqb ON dqb.id = del.question_bank_id
LEFT JOIN db_test_paper_record_detail AS dtprd ON dtpr.id = dtprd.record_id LEFT JOIN sys_dept sd ON sd.dept_id = dqb.phase_id
LEFT JOIN db_question_bank_answer_test_paper AS dpbatp LEFT JOIN db_question_type dqt ON dqt.id = dqb.category_id
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
WHERE del.id = #{id} WHERE del.id = #{id}
</select> </select>
<select id="findMyErrorTopicListVoPage" resultType="com.ruoyi.school.paper.domain.vo.MyErrorTopicListVo"> <select id="findMyErrorTopicListVoPage" resultType="com.ruoyi.school.paper.domain.vo.MyErrorTopicListVo">
SELECT SELECT
del.id AS id, del.id AS id,
dtprd.question_bank_id AS questionBankId, del.question_bank_id AS questionBankId,
dqbtp.topic AS topic, dqbtp.topic AS topic,
dtprd.answer AS answer, dtprd.answer AS answer,
dtprd.correct_answer AS correctAnswer dqbtp.right_answers AS correctAnswer,
dqbtp.species AS species
FROM FROM
db_error_list AS del db_error_list AS del
LEFT JOIN db_test_paper_record AS dtpr ON del.record_id = dtpr.id LEFT JOIN db_question_bank_test_paper AS dqbtp ON dqbtp.id = del.question_bank_id
LEFT JOIN db_test_paper_record_detail AS dtprd ON dtpr.id = dtprd.record_id LEFT JOIN db_test_paper_record AS dtpr ON dtpr.id = del.record_id
LEFT JOIN db_question_bank_test_paper AS dqbtp ON dtprd.question_bank_id = dqbtp.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> <where>
del.user_id = #{request.userId} del.user_id = #{request.userId}
<if test="request.categoryId != null"> <if test="request.categoryId != null">
......
...@@ -19,45 +19,73 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ...@@ -19,45 +19,73 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="updateBy" column="update_by"/> <result property="updateBy" column="update_by"/>
</resultMap> </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="topic" column="topic"/>
<result property="questionBankId" column="question_bank_id"/>
<result property="answer" column="answer"/> <result property="answer" column="answer"/>
<result property="answerPic" column="answers_pic"/> <result property="answerPic" column="answers_pic"/>
<result property="score" column="score"/> <result property="score" column="score"/>
<result property="correctAnswer" column="correctAnswer"/> <result property="correctAnswer" column="correctAnswer"/>
<result property="righAnswersPic" column="right_answers_pic"/> <result property="correctAnswerPic" column="correctAnswerPic"/>
<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="optionTag" column="option_tag"/>
<result property="optionContent" column="option_content"/> <result property="optionContent" column="option_content"/>
</collection> </collection>
<collection property="goodsAnswers" ofType="com.ruoyi.school.paper.domain.vo.GoodsAnswersVo"> <collection property="goodsAnswerCount" column="{questionBankId = question_bank_id, recordId = record_id}" select="getHasGoodsAnserList" ofType="long">
<result property="goodsAnswer" column="goods_answer"/>
<result property="userName" column="user_name"/>
</collection> </collection>
</resultMap> </resultMap>
<select id="queryPageList" resultMap="TestPaperRecordDetailResult"> <select id="queryPageList" resultMap="TestPaperRecordDetailResult">
SELECT dqbatp.topic, SELECT
dqbatp.right_answers as correctAnswer, dtprd.id,
dqbatp.right_answers_pic, dqbatp.topic,
dtprd.answer, dtprd.record_id,
dtprd.answers_pic, dtprd.question_bank_id,
dtprd.score, dqbatp.right_answers AS correctAnswer,
d.option_tag, dqbatp.right_answers_pic as correctAnswerPic,
d.option_content, dtprd.answer,
m.answer goods_answer, dtprd.answers_pic,
m.user_name dtprd.score,
FROM db_test_paper_record_detail dtprd dqbatp.species
LEFT JOIN db_question_bank_test_paper dqbatp ON dtprd.question_bank_id = dqbatp.id FROM
LEFT JOIN db_question_bank_answer_test_paper d ON dtprd.question_bank_id = d.question_bank_id db_test_paper_record_detail dtprd
LEFT JOIN (SELECT a.answer, LEFT JOIN db_question_bank_test_paper dqbatp ON dtprd.question_bank_id = dqbatp.id
su.user_name, WHERE
a.question_bank_id dtprd.record_id = #{bo.recordId}
FROM db_test_paper_record_detail a </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 db_test_paper_record dtpr ON a.record_id = dtpr.id
LEFT JOIN sys_user su ON dtpr.user_id = su.user_id LEFT JOIN sys_user su ON dtpr.user_id = su.user_id
WHERE a.question_bank_id = #{bo.questionBankId,jdbcType=BIGINT} WHERE
AND good = 0) m ON m.question_bank_id = dqbatp.id a.question_bank_id = #{bo.questionBankId}
WHERE dtprd.record_id = #{bo.recordId,jdbcType=BIGINT} 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> </select>
</mapper> </mapper>
...@@ -21,7 +21,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ...@@ -21,7 +21,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
select dtpr.*,dtp.test_name select dtpr.*,dtp.test_name
from db_test_paper_record dtpr from db_test_paper_record dtpr
left join db_test_paper dtp on dtpr.test_paper_id = dtp.id 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>
<select id="getPhaseList" resultType="com.ruoyi.school.paper.domain.vo.DbTestPaperVo"> <select id="getPhaseList" resultType="com.ruoyi.school.paper.domain.vo.DbTestPaperVo">
...@@ -34,11 +34,31 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ...@@ -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 phase on dtp.phase_id = phase.dept_id
left join sys_dept class on dtp.class_id = class.dept_id left join sys_dept class on dtp.class_id = class.dept_id
where dtpr.status in (1, 2, 3) where dtpr.status in (1, 2, 3)
<if test="bo.phaseId != null"> <if test="bo.classId != null">
and dtp.phase_id = #{bo.phaseId,jdbcType=BIGINT} and dtp.class_id = #{bo.classId,jdbcType=BIGINT}
</if> </if>
<if test="bo.testName != null and bo.testName != ''"> <if test="bo.testName != null and bo.testName != ''">
and dtp.test_name like concat('%', #{bo.testName,jdbcType=VARCHAR}, '%') and dtp.test_name like concat('%', #{bo.testName,jdbcType=VARCHAR}, '%')
</if> </if>
</select> </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> </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