MakeHelper.cs 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. using System.Collections;
  2. using System.Text.RegularExpressions;
  3. using Common;
  4. using Infrastructure;
  5. using LitJson;
  6. using Microsoft.CodeAnalysis.CSharp.Scripting;
  7. using Services;
  8. namespace Tasks
  9. {
  10. public class MakeHelper
  11. {
  12. public readonly static MakeHelper Instance = new MakeHelper();
  13. private MakeHelper()
  14. { }
  15. public void Start(string QueueName)
  16. {
  17. RabbitMQClient.Instance.StartReceive(QueueName, content => DoWorks(content));
  18. }
  19. public void DoWorks(string content)
  20. {
  21. try
  22. {
  23. if (!string.IsNullOrEmpty(content))
  24. {
  25. DoQueue(content);
  26. }
  27. }
  28. catch (Exception ex)
  29. {
  30. Utils.WriteLog(DateTime.Now.ToString() + "\n" + ex, "生成异常");
  31. }
  32. }
  33. public void DoQueue(string content)
  34. {
  35. JsonData jsonObj = JsonMapper.ToObject(content);
  36. //流水号
  37. string requestId = jsonObj["requestId"].ToString();
  38. //模板文件路径
  39. string modePath = jsonObj["modePath"].ToString();
  40. //附加数据,原样返回
  41. string attach = jsonObj["attach"].ToString();
  42. //读取模板文件内容
  43. // string templateString = Function.ReadInstance("Template/" + modePath);
  44. var templateService = App.GetRequiredService<IMakeTemplateService>();
  45. var template = templateService.GetFirst(m => m.templateName == modePath);
  46. if(template == null) return;
  47. string templateString = template.templateContent;
  48. //解析模板内容
  49. string resultString = Util.Maker.StartMake(jsonObj["data"], templateString);
  50. //MQ回调解析的结果
  51. RabbitMQClient.Instance.Push("MakeSqlCallBackQueue", requestId + "#cut#" + attach + "#cut#" + resultString);
  52. }
  53. }
  54. }