Prechádzať zdrojové kódy

feat:首页统计信息

hmc 1 rok pred
rodič
commit
40de6c3f19

+ 80 - 0
zkqy-admin/src/main/java/com/zkqy/web/controller/homepagestatistics/StatisticsController.java

@@ -0,0 +1,80 @@
+package com.zkqy.web.controller.homepagestatistics;
+
+
+import com.zkqy.common.core.domain.AjaxResult;
+import com.zkqy.common.utils.SecurityUtils;
+import com.zkqy.system.domain.SysLogininfor;
+import com.zkqy.system.service.ISysOperLogService;
+import com.zkqy.system.service.impl.SysLogininforServiceImpl;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+@RestController
+@RequestMapping("/statistics/info")
+public class StatisticsController {
+
+
+    @Autowired
+    private ISysOperLogService operLogService;
+
+    @Autowired
+    private SysLogininforServiceImpl logininforService;
+
+
+
+    /**
+     * 操作日志信息统计
+     * Operation information statistics
+     */
+    @GetMapping("/getOperationInformationStatistics")
+    public AjaxResult getOperationInformationStatistics(){
+        Long tenantId = SecurityUtils.getLoginUser().getTenantId();
+        List<Map> list = operLogService.selectOperationInformationStatistics(tenantId);
+        return AjaxResult.success(list);
+    }
+
+    /**
+     * 操作日志信息统计
+     * Operation information statistics
+     */
+    @GetMapping("/getLoginInformationStatistics")
+    public AjaxResult getLoginInformationStatistics(){
+        SysLogininfor sysLogininfor=new SysLogininfor();
+        sysLogininfor.setTenantId( SecurityUtils.getLoginUser().getTenantId());
+        sysLogininfor.setWhichApplication("1");
+        List<Map> loginInformationStatistics = logininforService.getLoginInformationStatistics(sysLogininfor);
+
+        SysLogininfor sysLogininfor2=new SysLogininfor();
+        sysLogininfor2.setTenantId( SecurityUtils.getLoginUser().getTenantId());
+        sysLogininfor2.setWhichApplication("2");
+        List<Map> loginInformationStatistics1 = logininforService.getLoginInformationStatistics(sysLogininfor2);
+        List<Map> list = new ArrayList<>();
+        HashMap hashMap1=new HashMap();
+        hashMap1.put("name","客户端");
+        hashMap1.put("type","line");
+        hashMap1.put("smooth","true");
+        hashMap1.put("data",loginInformationStatistics.stream().map((item->item.get("daily_login_count"))).collect(Collectors.toList()));
+        hashMap1.put("date",loginInformationStatistics.stream().map((item->item.get("login_date"))).collect(Collectors.toList()));
+        list.add(hashMap1);
+        HashMap hashMap2=new HashMap();
+        hashMap2.put("name","工具端");
+        hashMap2.put("type","line");
+        hashMap2.put("smooth","true");
+        hashMap2.put("data",loginInformationStatistics1.stream().map((item->item.get("daily_login_count"))).collect(Collectors.toList()));
+        hashMap2.put("date",loginInformationStatistics.stream().map((item->item.get("login_date"))).collect(Collectors.toList()));
+        list.add(hashMap2);
+        return AjaxResult.success(list);
+    }
+
+
+
+
+}

+ 11 - 0
zkqy-system/src/main/java/com/zkqy/system/mapper/SysLogininforMapper.java

@@ -1,7 +1,10 @@
 package com.zkqy.system.mapper;
 
 import java.util.List;
+import java.util.Map;
+
 import com.zkqy.system.domain.SysLogininfor;
+import org.apache.ibatis.annotations.Param;
 
 /**
  * 系统访问日志情况信息 数据层
@@ -39,4 +42,12 @@ public interface SysLogininforMapper
      * @return 结果
      */
     public int cleanLogininfor();
+
+    /**
+     * 根据端和租户id查询不同的登录信息
+     * @param tenantId
+     * @param whichApplication
+     * @return
+     */
+    List<Map> getLoginInformationStatistics(@Param("tenantId") String tenantId, @Param("whichApplication") String whichApplication);
 }

+ 8 - 0
zkqy-system/src/main/java/com/zkqy/system/mapper/SysOperLogMapper.java

@@ -1,6 +1,8 @@
 package com.zkqy.system.mapper;
 
 import java.util.List;
+import java.util.Map;
+
 import com.zkqy.system.domain.SysOperLog;
 
 /**
@@ -45,4 +47,10 @@ public interface SysOperLogMapper
      * 清空操作日志
      */
     public void cleanOperLog();
+
+    /**
+     * 根据租户id查询租户下的
+     * @return
+     */
+    List<Map> selectOperationInformationStatisticsTenantId(Long tenantId);
 }

+ 9 - 0
zkqy-system/src/main/java/com/zkqy/system/service/ISysLogininforService.java

@@ -1,6 +1,8 @@
 package com.zkqy.system.service;
 
 import java.util.List;
+import java.util.Map;
+
 import com.zkqy.system.domain.SysLogininfor;
 
 /**
@@ -37,4 +39,11 @@ public interface ISysLogininforService
      * 清空系统登录日志
      */
     public void cleanLogininfor();
+
+    /**
+     * 根据租户id和端查询对应的登录信息
+     * @param sysLogininfor
+     * @return
+     */
+    List<Map> getLoginInformationStatistics(SysLogininfor sysLogininfor);
 }

+ 9 - 0
zkqy-system/src/main/java/com/zkqy/system/service/ISysOperLogService.java

@@ -1,6 +1,8 @@
 package com.zkqy.system.service;
 
 import java.util.List;
+import java.util.Map;
+
 import com.zkqy.system.domain.SysOperLog;
 
 /**
@@ -45,4 +47,11 @@ public interface ISysOperLogService
      * 清空操作日志
      */
     public void cleanOperLog();
+    /**
+     * 根据租户id查询对应租户下的所有操作日志
+     * @param tenantId
+     * @return
+     */
+    List<Map> selectOperationInformationStatistics(Long tenantId);
+
 }

+ 6 - 0
zkqy-system/src/main/java/com/zkqy/system/service/impl/SysLogininforServiceImpl.java

@@ -1,6 +1,7 @@
 package com.zkqy.system.service.impl;
 
 import java.util.List;
+import java.util.Map;
 
 import com.zkqy.common.utils.SecurityUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -69,4 +70,9 @@ public class SysLogininforServiceImpl implements ISysLogininforService {
     public void cleanLogininfor() {
         logininforMapper.cleanLogininfor();
     }
+
+    @Override
+    public List<Map> getLoginInformationStatistics(SysLogininfor sysLogininfor) {
+        return logininforMapper.getLoginInformationStatistics( sysLogininfor.getTenantId().toString(),sysLogininfor.getWhichApplication());
+    }
 }

+ 7 - 0
zkqy-system/src/main/java/com/zkqy/system/service/impl/SysOperLogServiceImpl.java

@@ -1,6 +1,8 @@
 package com.zkqy.system.service.impl;
 
 import java.util.List;
+import java.util.Map;
+
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import com.zkqy.system.domain.SysOperLog;
@@ -73,4 +75,9 @@ public class SysOperLogServiceImpl implements ISysOperLogService
     {
         operLogMapper.cleanOperLog();
     }
+
+    @Override
+    public List<Map> selectOperationInformationStatistics(Long tenantId) {
+        return operLogMapper.selectOperationInformationStatisticsTenantId(tenantId);
+    }
 }

+ 93 - 0
zkqy-system/src/main/resources/mapper/system/SysLogininforMapper.xml

@@ -48,6 +48,99 @@
 		order by info_id desc
 	</select>
 
+	<select id="getLoginInformationStatistics" resultType="map">
+		SELECT
+			d.date AS login_date,
+			COUNT( l.info_id ) AS daily_login_count
+		FROM
+			(
+				SELECT
+					CURDATE() - INTERVAL seq DAY AS date
+				FROM
+					(
+					SELECT
+					@ROW := @ROW + 1 AS seq
+					FROM
+					(
+					SELECT
+					0 UNION ALL
+					SELECT
+					1 UNION ALL
+					SELECT
+					3 UNION ALL
+					SELECT
+					4 UNION ALL
+					SELECT
+					5 UNION ALL
+					SELECT
+					6 UNION ALL
+					SELECT
+					6 UNION ALL
+					SELECT
+					7 UNION ALL
+					SELECT
+					8 UNION ALL
+					SELECT
+					9
+					) t1,
+					(
+					SELECT
+					0 UNION ALL
+					SELECT
+					1 UNION ALL
+					SELECT
+					3 UNION ALL
+					SELECT
+					4 UNION ALL
+					SELECT
+					5 UNION ALL
+					SELECT
+					6 UNION ALL
+					SELECT
+					6 UNION ALL
+					SELECT
+					7 UNION ALL
+					SELECT
+					8 UNION ALL
+					SELECT
+					9
+					) t2,
+					(
+					SELECT
+					0 UNION ALL
+					SELECT
+					1 UNION ALL
+					SELECT
+					3 UNION ALL
+					SELECT
+					4 UNION ALL
+					SELECT
+					5 UNION ALL
+					SELECT
+					6 UNION ALL
+					SELECT
+					6 UNION ALL
+					SELECT
+					7 UNION ALL
+					SELECT
+					8 UNION ALL
+					SELECT
+					9
+					) t3,
+					( SELECT @ROW := 0 ) r
+					) v
+				WHERE
+           <![CDATA[seq <= 30 ]]>
+        ) d
+				LEFT JOIN sys_logininfor l ON DATE( l.login_time ) = d.date
+			AND l.tenant_id =#{tenantId}
+			AND l.which_application =#{whichApplication}
+		GROUP BY
+			d.date
+		ORDER BY
+			d.date;
+	</select>
+
 	<delete id="deleteLogininforByIds" parameterType="Long">
 		delete from sys_logininfor where info_id in
 		<foreach collection="array" item="infoId" open="(" separator="," close=")">

+ 5 - 0
zkqy-system/src/main/resources/mapper/system/SysOperLogMapper.xml

@@ -81,6 +81,11 @@
 		where oper_id = #{operId}
 	</select>
 
+	<select id="selectOperationInformationStatisticsTenantId"
+			resultType="map" parameterType="long">
+		SELECT oper_name,oper_ip FROM `sys_oper_log` where tenant_id=#{tenantId}
+	</select>
+
 	<update id="cleanOperLog">
 		truncate table sys_oper_log
 	</update>