ConfigController.cs 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. using molilian.core;
  2. using dodohold.core;
  3. using Microsoft.AspNetCore.Mvc;
  4. using Org.BouncyCastle.Ocsp;
  5. using System.Text.Json;
  6. using System.Runtime.InteropServices;
  7. using TencentCloud.Scf.V20180416.Models;
  8. using Quartz.Impl.AdoJobStore.Common;
  9. using TencentCloud.Gaap.V20180529.Models;
  10. using System.Net;
  11. using TencentCloud.Ie.V20200304.Models;
  12. using TencentCloud.Soe.V20180724.Models;
  13. namespace molilian.api.Controllers
  14. {
  15. [ApiController]
  16. [MyAuthorize("admin")]
  17. [Route("api/[controller]/[action]")]
  18. public class ConfigController : ControllerBase
  19. {
  20. readonly IAuthorizationProvider provider = new AdminProvider();
  21. protected IHttpContextAccessor _accessor;
  22. public ConfigController(IHttpContextAccessor accessor)
  23. {
  24. _accessor = accessor;
  25. }
  26. [HttpGet]
  27. public ActionResult get()
  28. {
  29. var data = new DBContext.Table("tk_config").Get<TkConfigDTO>("id>0", new { });
  30. return new APIResult(new { data });
  31. }
  32. [HttpPost]
  33. public async Task<ActionResult> Update([FromBody] TkConfigDTO form)
  34. {
  35. var clientIp = _accessor.HttpContext.GetUserIp();
  36. var token = provider.Get(_accessor.HttpContext);
  37. string content = "【3瓶】恩威万蓝莓叶黄素酯软糖儿童成人上班族如酸涩肿胀可服用,<z5TYWAblvTw >:// HU7709,打開/";
  38. try
  39. {
  40. var arr = form.tk_whitelist_regular.Split('\n')
  41. .Where(line => !string.IsNullOrWhiteSpace(line))
  42. .ToList();
  43. var arr2 = form.tk_blacklist_regular.Split('\n')
  44. .Where(line => !string.IsNullOrWhiteSpace(line))
  45. .ToList();
  46. bool is_tao_token = AlimamaPlus.MatchRegexes(content, arr);
  47. bool is_other = AlimamaPlus.MatchOtherInfo(content, arr2);
  48. }
  49. catch (Exception ex)
  50. {
  51. return new APIResult(new { msg = $"正则异常${ex.Message}", success = false });
  52. }
  53. using var conn = DBContext.GetOpenConnection();
  54. var old = new DBContext.Table(conn, "tk_config").Get<TkConfigDTO>("id>0", new { });
  55. int result = await conn.UpdateAsync<TkConfigDTO>(form);
  56. var endpoint = EndPointCore.GetCouponAdmin();
  57. if (endpoint != null && !string.IsNullOrEmpty(endpoint.db_server))
  58. {
  59. using var conn2 = EndPointCore.GetDbConnection(endpoint.db_server);
  60. _ = await conn2.UpdateAsync<TkConfigDTO>(form);
  61. }
  62. string desc = ObjectComparer.PrintCompareToString(old, form).Trim();
  63. OperationLogCore.LogOperation(token.AccessKey, clientIp, "config", old.Convert2Json(), desc);
  64. TkConfigCore.Refresh();
  65. PddUnionPlus.ResetPrecheckCircuitState();
  66. EndPointCore.NotifyReload();
  67. return new APIResult(new { msg = "更新成功", success = result > 0 });
  68. }
  69. [HttpPost]
  70. public async Task<ActionResult> xhsZlongForwardReport([FromBody] JsonElement form)
  71. {
  72. _ = provider.Get(_accessor.HttpContext);
  73. int current = form.Read("current", 1);
  74. int pageSize = form.Read("pageSize", 20);
  75. string channels = form.Read("channels", string.Empty);
  76. string bucketType = form.Read("bucket_type", "day");
  77. string start = form.Read("start", string.Empty);
  78. string end = form.Read("end", string.Empty);
  79. DateTime? startTime = DateTime.TryParse(start, out var parsedStart) ? parsedStart : null;
  80. DateTime? endTime = DateTime.TryParse(end, out var parsedEnd) ? parsedEnd : null;
  81. var data = await ZlongForwardCore.QueryReportAsync(channels, bucketType, startTime, endTime, current, pageSize);
  82. return new APIResult(new { data });
  83. }
  84. }
  85. }