MakeHelper.cs 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  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. string fileType = attachObj["fileType"].ToString();
  46. if(fileType.StartsWith("db"))
  47. {
  48. int makeObjectId = 0;
  49. string makeObjectName = "";
  50. if(fileType == "db")
  51. {
  52. int databaseId = int.Parse(jsonData["data"]["databaseInfo"]["id"].ToString());
  53. var dbService = App.GetService<IDatabaseInfoService>();
  54. var databaseInfo = dbService.GetFirst(m => m.id == databaseId) ?? new DatabaseInfo();
  55. makeObjectId = databaseId;
  56. makeObjectName = databaseInfo.dbName;
  57. }
  58. var logService = App.GetService<IDatabaseMakeLogService>();
  59. logService.addDatabaseMakeLog(new DatabaseMakeLog()
  60. {
  61. createTime = DateTime.Now,
  62. updateTime = DateTime.Now,
  63. createBy = attachObj["createBy"].ToString(),
  64. updateBy = attachObj["createBy"].ToString(),
  65. makeObject = 1,
  66. makeObjectId = makeObjectId,
  67. makeObjectName = makeObjectName,
  68. makeContent = data,
  69. });
  70. }
  71. }
  72. public static string Push(Dictionary<string, object> pushData, string modePath, string fileType, TokenModel createBy, string dataId = "0", string versionNo = "0")
  73. {
  74. MakeData makeData = new();
  75. string requestId = DateTime.Now.ToString("yyyyMMddHHmmssfff") + Function.get_Random(8);
  76. makeData.requestId = requestId;
  77. makeData.modePath = modePath;
  78. Dictionary<string, string> attach = new();
  79. attach.Add("fileType", fileType);
  80. attach.Add("dataId", dataId);
  81. attach.Add("userId", createBy.userId.ToString());
  82. attach.Add("createBy", createBy.username);
  83. attach.Add("versionNo", versionNo);
  84. makeData.attach = Newtonsoft.Json.JsonConvert.SerializeObject(attach);
  85. makeData.data = pushData;
  86. RabbitMQClient.Instance.Push("MakeQueue", Newtonsoft.Json.JsonConvert.SerializeObject(makeData));
  87. return requestId;
  88. }
  89. }
  90. }