提交记录修改Core/Servicers/Instances/WebData.cs+41 −0看文件
修改Core/Servicers/Interfaces/IWebData.cs+7 −0看文件
修改UI/ViewModels/SettingPageVM.cs+2 −0看文件
| @@ -5,12 +5,16 @@ using Core.Models.Data; | ||
| 5 | 5 | using Core.Models.Db; |
| 6 | 6 | using Core.Models.WebPage; |
| 7 | 7 | using Core.Servicers.Interfaces; |
| 8 | 新增:using CsvHelper; | |
| 8 | 9 | using Newtonsoft.Json; |
| 10 | 新增:using Npoi.Mapper; | |
| 9 | 11 | using NPOI.SS.Formula.Functions; |
| 10 | 12 | using Org.BouncyCastle.Security; |
| 11 | 13 | using System; |
| 12 | 14 | using System.Collections.Generic; |
| 13 | 15 | using System.Diagnostics; |
| 16 | 新增:using System.Globalization; | |
| 17 | 新增:using System.IO; | |
| 14 | 18 | using System.Linq; |
| 15 | 19 | using System.Linq.Expressions; |
| 16 | 20 | |
| @@ -791,5 +795,42 @@ namespace Core.Servicers.Instances | ||
| 791 | 795 | db.Database.ExecuteSqlCommand("update WebSiteModels set Duration = 0 where ID = " + siteId_); |
| 792 | 796 | } |
| 793 | 797 | } |
| 798 | 新增: | |
| 799 | 新增: public void Export(string dir_, DateTime start_, DateTime end_) | |
| 800 | 新增: { | |
| 801 | 新增: start_ = new DateTime(start_.Year, start_.Month, 1, 0, 0, 0); | |
| 802 | 新增: end_ = new DateTime(end_.Year, end_.Month, DateTime.DaysInMonth(end_.Year, end_.Month), 23, 59, 59); | |
| 803 | 新增: | |
| 804 | 新增: using (var db = _database.GetReaderContext()) | |
| 805 | 新增: { | |
| 806 | 新增: var webSiteData = db.WebBrowserLogs.Where(m => m.LogTime >= start_ && m.LogTime <= end_) | |
| 807 | 新增: .ToList() | |
| 808 | 新增: .Select(m => new | |
| 809 | 新增: { | |
| 810 | 新增: 时间 = m.LogTime, | |
| 811 | 新增: 标题 = m.Url.Title, | |
| 812 | 新增: 网址 = m.Url.Url, | |
| 813 | 新增: 时长 = m.Duration, | |
| 814 | 新增: }); | |
| 815 | 新增: | |
| 816 | 新增: | |
| 817 | 新增: var mapper = new Mapper(); | |
| 818 | 新增: mapper.Put(webSiteData, "浏览记录"); | |
| 819 | 新增: | |
| 820 | 新增: string name = $"Tai网页统计数据({start_.ToString("yyyy年MM月")}-{end_.ToString("yyyy年MM月")})"; | |
| 821 | 新增: if (start_.Year == end_.Year && start_.Month == end_.Month) | |
| 822 | 新增: { | |
| 823 | 新增: name = $"Tai网页统计数据({start_.ToString("yyyy年MM月")})"; | |
| 824 | 新增: } | |
| 825 | 新增: mapper.Save(Path.Combine(dir_, $"{name}.xlsx")); | |
| 826 | 新增: | |
| 827 | 新增: // 导出csv | |
| 828 | 新增: using (var writer = new StreamWriter(Path.Combine(dir_, $"{name}.csv"), false, System.Text.Encoding.UTF8)) | |
| 829 | 新增: using (var csv = new CsvWriter(writer, CultureInfo.InvariantCulture)) | |
| 830 | 新增: { | |
| 831 | 新增: csv.WriteRecords(webSiteData); | |
| 832 | 新增: } | |
| 833 | 新增: } | |
| 834 | 新增: } | |
| 794 | 835 | } |
| 795 | 836 | } |
| 文件末尾没有换行 | ||
| @@ -161,5 +161,12 @@ namespace Core.Servicers.Interfaces | ||
| 161 | 161 | /// </summary> |
| 162 | 162 | /// <param name="siteId_">站点ID</param> |
| 163 | 163 | void Clear(int siteId_); |
| 164 | 新增: /// <summary> | |
| 165 | 新增: /// 导出数据 | |
| 166 | 新增: /// </summary> | |
| 167 | 新增: /// <param name="dir_">导出目录</param> | |
| 168 | 新增: /// <param name="start_">开始时间</param> | |
| 169 | 新增: /// <param name="end_">结束时间</param> | |
| 170 | 新增: void Export(string dir_, DateTime start_, DateTime end_); | |
| 164 | 171 | } |
| 165 | 172 | } |
| @@ -1,6 +1,7 @@ | ||
| 1 | 1 | using Core.Librarys; |
| 2 | 2 | using Core.Models.Config; |
| 3 | 3 | using Core.Models.Config.Link; |
| 4 | 新增:using Core.Servicers.Instances; | |
| 4 | 5 | using Core.Servicers.Interfaces; |
| 5 | 6 | using System; |
| 6 | 7 | using System.Collections.Generic; |
| @@ -193,6 +194,7 @@ namespace UI.ViewModels | ||
| 193 | 194 | if (dialog.ShowDialog() == DialogResult.OK) |
| 194 | 195 | { |
| 195 | 196 | data.ExportToExcel(dialog.SelectedPath, ExportDataStartMonthDate, ExportDataEndMonthDate); |
| 197 | 新增: _webData.Export(dialog.SelectedPath, ExportDataStartMonthDate, ExportDataEndMonthDate); | |
| 196 | 198 | mainVM.Toast("导出数据完成", Controls.Window.ToastType.Success); |
| 197 | 199 | } |
| 198 | 200 | } |

