MakeHelper.cs 3.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. using System.Collections;
  2. using System.Text.RegularExpressions;
  3. using Common;
  4. using Custom;
  5. using Infrastructure;
  6. using LitJson;
  7. using Microsoft.CodeAnalysis.CSharp.Scripting;
  8. using Model;
  9. using Model.Base;
  10. using Services;
  11. namespace Tasks
  12. {
  13. public class MakeHelper
  14. {
  15. public readonly static MakeHelper Instance = new MakeHelper();
  16. private MakeHelper()
  17. { }
  18. public void Start(string QueueName)
  19. {
  20. RabbitMQClient.Instance.StartReceive(QueueName, content => DoWorks(content));
  21. }
  22. public void DoWorks(string content)
  23. {
  24. try
  25. {
  26. if (!string.IsNullOrEmpty(content))
  27. {
  28. DoQueue(content);
  29. }
  30. }
  31. catch (Exception ex)
  32. {
  33. Utils.WriteLog(DateTime.Now.ToString() + "\n" + ex, "接收生成SQL回调异常");
  34. }
  35. }
  36. public void DoQueue(string content)
  37. {
  38. string[] array = content.Split(new string[] { "#cut#" }, StringSplitOptions.None);
  39. string requestId = array[0];
  40. string attach = array[1];
  41. string data = array[2];
  42. var attachObj = Newtonsoft.Json.JsonConvert.DeserializeObject<Dictionary<string, string>>(attach);
  43. if(attachObj["kind"] == "db")
  44. {
  45. int databaseId = int.Parse(attachObj["id"]);
  46. var dbService = App.GetService<IDatabaseInfoService>();
  47. var databaseInfo = dbService.GetFirst(m => m.id == databaseId) ?? new DatabaseInfo();
  48. var logService = App.GetService<IDatabaseMakeLogService>();
  49. logService.Add(new DatabaseMakeLog()
  50. {
  51. createTime = DateTime.Now,
  52. updateTime = DateTime.Now,
  53. createBy = attachObj["operator"],
  54. updateBy = attachObj["operator"],
  55. makeObject = 1,
  56. makeObjectId = databaseId,
  57. makeObjectName = databaseInfo.dbName,
  58. makeContent = data,
  59. });
  60. }
  61. }
  62. public static void Push(Dictionary<string, object> pushData, string modePath, string fileType, TokenModel createBy, string dataId = "0", string versionNo = "0")
  63. {
  64. MakeData makeData = new();
  65. string requestId = DateTime.Now.ToString("yyyyMMddHHmmssfff") + Function.get_Random(8);
  66. makeData.requestId = requestId;
  67. makeData.modePath = modePath;
  68. Dictionary<string, string> attach = new();
  69. attach.Add("fileType", fileType);
  70. attach.Add("dataId", dataId);
  71. attach.Add("userId", createBy.userId.ToString());
  72. attach.Add("createBy", createBy.username);
  73. attach.Add("versionNo", versionNo);
  74. makeData.attach = Newtonsoft.Json.JsonConvert.SerializeObject(attach);
  75. makeData.data = pushData;
  76. Function.WriteLog(Newtonsoft.Json.JsonConvert.SerializeObject(makeData), "推送生成数据");
  77. RabbitMQClient.Instance.Push("MakeQueue", Newtonsoft.Json.JsonConvert.SerializeObject(makeData));
  78. }
  79. }
  80. }