diff --git a/module-examine/src/main/java/ink/wgink/module/examine/dao/question/IQuestionTypeQuestionDao.java b/module-examine/src/main/java/ink/wgink/module/examine/dao/question/IQuestionTypeQuestionDao.java index c9ed0fc4..e7bff326 100644 --- a/module-examine/src/main/java/ink/wgink/module/examine/dao/question/IQuestionTypeQuestionDao.java +++ b/module-examine/src/main/java/ink/wgink/module/examine/dao/question/IQuestionTypeQuestionDao.java @@ -4,7 +4,7 @@ import ink.wgink.exceptions.RemoveException; import ink.wgink.exceptions.SaveException; import ink.wgink.exceptions.SearchException; import ink.wgink.interfaces.init.IInitBaseTable; -import ink.wgink.module.examine.pojo.dtos.question.QuestionTypeDTO; +import ink.wgink.module.examine.pojo.dtos.question.QuestionTypeQuestionDTO; import org.springframework.stereotype.Repository; import java.util.List; @@ -51,5 +51,5 @@ public interface IQuestionTypeQuestionDao extends IInitBaseTable { * @return * @throws SearchException */ - List listQuestionType(Map params) throws SearchException; + List list(Map params) throws SearchException; } diff --git a/module-examine/src/main/java/ink/wgink/module/examine/pojo/dtos/question/QuestionTypeQuestionDTO.java b/module-examine/src/main/java/ink/wgink/module/examine/pojo/dtos/question/QuestionTypeQuestionDTO.java new file mode 100644 index 00000000..ceea498d --- /dev/null +++ b/module-examine/src/main/java/ink/wgink/module/examine/pojo/dtos/question/QuestionTypeQuestionDTO.java @@ -0,0 +1,35 @@ +package ink.wgink.module.examine.pojo.dtos.question; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + +/** + * @ClassName: QuestionTypePO + * @Description: 试题类型 + * @Author: CodeFactory + * @Date: 2021-04-04 11:40:13 + * @Version: 3.0 + **/ +@ApiModel +public class QuestionTypeQuestionDTO extends QuestionTypeDTO { + + @ApiModelProperty(name = "questionId", value = "试题ID") + private String questionId; + + public String getQuestionId() { + return questionId; + } + + public void setQuestionId(String questionId) { + this.questionId = questionId; + } + + @Override + public String toString() { + final StringBuilder sb = new StringBuilder("{"); + sb.append("\"questionId\":\"") + .append(questionId).append('\"'); + sb.append('}'); + return sb.toString(); + } +} diff --git a/module-examine/src/main/java/ink/wgink/module/examine/service/question/IQuestionTypeQuestionService.java b/module-examine/src/main/java/ink/wgink/module/examine/service/question/IQuestionTypeQuestionService.java index 811eac8a..71647175 100644 --- a/module-examine/src/main/java/ink/wgink/module/examine/service/question/IQuestionTypeQuestionService.java +++ b/module-examine/src/main/java/ink/wgink/module/examine/service/question/IQuestionTypeQuestionService.java @@ -1,6 +1,6 @@ package ink.wgink.module.examine.service.question; -import ink.wgink.module.examine.pojo.dtos.question.QuestionTypeDTO; +import ink.wgink.module.examine.pojo.dtos.question.QuestionTypeQuestionDTO; import java.util.List; @@ -78,7 +78,7 @@ public interface IQuestionTypeQuestionService { * @param questionId * @return */ - List listQuestionTypeByQuestionId(String questionId); + List listByQuestionId(String questionId); /** * 试题类型列表 @@ -86,6 +86,6 @@ public interface IQuestionTypeQuestionService { * @param questionIds * @return */ - List listQuestionTypeByQuestionIds(List questionIds); + List listByQuestionIds(List questionIds); } diff --git a/module-examine/src/main/java/ink/wgink/module/examine/service/question/impl/QuestionServiceImpl.java b/module-examine/src/main/java/ink/wgink/module/examine/service/question/impl/QuestionServiceImpl.java index 50eccc28..9264cb90 100644 --- a/module-examine/src/main/java/ink/wgink/module/examine/service/question/impl/QuestionServiceImpl.java +++ b/module-examine/src/main/java/ink/wgink/module/examine/service/question/impl/QuestionServiceImpl.java @@ -9,7 +9,7 @@ import ink.wgink.module.examine.dao.question.IQuestionDao; import ink.wgink.module.examine.enums.question.QuestionTypeEnum; import ink.wgink.module.examine.pojo.dtos.question.QuestionDTO; import ink.wgink.module.examine.pojo.dtos.question.QuestionOptionsDTO; -import ink.wgink.module.examine.pojo.dtos.question.QuestionTypeDTO; +import ink.wgink.module.examine.pojo.dtos.question.QuestionTypeQuestionDTO; import ink.wgink.module.examine.pojo.pos.question.QuestionPO; import ink.wgink.module.examine.pojo.vos.question.QuestionVO; import ink.wgink.module.examine.service.question.IQuestionOptionsService; @@ -205,10 +205,8 @@ public class QuestionServiceImpl extends DefaultBaseService implements IQuestion List questionOptionsDTOs = questionOptionsService.listByQuestionId(questionId); questionDTO.setOptions(questionOptionsDTOs); } - if (!StringUtils.isBlank(questionDTO.getQuestionType())) { - List questionTypeDTOs = questionTypeQuestionService.listQuestionTypeByQuestionId(questionId); - setQuestionTypeName(questionDTO, questionTypeDTOs); - } + List questionTypeQuestionDTOS = questionTypeQuestionService.listByQuestionId(questionId); + setQuestionTypeName(questionDTO, questionTypeQuestionDTOS); return questionDTO; } @@ -218,8 +216,8 @@ public class QuestionServiceImpl extends DefaultBaseService implements IQuestion List questionDTOs = questionDao.list(params); if (!questionDTOs.isEmpty()) { List questionIds = ArrayListUtil.listBeanStringIdValue(questionDTOs, "questionId", QuestionDTO.class); - List questionTypeDTOs = questionTypeQuestionService.listQuestionTypeByQuestionIds(questionIds); - setQuestionTypeName(questionDTOs, questionTypeDTOs); + List questionTypeQuestionDTOS = questionTypeQuestionService.listByQuestionIds(questionIds); + setQuestionTypeName(questionDTOs, questionTypeQuestionDTOS); } return questionDTOs; } @@ -255,11 +253,11 @@ public class QuestionServiceImpl extends DefaultBaseService implements IQuestion * 设置试题类型名称 * * @param questionDTOs - * @param questionTypeDTOs + * @param questionTypeQuestionDTOS */ - private void setQuestionTypeName(List questionDTOs, List questionTypeDTOs) { + private void setQuestionTypeName(List questionDTOs, List questionTypeQuestionDTOS) { questionDTOs.forEach(questionDTO -> { - setQuestionTypeName(questionDTO, questionTypeDTOs); + setQuestionTypeName(questionDTO, questionTypeQuestionDTOS); }); } @@ -267,18 +265,21 @@ public class QuestionServiceImpl extends DefaultBaseService implements IQuestion * 设置试题类型名称 * * @param questionDTO - * @param questionTypeDTOs + * @param questionTypeQuestionDTOS */ - private void setQuestionTypeName(QuestionDTO questionDTO, List questionTypeDTOs) { + private void setQuestionTypeName(QuestionDTO questionDTO, List questionTypeQuestionDTOS) { String questionType = ""; String questionTypeName = ""; - for (QuestionTypeDTO questionTypeDTO : questionTypeDTOs) { + for (QuestionTypeQuestionDTO questionTypeQuestionDTO : questionTypeQuestionDTOS) { + if (!StringUtils.equals(questionDTO.getQuestionId(), questionTypeQuestionDTO.getQuestionId())) { + continue; + } if (!StringUtils.isBlank(questionType)) { questionType += ","; questionTypeName += ","; } - questionType += questionTypeDTO.getQuestionTypeId(); - questionTypeName += questionTypeDTO.getTypeSummary(); + questionType += questionTypeQuestionDTO.getQuestionTypeId(); + questionTypeName += questionTypeQuestionDTO.getTypeSummary(); } questionDTO.setQuestionType(questionType); questionDTO.setQuestionTypeName(questionTypeName); diff --git a/module-examine/src/main/java/ink/wgink/module/examine/service/question/impl/QuestionTypeQuestionServiceImpl.java b/module-examine/src/main/java/ink/wgink/module/examine/service/question/impl/QuestionTypeQuestionServiceImpl.java index f09ae848..d93530ff 100644 --- a/module-examine/src/main/java/ink/wgink/module/examine/service/question/impl/QuestionTypeQuestionServiceImpl.java +++ b/module-examine/src/main/java/ink/wgink/module/examine/service/question/impl/QuestionTypeQuestionServiceImpl.java @@ -2,7 +2,7 @@ package ink.wgink.module.examine.service.question.impl; import ink.wgink.common.base.DefaultBaseService; import ink.wgink.module.examine.dao.question.IQuestionTypeQuestionDao; -import ink.wgink.module.examine.pojo.dtos.question.QuestionTypeDTO; +import ink.wgink.module.examine.pojo.dtos.question.QuestionTypeQuestionDTO; import ink.wgink.module.examine.service.question.IQuestionTypeQuestionService; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -90,17 +90,17 @@ public class QuestionTypeQuestionServiceImpl extends DefaultBaseService implemen } @Override - public List listQuestionTypeByQuestionId(String questionId) { + public List listByQuestionId(String questionId) { Map params = getHashMap(2); params.put("questionId", questionId); - return questionTypeQuestionDao.listQuestionType(params); + return questionTypeQuestionDao.list(params); } @Override - public List listQuestionTypeByQuestionIds(List questionIds) { + public List listByQuestionIds(List questionIds) { Map params = getHashMap(2); params.put("questionIds", questionIds); - return questionTypeQuestionDao.listQuestionType(params); + return questionTypeQuestionDao.list(params); } } diff --git a/module-examine/src/main/resources/mybatis/mapper/question/question-mapper.xml b/module-examine/src/main/resources/mybatis/mapper/question/question-mapper.xml index 3bb123b5..e47a9c39 100644 --- a/module-examine/src/main/resources/mybatis/mapper/question/question-mapper.xml +++ b/module-examine/src/main/resources/mybatis/mapper/question/question-mapper.xml @@ -57,7 +57,6 @@ INSERT INTO exam_question( question_id, subject, - question_type, type, choice_type, analysis, @@ -73,7 +72,6 @@ ) VALUES( #{questionId}, #{subject}, - #{questionType}, #{type}, #{choiceType}, #{analysis}, diff --git a/module-examine/src/main/resources/mybatis/mapper/question/question-type-question-mapper.xml b/module-examine/src/main/resources/mybatis/mapper/question/question-type-question-mapper.xml index 63b38c03..b0a61c53 100644 --- a/module-examine/src/main/resources/mybatis/mapper/question/question-type-question-mapper.xml +++ b/module-examine/src/main/resources/mybatis/mapper/question/question-type-question-mapper.xml @@ -8,6 +8,14 @@ + + + + + + + + CREATE TABLE IF NOT EXISTS `exam_question_type_question` ( @@ -70,14 +78,19 @@ - SELECT t1.question_type_id, t1.question_type_parent_id, t1.type_name, - t1.type_summary + t1.type_summary, + jt1.question_id FROM exam_question_type t1 + INNER JOIN + exam_question_type_question jt1 + ON + t1.question_type_id = jt1.question_type_id WHERE t1.is_delete = 0 AND