From 0e9f816989a07641b336faa11dfa7341221f9c2a Mon Sep 17 00:00:00 2001
From: ningshuxia <ningshuxia0927@outlook.com>
Date: 星期一, 12 十二月 2022 09:35:36 +0800
Subject: [PATCH] 报表测试接口 2

---
 Application/IStation.Application.OpenApi/test/report/Report_ShysController.cs     |   51 +++++++++++++++++++------
 Application/IStation.Application.OpenApi/test/report/dto/LoginStatistics.cs       |   30 +++++++++++++++
 Application/IStation.Application.OpenApi/test/report/dto/LoginLogItem.cs          |   14 +++++--
 Application/IStation.Application.OpenApi/test/report/dto/UserLoginLogReportDto.cs |   12 ++++-
 4 files changed, 88 insertions(+), 19 deletions(-)

diff --git a/Application/IStation.Application.OpenApi/test/report/Report_ShysController.cs b/Application/IStation.Application.OpenApi/test/report/Report_ShysController.cs
index 52186cc..2d0eb75 100644
--- a/Application/IStation.Application.OpenApi/test/report/Report_ShysController.cs
+++ b/Application/IStation.Application.OpenApi/test/report/Report_ShysController.cs
@@ -44,11 +44,12 @@
                 return default;
 
             var dto = new UserLoginLogReportDto();
-            dto.LoginLogList = new List<UserLoginLogItem>();
-            dto.LogSummaryList = logs.GroupBy(x => x.LoginTime.Date).Select(x => new LogSummary() { DateTime = x.Key, Visitors = x.Count() }).ToList();
+            dto.LoginLogList = new List<LoginLogItem>();
+            dto.LoginStatisticsList = new List<LoginStatistics>();
             dto.TotalUsers = users.Count;
-
-            var uniqueVisitorList = logs.DistinctBy(x => x.UserID).ToList();
+            dto.LogSummaryList = logs.GroupBy(x => x.LoginTime.Date).Select(x => new LogSummary() { DateTime = x.Key, Visitors = x.Count() }).ToList();
+       
+        var uniqueVisitorList = logs.DistinctBy(x => x.UserID).ToList();
             var today = DateTime.Today;
             var last7Days = today.AddDays(-7);
             var last30Days = today.AddDays(-30);
@@ -67,26 +68,52 @@
                 foreach (var logGroup in logGroups)
                 {
                     var corp = corps.Find(x => x.ID == logGroup.Key);
+                    var corpName = corp?.ShortName;
+                    var list = new List<LoginLogItem>();
                     foreach (var log in logGroup)
                     {
                         var area = RandomValues(ProvinceCodeDic, 1).First().Key;
-                        var item = new UserLoginLogItem(log, corp.ShortName, area);
-                        dto.LoginLogList.Add(item);
+                        var softName = string.Empty;
+                        switch (log.SoftType)
+                        {
+                            case IStation.SoftType.CS_瀹㈡埛绔�:
+                                softName = "瀹㈡埛绔�";
+                                break;
+                            case IStation.SoftType.BS_缃戦〉绔�:
+                                softName = "缃戦〉绔�";
+                                break;
+                            case IStation.SoftType.Wechat_寰俊灏忕▼搴�:
+                                softName = "灏忕▼搴�";
+                                break;
+                            case IStation.SoftType.App_绉诲姩绔�:
+                                softName = "APP";
+                                break;
+                            default:
+                                softName = "鏈煡";
+                                break;
+                        }
+                        var item = new LoginLogItem(log, corpName, area, softName);
+                        list.Add(item);
                     }
+                    var statistics = list.GroupBy(x => x.SoftName).Select(x => new LoginStatistics() { CorpName = corpName, Software = x.Key, Visitors = x.Count() });
+                    dto.LoginStatisticsList.AddRange(statistics);
+                    dto.LoginLogList.AddRange(list);
                 }
+
+         
 
                 LogHelper.Info("鐢熸垚鏂囦欢!");
                 var ReportPath = Path.Combine(Settings.File.FileStorageFolder, @"UserLoginLogReport");
                 if (!Directory.Exists(ReportPath))
                     Directory.CreateDirectory(ReportPath);
 
-                var yyMM = DateTime.Today.ToString("yyyy-MM");
-                var filePath = Path.Combine(ReportPath, yyMM + ".xml");
-                filePath = filePath.Replace(@"\\", @"/");
-
-                LogHelper.Info("淇濆瓨鏂囦欢!");
+                var filePath = Path.Combine(ReportPath, "UserLoginLogReport" + ".xml");
+                if (File.Exists(filePath))
+                {
+                    File.Delete(filePath);
+                }
                 XmlHelper<UserLoginLogReportDto>.SaveObjectXmlFile(filePath, dto);
-
+                LogHelper.Info("淇濆瓨鏂囦欢!");
             }
             catch (Exception ex)
             {
diff --git a/Application/IStation.Application.OpenApi/test/report/dto/UserLoginLogItem.cs b/Application/IStation.Application.OpenApi/test/report/dto/LoginLogItem.cs
similarity index 83%
rename from Application/IStation.Application.OpenApi/test/report/dto/UserLoginLogItem.cs
rename to Application/IStation.Application.OpenApi/test/report/dto/LoginLogItem.cs
index 0321326..4f43ca8 100644
--- a/Application/IStation.Application.OpenApi/test/report/dto/UserLoginLogItem.cs
+++ b/Application/IStation.Application.OpenApi/test/report/dto/LoginLogItem.cs
@@ -9,12 +9,12 @@
     /// <summary>
     /// 鐢ㄦ埛鏃ュ織鎶ヨ〃椤�
     /// </summary>
-    public class UserLoginLogItem
+    public class LoginLogItem
     {
         /// <summary>
         /// 
         /// </summary>
-        public UserLoginLogItem()
+        public LoginLogItem()
         {
 
         }
@@ -22,7 +22,7 @@
         /// <summary>
         /// 
         /// </summary> 
-        public UserLoginLogItem(Model.UserLoginLog rhs)
+        public LoginLogItem(Model.UserLoginLog rhs)
         {
             this.SoftType = rhs.SoftType;
             this.SoftTag = rhs.SoftTag;
@@ -36,10 +36,11 @@
         /// <summary>
         /// 
         /// </summary> 
-        public UserLoginLogItem(Model.UserLoginLog rhs, string corpName, string area) : this(rhs)
+        public LoginLogItem(Model.UserLoginLog rhs, string corpName, string area,string softName) : this(rhs)
         {
             this.CorpName = corpName;
             this.Area = area;
+            this.SoftName=softName;
         }
 
         /// <summary>
@@ -83,6 +84,11 @@
         public string SoftTag { get; set; }
 
         /// <summary>
+        /// 杞欢鍚嶇О
+        /// </summary>
+        public string SoftName { get; set; }
+
+        /// <summary>
         /// 淇℃伅
         /// </summary>	
         public string Message { get; set; }
diff --git a/Application/IStation.Application.OpenApi/test/report/dto/LoginStatistics.cs b/Application/IStation.Application.OpenApi/test/report/dto/LoginStatistics.cs
new file mode 100644
index 0000000..988c45e
--- /dev/null
+++ b/Application/IStation.Application.OpenApi/test/report/dto/LoginStatistics.cs
@@ -0,0 +1,30 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace IStation.Application
+{
+    /// <summary>
+    /// 鐧诲綍缁熻
+    /// </summary>
+    public class LoginStatistics
+    {
+        /// <summary>
+        /// 鍏徃鍚�
+        /// </summary>
+        public string CorpName { get; set; }
+
+        /// <summary>
+        /// 杞欢
+        /// </summary>	
+        public string Software { get; set; }
+         
+        /// <summary>
+        /// 璁垮閲�
+        /// </summary>	
+        public int Visitors { get; set; }
+
+    }
+}
diff --git a/Application/IStation.Application.OpenApi/test/report/dto/UserLoginLogReportDto.cs b/Application/IStation.Application.OpenApi/test/report/dto/UserLoginLogReportDto.cs
index 6efe8f9..d94d39c 100644
--- a/Application/IStation.Application.OpenApi/test/report/dto/UserLoginLogReportDto.cs
+++ b/Application/IStation.Application.OpenApi/test/report/dto/UserLoginLogReportDto.cs
@@ -30,16 +30,22 @@
         /// 鏈�杩�30澶╄瀹㈡暟閲�
         /// </summary>
         public int Last30DaysUV { get; set; }
+         
+        /// <summary>
+        /// 鏃ュ織椤瑰垪琛�
+        /// </summary>
+        public List<LoginLogItem> LoginLogList { get; set; }
 
         /// <summary>
         /// 鏃ュ織姹囨�诲垪琛�
         /// </summary>
         public List<LogSummary> LogSummaryList { get; set; }
-
+         
         /// <summary>
-        /// 鐧婚檰鏃ュ織椤瑰垪琛�
+        /// 鐧诲綍缁熻
         /// </summary>
-        public List<UserLoginLogItem> LoginLogList { get; set; }
+        public List<LoginStatistics> LoginStatisticsList { get; set; }
+
 
     }
 }

--
Gitblit v1.9.3