ConfigController.cs 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  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. EndPointCore.NotifyReload();
  65. return new APIResult(new { msg = "更新成功", success = result > 0 });
  66. }
  67. }
  68. }