From 3ec909b27b3eba956aa9d00cc7a94c179bd04bbf Mon Sep 17 00:00:00 2001 From: 龚焕茏 <2842157468@qq.com> Date: 星期三, 03 七月 2024 18:29:31 +0800 Subject: [PATCH] feat:新增随机时间题目配置 --- src/main/java/com/mindskip/xzs/repository/ExamTemplatesConfigMapper.java | 14 +++ src/main/resources/mapper/ExamTemplatesQuestionMapper.xml | 2 src/main/java/com/mindskip/xzs/service/ExamTemplatesConfigService.java | 16 ++++ src/main/resources/mapper/ExamPaperDepartment.xml | 7 + src/main/java/com/mindskip/xzs/service/impl/ExamPaperServiceImpl.java | 3 src/main/resources/mapper/ExamTemplatesConfigMapper.xml | 20 +++++ src/main/java/com/mindskip/xzs/service/QuestionSubjectService.java | 7 + src/main/java/com/mindskip/xzs/service/impl/QuestionSubjectServiceImpl.java | 5 + src/main/java/com/mindskip/xzs/controller/admin/ExamTemplatesController.java | 25 ++++- src/main/java/com/mindskip/xzs/domain/ExamTemplatesConfig.java | 46 +++++++++++ src/main/java/com/mindskip/xzs/service/impl/ExamTemplatesServiceImpl.java | 33 ++++--- src/main/resources/mapper/QuestionSubjectMapper.xml | 13 +++ src/main/java/com/mindskip/xzs/repository/QuestionSubjectMapper.java | 3 src/main/java/com/mindskip/xzs/service/impl/ExamTemplatesConfigServiceImpl.java | 25 ++++++ 14 files changed, 194 insertions(+), 25 deletions(-) diff --git a/src/main/java/com/mindskip/xzs/controller/admin/ExamTemplatesController.java b/src/main/java/com/mindskip/xzs/controller/admin/ExamTemplatesController.java index 026dfc8..df1f7a2 100644 --- a/src/main/java/com/mindskip/xzs/controller/admin/ExamTemplatesController.java +++ b/src/main/java/com/mindskip/xzs/controller/admin/ExamTemplatesController.java @@ -5,12 +5,15 @@ import com.mindskip.xzs.base.RestResponse; import com.mindskip.xzs.context.WebContext; import com.mindskip.xzs.domain.ExamTemplates; +import com.mindskip.xzs.domain.ExamTemplatesConfig; import com.mindskip.xzs.domain.ExamTemplatesSubject; import com.mindskip.xzs.domain.vo.ExamTemplatesVO; import com.mindskip.xzs.repository.ExamTemplatesSubjectMapper; import com.mindskip.xzs.service.ExamPaperDepartmentService; +import com.mindskip.xzs.service.ExamTemplatesConfigService; import com.mindskip.xzs.service.ExamTemplatesService; import com.mindskip.xzs.utility.PageInfoHelper; +import com.mindskip.xzs.utility.minio.DateUtils; import com.mindskip.xzs.viewmodel.admin.exam.ExamPaperEditRequestVM; import lombok.RequiredArgsConstructor; import org.apache.commons.lang3.ObjectUtils; @@ -18,6 +21,7 @@ import javax.validation.Valid; import java.util.List; +import java.util.Objects; import java.util.stream.Collectors; @RestController("AdminExamTemplatesController") @@ -26,6 +30,7 @@ public class ExamTemplatesController extends BaseApiController { private final ExamTemplatesService examTemplatesService; + private final ExamTemplatesConfigService examTemplatesConfigService; private final ExamTemplatesSubjectMapper examTemplatesSubjectMapper; private final WebContext webContext; private final ExamPaperDepartmentService examPaperDepartmentService; @@ -70,10 +75,18 @@ return RestResponse.ok(); } -// @RequestMapping(value = "/random", method = RequestMethod.POST) -// public RestResponse<Integer> randomExam() throws Exception { -// User user = getCurrentUser(); -// Integer id = examTemplatesService.randomExam(user); -// return RestResponse.ok(id); -// } + @PostMapping("/setConfig") + public RestResponse<Boolean> setConfig(@RequestBody ExamTemplatesConfig examTemplatesConfig) { + if (Objects.isNull(examTemplatesConfig.getId())) { + examTemplatesConfig.setCreateUser(getCurrentUser().getId()); + examTemplatesConfig.setCreateTime(DateUtils.getNowDate()); + } + return RestResponse.ok(examTemplatesConfigService.saveOrUpdate(examTemplatesConfig)); + } + + @GetMapping("/getConfig") + public RestResponse<ExamTemplatesConfig> getConfig() { + return RestResponse.ok(examTemplatesConfigService.getConfig()); + } + } diff --git a/src/main/java/com/mindskip/xzs/domain/ExamTemplatesConfig.java b/src/main/java/com/mindskip/xzs/domain/ExamTemplatesConfig.java new file mode 100644 index 0000000..68716bd --- /dev/null +++ b/src/main/java/com/mindskip/xzs/domain/ExamTemplatesConfig.java @@ -0,0 +1,46 @@ +package com.mindskip.xzs.domain; + +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + +/** + * 闅忔満璇曞嵎閰嶇疆琛� + * + * @author gonghl + */ +@TableName(value = "t_exam_templates_config") +@Data +public class ExamTemplatesConfig implements Serializable { + + @TableId(type = IdType.AUTO) + private Integer id; + + /** + * 鍗曢�夐 + */ + private Integer radioNum; + + /** + * 澶氶�夐 + */ + private Integer checkNum; + + /** + * 鍒ゆ柇棰� + */ + private Integer judgingNum; + + private Integer createUser; + + @OrderBy + private Date createTime; + + @TableLogic + private Integer deleted; + + @TableField(exist = false) + private static final long serialVersionUID = 1L; +} \ No newline at end of file diff --git a/src/main/java/com/mindskip/xzs/repository/ExamTemplatesConfigMapper.java b/src/main/java/com/mindskip/xzs/repository/ExamTemplatesConfigMapper.java new file mode 100644 index 0000000..6897421 --- /dev/null +++ b/src/main/java/com/mindskip/xzs/repository/ExamTemplatesConfigMapper.java @@ -0,0 +1,14 @@ +package com.mindskip.xzs.repository; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.mindskip.xzs.domain.ExamTemplatesConfig; +import org.apache.ibatis.annotations.Mapper; + +/** + * @author gonghl + */ + +@Mapper +public interface ExamTemplatesConfigMapper extends BaseMapper<ExamTemplatesConfig> { + +} \ No newline at end of file diff --git a/src/main/java/com/mindskip/xzs/repository/QuestionSubjectMapper.java b/src/main/java/com/mindskip/xzs/repository/QuestionSubjectMapper.java index e7bde69..9813192 100644 --- a/src/main/java/com/mindskip/xzs/repository/QuestionSubjectMapper.java +++ b/src/main/java/com/mindskip/xzs/repository/QuestionSubjectMapper.java @@ -51,4 +51,7 @@ /** 鏍规嵁璇剧洰鍜岄鍨嬫煡鎵鹃鐩暟鎹� */ List<QuestionVO> bySubjectIdAndQuestionType(Integer subjectId, Integer dataBaseValueByValue); + + /** 鏍规嵁绉戠洰鏌ヨ棰樼洰 **/ + List<QuestionSubject> getSubjectBySubjectIds(Integer[] subjectIds); } diff --git a/src/main/java/com/mindskip/xzs/service/ExamTemplatesConfigService.java b/src/main/java/com/mindskip/xzs/service/ExamTemplatesConfigService.java new file mode 100644 index 0000000..8119040 --- /dev/null +++ b/src/main/java/com/mindskip/xzs/service/ExamTemplatesConfigService.java @@ -0,0 +1,16 @@ +package com.mindskip.xzs.service; + +import com.mindskip.xzs.domain.ExamTemplatesConfig; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + * @author gonghl + */ +public interface ExamTemplatesConfigService extends IService<ExamTemplatesConfig> { + + /** + * 鑾峰彇闅忔満璇曞嵎閰嶇疆 + * @return 缁撴灉 + */ + ExamTemplatesConfig getConfig(); +} diff --git a/src/main/java/com/mindskip/xzs/service/QuestionSubjectService.java b/src/main/java/com/mindskip/xzs/service/QuestionSubjectService.java index d7a7343..add441f 100644 --- a/src/main/java/com/mindskip/xzs/service/QuestionSubjectService.java +++ b/src/main/java/com/mindskip/xzs/service/QuestionSubjectService.java @@ -43,4 +43,11 @@ Integer removeSubjectId(Integer subjectId); List<QuestionSubject> getSubject(Integer id); + + /** + * 鏍规嵁绉戠洰鏌ヨ棰樼洰 + * @param subjectIds 绉戠洰 + * @return 棰樼洰 + */ + List<QuestionSubject> getSubjectBySubjectIds(Integer[] subjectIds); } diff --git a/src/main/java/com/mindskip/xzs/service/impl/ExamPaperServiceImpl.java b/src/main/java/com/mindskip/xzs/service/impl/ExamPaperServiceImpl.java index 3417e8c..7049976 100644 --- a/src/main/java/com/mindskip/xzs/service/impl/ExamPaperServiceImpl.java +++ b/src/main/java/com/mindskip/xzs/service/impl/ExamPaperServiceImpl.java @@ -529,9 +529,10 @@ Integer order = 0; for (QuestionTypeVM questionTypeVM : questionTypeVMList) { - List<Integer> questions = questionSubjectService.getSubject(questionTypeVM.getSubjectId()) + List<Integer> questions = questionSubjectService.getSubjectBySubjectIds(examPaperEditRequestVM.getSubjectId()) .stream().map(QuestionSubject::getQuestionId).collect(Collectors.toList()); List<Question> list = questionService.selectByIds(questions); + // List<Question> list = questionService.getAll(); Map<Integer, Integer> multiple = new HashMap<>(); //澶氶�� diff --git a/src/main/java/com/mindskip/xzs/service/impl/ExamTemplatesConfigServiceImpl.java b/src/main/java/com/mindskip/xzs/service/impl/ExamTemplatesConfigServiceImpl.java new file mode 100644 index 0000000..164f3f2 --- /dev/null +++ b/src/main/java/com/mindskip/xzs/service/impl/ExamTemplatesConfigServiceImpl.java @@ -0,0 +1,25 @@ +package com.mindskip.xzs.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.mindskip.xzs.domain.ExamTemplatesConfig; +import com.mindskip.xzs.repository.ExamTemplatesConfigMapper; +import com.mindskip.xzs.service.ExamTemplatesConfigService; +import org.springframework.stereotype.Service; + +/** + * @author gonghl + */ +@Service +public class ExamTemplatesConfigServiceImpl extends ServiceImpl<ExamTemplatesConfigMapper, ExamTemplatesConfig> implements ExamTemplatesConfigService { + + @Override + public ExamTemplatesConfig getConfig() { + return baseMapper.selectOne(new QueryWrapper<ExamTemplatesConfig>().last("limit 1")); + } + +} + + + + diff --git a/src/main/java/com/mindskip/xzs/service/impl/ExamTemplatesServiceImpl.java b/src/main/java/com/mindskip/xzs/service/impl/ExamTemplatesServiceImpl.java index c0f8753..8f7bf10 100644 --- a/src/main/java/com/mindskip/xzs/service/impl/ExamTemplatesServiceImpl.java +++ b/src/main/java/com/mindskip/xzs/service/impl/ExamTemplatesServiceImpl.java @@ -5,10 +5,7 @@ import com.mindskip.xzs.domain.*; import com.mindskip.xzs.domain.vo.ExamTemplatesVO; import com.mindskip.xzs.repository.*; -import com.mindskip.xzs.service.DepartmentService; -import com.mindskip.xzs.service.ExamPaperService; -import com.mindskip.xzs.service.ExamTemplatesService; -import com.mindskip.xzs.service.ExamTemplatesUserCountService; +import com.mindskip.xzs.service.*; import com.mindskip.xzs.utility.convert.ExamTemplatesClassConvert; import com.mindskip.xzs.viewmodel.admin.exam.ExamPaperEditRequestVM; import com.mindskip.xzs.viewmodel.admin.exam.ExamPaperEditRequestVO; @@ -20,10 +17,7 @@ import org.springframework.util.CollectionUtils; import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Date; -import java.util.List; +import java.util.*; import java.util.stream.Collectors; @Service @@ -37,8 +31,9 @@ private final ExamPaperService examPaperService; private final ExamTemplatesUserCountService examTemplatesUserCountService; private final ExamTemplatesUserMapper examTemplatesUserMapper; + private final ExamTemplatesConfigService examTemplatesConfigService; - public ExamTemplatesServiceImpl(BaseMapper<ExamTemplates> baseMapper, ExamTemplatesMapper examTemplatesMapper, ExamTemplatesQuestionMapper examTemplatesQuestionMapper, ExamTemplatesSubjectMapper examTemplatesSubjectMapper, DepartmentService departmentService, ExamPaperService examPaperService, ExamTemplatesUserCountService examTemplatesUserCountService, ExamTemplatesUserMapper examTemplatesUserMapper) { + public ExamTemplatesServiceImpl(BaseMapper<ExamTemplates> baseMapper, ExamTemplatesMapper examTemplatesMapper, ExamTemplatesQuestionMapper examTemplatesQuestionMapper, ExamTemplatesSubjectMapper examTemplatesSubjectMapper, DepartmentService departmentService, ExamPaperService examPaperService, ExamTemplatesUserCountService examTemplatesUserCountService, ExamTemplatesUserMapper examTemplatesUserMapper, ExamTemplatesConfigService examTemplatesConfigService) { super(baseMapper); this.examTemplatesMapper = examTemplatesMapper; this.examTemplatesQuestionMapper = examTemplatesQuestionMapper; @@ -47,6 +42,7 @@ this.examPaperService = examPaperService; this.examTemplatesUserCountService = examTemplatesUserCountService; this.examTemplatesUserMapper = examTemplatesUserMapper; + this.examTemplatesConfigService = examTemplatesConfigService; } @Transactional(rollbackFor = Exception.class) @@ -76,12 +72,8 @@ examTemplates.setCreateUser(model.getCreateUser()); examTemplatesMapper.add(examTemplates); - List<ExamTemplatesQuestion> examTemplatesQuestions = ExamTemplatesClassConvert.INSTANCE.QuestionTypeVMListToExamTemplatesQuestionList(model.getQuestionTypeVMS()) - .stream().map(e -> { - e.setTemplatesId(examTemplates.getId()); - return e; - }).collect(Collectors.toList()); - examTemplatesQuestionMapper.saves(examTemplatesQuestions); + // 闅忔満鏃堕棿棰樼洰閰嶇疆 + examTemplatesQuestionMapper.add(getExamTemplatesQuestion(examTemplates.getId())); List<ExamTemplatesSubject> subjects = new ArrayList<>(); for (Integer e : model.getSubjectId()) { @@ -106,6 +98,17 @@ } } + private ExamTemplatesQuestion getExamTemplatesQuestion(Integer templatesId) { + ExamTemplatesConfig examTemplatesConfig = examTemplatesConfigService.getConfig(); + if (Objects.isNull(examTemplatesConfig)) { throw new RuntimeException("璇峰厛閰嶇疆璇曞嵎妯℃澘"); } + ExamTemplatesQuestion examTemplatesQuestion = new ExamTemplatesQuestion(); + examTemplatesQuestion.setSingleChoice(examTemplatesConfig.getRadioNum().toString()); + examTemplatesQuestion.setMultipleChoice(examTemplatesConfig.getCheckNum().toString()); + examTemplatesQuestion.setTrueFalse(examTemplatesConfig.getJudgingNum().toString()); + examTemplatesQuestion.setTemplatesId(templatesId); + return examTemplatesQuestion; + } + @Override public List<ExamTemplatesVO> list(ExamTemplatesVO examTemplatesVO) { return null; diff --git a/src/main/java/com/mindskip/xzs/service/impl/QuestionSubjectServiceImpl.java b/src/main/java/com/mindskip/xzs/service/impl/QuestionSubjectServiceImpl.java index cb36343..b0d5b9d 100644 --- a/src/main/java/com/mindskip/xzs/service/impl/QuestionSubjectServiceImpl.java +++ b/src/main/java/com/mindskip/xzs/service/impl/QuestionSubjectServiceImpl.java @@ -55,5 +55,8 @@ return questionSubjectMapper.getSubject(id); } - + @Override + public List<QuestionSubject> getSubjectBySubjectIds(Integer[] subjectIds) { + return questionSubjectMapper.getSubjectBySubjectIds(subjectIds); + } } diff --git a/src/main/resources/mapper/ExamPaperDepartment.xml b/src/main/resources/mapper/ExamPaperDepartment.xml index 58dca25..fdb6e9b 100644 --- a/src/main/resources/mapper/ExamPaperDepartment.xml +++ b/src/main/resources/mapper/ExamPaperDepartment.xml @@ -36,7 +36,12 @@ </select> <select id="selectByUserId" resultType="java.lang.String"> - SELECT b.name FROM t_user_department a INNER JOIN t_department b ON a.department_id = b.id WHERE a.user_id = #{userId} + SELECT GROUP_CONCAT(b.name) + FROM t_user_department a + INNER JOIN t_department b ON a.department_id = b.id + WHERE a.user_id = #{userId} + GROUP BY a.user_id + ORDER BY a.user_id </select> <delete id="removeByExamPaperId" parameterType="java.lang.Integer"> diff --git a/src/main/resources/mapper/ExamTemplatesConfigMapper.xml b/src/main/resources/mapper/ExamTemplatesConfigMapper.xml new file mode 100644 index 0000000..d774996 --- /dev/null +++ b/src/main/resources/mapper/ExamTemplatesConfigMapper.xml @@ -0,0 +1,20 @@ +<?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.mindskip.xzs.repository.ExamTemplatesConfigMapper"> + + <resultMap id="BaseResultMap" type="com.mindskip.xzs.domain.ExamTemplatesConfig"> + <id property="id" column="id" jdbcType="INTEGER"/> + <result property="radioNum" column="radio_num" jdbcType="INTEGER"/> + <result property="checkNum" column="check_num" jdbcType="INTEGER"/> + <result property="judgingNum" column="Judging_num" jdbcType="INTEGER"/> + <result property="createUser" column="create_user" jdbcType="INTEGER"/> + <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/> + </resultMap> + + <sql id="Base_Column_List"> + id,radio_num,check_num, + Judging_num,create_user,create_time + </sql> +</mapper> diff --git a/src/main/resources/mapper/ExamTemplatesQuestionMapper.xml b/src/main/resources/mapper/ExamTemplatesQuestionMapper.xml index 78454af..9af63bb 100644 --- a/src/main/resources/mapper/ExamTemplatesQuestionMapper.xml +++ b/src/main/resources/mapper/ExamTemplatesQuestionMapper.xml @@ -16,7 +16,7 @@ </sql> <insert id="add" parameterType="com.mindskip.xzs.domain.ExamTemplatesQuestion" useGeneratedKeys="true" keyProperty="id"> - insert into t_department (label, multiple_choice, single_choice, true_false, templates_id, subject_id) + insert into t_exam_templates_question (label, multiple_choice, single_choice, true_false, templates_id, subject_id) values (#{label}, #{multipleChoice}, #{singleChoice}, #{trueFalse}, #{templatesId}, #{subjectId}) </insert> diff --git a/src/main/resources/mapper/QuestionSubjectMapper.xml b/src/main/resources/mapper/QuestionSubjectMapper.xml index f46a7f3..e9912cf 100644 --- a/src/main/resources/mapper/QuestionSubjectMapper.xml +++ b/src/main/resources/mapper/QuestionSubjectMapper.xml @@ -148,4 +148,17 @@ tq.id DESC </select> + <select id="getSubjectBySubjectIds" resultType="com.mindskip.xzs.domain.QuestionSubject"> + select qs.*,s.name as subName + from t_question_subject qs + left join t_subject s on qs.subject_id = s.id + where qs.deleted = 0 and s.deleted = 0 + <if test="subjectIds != null and subjectIds.length > 0"> + and qs.subject_id in + <foreach collection="subjectIds" item="subjectId" open="(" separator="," close=")"> + #{subjectId} + </foreach> + </if> + </select> + </mapper> -- Gitblit v1.8.0