limeng 2 anni fa
parent
commit
042904a2d7

+ 11 - 0
leiSP-admin/src/main/java/com/sooka/web/controller/system/SysIndexController.java

@@ -2,6 +2,8 @@ package com.sooka.web.controller.system;
 
 import java.util.List;
 
+import com.sooka.apply.service.IIntRecordService;
+import com.sooka.common.utils.StringUtils;
 import com.sooka.system.domain.SysDept;
 import com.sooka.system.domain.TUInterfaceinfo;
 import com.sooka.system.service.ISysDeptService;
@@ -38,6 +40,9 @@ public class SysIndexController extends BaseController
     @Autowired
     private ISysDeptService sysDeptService;
 
+    @Autowired
+    private IIntRecordService iIntRecordService;
+
     // 系统首页
     @GetMapping("/index")
     public String index(ModelMap mmap)
@@ -84,6 +89,12 @@ public class SysIndexController extends BaseController
         dept.setParentId(214L);
         List<SysDept> depts = sysDeptService.selectDeptList(dept);
         mmap.put("depts", depts.size());
+        //省接口申请频次
+        String[] arr = {"share_type_3","share_type_4"};
+        mmap.put("province", "[" + StringUtils.join(iIntRecordService.applyFrequency(arr), ",") + "]");
+        //市接口申请频次
+        String[] arr1 = {"share_type_1","share_type_2"};
+        mmap.put("city", "[" + StringUtils.join(iIntRecordService.applyFrequency(arr1), ",") + "]");
         return "main";
     }
 

+ 103 - 97
leiSP-admin/src/main/resources/templates/main.html

@@ -156,7 +156,7 @@
         <div class="col-sm-12">
             <div class="ibox float-e-margins ">
                 <div class="ibox-title">
-                    <h5>日调用频次</h5>
+                    <h5>月度申请频次统计</h5>
                     <div class="pull-right">
                     </div>
                 </div>
@@ -164,125 +164,131 @@
                     <div class="row">
                         <div class="col-sm-12">
                             <div class="flot-chart">
-                                <div class="flot-chart-content" id="flot-dashboard-chart"></div>
+                                <div class="flot-chart-content" id="container"></div>
                             </div>
                         </div>
-
                     </div>
                 </div>
             </div>
         </div>
     </div>
-
-
 </div>
 </div>
 <script th:src="@{/js/jquery.min.js}"></script>
 <script th:src="@{/js/bootstrap.min.js}"></script>
 <script th:src="@{/js/toast.script.js}"></script>
 <script th:src="@{/ajax/libs/flot/jquery.flot.js}"></script>
+<script type="text/javascript" th:src="@{/visualization/js/echarts.min.js}"></script>
 
 <th:block th:include="include :: sparkline-js"/>
 <script type="text/javascript">
-
-
-    function drawPlot(d2){
-        // var data2 = [
-        //     [gd(2012, 1, 1), 7], [gd(2012, 1, 2), 6], [gd(2012, 1, 3), 4], [gd(2012, 1, 4), 8],
-        //     [gd(2012, 1, 5), 9], [gd(2012, 1, 6), 7], [gd(2012, 1, 7), 5], [gd(2012, 1, 8), 4],
-        //     [gd(2012, 1, 9), 7], [gd(2012, 1, 10), 8], [gd(2012, 1, 11), 9], [gd(2012, 1, 12), 6],
-        //     [gd(2012, 1, 13), 4], [gd(2012, 1, 14), 5], [gd(2012, 1, 15), 11], [gd(2012, 1, 16), 8],
-        //     [gd(2012, 1, 17), 8], [gd(2012, 1, 18), 11], [gd(2012, 1, 19), 11], [gd(2012, 1, 20), 6],
-        //     [gd(2012, 1, 21), 6], [gd(2012, 1, 22), 8], [gd(2012, 1, 23), 11], [gd(2012, 1, 24), 13],
-        //     [gd(2012, 1, 25), 7], [gd(2012, 1, 26), 9], [gd(2012, 1, 27), 9], [gd(2012, 1, 28), 8],
-        //     [gd(2012, 1, 29), 5], [gd(2012, 1, 30), 8], [gd(2012, 1, 31), 25]
-        // ];
-        var data2 = d2;
-
-        var data3 = d2;
-
-
-        var dataset = [
-            {
-                label: "调用频次",
-                data: data2,
-                color: "#1ab394",
-                bars: {
-                    show: true,
-                    align: "center",
-                    barWidth: 24 * 60 * 60 * 600,
-                    lineWidth: 0
+    let dom = document.getElementById('container');
+    let myChart = echarts.init(dom, null, {
+        renderer: 'canvas',
+        useDirtyRect: false
+    });
+    let app = {};
+
+    let option;
+
+    const categories = (function () {
+        let res = ["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"];
+        return res;
+    })();
+    const categories2 = (function () {
+        let res = ["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"];
+        return res;
+    })();
+    //省数据
+    const data = (function () {
+        let data = "";
+        let res = [[${province}]];
+        return res;
+    })();
+    //市数据
+    const data2 = (function () {
+        let data = "[[${city}]]";
+        let res = [[${city}]];
+        return res;
+    })();
+    option = {
+        title: {},
+        tooltip: {
+            trigger: 'axis',
+            axisPointer: {
+                type: 'cross',
+                label: {
+                    backgroundColor: '#283b56'
                 }
-
-            }, {
-                label: "",
-                data: data2,
-                yaxis: 2,
-                color: "#464f88",
-                lines: {
-                    lineWidth: 1,
-                    show: true,
-                    fill: true,
-                    fillColor: {
-                        colors: [{
-                            opacity: 0.2
-                        }, {
-                            opacity: 0.2
-                        }]
-                    }
-                },
-                splines: {
-                    show: false,
-                    tension: 0.6,
-                    lineWidth: 1,
-                    fill: 0.1
-                },
             }
-        ];
-
-
-        var options = {
-            xaxis: {
-                mode: "time",
-                tickSize: [1000, "day"],
-                tickLength: 0,
-                axisLabel: "Date",
-                axisLabelUseCanvas: true,
-                axisLabelFontSizePixels: 12,
-                axisLabelFontFamily: 'Arial',
-                axisLabelPadding: 10,
-                color: "#838383"
+        },
+        legend: {},
+        toolbox: {
+            show: true,
+            feature: {
+                dataView: { readOnly: false },
+                restore: {},
+                saveAsImage: {}
+            }
+        },
+        dataZoom: {
+            show: false,
+            start: 0,
+            end: 100
+        },
+        xAxis: [
+            {
+                type: 'category',
+                boundaryGap: true,
+                data: categories
             },
-            yaxes: [{
-                position: "left",
-                max: 1070,
-                color: "#838383",
-                axisLabelUseCanvas: true,
-                axisLabelFontSizePixels: 12,
-                axisLabelFontFamily: 'Arial',
-                axisLabelPadding: 3
-            }, {
-                position: "right",
-                clolor: "#838383",
-                axisLabelUseCanvas: true,
-                axisLabelFontSizePixels: 12,
-                axisLabelFontFamily: ' Arial',
-                axisLabelPadding: 67
+            {
+                type: 'category',
+                boundaryGap: true,
+                data: categories2
             }
-            ],
-            legend: {
-                noColumns: 1,
-                labelBoxBorderColor: "#000000",
-                position: "nw"
+        ],
+        yAxis: [
+            {
+                type: 'value',
+                scale: true,
+                name: '市接口',
+                min: 0,
+                boundaryGap: [0.2, 0.2]
             },
-            grid: {
-                hoverable: false,
-                borderWidth: 0,
-                color: '#838383'
+            {
+                type: 'value',
+                scale: true,
+                name: '省接口',
+                min: 0,
+                boundaryGap: [0.2, 0.2]
             }
-        };
-        $.plot($("#flot-dashboard-chart"), dataset, options);
+        ],
+        series: [
+            {
+                name: '省接口申请频次',
+                type: 'bar',
+                xAxisIndex: 1,
+                yAxisIndex: 1,
+                data: data
+            },
+            {
+                name: '市接口申请频次',
+                type: 'line',
+                data: data2
+            }
+        ]
+    };
+    app.count = 11;
+
+
+    if (option && typeof option === 'object') {
+        myChart.setOption(option);
     }
+
+    window.addEventListener('resize', myChart.resize);
+
+
     function gd(year, month, day) {
         return new Date(year, month - 1, day).getTime();
     }

+ 17 - 1
mybusiness/src/main/java/com/business/controller/VisualizationController.java

@@ -3,8 +3,10 @@ package com.business.controller;
 import com.alibaba.fastjson.JSONObject;
 import com.business.domain.ImputationData;
 import com.business.service.ImputationDataService;
+import com.sooka.apply.service.IIntRecordService;
 import com.sooka.common.core.controller.BaseController;
 import com.sooka.common.core.domain.AjaxResult;
+import com.sooka.common.utils.StringUtils;
 import com.sooka.framework.util.ShiroUtils;
 import com.sooka.system.domain.SysDept;
 import com.sooka.system.domain.SysDictData;
@@ -33,6 +35,9 @@ public class VisualizationController extends BaseController {
     private ITUInterfaceinfoService interfaceinfoService;
 
     @Autowired
+    private IIntRecordService iIntRecordService;
+
+    @Autowired
     private ImputationDataService imputationDataService;
 
     @Autowired
@@ -177,7 +182,7 @@ public class VisualizationController extends BaseController {
     }
 
     /**
-     * 查询归集和接口排名TOP10
+     * 查询月度归集数据分析
      * */
     @PostMapping("getImputationDataList")
     @ResponseBody
@@ -210,4 +215,15 @@ public class VisualizationController extends BaseController {
         return interfaceinfoService.getInterfaceCount("1");
     }
 
+    /**
+     * 接口申请数量
+     * @param deptId 部门ID
+     * @return 结果
+     */
+    @PostMapping("applyCount")
+    @ResponseBody
+    public String[] applyCount(String year, String deptId){
+        return iIntRecordService.applyCount(year,deptId);
+    }
+
 }

+ 17 - 0
mybusiness/src/main/java/com/sooka/apply/mapper/IntRecordMapper.java

@@ -1,6 +1,8 @@
 package com.sooka.apply.mapper;
 
 import java.util.List;
+import java.util.Map;
+
 import com.sooka.apply.domain.IntRecord;
 import com.sooka.apply.domain.IntDetailed;
 import org.apache.ibatis.annotations.Param;
@@ -100,5 +102,20 @@ public interface IntRecordMapper
      */
     public int updateStatus(@Param("id") String id, @Param("status") String status);
 
+    /**
+     * 接口申请频次
+     * @param shareTypes 接口类型
+     * @return 结果
+     */
+    public Map applyFrequency(String[] shareTypes);
+
+    /**
+     * 接口申请数量
+     * @param deptId 部门ID
+     * @return 结果
+     */
+    public Map applyCount(@Param("year") String year, @Param("provideDeptId") String provideDeptId);
+
+
 
 }

+ 15 - 0
mybusiness/src/main/java/com/sooka/apply/service/IIntRecordService.java

@@ -1,6 +1,7 @@
 package com.sooka.apply.service;
 
 import java.util.List;
+import java.util.Map;
 
 import com.sooka.apply.domain.IntBo;
 import com.sooka.apply.domain.IntDetailed;
@@ -89,4 +90,18 @@ public interface IIntRecordService
      */
     public int updateStatus(String id, String status);
 
+    /**
+     * 接口申请频次
+     * @param shareTypes 接口类型
+     * @return 结果
+     */
+    public String[] applyFrequency(String[] shareTypes);
+
+    /**
+     * 接口申请数量
+     * @param deptId 部门ID
+     * @return 结果
+     */
+    public String[] applyCount(String year, String deptId);
+
 }

+ 47 - 0
mybusiness/src/main/java/com/sooka/apply/service/impl/IntRecordServiceImpl.java

@@ -1,5 +1,6 @@
 package com.sooka.apply.service.impl;
 
+import java.util.Iterator;
 import java.util.List;
 
 import com.sooka.common.core.text.Convert;
@@ -11,6 +12,8 @@ import com.util.SecretKeyUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import java.util.ArrayList;
+import java.util.Map;
+
 import org.springframework.transaction.annotation.Transactional;
 import com.sooka.apply.domain.IntDetailed;
 import com.sooka.apply.mapper.IntRecordMapper;
@@ -216,4 +219,48 @@ public class IntRecordServiceImpl implements IIntRecordService
         }
         return 0;
     }
+
+    /**
+     * 接口申请频次
+     * @param shareTypes 接口类型
+     * @return 结果
+     */
+    @Override
+    public String[] applyFrequency(String[] shareTypes){
+        Map map = intRecordMapper.applyFrequency(shareTypes);
+        return Map2Array(map);
+    }
+
+    /**
+     * 接口申请数量
+     * @param deptId 部门ID
+     * @return 结果
+     */
+    @Override
+    public String[] applyCount(String year, String deptId){
+        Map map = intRecordMapper.applyCount(year,deptId);
+        return Map2Array(map);
+    }
+
+    /**
+     * Map转二维数组
+     * @param map
+     * @return
+     */
+    public static String[] Map2Array(Map map) {
+        String[] strings = null;
+        if (map != null && !map.isEmpty()) {
+            int size = map.size();
+            strings = new String[size];
+
+            Iterator iterator = map.entrySet().iterator();
+            for (int i = 0; i < size; i++) {
+                Map.Entry entry = (Map.Entry) iterator.next();
+                Object value = entry.getValue();
+                strings[i] = String.valueOf(value);
+            }
+        }
+        return strings;
+    }
+
 }

+ 300 - 0
mybusiness/src/main/resources/mapper/apply/IntRecordMapper.xml

@@ -253,6 +253,306 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         </foreach>
     </delete>
 
+    <select id="applyFrequency" parameterType="String" resultType="java.util.LinkedHashMap">
+        SELECT
+            IFNULL(
+                SUM(
+                    CASE MONTH (apply_time)
+                    WHEN 1 THEN
+                        1
+                    ELSE
+                        0
+                    END
+                ),
+                0
+            ) AS jan,
+            IFNULL(
+                SUM(
+                    CASE MONTH (apply_time)
+                    WHEN 2 THEN
+                        1
+                    ELSE
+                        0
+                    END
+                ),
+                0
+            ) AS feb,
+            IFNULL(
+                SUM(
+                    CASE MONTH (apply_time)
+                    WHEN 3 THEN
+                        1
+                    ELSE
+                        0
+                    END
+                ),
+                0
+            ) AS mar,
+            IFNULL(
+                SUM(
+                    CASE MONTH (apply_time)
+                    WHEN 4 THEN
+                        1
+                    ELSE
+                        0
+                    END
+                ),
+                0
+            ) AS apr,
+            IFNULL(
+                SUM(
+                    CASE MONTH (apply_time)
+                    WHEN 5 THEN
+                        1
+                    ELSE
+                        0
+                    END
+                ),
+                0
+            ) AS may,
+            IFNULL(
+                SUM(
+                    CASE MONTH (apply_time)
+                    WHEN 6 THEN
+                        1
+                    ELSE
+                        0
+                    END
+                ),
+                0
+            ) AS jun,
+            IFNULL(
+                SUM(
+                    CASE MONTH (apply_time)
+                    WHEN 7 THEN
+                        1
+                    ELSE
+                        0
+                    END
+                ),
+                0
+            ) AS jul,
+            IFNULL(
+                SUM(
+                    CASE MONTH (apply_time)
+                    WHEN 8 THEN
+                        1
+                    ELSE
+                        0
+                    END
+                ),
+                0
+            ) AS aug,
+            IFNULL(
+                SUM(
+                    CASE MONTH (apply_time)
+                    WHEN 9 THEN
+                        1
+                    ELSE
+                        0
+                    END
+                ),
+                0
+            ) AS sep,
+            IFNULL(
+                SUM(
+                    CASE MONTH (apply_time)
+                    WHEN 10 THEN
+                        1
+                    ELSE
+                        0
+                    END
+                ),
+                0
+            ) AS oct,
+            IFNULL(
+                SUM(
+                    CASE MONTH (apply_time)
+                    WHEN 11 THEN
+                        1
+                    ELSE
+                        0
+                    END
+                ),
+                0
+            ) AS nov,
+            IFNULL(
+                SUM(
+                    CASE MONTH (apply_time)
+                    WHEN 12 THEN
+                        1
+                    ELSE
+                        0
+                    END
+                ),
+                0
+            ) AS decb
+        FROM
+            (
+                SELECT
+                    r.apply_time,
+                    i.share_type
+                FROM
+                    int_record r
+                LEFT JOIN int_detailed d ON r.id = d.record_id
+                LEFT JOIN t_u_interfaceinfo i ON d.int_id = i.id
+                WHERE
+                    share_type in
+                    <foreach item="share_type" collection="array" open="(" separator="," close=")">
+                        #{share_type}
+                    </foreach>
+            ) tb
+    </select>
 
+    <select id="applyCount" parameterType="String" resultType="java.util.LinkedHashMap">
+        SELECT
+            IFNULL(
+                SUM(
+                    CASE MONTH (apply_time)
+                    WHEN 1 THEN
+                        1
+                    ELSE
+                        0
+                    END
+                ),
+                0
+            ) AS jan,
+            IFNULL(
+                SUM(
+                    CASE MONTH (apply_time)
+                    WHEN 2 THEN
+                        1
+                    ELSE
+                        0
+                    END
+                ),
+                0
+            ) AS feb,
+            IFNULL(
+                SUM(
+                    CASE MONTH (apply_time)
+                    WHEN 3 THEN
+                        1
+                    ELSE
+                        0
+                    END
+                ),
+                0
+            ) AS mar,
+            IFNULL(
+                SUM(
+                    CASE MONTH (apply_time)
+                    WHEN 4 THEN
+                        1
+                    ELSE
+                        0
+                    END
+                ),
+                0
+            ) AS apr,
+            IFNULL(
+                SUM(
+                    CASE MONTH (apply_time)
+                    WHEN 5 THEN
+                        1
+                    ELSE
+                        0
+                    END
+                ),
+                0
+            ) AS may,
+            IFNULL(
+                SUM(
+                    CASE MONTH (apply_time)
+                    WHEN 6 THEN
+                        1
+                    ELSE
+                        0
+                    END
+                ),
+                0
+            ) AS jun,
+            IFNULL(
+                SUM(
+                    CASE MONTH (apply_time)
+                    WHEN 7 THEN
+                        1
+                    ELSE
+                        0
+                    END
+                ),
+                0
+            ) AS jul,
+            IFNULL(
+                SUM(
+                    CASE MONTH (apply_time)
+                    WHEN 8 THEN
+                        1
+                    ELSE
+                        0
+                    END
+                ),
+                0
+            ) AS aug,
+            IFNULL(
+                SUM(
+                    CASE MONTH (apply_time)
+                    WHEN 9 THEN
+                        1
+                    ELSE
+                        0
+                    END
+                ),
+                0
+            ) AS sep,
+            IFNULL(
+                SUM(
+                    CASE MONTH (apply_time)
+                    WHEN 10 THEN
+                        1
+                    ELSE
+                        0
+                    END
+                ),
+                0
+            ) AS oct,
+            IFNULL(
+                SUM(
+                    CASE MONTH (apply_time)
+                    WHEN 11 THEN
+                        1
+                    ELSE
+                        0
+                    END
+                ),
+                0
+            ) AS nov,
+            IFNULL(
+                SUM(
+                    CASE MONTH (apply_time)
+                    WHEN 12 THEN
+                        1
+                    ELSE
+                        0
+                    END
+                ),
+                0
+            ) AS decb
+        FROM
+            (
+                SELECT
+                    r.apply_time,
+                    i.share_type
+                FROM
+                    int_record r
+                LEFT JOIN int_detailed d ON r.id = d.record_id
+                LEFT JOIN t_u_interfaceinfo i ON d.int_id = i.id
+                WHERE
+                    r.provide_dept_id = #{provideDeptId}
+                <if test="year != null">
+                    and DATE_FORMAT(apply_time,'%Y') = #{year}
+                </if>
+            ) tb
+    </select>
 
 </mapper>

+ 6 - 2
mybusiness/src/main/resources/static/visualization/css/th_yj.css

@@ -793,7 +793,11 @@ body::-webkit-scrollbar {
 	z-index: 1;
 }
 
-#jkzb {
+#pie_charts {
+	width: 55%;
+	height: 250px;
+}
+#sub_pie_charts {
 	width: 55%;
 	height: 250px;
 }
@@ -1247,4 +1251,4 @@ appearance:none;
 	background: #031957;
 	border: 0px;
 	outline: 0px;
-}
+}

File diff suppressed because it is too large
+ 5 - 6
mybusiness/src/main/resources/static/visualization/js/echarts_div.js


+ 6 - 7
mybusiness/src/main/resources/templates/visualization/index.html

@@ -65,17 +65,16 @@
             <div class="con_tit clearfix">
                 <div class="fl div_tit">接口占比</div>
                 <div class="tit_date">
-
                     <i></i>
-                    <select id="pie" th:onchange="selectYear()">
-                        <option selected th:value="2022">2022年</option>
-                        <option th:value="2021">2021年</option>
-                        <option th:value="2020">2020年</option>
+                    <select id="pie" onchange="selectYear()">
+                        <option selected value="2022">2022年</option>
+                        <option value="2021">2021年</option>
+                        <option value="2020">2020年</option>
                     </select>
                 </div>
             </div>
-            <div id="jkzb"></div>
-            <div class="jkzb_txt">
+            <div id="pie_charts"></div>
+            <div class="jkzb_txt" id="pie_div">
                 <div class="sgj jkzb_list">
                     <h3><i></i>市归集</h3>
                     <p><span>0</span><span>0%</span></p>

File diff suppressed because it is too large
+ 705 - 522
mybusiness/src/main/resources/templates/visualization/tk_iframe.html