Jelajahi Sumber

获取所有模板优化

zhoutg 5 tahun lalu
induk
melakukan
5c2d7cc694

+ 2 - 2
src/main/java/com/diagbot/facade/QcModuleInfoFacade.java

@@ -60,9 +60,9 @@ public class QcModuleInfoFacade extends QcModuleInfoServiceImpl {
         List<QcModuleDetailDTO> qcModuleDetailDTOList = BeanUtil.listCopyTo(qcModuleDetailList, QcModuleDetailDTO.class);
 
         // 根据questionId获取所有的标签
-        List<String> questionIds = qcModuleDetailList.stream().map(r -> r.getQuestionId().toString()).collect(Collectors.toList());
+        List<Long> questionIds = qcModuleDetailList.stream().map(r -> r.getQuestionId()).collect(Collectors.toList());
         QuestionIdsVO questionIdsVO = new QuestionIdsVO();
-        questionIdsVO.setIds(String.join(",", questionIds));
+        questionIdsVO.setIds(questionIds);
         Map<Long, QuestionDTO> questionDTOMap = qcQuestionFacade.getByIds(questionIdsVO);
         for (QcModuleDetailDTO bean : qcModuleDetailDTOList) {
             QuestionDTO questionDTO = questionDTOMap.get(bean.getQuestionId());

+ 49 - 13
src/main/java/com/diagbot/facade/QcQuestionFacade.java

@@ -9,13 +9,14 @@ import com.diagbot.enums.IsDeleteEnum;
 import com.diagbot.service.impl.QcQuestionInfoServiceImpl;
 import com.diagbot.util.BeanUtil;
 import com.diagbot.util.EntityUtil;
-import com.diagbot.util.StringUtil;
+import com.diagbot.util.ListUtil;
 import com.diagbot.vo.QuestionIdsVO;
 import org.springframework.stereotype.Component;
 
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
  * @Description:
@@ -53,27 +54,62 @@ public class QcQuestionFacade extends QcQuestionInfoServiceImpl {
     }
 
 
+//    /**
+//     * 查询多个id返回标签内容
+//     *
+//     * @param questionIdsVO 获取标签内容参数
+//     * @return 标签内容
+//     */
+//    public Map<Long, QuestionDTO> getByIds(QuestionIdsVO questionIdsVO) {
+//        Map<Long, QuestionDTO> data = new HashMap<>();
+//        if (StringUtil.isEmpty(questionIdsVO.getIds())) {
+//            return data;
+//        }
+//        String[] ids = questionIdsVO.getIds().split(",");
+//        for (String id : ids) {
+//            QuestionVO questionVO = new QuestionVO();
+//            questionVO.setId(Long.parseLong(id));
+//            QuestionDTO item = this.getById(questionVO);
+//            data.put(item.getId(), item);
+//        }
+//        return data;
+//    }
+
+
     /**
-     * 查询多个id返回标签内容
+     * 查询多个id返回标签内容【优化版】
      *
      * @param questionIdsVO 获取标签内容参数
-     * @return 标签内容
+     * @return 标签内容Fac
      */
     public Map<Long, QuestionDTO> getByIds(QuestionIdsVO questionIdsVO) {
-        Map<Long, QuestionDTO> data = new HashMap<>();
-        if (StringUtil.isEmpty(questionIdsVO.getIds())) {
-            return data;
+        List<Long> idList = questionIdsVO.getIds();
+        if (ListUtil.isEmpty(idList)) {
+            return new HashMap<>();
         }
-        String[] ids = questionIdsVO.getIds().split(",");
-        for (String id : ids) {
-            QuestionVO questionVO = new QuestionVO();
-            questionVO.setId(Long.parseLong(id));
-            QuestionDTO item = this.getById(questionVO);
-            data.put(item.getId(), item);
+        List<QcQuestionInfo> qcQuestionInfoList = this.list(new QueryWrapper<QcQuestionInfo>()
+                .eq("is_deleted", IsDeleteEnum.N.getKey())
+                .in("id", idList)
+        );
+        List<QuestionDTO> questionDTOList = BeanUtil.listCopyTo(qcQuestionInfoList, QuestionDTO.class);
+        if (ListUtil.isNotEmpty(questionDTOList)) {
+            List<Long> ids = questionDTOList.stream().map(r -> r.getId()).collect(Collectors.toList());
+            Map paramMap = new HashMap<>();
+            paramMap.put("ids", ids);
+            //获取子标签
+            List<QuestionInfoWrapper> questionMapping = this.getByQuestionMapping(paramMap);
+            Map<Long, List<QuestionInfoWrapper>> map = EntityUtil.makeEntityListMap(questionMapping, "parentQuestion");
+            for (QuestionDTO bean : questionDTOList) {
+                List<QuestionInfoWrapper> questionInfoWrapperList = map.get(bean.getId());
+                if (ListUtil.isNotEmpty(questionInfoWrapperList)) {
+                    bean.setQuestionMapping(BeanUtil.listCopyTo(questionInfoWrapperList, QuestionDTO.class));
+                }
+            }
         }
-        return data;
+        return questionDTOList.stream().collect(Collectors.toMap(r -> r.getId(), r -> r));
     }
 
+
     public Map<Long, List<QuestionEntryDTO>> getByCaseEntryIdsFac(Map map) {
         List<QuestionEntryDTO> questionEntryDTOList = this.getByCaseEntryIds(map);
         return  EntityUtil.makeEntityListMap(questionEntryDTOList, "casesEntryId");

+ 3 - 1
src/main/java/com/diagbot/vo/QuestionIdsVO.java

@@ -3,6 +3,8 @@ package com.diagbot.vo;
 import lombok.Getter;
 import lombok.Setter;
 
+import java.util.List;
+
 /**
  * @Description:
  * @author: zhoutg
@@ -11,5 +13,5 @@ import lombok.Setter;
 @Getter
 @Setter
 public class QuestionIdsVO {
-    private String ids;
+    private List<Long> ids;
 }