MakeHelper.cs 3.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  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, "接收生成回调异常");
  34. }
  35. }
  36. public void DoQueue(string content)
  37. {
  38. string[] array = content.Split(new string[] { "#cut#" }, StringSplitOptions.None);
  39. string req = array[0];
  40. JsonData jsonData = JsonMapper.ToObject(req);
  41. string data = array[1];
  42. string requestId = jsonData["requestId"].ToString();
  43. string attach = jsonData["attach"].ToString();
  44. JsonData attachObj = JsonMapper.ToObject(attach);
  45. if(attachObj["fileType"].ToString() == "db")
  46. {
  47. int databaseId = int.Parse(jsonData["data"]["databaseInfo"]["id"].ToString());
  48. var dbService = App.GetService<IDatabaseInfoService>();
  49. var databaseInfo = dbService.GetFirst(m => m.id == databaseId) ?? new DatabaseInfo();
  50. var logService = App.GetService<IDatabaseMakeLogService>();
  51. logService.addDatabaseMakeLog(new DatabaseMakeLog()
  52. {
  53. createTime = DateTime.Now,
  54. updateTime = DateTime.Now,
  55. createBy = attachObj["createBy"].ToString(),
  56. updateBy = attachObj["createBy"].ToString(),
  57. makeObject = 1,
  58. makeObjectId = databaseId,
  59. makeObjectName = databaseInfo.dbName,
  60. makeContent = data,
  61. });
  62. }
  63. }
  64. public static string Push(Dictionary<string, object> pushData, string modePath, string fileType, TokenModel createBy, string dataId = "0", string versionNo = "0")
  65. {
  66. MakeData makeData = new();
  67. string requestId = DateTime.Now.ToString("yyyyMMddHHmmssfff") + Function.get_Random(8);
  68. makeData.requestId = requestId;
  69. makeData.modePath = modePath;
  70. Dictionary<string, string> attach = new();
  71. attach.Add("fileType", fileType);
  72. attach.Add("dataId", dataId);
  73. attach.Add("userId", createBy.userId.ToString());
  74. attach.Add("createBy", createBy.username);
  75. attach.Add("versionNo", versionNo);
  76. makeData.attach = Newtonsoft.Json.JsonConvert.SerializeObject(attach);
  77. makeData.data = pushData;
  78. RabbitMQClient.Instance.Push("MakeQueue", Newtonsoft.Json.JsonConvert.SerializeObject(makeData));
  79. return requestId;
  80. }
  81. }
  82. }