ningshuxia
2022-12-12 e78f5936fee9ab4fff600515bb20a41a28f329c4
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() {Date = x.Key.ToString("d"), 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)
            {