Просмотр исходного кода

仪表盘优化,当月访问统计/用户组统计,新增用户优化

shimingxy 3 часов назад
Родитель
Сommit
0b3028d391

+ 5 - 1
maxkey-persistence/src/main/java/org/dromara/maxkey/persistence/mapper/ReportMapper.java

@@ -34,7 +34,9 @@ import org.dromara.mybatis.jpa.entity.JpaEntity;
  */
 public  interface ReportMapper extends IJpaMapper<JpaEntity,String> {
     
-    public Integer analysisDay(HashMap<String,Object> reportParameter);
+    public Integer analysisDayCount(HashMap<String,Object> reportParameter);
+    
+    public Integer analysisMonthCount(HashMap<String,Object> reportParameter);
     
     public Integer analysisNewUsers(HashMap<String,Object> reportParameter);
     
@@ -48,6 +50,8 @@ public  interface ReportMapper extends IJpaMapper<JpaEntity,String> {
     
     public Integer totalApps(HashMap<String,Object> reportParameter);
     
+    public Integer totalGroups(HashMap<String,Object> reportParameter);
+    
     public List<Map<String,Object>> analysisDayHour(HashMap<String,Object> reportParameter);
     
     public List<Map<String,Object>> analysisMonth(HashMap<String,Object> reportParameter);

+ 5 - 1
maxkey-persistence/src/main/java/org/dromara/maxkey/persistence/service/ReportService.java

@@ -25,7 +25,9 @@ import org.dromara.mybatis.jpa.entity.JpaEntity;
 
 public interface ReportService  extends IJpaService<JpaEntity,String>{
 
-    public Integer analysisDay(HashMap<String,Object> reportParameter) ;
+    public Integer analysisDayCount(HashMap<String,Object> reportParameter) ;
+    
+    public Integer analysisMonthCount(HashMap<String,Object> reportParameter) ;
     
     public Integer analysisNewUsers(HashMap<String,Object> reportParameter) ;
     
@@ -39,6 +41,8 @@ public interface ReportService  extends IJpaService<JpaEntity,String>{
     
     public Integer totalApps(HashMap<String,Object> reportParameter);
     
+    public Integer totalGroups(HashMap<String,Object> reportParameter);
+    
     public List<Map<String,Object>> analysisDayHour(HashMap<String,Object> reportParameter);
     
     public List<Map<String,Object>> analysisMonth(HashMap<String,Object> reportParameter);

+ 12 - 2
maxkey-persistence/src/main/java/org/dromara/maxkey/persistence/service/impl/ReportServiceImpl.java

@@ -30,8 +30,8 @@ import org.springframework.stereotype.Repository;
 @Repository
 public class ReportServiceImpl  extends JpaServiceImpl<ReportMapper,JpaEntity,String> implements ReportService{
 
-    public Integer analysisDay(HashMap<String,Object> reportParameter) {
-        return getMapper().analysisDay(reportParameter);
+    public Integer analysisDayCount(HashMap<String,Object> reportParameter) {
+        return getMapper().analysisDayCount(reportParameter);
     }
     
     public Integer analysisNewUsers(HashMap<String,Object> reportParameter) {
@@ -101,5 +101,15 @@ public class ReportServiceImpl  extends JpaServiceImpl<ReportMapper,JpaEntity,St
     public List<Map<String,Object>> analysisCountry(HashMap<String,Object> reportParameter){
         return getMapper().analysisCountry(reportParameter);
     }
+
+	@Override
+	public Integer analysisMonthCount(HashMap<String, Object> reportParameter) {
+		return getMapper().analysisMonthCount(reportParameter);
+	}
+
+	@Override
+	public Integer totalGroups(HashMap<String, Object> reportParameter) {
+		return getMapper().totalGroups(reportParameter);
+	}
     
 }

+ 20 - 1
maxkey-persistence/src/main/resources/org/dromara/maxkey/persistence/mapper/xml/mysql/ReportMapper.xml

@@ -2,13 +2,23 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="org.dromara.maxkey.persistence.mapper.ReportMapper" >
  	<!-- DAY  COUNT 一天访问量 -->
-	<select id="analysisDay" parameterType="java.util.HashMap" resultType="Integer">
+	<select id="analysisDayCount" parameterType="java.util.HashMap" resultType="Integer">
     	select 
     		count(id) reportcount
     	from mxk_history_login 
     	where  instid   =   #{instId} 
             and date(logintime) =curdate()
     </select>
+    
+    <!-- MONTH COUNT 一个月访问量 -->
+    <select id="analysisMonthCount" parameterType="java.util.HashMap" resultType="Integer">
+    	select 
+    		count(id) reportcount
+    	from mxk_history_login 
+    	where  instid   =   #{instId} 
+    		and date(logintime) > date_add(curdate(), interval - day(curdate()) -31 day)
+    </select>
+    
     <!-- 本月新用户统计 -->
     <select id="analysisNewUsers" parameterType="java.util.HashMap" resultType="Integer">
     	select 
@@ -161,5 +171,14 @@
             where   instid   =   #{instId} 
                 and status = 1
     </select>
+    
+    <!-- 部门统计 -->
+    <select id="totalGroups" parameterType="java.util.HashMap" resultType="Integer">
+            select 
+                count(*) reportcount 
+            from mxk_groups 
+            where   instid   =   #{instId} 
+                and status = 1
+    </select>
 
 </mapper>

+ 46 - 1
maxkey-persistence/src/main/resources/org/dromara/maxkey/persistence/mapper/xml/postgresql/ReportMapper.xml

@@ -2,12 +2,22 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="org.maxkey.persistence.mapper.ReportMapper">
     <!-- DAY  COUNT 一天访问量 -->
-    <select id="analysisDay" parameterType="java.util.HashMap" resultType="Integer">
+    <select id="analysisDayCount" parameterType="java.util.HashMap" resultType="Integer">
         select count(id) reportcount
         from mxk_history_login
         where instid = #{instId}
           and date (logintime) = current_date
     </select>
+    
+    <!-- MONTH COUNT 一个月访问量 -->
+    <select id="analysisMonthCount" parameterType="java.util.HashMap" resultType="Integer">
+    	select 
+    		count(id) reportcount
+    	from mxk_history_login 
+    	where  instid   =   #{instId} 
+    		and date(logintime) > (current_date - interval '30 day')
+    </select>
+    
     <!-- 本月新用户统计 -->
     <select id="analysisNewUsers" parameterType="java.util.HashMap" resultType="Integer">
         select count(*) reportcount
@@ -74,4 +84,39 @@
         order by reportcount desc
     </select>
 
+    <!-- 用户统计 -->
+    <select id="totalUsers" parameterType="java.util.HashMap" resultType="Integer">
+            select 
+                count(*) reportcount 
+            from mxk_userinfo 
+            where   instid   =   #{instId} 
+                and status = 1
+    </select>
+    
+    <!-- 部门统计 -->
+    <select id="totalDepts" parameterType="java.util.HashMap" resultType="Integer">
+            select 
+                count(*) reportcount 
+            from mxk_organizations 
+            where   instid   =   #{instId} 
+                and status = 1
+    </select>
+    
+    <!-- 应用统计 -->
+    <select id="totalApps" parameterType="java.util.HashMap" resultType="Integer">
+            select 
+                count(*) reportcount 
+            from mxk_apps 
+            where   instid   =   #{instId} 
+                and status = 1
+    </select>
+    
+    <!-- 部门统计 -->
+    <select id="totalGroups" parameterType="java.util.HashMap" resultType="Integer">
+            select 
+                count(*) reportcount 
+            from mxk_groups 
+            where   instid   =   #{instId} 
+                and status = 1
+    </select>
 </mapper>

+ 11 - 8
maxkey-web-frontend/maxkey-web-mgt-app/src/app/routes/dashboard/home/home.component.html

@@ -13,8 +13,8 @@
   <div nz-col nzXs="24" nzSm="12" nzMd="6" class="mb-md">
     <div nz-row nzType="flex" nzAlign="middle" class="bg-primary rounded-md">
       <div nz-col nzSpan="12" class="p-md text-white">
-        <div class="h2 mt0">{{ totalUsers }}</div>
-        <p class="text-nowrap mb0">{{ 'mxk.home.totalUsers' | i18n }}</p>
+        <div class="h2 mt0">{{ newUsers }}/{{ totalUsers }}</div>
+        <p class="text-nowrap mb0">{{ 'mxk.home.newUsers' | i18n }}/{{ 'mxk.home.totalUsers' | i18n }}</p>
       </div>
       <div nz-col nzSpan="12">
         <g2-mini-bar
@@ -31,10 +31,10 @@
     </div>
   </div>
   <div nz-col nzXs="24" nzSm="12" nzMd="6" class="mb-md">
-    <div nz-row nzType="flex" nzAlign="middle" class="bg-success rounded-md">
+    <div nz-row nzType="flex" nzAlign="middle" class="bg-orange rounded-md">
       <div nz-col nzSpan="12" class="p-md text-white">
-        <div class="h2 mt0">{{ newUsers }}</div>
-        <p class="text-nowrap mb0">{{ 'mxk.home.newUsers' | i18n }}</p>
+        <div class="h2 mt0">{{ totalDepts }}</div>
+        <p class="text-nowrap mb0">{{ 'mxk.home.totalDepts' | i18n }}</p>
       </div>
       <div nz-col nzSpan="12">
         <g2-mini-bar
@@ -51,10 +51,10 @@
     </div>
   </div>
   <div nz-col nzXs="24" nzSm="12" nzMd="6" class="mb-md">
-    <div nz-row nzType="flex" nzAlign="middle" class="bg-orange rounded-md">
+    <div nz-row nzType="flex" nzAlign="middle" class="bg-success rounded-md">
       <div nz-col nzSpan="12" class="p-md text-white">
-        <div class="h2 mt0">{{ totalDepts }}</div>
-        <p class="text-nowrap mb0">{{ 'mxk.home.totalDepts' | i18n }}</p>
+        <div class="h2 mt0">{{ totalGroups }}</div>
+        <p class="text-nowrap mb0">{{ 'mxk.home.totalGroups' | i18n }}</p>
       </div>
       <div nz-col nzSpan="12">
         <g2-mini-bar
@@ -112,6 +112,9 @@
     <nz-card [nzTitle]="monthAccessTitle" [nzBordered]="false">
       <ng-template #monthAccessTitle>
         {{ 'mxk.home.monthAccessCount' | i18n }}<span>&nbsp;&nbsp;</span>
+        <nz-tag [nzColor]="'blue'" nzBordered="disabled"
+          ><i nz-icon nzType="clock-circle"></i>{{ 'mxk.home.monthCount' | i18n }}<span>{{ monthCount }}</span></nz-tag
+        >
         <nz-tag nzColor="green">
           <i nz-icon nzType="exclamation-circle"></i>
           {{ 'mxk.home.activeUsers' | i18n }}<span>{{ activeUsers }}</span>

+ 6 - 0
maxkey-web-frontend/maxkey-web-mgt-app/src/app/routes/dashboard/home/home.component.ts

@@ -42,11 +42,15 @@ export class HomeComponent implements OnInit {
   //当天统计
   dayCount: number = 0;
 
+  monthCount: number = 0;
+
   totalUsers: number = 0;
 
   totalDepts: number = 0;
 
   totalApps: number = 0;
+
+  totalGroups: number = 0;
   //在线用户
   onlineUsers: number = 0;
   //当日
@@ -112,11 +116,13 @@ export class HomeComponent implements OnInit {
     this.analysisService.dashBoard({}).subscribe(res => {
       this.onlineUsers = res.data.onlineUsers;
       this.dayCount = res.data.dayCount;
+      this.monthCount = res.data.monthCount;
       this.newUsers = res.data.newUsers;
       this.activeUsers = res.data.activeUsers;
       this.totalDepts = res.data.totalDepts;
       this.totalUsers = res.data.totalUsers;
       this.totalApps = res.data.totalApps;
+      this.totalGroups = res.data.totalGroups;
 
       const beginDay = new Date().getTime();
       const fakeY = [7, 5, 4, 2, 4, 7, 5, 6, 5, 9, 6, 3, 1, 5, 3, 6, 5];

+ 2 - 0
maxkey-web-frontend/maxkey-web-mgt-app/src/assets/i18n/en-US.json

@@ -70,11 +70,13 @@
 		"home": {
 			"onlineUsers": "Online Users",
 			"dayCount": "Day Count",
+			"monthCount": "Month Count",
 			"newUsers": "Month News",
 			"activeUsers": "Month Actives",
 			"totalUsers": "Users",
 			"totalDepts": "Depts",
 			"totalApps": "Apps",
+			"totalGroups": "Groups",
 			"dayAccessCount": "Today Access Count",
 			"monthAccessCount": "30 Day Access Count",
 			"monthAppCount": "30 Day TOP 10 App Access Count",

+ 3 - 1
maxkey-web-frontend/maxkey-web-mgt-app/src/assets/i18n/zh-CN.json

@@ -69,7 +69,9 @@
 		"home": {
 			"onlineUsers": "在线用户",
 			"dayCount": "日访问量",
-			"newUsers": "当月新增用户",
+			"monthCount": "当月访问量",
+			"totalGroups": "用户组",
+			"newUsers": "当月新增",
 			"activeUsers": "活动用户",
 			"totalUsers": "用户",
 			"totalDepts": "组织",

+ 3 - 1
maxkey-web-frontend/maxkey-web-mgt-app/src/assets/i18n/zh-TW.json

@@ -70,7 +70,9 @@
 		"home": {
 			"onlineUsers": "在線用戶",
 			"dayCount": "日訪問量",
-			"newUsers": "當月新增用戶",
+			"monthCount": "當月訪問量",
+			"totalGroups": "用戶組",
+			"newUsers": "當月新增",
 			"activeUsers": "活動用戶",
 			"totalUsers": "用户",
 			"totalDepts": "组织",

+ 18 - 14
maxkey-webs/maxkey-web-mgt/src/main/java/org/dromara/maxkey/web/controller/DashboardController.java

@@ -44,29 +44,33 @@ public class DashboardController {
     @GetMapping(value={"/dashboard"})
     public Message<?> dashboard(@CurrentUser UserInfo currentUser) {
         logger.debug("dashboard . ");
+        HashMap<String,Object> requestParameter = new HashMap<>();
+        requestParameter.put("instId", currentUser.getInstId());
+        
         HashMap<String,Object> reportParameter = new HashMap<>();
         reportParameter.put("instId", currentUser.getInstId());
+        reportParameter.put("dayCount", reportService.analysisDayCount(requestParameter));
+        reportParameter.put("monthCount", reportService.analysisMonthCount(requestParameter));
+        reportParameter.put("newUsers", reportService.analysisNewUsers(requestParameter));
         
-        reportParameter.put("dayCount", reportService.analysisDay(reportParameter));
-        reportParameter.put("newUsers", reportService.analysisNewUsers(reportParameter));
-        
-        reportParameter.put("onlineUsers", reportService.analysisOnlineUsers(reportParameter));
-        reportParameter.put("activeUsers", reportService.analysisActiveUsers(reportParameter));
+        reportParameter.put("onlineUsers", reportService.analysisOnlineUsers(requestParameter));
+        reportParameter.put("activeUsers", reportService.analysisActiveUsers(requestParameter));
         
-        reportParameter.put("totalUsers", reportService.totalUsers(reportParameter));
-        reportParameter.put("totalDepts", reportService.totalDepts(reportParameter));
-        reportParameter.put("totalApps", reportService.totalApps(reportParameter));
+        reportParameter.put("totalUsers", reportService.totalUsers(requestParameter));
+        reportParameter.put("totalDepts", reportService.totalDepts(requestParameter));
+        reportParameter.put("totalApps", reportService.totalApps(requestParameter));
+        reportParameter.put("totalGroups", reportService.totalGroups(requestParameter));
         
-        reportParameter.put("reportMonth", reportService.analysisMonth(reportParameter));
-        reportParameter.put("reportDayHour", reportService.analysisDayHour(reportParameter));
+        reportParameter.put("reportMonth", reportService.analysisMonth(requestParameter));
+        reportParameter.put("reportDayHour", reportService.analysisDayHour(requestParameter));
         
-        reportParameter.put("reportProvince", reportService.analysisProvince(reportParameter));
+        reportParameter.put("reportProvince", reportService.analysisProvince(requestParameter));
         
-        reportParameter.put("reportCountry", reportService.analysisCountry(reportParameter));
+        reportParameter.put("reportCountry", reportService.analysisCountry(requestParameter));
         
-        reportParameter.put("reportBrowser", reportService.analysisBrowser(reportParameter));
+        reportParameter.put("reportBrowser", reportService.analysisBrowser(requestParameter));
         
-        reportParameter.put("reportApp", reportService.analysisApp(reportParameter));
+        reportParameter.put("reportApp", reportService.analysisApp(requestParameter));
         return new Message<>(reportParameter);
     }