Przeglądaj źródła

Merge remote-tracking branch 'origin/dev/icss' into dev/icss

zhoutg 6 lat temu
rodzic
commit
7c2b94d5a9

+ 1 - 0
icss-service/src/main/java/com/diagbot/entity/wrapper/QuestionInfoWrapper.java

@@ -16,6 +16,7 @@ import lombok.Setter;
 @Setter
 public class QuestionInfoWrapper extends QuestionInfo {
 
+    private Long parentQuestion; //父级问题ID
     private Integer position; //显示位置
     private Integer exclusionType; //互斥类型
     private Integer symptomType; //主症状和伴随症状对应的question类型

+ 9 - 4
icss-service/src/main/java/com/diagbot/facade/QuestionFacade.java

@@ -6,6 +6,7 @@ import com.diagbot.entity.QuestionInfo;
 import com.diagbot.entity.wrapper.QuestionInfoWrapper;
 import com.diagbot.service.impl.QuestionInfoServiceImpl;
 import com.diagbot.util.BeanUtil;
+import com.diagbot.util.EntityUtil;
 import com.diagbot.util.ListUtil;
 import com.diagbot.util.StringUtil;
 import com.diagbot.vo.QuestionIdsVO;
@@ -65,16 +66,20 @@ public class QuestionFacade extends QuestionInfoServiceImpl {
                     .map(artist -> artist.getId())
                     .collect(Collectors.toList());
             Map<Long, List<QuestionDetail>> sonQuestionMap = questionDetailFacade.getByQuestionIds(sonQuestionIds);
+            paramMap1.put("ids", sonQuestionIds);
+            //获取第二级子标签
+            List<QuestionInfoWrapper> questionMapping1 = this.getByQuestionMapping(paramMap1);
+            Map<Long, List<QuestionInfoWrapper>> qm1 = EntityUtil.makeEntityListMap(questionMapping1, "parentQuestion");
             for(QuestionDTO bean : sonQuestionList) {
                 List<QuestionDetail> questionDetailList1 = sonQuestionMap.get(bean.getId());
                 if (ListUtil.isEmpty(questionDetailList1)){
                     questionDetailList1 = new ArrayList<>();
                 }
                 bean.setQuestionDetailList(questionDetailList1);
-                paramMap1.put("id", bean.getId());
-                //获取第二级子标签
-                List<QuestionInfoWrapper> questionMapping1 = this.getByQuestionMapping(paramMap1);
-                List<QuestionDTO> sonQuestionList1 = BeanUtil.listCopyTo(questionMapping1, QuestionDTO.class);
+                List<QuestionDTO> sonQuestionList1 = new ArrayList<>();
+                if (ListUtil.isNotEmpty(qm1.get(bean.getId()))){
+                    sonQuestionList1 = BeanUtil.listCopyTo(qm1.get(bean.getId()), QuestionDTO.class);
+                }
                 bean.setQuestionMapping(sonQuestionList1);
 
                 List<Long> sonQuestionIds1  = sonQuestionList1.stream()

+ 15 - 3
icss-service/src/main/resources/mapper/QuestionInfoMapper.xml

@@ -38,9 +38,16 @@
 
 
     <select id="getByQuestionMapping" parameterType="java.util.Map" resultType="com.diagbot.entity.wrapper.QuestionInfoWrapper">
-        select t.*, m.position, m.form_position , m.exclusion_type, m.symptom_type from icss_question_info t, icss_question_mapping m
+        select t.*, m.parent_question, m.position, m.form_position , m.exclusion_type, m.symptom_type from icss_question_info t, icss_question_mapping m
         where t.is_deleted = 'N' and m.is_deleted = 'N' and m.son_question = t.id
-        and m.parent_question = #{id}
+        <if test="id != null">
+            and m.parent_question = #{id}
+        </if>
+        <if test="ids != null and ids.size > 0">
+            <foreach item="myId" collection="ids" open="and(" separator="or" close=")" >
+                m.parent_question = #{myId}
+            </foreach>
+        </if>
         <if test="sexType != null">
             and t.sex_type in (3, #{sexType})
         </if>
@@ -48,7 +55,12 @@
             <![CDATA[ and t.age_begin <= #{age} ]]>
             <![CDATA[ and t.age_end >= #{age} ]]>
         </if>
-        order by m.order_no
+        <if test="id != null">
+            order by m.order_no
+        </if>
+        <if test="ids != null and ids.size > 0">
+            order by m.parent_question, m.order_no
+        </if>
     </select>