| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120 |
- using System.Collections;
- using System.Text.RegularExpressions;
- using Common;
- using Custom;
- using Feign;
- using Infrastructure;
- using LitJson;
- using Microsoft.CodeAnalysis.CSharp.Scripting;
- using Model;
- using Model.Base;
- using Services;
- namespace Tasks
- {
- public class MakeHelper
- {
- public readonly static MakeHelper Instance = new MakeHelper();
- private MakeHelper()
- { }
- public void Start(string QueueName)
- {
- RabbitMQClient.Instance.StartReceive(QueueName, content => DoWorks(content));
- }
- public void DoWorks(string content)
- {
- try
- {
- if (!string.IsNullOrEmpty(content))
- {
- DoQueue(content);
- }
- }
- catch (Exception ex)
- {
- Utils.WriteLog(DateTime.Now.ToString() + "\n" + ex, "接收生成回调异常");
- }
- }
- public string DoQueue(string content)
- {
- string[] array = content.Split(new string[] { "#cut#" }, StringSplitOptions.None);
- string req = array[0];
- JsonData jsonData = JsonMapper.ToObject(req);
- string data = array[1];
- string requestId = jsonData["requestId"].ToString();
- string attach = jsonData["attach"].ToString();
- JsonData attachObj = JsonMapper.ToObject(attach);
- string fileType = attachObj["fileType"].ToString();
- if(fileType.StartsWith("db"))
- {
- int makeObjectId = 0;
- string makeObjectName = "";
- if(fileType == "db")
- {
- int databaseId = int.Parse(jsonData["data"]["databaseInfo"]["id"].ToString());
- var dbService = App.GetService<IDatabaseInfoService>();
- var databaseInfo = dbService.GetFirst(m => m.id == databaseId) ?? new DatabaseInfo();
- makeObjectId = databaseId;
- makeObjectName = databaseInfo.dbName;
- }
- var logService = App.GetService<IDatabaseMakeLogService>();
- var logId = logService.addDatabaseMakeLog(new DatabaseMakeLog()
- {
- createTime = DateTime.Now,
- updateTime = DateTime.Now,
- createBy = attachObj["createBy"].ToString(),
- updateBy = attachObj["createBy"].ToString(),
- makeObject = 1,
- makeObjectId = makeObjectId,
- makeObjectName = makeObjectName,
- makeContent = data,
- });
- return logId.ToString();
- }
- return "";
- }
- public static string Push(Dictionary<string, object> pushData, string modePath, string fileType, TokenModel createBy, string dataId = "0", string versionNo = "0")
- {
- MakeData makeData = new();
- string requestId = DateTime.Now.ToString("yyyyMMddHHmmssfff") + Function.get_Random(8);
- makeData.requestId = requestId;
- makeData.modePath = modePath;
- Dictionary<string, string> attach = new();
- attach.Add("fileType", fileType);
- attach.Add("dataId", dataId);
- attach.Add("userId", createBy.userId.ToString());
- attach.Add("createBy", createBy.username);
- attach.Add("versionNo", versionNo);
- makeData.attach = Newtonsoft.Json.JsonConvert.SerializeObject(attach);
- makeData.data = pushData;
-
- RabbitMQClient.Instance.Push("MakeQueue", Newtonsoft.Json.JsonConvert.SerializeObject(makeData));
- return requestId;
- }
- public static string Make(Dictionary<string, object> pushData, string modePath, string fileType, TokenModel createBy, string dataId = "0", string versionNo = "0")
- {
- MakeData makeData = new();
- string requestId = DateTime.Now.ToString("yyyyMMddHHmmssfff") + Function.get_Random(8);
- makeData.requestId = requestId;
- makeData.modePath = modePath;
- Dictionary<string, string> attach = new();
- attach.Add("fileType", fileType);
- attach.Add("dataId", dataId);
- attach.Add("userId", createBy.userId.ToString());
- attach.Add("createBy", createBy.username);
- attach.Add("versionNo", versionNo);
- makeData.attach = Newtonsoft.Json.JsonConvert.SerializeObject(attach);
- makeData.data = pushData;
- RedisServer.Cache.Set("MakeData:" + requestId, Newtonsoft.Json.JsonConvert.SerializeObject(makeData), TimeSpan.FromMinutes(5));
- return IMake.makeFile( requestId);
- }
- }
- }
|