ToolDailyLogs.cs 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. using Microsoft.AspNetCore.Http;
  2. using Microsoft.AspNetCore.Mvc.Controllers;
  3. using Microsoft.AspNetCore.Mvc.Filters;
  4. using System;
  5. using System.Collections.Generic;
  6. using System.Linq;
  7. using System.Text;
  8. using dodohold.core;
  9. using Dataoke;
  10. using System.Text.RegularExpressions;
  11. using Org.BouncyCastle.Ocsp;
  12. using System.Diagnostics;
  13. using TencentCloud.Fmu.V20191213.Models;
  14. using Microsoft.VisualBasic;
  15. using System.Text.Json;
  16. using static System.Runtime.InteropServices.JavaScript.JSType;
  17. using System.Security.Cryptography;
  18. using Google.Protobuf.WellKnownTypes;
  19. using Microsoft.Extensions.FileSystemGlobbing.Internal;
  20. namespace molilian.core
  21. {
  22. public partial class ToolParsePlus
  23. {
  24. public static void DailyLogs(int intervalDay)
  25. {
  26. TkChannelEnum toolChannelEnum = TkChannelEnum.tool;
  27. string channel = toolChannelEnum.ToString();
  28. DateTime log_date = DateTime.Now.AddDays(-intervalDay).Date;
  29. int all_total_count = 0;
  30. var all_success_count = 0;
  31. var all_abandon_count = 0;
  32. List<TkChannelEnum> arr = [TkChannelEnum.wemeet, TkChannelEnum.bdpan];
  33. foreach (var channelEnum in arr)
  34. {
  35. all_total_count += TkLogCore.GetTotal($":parse_total:{channelEnum}:{log_date:yyyyMMdd}");
  36. all_success_count += TkLogCore.GetTotal($":parse_total:{channelEnum}:success:{log_date:yyyyMMdd}");
  37. all_abandon_count += TkLogCore.GetTotal($":parse_total:{channelEnum}:放弃转链:{log_date:yyyyMMdd}");
  38. }
  39. string all_success_percentage = string.Empty;
  40. string all_abandon_percentage = string.Empty;
  41. if (all_total_count > 0)
  42. {
  43. all_success_percentage = $"{all_success_count / (double)all_total_count * 100:f2}%";
  44. all_abandon_percentage = $"{all_abandon_count / (double)all_total_count * 100:f2}%";
  45. }
  46. using var conn = CenterHub.GetOpenConnection();
  47. var exist = new DBContext.Table(conn, "center_daily_logs")
  48. .Fields("id,log_date")
  49. .Get<dynamic>("log_date=@log_date AND accountId=@accountId",
  50. new { log_date, accountId = 0 });
  51. var createArgs2 = new DBContext.Table(conn, "center_daily_logs")
  52. .Add($"tool_total_count", all_total_count)
  53. .Add($"tool_abandon_count", all_abandon_count)
  54. .Add($"tool_abandon_percentage", all_abandon_percentage)
  55. .Add($"tool_success_count", all_success_count)
  56. .Add($"tool_success_percentage", all_success_percentage)
  57. .Add("last_time", DateTime.Now);
  58. if (exist == null)
  59. {
  60. createArgs2.Add("channel", (int)toolChannelEnum)
  61. .Add("accountId", 0)
  62. .Add("accountName", "all")
  63. .Add("log_date", log_date)
  64. .Add("create_time", DateTime.Now)
  65. .Create();
  66. }
  67. else
  68. {
  69. createArgs2.Where("id=@id", new { exist.id }).Update();
  70. }
  71. }
  72. }
  73. }