Browse Source

时试题查询格式

master
6 years ago
parent
commit
90af562b1f
  1. 18
      ht/src/main/java/com/ccsens/ht/bean/vo/QuestionVo.java
  2. 2
      ht/src/main/java/com/ccsens/ht/service/QuestionService.java
  3. 4
      ht/src/main/resources/mapper_dao/HtQuestionOptionDao.xml

18
ht/src/main/java/com/ccsens/ht/bean/vo/QuestionVo.java

@ -85,12 +85,26 @@ public class QuestionVo {
@ApiModelProperty("试题")
private Question question;
@ApiModelProperty("选项")
private List<Option> options;
private List<OptionJson> options = new ArrayList<>();
public static QuestionOption toQuestionOption(HtQuestion question, List<Option> options) {
QuestionOption vo = new QuestionOption();
vo.setQuestion(Question.toQuestionVo(question));
vo.setOptions(options);
if (CollectionUtil.isNotEmpty(options)) {
//方便后续把相同属性的选项放到一个对象的List中
Map<String, OptionJson> map = new HashMap<>();
options.forEach(option -> {
if (map.get(option.getName()) == null) {
OptionJson json = new OptionJson();
json.setName(option.getName());
map.put(json.getName(), json);
//相同属性的选项放在同一个optionJson里
vo.options.add(json);
}
OptionJson json = map.get(option.getName());
json.addOption(option);
});
}
return vo;
}
}

2
ht/src/main/java/com/ccsens/ht/service/QuestionService.java

@ -109,7 +109,7 @@ public class QuestionService implements IQuestionService {
if (CollectionUtil.isNotEmpty(relationQuestions)) {
relationQuestions.forEach(relation -> {
//试题选项
List<QuestionVo.Option> options = htQuestionOptionDao.queryOption(question.getId(), query.getPatientReportId());
List<QuestionVo.Option> options = htQuestionOptionDao.queryOption(relation.getId(), query.getPatientReportId());
QuestionVo.QuestionOption questionOption = QuestionVo.QuestionOption.toQuestionOption(relation, options);
vos.add(questionOption);
});

4
ht/src/main/resources/mapper_dao/HtQuestionOptionDao.xml

@ -41,8 +41,8 @@
<select id="queryOption" resultMap="OptionMap">
select t1.id, t1.type, t1.question_id, t1.name, t1.score, t1.display, if (t2.id is null, 0, 1) as choose , if(t2.type = 3, null, t2.answer) as answer
from t_ht_question_option t1 left join t_ht_patient_score t2 on t1.id = t2.option_id and (t2.id is null or t2.patient_report_id = #{patientReportId,jdbcType=BIGINT})
select t1.id, t1.type, t1.question_id, t1.name, t1.score, t1.display, case when t1.type = 'hidden' then 0 when t2.id is null then 0 else 1 end as choose , if(t2.type = 3, null, t2.answer) as answer
from t_ht_question_option t1 left join t_ht_patient_score t2 on t1.id = t2.option_id and (t2.id is null or (t2.patient_report_id = #{patientReportId,jdbcType=BIGINT} and t2.is_del = 0))
where t1.question_id = #{questionId,jdbcType=BIGINT}
and t1.is_del = 0
group by t1.id

Loading…
Cancel
Save