瀏覽代碼

作者:张哲
时间:2023/03/24
类型:开发
描述:里程碑(3)知识类型访问量分布(类型修改为json)

zizg 2 年之前
父節點
當前提交
9539f25db9

+ 20 - 0
src/main/java/com/redxun/knowledge/analysis/entity/vo/KnowledgeTypeParse.java

@@ -0,0 +1,20 @@
+package com.redxun.knowledge.analysis.entity.vo;
+
+import lombok.Data;
+
+/**
+ * 文件名: KnowledgeTypeParse
+ * 作者: zizg
+ * 时间: 2023/3/24
+ * 描述:
+ * 修改人:
+ * 修改时间:
+ * 修改内容:
+ */
+@Data
+public class KnowledgeTypeParse {
+
+    private String id;
+
+    private Integer type;
+}

+ 1 - 1
src/main/java/com/redxun/knowledge/analysis/mapper/AnalysisCommonMapper.java

@@ -58,7 +58,7 @@ public interface AnalysisCommonMapper {
      * @param lastDay
      * @return
      */
-    List<Integer> knowledgeTypeVisitProportion(@Param("firstDay") String firstDay,@Param("lastDay") String lastDay);
+    List<String>  knowledgeTypeVisitProportion(@Param("firstDay") String firstDay,@Param("lastDay") String lastDay);
 
     /**
      * 获取全部知识一级分类id集合

+ 10 - 4
src/main/java/com/redxun/knowledge/analysis/service/AnalysisCommonServiceImpl.java

@@ -1,5 +1,6 @@
 package com.redxun.knowledge.analysis.service;
 
+import com.alibaba.fastjson.JSON;
 import com.redxun.common.tool.StringUtils;
 import com.redxun.knowledge.analysis.entity.consts.PlatformConst;
 import com.redxun.knowledge.analysis.entity.vo.*;
@@ -147,20 +148,25 @@ public class AnalysisCommonServiceImpl {
         Calendar calendar = Calendar.getInstance();
         int year = calendar.get(Calendar.YEAR);
         //查询出结果
-        List<Integer> count = new ArrayList<>();
+        List<String> collection = new ArrayList<>();
         if (type.equals("total")) {
-            count = analysisCommonMapper.knowledgeTypeVisitProportion(null, null);
+            collection = analysisCommonMapper.knowledgeTypeVisitProportion(null, null);
         } else if (type.equals("year")) {
-            count = analysisCommonMapper.knowledgeTypeVisitProportion(DateUtils.format(DateUtils.getFirstOfYear(year)),
+            collection = analysisCommonMapper.knowledgeTypeVisitProportion(DateUtils.format(DateUtils.getFirstOfYear(year)),
                     DateUtils.format(DateUtils.getLastOfYear(year)));
         } else if (type.equals("month")) {
             int month = calendar.get(Calendar.MONTH);
             String firstOfMonth = DateUtils.getFirstOfMonth(year, month + 1, 15);
             String lastOfMonth = DateUtils.getLastOfMonth(year, month + 1, 15);
-            count = analysisCommonMapper.knowledgeTypeVisitProportion(firstOfMonth, lastOfMonth);
+            collection = analysisCommonMapper.knowledgeTypeVisitProportion(firstOfMonth, lastOfMonth);
         } else {
             return null;
         }
+        //json解析
+        List<Integer> count = collection.parallelStream().map(e -> {
+            KnowledgeTypeParse knowledgeTypeParse = JSON.parseObject(e, KnowledgeTypeParse.class);
+            return knowledgeTypeParse.getType();
+        }).collect(Collectors.toList());
         //文档知识和维基知识查看数量
         int archive = (int) count.stream().filter(e -> e == 1).count();
         int wiki = (int) count.stream().filter(e -> e == 2).count();

+ 2 - 2
src/main/resources/mapper/knowledge/analysis/AnalysisCommonMapper.xml

@@ -27,8 +27,8 @@
         order by frequency desc
     </select>
 
-    <select id="knowledgeTypeVisitProportion" resultType="int">
-        select SUBSTR( USSD, INSTR( USSD, '-', 1 ) + 1 ) USSD from KM_PV_LOG
+    <select id="knowledgeTypeVisitProportion" resultType="string">
+        select USSD from KM_PV_LOG
         <where>
             MODULE = '知识仓库' and SUB_MODULE = '详情'
              <if test="firstDay != null and lastDay != null">