浏览代码

批量获取ids

zhoutg 5 年之前
父节点
当前提交
f1fbcef5ea

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

@@ -185,9 +185,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());

+ 48 - 13
mrman-service/src/main/java/com/diagbot/facade/QcQuestionFacade.java

@@ -21,6 +21,7 @@ import com.diagbot.service.QcQuestionMappingService;
 import com.diagbot.service.impl.QcQuestionInfoServiceImpl;
 import com.diagbot.util.BeanUtil;
 import com.diagbot.util.DateUtil;
+import com.diagbot.util.EntityUtil;
 import com.diagbot.util.ListUtil;
 import com.diagbot.util.StringUtil;
 import com.diagbot.util.UserUtils;
@@ -40,6 +41,7 @@ import java.util.Date;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
  * @Description:
@@ -349,28 +351,61 @@ 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));
     }
 
-
 //    /**
 //     * 根据id返回被引用的父标签
 //     *

+ 3 - 1
mrman-service/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;
 }