处理试题类型的问题

This commit is contained in:
wanggeng 2022-05-16 15:36:48 +08:00
parent 7402291bf7
commit a1147c242a
7 changed files with 76 additions and 29 deletions

View File

@ -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<QuestionTypeDTO> listQuestionType(Map<String, Object> params) throws SearchException;
List<QuestionTypeQuestionDTO> list(Map<String, Object> params) throws SearchException;
}

View File

@ -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();
}
}

View File

@ -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<QuestionTypeDTO> listQuestionTypeByQuestionId(String questionId);
List<QuestionTypeQuestionDTO> listByQuestionId(String questionId);
/**
* 试题类型列表
@ -86,6 +86,6 @@ public interface IQuestionTypeQuestionService {
* @param questionIds
* @return
*/
List<QuestionTypeDTO> listQuestionTypeByQuestionIds(List<String> questionIds);
List<QuestionTypeQuestionDTO> listByQuestionIds(List<String> questionIds);
}

View File

@ -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<QuestionOptionsDTO> questionOptionsDTOs = questionOptionsService.listByQuestionId(questionId);
questionDTO.setOptions(questionOptionsDTOs);
}
if (!StringUtils.isBlank(questionDTO.getQuestionType())) {
List<QuestionTypeDTO> questionTypeDTOs = questionTypeQuestionService.listQuestionTypeByQuestionId(questionId);
setQuestionTypeName(questionDTO, questionTypeDTOs);
}
List<QuestionTypeQuestionDTO> questionTypeQuestionDTOS = questionTypeQuestionService.listByQuestionId(questionId);
setQuestionTypeName(questionDTO, questionTypeQuestionDTOS);
return questionDTO;
}
@ -218,8 +216,8 @@ public class QuestionServiceImpl extends DefaultBaseService implements IQuestion
List<QuestionDTO> questionDTOs = questionDao.list(params);
if (!questionDTOs.isEmpty()) {
List<String> questionIds = ArrayListUtil.listBeanStringIdValue(questionDTOs, "questionId", QuestionDTO.class);
List<QuestionTypeDTO> questionTypeDTOs = questionTypeQuestionService.listQuestionTypeByQuestionIds(questionIds);
setQuestionTypeName(questionDTOs, questionTypeDTOs);
List<QuestionTypeQuestionDTO> 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<QuestionDTO> questionDTOs, List<QuestionTypeDTO> questionTypeDTOs) {
private void setQuestionTypeName(List<QuestionDTO> questionDTOs, List<QuestionTypeQuestionDTO> 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<QuestionTypeDTO> questionTypeDTOs) {
private void setQuestionTypeName(QuestionDTO questionDTO, List<QuestionTypeQuestionDTO> 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);

View File

@ -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<QuestionTypeDTO> listQuestionTypeByQuestionId(String questionId) {
public List<QuestionTypeQuestionDTO> listByQuestionId(String questionId) {
Map<String, Object> params = getHashMap(2);
params.put("questionId", questionId);
return questionTypeQuestionDao.listQuestionType(params);
return questionTypeQuestionDao.list(params);
}
@Override
public List<QuestionTypeDTO> listQuestionTypeByQuestionIds(List<String> questionIds) {
public List<QuestionTypeQuestionDTO> listByQuestionIds(List<String> questionIds) {
Map<String, Object> params = getHashMap(2);
params.put("questionIds", questionIds);
return questionTypeQuestionDao.listQuestionType(params);
return questionTypeQuestionDao.list(params);
}
}

View File

@ -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},

View File

@ -8,6 +8,14 @@
<result column="question_id" property="questionId"/>
</resultMap>
<resultMap id="questionTypeQuestionDTO" type="ink.wgink.module.examine.pojo.dtos.question.QuestionTypeQuestionDTO">
<result column="question_id" property="questionId"/>
<result column="question_type_id" property="questionTypeId"/>
<result column="question_parent_id" property="questionTypeParentId"/>
<result column="type_name" property="typeName"/>
<result column="type_summary" property="typeSummary"/>
</resultMap>
<!-- 建表 -->
<update id="createTable">
CREATE TABLE IF NOT EXISTS `exam_question_type_question` (
@ -70,14 +78,19 @@
</select>
<!-- 试题类型列表 -->
<select id="listQuestionType" parameterType="map" resultMap="ink.wgink.module.examine.dao.question.IQuestionTypeDao.questionTypeDTO">
<select id="list" parameterType="map" resultMap="questionTypeQuestionDTO">
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