Browse Source

代码静态信息翻页查询速度

gaodm 4 years ago
parent
commit
78e2f571d8

+ 17 - 1
src/main/java/com/diagbot/facade/KlConceptStaticFacade.java

@@ -213,12 +213,28 @@ public class KlConceptStaticFacade extends KlConceptStaticServiceImpl {
 
         IPage<KlConceptStaticDTO> page = super.getPage(klConceptStaticPageVO);
         List<KlConceptStaticDTO> records = page.getRecords();
-        if (ListUtil.isNotEmpty(records)) {
+        List<Long> conceptIds = page.getRecords()
+                .stream()
+                .map(KlConceptStaticDTO::getId)
+                .collect(Collectors.toList());
+        if (ListUtil.isNotEmpty(conceptIds)) {
+            QueryWrapper<KlConceptDetail> qw = new QueryWrapper<>();
+            qw.in("concept_id", conceptIds)
+                    .eq("is_deleted", IsDeleteEnum.N.getKey())
+                    .orderByAsc("concept_id")
+                    .orderByAsc("order_no");
+            Map<Long, List<KlConceptDetail>> detailMap = klConceptDetailFacade.list(qw)
+                    .stream().collect(Collectors.groupingBy(KlConceptDetail::getConceptId));
+
             records.forEach(record -> {
                 String typeName = LexiconEnum.getName(record.getType());
                 record.setTypeName(dicTypeNameMap.get(typeName));
                 Integer retType = convertType(record.getType(), 2);
                 record.setType(retType);
+                record.setTitle(detailMap.get(record.getId())
+                        .stream()
+                        .map(KlConceptDetail::getTitle)
+                        .collect(Collectors.joining("、")));
             });
         }
         page.setRecords(records);

+ 2 - 7
src/main/resources/mapper/KlConceptStaticMapper.xml

@@ -61,19 +61,16 @@
         b.notice_name AS noticeName,
         a.lib_type as type,
         b.status,
-        GROUP_CONCAT( c.title order by c.order_no asc SEPARATOR '、' ) AS title,
+        "" AS title,
         b.gmt_modified AS gmtModified,
         b.modifier
         FROM
         kl_concept a,
-        kl_concept_static b,
-        kl_concept_detail c
+        kl_concept_static b
         WHERE
         a.id = b.concept_id
-        and b.concept_id = c.concept_id
         and a.is_deleted = 'N'
         and b.is_deleted = 'N'
-        and c.is_deleted = 'N'
         <if test="klConceptStaticPageVO.status!=null ">
             AND b.status = #{klConceptStaticPageVO.status}
         </if>
@@ -83,8 +80,6 @@
         <if test="klConceptStaticPageVO.type!=null and klConceptStaticPageVO.type!=''">
             AND a.lib_type = #{klConceptStaticPageVO.type}
         </if>
-        GROUP BY
-        a.id
         ) t1
         ORDER BY
         t1.status DESC,