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