From b55933dc08b27a1e051115f8c58ce46291637f8c Mon Sep 17 00:00:00 2001 From: xiangpei <xiangpei@timesnew.cn> Date: 星期四, 13 六月 2024 17:53:50 +0800 Subject: [PATCH] 手动、临时提交考试 --- src/main/java/com/ycl/jxkg/domain/query/ClassesUserQuery.java | 4 src/main/resources/mapper/ExamSubmitTempMapper.xml | 52 ++++++ src/main/java/com/ycl/jxkg/controller/student/ExamController.java | 29 +++ src/main/resources/mapper/QuestionMapper.xml | 20 + src/main/java/com/ycl/jxkg/domain/entity/ExamSubmitTemp.java | 46 +++++ src/main/java/com/ycl/jxkg/enums/QuestionTypeEnum.java | 14 - src/main/java/com/ycl/jxkg/mapper/ExamSubmitTempMapper.java | 25 +++ src/main/java/com/ycl/jxkg/domain/vo/ExamSubmitVO.java | 23 ++ src/main/java/com/ycl/jxkg/domain/vo/QuestionItemVO.java | 13 + src/main/java/com/ycl/jxkg/service/impl/ExamServiceImpl.java | 73 +++++++++ src/main/java/com/ycl/jxkg/domain/vo/ExamSubmitTempVO.java | 48 ++++++ pom.xml | 8 + src/main/java/com/ycl/jxkg/enums/general/ExamSubmitTempStatusEnum.java | 29 +++ src/main/java/com/ycl/jxkg/mapper/QuestionMapper.java | 8 + src/main/java/com/ycl/jxkg/service/ExamService.java | 10 + src/main/java/com/ycl/jxkg/domain/vo/DoQuestionVO.java | 34 ++++ src/main/java/com/ycl/jxkg/controller/student/ExamPaperAnswerController.java | 3 src/main/resources/mapper/ClassesUserMapper.xml | 1 18 files changed, 424 insertions(+), 16 deletions(-) diff --git a/pom.xml b/pom.xml index f4960a2..7b227ea 100644 --- a/pom.xml +++ b/pom.xml @@ -43,6 +43,14 @@ <dependencies> + <!-- fastjson --> + <dependency> + <groupId>com.alibaba.fastjson2</groupId> + <artifactId>fastjson2</artifactId> + <version>2.0.41</version> + </dependency> + + <!-- swagger --> <dependency> <groupId>io.springfox</groupId> diff --git a/src/main/java/com/ycl/jxkg/controller/student/ExamController.java b/src/main/java/com/ycl/jxkg/controller/student/ExamController.java new file mode 100644 index 0000000..22dab9b --- /dev/null +++ b/src/main/java/com/ycl/jxkg/controller/student/ExamController.java @@ -0,0 +1,29 @@ +package com.ycl.jxkg.controller.student; + +import com.ycl.jxkg.base.Result; +import com.ycl.jxkg.domain.vo.ExamSubmitVO; +import com.ycl.jxkg.service.ExamService; +import lombok.RequiredArgsConstructor; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * @author锛歺p + * @date锛�2024/6/13 15:45 + */ +@RestController +@RequiredArgsConstructor +@RequestMapping(value = "/api/student/exampaper/answer") +public class ExamController { + + private final ExamService examService; + + @PostMapping("/exam/submit") + public Result examSubmit(@RequestBody @Validated ExamSubmitVO submitData) { + return examService.examSubmit(submitData); + } + +} diff --git a/src/main/java/com/ycl/jxkg/controller/student/ExamPaperAnswerController.java b/src/main/java/com/ycl/jxkg/controller/student/ExamPaperAnswerController.java index 3cf880e..f9e0cae 100644 --- a/src/main/java/com/ycl/jxkg/controller/student/ExamPaperAnswerController.java +++ b/src/main/java/com/ycl/jxkg/controller/student/ExamPaperAnswerController.java @@ -7,6 +7,7 @@ import com.ycl.jxkg.domain.entity.Subject; import com.ycl.jxkg.domain.entity.User; import com.ycl.jxkg.domain.entity.UserEventLog; +import com.ycl.jxkg.domain.vo.ExamSubmitVO; import com.ycl.jxkg.enums.ExamPaperAnswerStatusEnum; import com.ycl.jxkg.event.CalculateExamPaperAnswerCompleteEvent; import com.ycl.jxkg.event.UserEvent; @@ -25,6 +26,7 @@ import lombok.RequiredArgsConstructor; import org.springframework.beans.BeanUtils; import org.springframework.context.ApplicationEventPublisher; +import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import javax.validation.Valid; @@ -80,7 +82,6 @@ eventPublisher.publishEvent(new UserEvent(userEventLog)); return Result.ok(scoreVm); } - @RequestMapping(value = "/edit", method = RequestMethod.POST) public Result edit(@RequestBody @Valid ExamPaperSubmitVO examPaperSubmitVO) { diff --git a/src/main/java/com/ycl/jxkg/domain/entity/ExamSubmitTemp.java b/src/main/java/com/ycl/jxkg/domain/entity/ExamSubmitTemp.java new file mode 100644 index 0000000..8d2a018 --- /dev/null +++ b/src/main/java/com/ycl/jxkg/domain/entity/ExamSubmitTemp.java @@ -0,0 +1,46 @@ +package com.ycl.jxkg.domain.entity; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import java.io.Serializable; +import java.util.Date; + +import com.ycl.jxkg.domain.base.AbsEntity; +import com.ycl.jxkg.enums.general.ExamSubmitTempStatusEnum; +import lombok.Data; + +/** + * 鎻愪氦璇曞嵎涓存椂淇濆瓨 + * + * @author xp + * @since 2024-06-13 + */ +@Data +@TableName("t_exam_submit_temp") +public class ExamSubmitTemp extends AbsEntity { + + private static final long serialVersionUID = 1L; + + @TableField("exam_id") + /** */ + private Integer examId; + + @TableField("user_id") + /** */ + private Integer userId; + + @TableField("do_time") + /** 鍋氶鑰楁椂 绉� */ + private Integer doTime; + + @TableField("exam_submit") + /** 鎻愪氦鐨勮瘯鍗峰唴瀹� */ + private String examSubmit; + + @TableField("status") + /** 鐘舵�侊細涓存椂銆佷繚瀛� */ + private ExamSubmitTempStatusEnum status; + + @TableField("create_time") + private Date createTime; +} diff --git a/src/main/java/com/ycl/jxkg/domain/query/ClassesUserQuery.java b/src/main/java/com/ycl/jxkg/domain/query/ClassesUserQuery.java index 8e7a398..776b5ed 100644 --- a/src/main/java/com/ycl/jxkg/domain/query/ClassesUserQuery.java +++ b/src/main/java/com/ycl/jxkg/domain/query/ClassesUserQuery.java @@ -18,5 +18,9 @@ @Data @ApiModel(value = "ClassesUser鏌ヨ", description = "鐝骇涓庣敤鎴峰叧鑱旇〃鏌ヨ") public class ClassesUserQuery extends AbsQuery { + + /** 瀛﹀憳濮撳悕 */ + private String studentName; + } diff --git a/src/main/java/com/ycl/jxkg/domain/vo/DoQuestionVO.java b/src/main/java/com/ycl/jxkg/domain/vo/DoQuestionVO.java new file mode 100644 index 0000000..30604d8 --- /dev/null +++ b/src/main/java/com/ycl/jxkg/domain/vo/DoQuestionVO.java @@ -0,0 +1,34 @@ +package com.ycl.jxkg.domain.vo; + +import com.ycl.jxkg.domain.base.AbsVo; +import lombok.Data; + +import java.util.List; + +/** + * @author锛歺p + * @date锛�2024/6/13 15:27 + */ +@Data +public class DoQuestionVO extends AbsVo { + + /** 棰樼洰绫诲瀷 */ + private Integer questionType; + + /** 棰樺共 */ + private String titleContent; + + /** 瀛﹀憳绛旀 */ + private String answer; + /** 瀛﹀憳澶氶�夐绛旀 */ + private List<String> answerList; + + /** 閫夐」json锛屽悗绔娇鐢� */ + private String content; + + /** 姝g‘涓庡惁锛屽悗绔垽鏂悗濉厖璇ュ�� */ + private Boolean right; + + /** 棰樼洰閫夐」 */ + private List<QuestionItemVO> questionItemList; +} diff --git a/src/main/java/com/ycl/jxkg/domain/vo/ExamSubmitTempVO.java b/src/main/java/com/ycl/jxkg/domain/vo/ExamSubmitTempVO.java new file mode 100644 index 0000000..d68348c --- /dev/null +++ b/src/main/java/com/ycl/jxkg/domain/vo/ExamSubmitTempVO.java @@ -0,0 +1,48 @@ +package com.ycl.jxkg.domain.vo; + +import com.ycl.jxkg.domain.base.AbsVo; +import com.ycl.jxkg.domain.entity.ExamSubmitTemp; +import java.util.List; +import org.springframework.lang.NonNull; +import org.springframework.beans.BeanUtils; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import java.util.Date; + +/** + * 鎻愪氦璇曞嵎涓存椂淇濆瓨灞曠ず + * + * @author xp + * @since 2024-06-13 + */ +@Data +public class ExamSubmitTempVO extends AbsVo { + + /** */ + private Integer examId; + + /** */ + private Integer userId; + + /** 鍋氶鑰楁椂 绉� */ + private Integer doTime; + + /** 鎻愪氦鐨勮瘯鍗峰唴瀹� */ + private String examSubmit; + + /** */ + private Date createTime; + + /** 鐘舵�侊細涓存椂銆佷繚瀛� */ + private String status; + + public static ExamSubmitTempVO getVoByEntity(@NonNull ExamSubmitTemp entity, ExamSubmitTempVO vo) { + if(vo == null) { + vo = new ExamSubmitTempVO(); + } + BeanUtils.copyProperties(entity, vo); + return vo; + } + +} diff --git a/src/main/java/com/ycl/jxkg/domain/vo/ExamSubmitVO.java b/src/main/java/com/ycl/jxkg/domain/vo/ExamSubmitVO.java new file mode 100644 index 0000000..007f69b --- /dev/null +++ b/src/main/java/com/ycl/jxkg/domain/vo/ExamSubmitVO.java @@ -0,0 +1,23 @@ +package com.ycl.jxkg.domain.vo; + +import lombok.Data; + +import java.util.List; + +/** + * 鎻愪氦璇曞嵎鏁版嵁 + * + * @author锛歺p + * @date锛�2024/6/13 15:19 + */ +@Data +public class ExamSubmitVO { + + private Integer examId; + + /** 鍋氶娑堣�楁椂闂� */ + private Integer doTime; + + /** 棰樼洰 */ + private List<DoQuestionVO> questionList; +} diff --git a/src/main/java/com/ycl/jxkg/domain/vo/QuestionItemVO.java b/src/main/java/com/ycl/jxkg/domain/vo/QuestionItemVO.java new file mode 100644 index 0000000..9445ceb --- /dev/null +++ b/src/main/java/com/ycl/jxkg/domain/vo/QuestionItemVO.java @@ -0,0 +1,13 @@ +package com.ycl.jxkg.domain.vo; + +import lombok.Data; + +/** + * @author锛歺p + * @date锛�2024/6/13 15:34 + */ +@Data +public class QuestionItemVO { + + +} diff --git a/src/main/java/com/ycl/jxkg/enums/QuestionTypeEnum.java b/src/main/java/com/ycl/jxkg/enums/QuestionTypeEnum.java index 6398b77..d7b9232 100644 --- a/src/main/java/com/ycl/jxkg/enums/QuestionTypeEnum.java +++ b/src/main/java/com/ycl/jxkg/enums/QuestionTypeEnum.java @@ -11,10 +11,11 @@ GapFilling(4, "濉┖棰�"), ShortAnswer(5, "绠�绛旈"), Calculation(6,"璁$畻棰�"); - int code; + + Integer code; String name; - QuestionTypeEnum(int code, String name) { + QuestionTypeEnum(Integer code, String name) { this.code = code; this.name = name; } @@ -43,21 +44,14 @@ } } - public int getCode() { + public Integer getCode() { return code; - } - - public void setCode(int code) { - this.code = code; } public String getName() { return name; } - public void setName(String name) { - this.name = name; - } } diff --git a/src/main/java/com/ycl/jxkg/enums/general/ExamSubmitTempStatusEnum.java b/src/main/java/com/ycl/jxkg/enums/general/ExamSubmitTempStatusEnum.java new file mode 100644 index 0000000..ee109fe --- /dev/null +++ b/src/main/java/com/ycl/jxkg/enums/general/ExamSubmitTempStatusEnum.java @@ -0,0 +1,29 @@ +package com.ycl.jxkg.enums.general; + +import com.baomidou.mybatisplus.annotation.EnumValue; +import lombok.Getter; + +/** + * 涓存椂淇濆瓨鑰冭瘯璇曞嵎 + * + * @author锛歺p + * @date锛�2024/6/13 17:37 + */ +@Getter +public enum ExamSubmitTempStatusEnum { + + TEMP("temp", "涓存椂"), + FINISH("finish", "瀹屾垚"), + ; + + @EnumValue + private final String value; + + private final String desc; + + + ExamSubmitTempStatusEnum(String value, String desc) { + this.value = value; + this.desc = desc; + } +} diff --git a/src/main/java/com/ycl/jxkg/mapper/ExamSubmitTempMapper.java b/src/main/java/com/ycl/jxkg/mapper/ExamSubmitTempMapper.java new file mode 100644 index 0000000..039ac76 --- /dev/null +++ b/src/main/java/com/ycl/jxkg/mapper/ExamSubmitTempMapper.java @@ -0,0 +1,25 @@ +package com.ycl.jxkg.mapper; + +import com.ycl.jxkg.domain.entity.ExamSubmitTemp; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.ycl.jxkg.domain.vo.ExamSubmitTempVO; +import java.util.List; +import org.apache.ibatis.annotations.Mapper; + +/** + * 鎻愪氦璇曞嵎涓存椂淇濆瓨 Mapper 鎺ュ彛 + * + * @author xp + * @since 2024-06-13 + */ +@Mapper +public interface ExamSubmitTempMapper extends BaseMapper<ExamSubmitTemp> { + + /** + * id鏌ユ壘鎻愪氦璇曞嵎涓存椂淇濆瓨 + * @param id + * @return + */ + ExamSubmitTempVO getById(Integer id); + +} diff --git a/src/main/java/com/ycl/jxkg/mapper/QuestionMapper.java b/src/main/java/com/ycl/jxkg/mapper/QuestionMapper.java index 3c93933..a63c165 100644 --- a/src/main/java/com/ycl/jxkg/mapper/QuestionMapper.java +++ b/src/main/java/com/ycl/jxkg/mapper/QuestionMapper.java @@ -20,4 +20,12 @@ Integer selectAllCount(); List<KeyValue> selectCountByDate(@Param("startTime") Date startTime,@Param("endTime") Date endTime); + + /** + * 鑾峰彇棰樼洰锛氶鍨嬨�佺瓟妗� + * + * @param questionIds + * @return + */ + List<Question> getAnswerInfo(@Param("questionIds") List<Integer> questionIds); } diff --git a/src/main/java/com/ycl/jxkg/service/ExamService.java b/src/main/java/com/ycl/jxkg/service/ExamService.java index bf476cd..f368c7f 100644 --- a/src/main/java/com/ycl/jxkg/service/ExamService.java +++ b/src/main/java/com/ycl/jxkg/service/ExamService.java @@ -5,6 +5,8 @@ import com.ycl.jxkg.base.Result; import com.ycl.jxkg.domain.form.ExamForm; import com.ycl.jxkg.domain.query.ExamQuery; +import com.ycl.jxkg.domain.vo.ExamSubmitVO; + import java.util.List; /** @@ -62,4 +64,12 @@ * @return */ Result all(); + + /** + * 鑰冭瘯鎻愪氦 + * + * @param submitData + * @return + */ + Result examSubmit(ExamSubmitVO submitData); } diff --git a/src/main/java/com/ycl/jxkg/service/impl/ExamServiceImpl.java b/src/main/java/com/ycl/jxkg/service/impl/ExamServiceImpl.java index afbca10..2d6b213 100644 --- a/src/main/java/com/ycl/jxkg/service/impl/ExamServiceImpl.java +++ b/src/main/java/com/ycl/jxkg/service/impl/ExamServiceImpl.java @@ -1,10 +1,20 @@ package com.ycl.jxkg.service.impl; +import com.alibaba.fastjson2.JSON; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper; import com.ycl.jxkg.context.WebContext; import com.ycl.jxkg.domain.entity.Exam; +import com.ycl.jxkg.domain.entity.ExamSubmitTemp; +import com.ycl.jxkg.domain.entity.Question; +import com.ycl.jxkg.domain.vo.DoQuestionVO; +import com.ycl.jxkg.domain.vo.ExamSubmitVO; +import com.ycl.jxkg.enums.QuestionTypeEnum; import com.ycl.jxkg.enums.general.ExamStatusEnum; +import com.ycl.jxkg.enums.general.ExamSubmitTempStatusEnum; import com.ycl.jxkg.mapper.ExamMapper; +import com.ycl.jxkg.mapper.ExamSubmitTempMapper; +import com.ycl.jxkg.mapper.QuestionMapper; import com.ycl.jxkg.service.ExamService; import com.ycl.jxkg.base.Result; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -17,7 +27,10 @@ import org.springframework.beans.BeanUtils; import org.springframework.util.Assert; +import java.util.Date; import java.util.List; +import java.util.Map; +import java.util.Objects; import java.util.stream.Collectors; /** @@ -32,9 +45,12 @@ private final ExamMapper examMapper; private final WebContext webContext; + private final QuestionMapper questionMapper; + private final ExamSubmitTempMapper examSubmitTempMapper; /** * 娣诲姞 + * * @param form * @return */ @@ -49,6 +65,7 @@ /** * 淇敼 + * * @param form * @return */ @@ -65,6 +82,7 @@ /** * 鎵归噺鍒犻櫎 + * * @param ids * @return */ @@ -76,6 +94,7 @@ /** * id鍒犻櫎 + * * @param id * @return */ @@ -87,6 +106,7 @@ /** * 鍒嗛〉鏌ヨ + * * @param query * @return */ @@ -99,6 +119,7 @@ /** * 鏍规嵁id鏌ユ壘 + * * @param id * @return */ @@ -111,6 +132,7 @@ /** * 鍒楄〃 + * * @return */ @Override @@ -121,4 +143,55 @@ .collect(Collectors.toList()); return Result.ok().data(vos); } + + @Override + public Result examSubmit(ExamSubmitVO submitData) { + // 鏍¢獙 + Exam exam = examMapper.selectById(submitData.getExamId()); + if (Objects.isNull(exam)) { + throw new RuntimeException("璇ヨ�冭瘯涓嶅瓨鍦�"); + } + // 鍒ゆ柇鍗曢�夈�佸閫夈�佸垽鏂瀵归敊 + List<Integer> questionIds = submitData.getQuestionList().stream().map(DoQuestionVO::getId).collect(Collectors.toList()); + List<Question> questionList = questionMapper.getAnswerInfo(questionIds); + Map<Integer, Question> answerMap = questionList.stream().collect(Collectors.toMap(Question::getId, entity -> entity)); + submitData.getQuestionList().stream().forEach(item -> { + Question question = answerMap.get(item.getId()); + if (Objects.nonNull(question) + && (QuestionTypeEnum.SingleChoice.getCode().equals(question.getQuestionType()) + || QuestionTypeEnum.MultipleChoice.getCode().equals(question.getQuestionType()) + || QuestionTypeEnum.TrueFalse.getCode().equals(question.getQuestionType()) + )) { + String correct = question.getCorrect(); + if (QuestionTypeEnum.MultipleChoice.getCode().equals(question.getQuestionType())) { + // 濡傛灉鏄�夋嫨棰橈紝閭d箞灏嗙瓟妗堣浆涓簂ist + List<String> answerList = JSON.parseArray(correct, String.class); + item.setRight(answerList.containsAll(item.getAnswerList())); + } else { + item.setRight(question.getCorrect().equals(item.getAnswer())); + } + } + }); + // 闃呭嵎鍚庢墠寰�exam_paper_answer淇濆瓨鑰冭瘯鎴愮哗銆佷互鍙婁繚瀛樺埌exam_paper_customer_answer + // 鐜板湪鍙渶瑕佷繚瀛樺埌涓�寮犱复鏃惰〃 + ExamSubmitTemp one = new LambdaQueryChainWrapper<>(examSubmitTempMapper) + .eq(ExamSubmitTemp::getExamId, submitData.getExamId()) + .eq(ExamSubmitTemp::getUserId, webContext.getCurrentUser().getId()) + .one(); + if (Objects.nonNull(one)) { + one.setDoTime(submitData.getDoTime()); + one.setExamSubmit(JSON.toJSONString(submitData.getQuestionList())); + one.setCreateTime(new Date()); + examSubmitTempMapper.updateById(one); + } else { + ExamSubmitTemp examSubmitTemp = new ExamSubmitTemp(); + examSubmitTemp.setExamId(submitData.getExamId()); + examSubmitTemp.setDoTime(submitData.getDoTime()); + examSubmitTemp.setStatus(ExamSubmitTempStatusEnum.FINISH); + examSubmitTemp.setUserId(webContext.getCurrentUser().getId()); + examSubmitTemp.setExamSubmit(JSON.toJSONString(submitData.getQuestionList())); + examSubmitTempMapper.insert(examSubmitTemp); + } + return Result.ok(); + } } diff --git a/src/main/resources/mapper/ClassesUserMapper.xml b/src/main/resources/mapper/ClassesUserMapper.xml index ab42074..9fc5347 100644 --- a/src/main/resources/mapper/ClassesUserMapper.xml +++ b/src/main/resources/mapper/ClassesUserMapper.xml @@ -35,6 +35,7 @@ FROM t_classes_user TCU LEFT JOIN t_user TU ON TU.id = TCU.user_id WHERE TCU.deleted = 0 + <if test="query.studentName != null and query.studentName != ''">AND TU.real_name like concat('%', #{query.studentName}, '%')</if> </select> </mapper> diff --git a/src/main/resources/mapper/ExamSubmitTempMapper.xml b/src/main/resources/mapper/ExamSubmitTempMapper.xml new file mode 100644 index 0000000..43017bc --- /dev/null +++ b/src/main/resources/mapper/ExamSubmitTempMapper.xml @@ -0,0 +1,52 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="com.ycl.jxkg.mapper.ExamSubmitTempMapper"> + + <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 --> + <resultMap id="BaseResultMap" type="com.ycl.jxkg.domain.vo.ExamSubmitTempVO"> + <result column="exam_id" property="examId" /> + <result column="user_id" property="userId" /> + <result column="do_time" property="doTime" /> + <result column="exam_submit" property="examSubmit" /> + <result column="create_time" property="createTime" /> + <result column="status" property="status" /> + </resultMap> + + + + + + + + <select id="getById" resultMap="BaseResultMap"> + SELECT + TEST.exam_id, + TEST.user_id, + TEST.do_time, + TEST.exam_submit, + TEST.create_time, + TEST.status, + TEST.id + FROM + t_exam_submit_temp TEST + WHERE + TEST.id = #{id} AND TEST.deleted = 0 + </select> + + + <select id="getPage" resultMap="BaseResultMap"> + SELECT + TEST.exam_id, + TEST.user_id, + TEST.do_time, + TEST.exam_submit, + TEST.create_time, + TEST.status, + TEST.id + FROM + t_exam_submit_temp TEST + WHERE + TEST.deleted = 0 + </select> + +</mapper> diff --git a/src/main/resources/mapper/QuestionMapper.xml b/src/main/resources/mapper/QuestionMapper.xml index c0266f0..691aa92 100644 --- a/src/main/resources/mapper/QuestionMapper.xml +++ b/src/main/resources/mapper/QuestionMapper.xml @@ -15,13 +15,16 @@ <result column="deleted" jdbcType="BIT" property="deleted"/> </resultMap> <sql id="Base_Column_List"> - id, question_type, subject_id, difficult, correct, content, create_user, status, create_time, deleted + id + , question_type, subject_id, difficult, correct, content, create_user, status, create_time, deleted </sql> - <select id="page" resultType="com.ycl.jxkg.domain.vo.admin.question.QuestionResponseVO" parameterType="com.ycl.jxkg.domain.vo.admin.question.QuestionPageRequestVO"> + <select id="page" resultType="com.ycl.jxkg.domain.vo.admin.question.QuestionResponseVO" + parameterType="com.ycl.jxkg.domain.vo.admin.question.QuestionPageRequestVO"> SELECT tq.*, - CASE WHEN tq.question_type = 1 THEN '鍗曢�夐' WHEN tq.question_type = 2 THEN '澶氶�夐' WHEN tq.question_type = 3 THEN '鍒ゆ柇棰�' WHEN tq.question_type = 4 THEN '濉┖棰�' WHEN tq.question_type = 5 THEN '绠�绛旈' END AS questionTypeName, + CASE WHEN tq.question_type = 1 THEN '鍗曢�夐' WHEN tq.question_type = 2 THEN '澶氶�夐' WHEN tq.question_type = 3 THEN + '鍒ゆ柇棰�' WHEN tq.question_type = 4 THEN '濉┖棰�' WHEN tq.question_type = 5 THEN '绠�绛旈' END AS questionTypeName, ts.name AS subjectName, tu.real_name AS createUserName FROM t_question tq @@ -36,10 +39,12 @@ and tq.status = #{status} </if> <if test="subjectId != null and subjectId.size() > 0"> - and tq.subject_id in <foreach collection="subjectId" item="item" separator="," open="(" close=")"> #{item} </foreach> + and tq.subject_id in + <foreach collection="subjectId" item="item" separator="," open="(" close=")">#{item}</foreach> </if> <if test="questionType != null and questionType.size() > 0"> - and tq.question_type in <foreach collection="questionType" item="item" separator="," open="(" close=")"> #{item} </foreach> + and tq.question_type in + <foreach collection="questionType" item="item" separator="," open="(" close=")">#{item}</foreach> </if> <if test="content != null and content != ''"> and instr(tq.content, #{content}) @@ -75,4 +80,9 @@ GROUP BY create_time </select> + <select id="getAnswerInfo" resultType="com.ycl.jxkg.domain.entity.Question"> + SELECT id, question_type, correct FROM t_question WHERE id in + <foreach collection="questionIds" open="(" item="id" close=")" separator=",">#{id}</foreach> + </select> + </mapper> -- Gitblit v1.8.0