|
@@ -45,7 +45,9 @@ namespace Tasks
|
|
|
// string packageName = "123123123";
|
|
// string packageName = "123123123";
|
|
|
// }
|
|
// }
|
|
|
//附加数据,原样返回
|
|
//附加数据,原样返回
|
|
|
- string attach = jsonObj["attach"].ToString();
|
|
|
|
|
|
|
+ JsonData attach = jsonObj["attach"];
|
|
|
|
|
+ string versionNo = attach["versionNo"].ToString();
|
|
|
|
|
+ string fileType = attach["fileType"].ToString();
|
|
|
//读取模板文件内容
|
|
//读取模板文件内容
|
|
|
// string templateString = Function.ReadInstance("Template/" + modePath + ".json");
|
|
// string templateString = Function.ReadInstance("Template/" + modePath + ".json");
|
|
|
var templateService = App.GetRequiredService<IMakeTemplateService>();
|
|
var templateService = App.GetRequiredService<IMakeTemplateService>();
|
|
@@ -56,6 +58,9 @@ namespace Tasks
|
|
|
//解析模板内容
|
|
//解析模板内容
|
|
|
string resultString = Util.Maker.StartMake(jsonObj["data"], templateString);
|
|
string resultString = Util.Maker.StartMake(jsonObj["data"], templateString);
|
|
|
resultString = Util.Maker.replaceKeyToValue(jsonObj["data"], resultString);
|
|
resultString = Util.Maker.replaceKeyToValue(jsonObj["data"], resultString);
|
|
|
|
|
+ int serviceId = int.Parse(jsonObj["data"]["projectService"]["id"].ToString());
|
|
|
|
|
+ int projectId = int.Parse(jsonObj["data"]["projectService"]["projectId"].ToString());
|
|
|
|
|
+ int javaVersion = codeVersion(serviceId, versionNo);
|
|
|
//生成文件
|
|
//生成文件
|
|
|
string path = template.makePath.Substring(0, template.makePath.LastIndexOf("/") + 1);
|
|
string path = template.makePath.Substring(0, template.makePath.LastIndexOf("/") + 1);
|
|
|
string fileName = template.makePath.Substring(template.makePath.LastIndexOf("/") + 1);
|
|
string fileName = template.makePath.Substring(template.makePath.LastIndexOf("/") + 1);
|
|
@@ -64,11 +69,10 @@ namespace Tasks
|
|
|
Function.WritePage(path, fileName, resultString);
|
|
Function.WritePage(path, fileName, resultString);
|
|
|
string startPath = Function.getPath(path + fileName);
|
|
string startPath = Function.getPath(path + fileName);
|
|
|
OssHelper.Instance.Upload(startPath);
|
|
OssHelper.Instance.Upload(startPath);
|
|
|
|
|
+ addFile(projectId, serviceId, 0, versionNo, fileName, path + fileName, path + fileName, fileType, javaVersion, "java");
|
|
|
//生成数据入库
|
|
//生成数据入库
|
|
|
- JsonData data = JsonMapper.ToObject(attach);
|
|
|
|
|
- int dataId = 0;
|
|
|
|
|
- if(attach.Contains("dataId")) dataId = int.Parse(Function.CheckInt(data["dataId"].ToString()));
|
|
|
|
|
- string makeFileType = data["fileType"].ToString();
|
|
|
|
|
|
|
+ int dataId = int.Parse(Function.CheckInt(attach["dataId"].ToString()));
|
|
|
|
|
+ string makeFileType = attach["fileType"].ToString();
|
|
|
var makeDataService = App.GetRequiredService<IMakeDataService>();
|
|
var makeDataService = App.GetRequiredService<IMakeDataService>();
|
|
|
var item = makeDataService.GetFirst(m => m.dataId == dataId && m.makeFileType == makeFileType);
|
|
var item = makeDataService.GetFirst(m => m.dataId == dataId && m.makeFileType == makeFileType);
|
|
|
if(item == null)
|
|
if(item == null)
|
|
@@ -80,7 +84,7 @@ namespace Tasks
|
|
|
makeFilePath = path,
|
|
makeFilePath = path,
|
|
|
makeFileType = makeFileType,
|
|
makeFileType = makeFileType,
|
|
|
createTime = DateTime.Now,
|
|
createTime = DateTime.Now,
|
|
|
- createBy = data["createBy"].ToString()
|
|
|
|
|
|
|
+ createBy = attach["createBy"].ToString()
|
|
|
});
|
|
});
|
|
|
}
|
|
}
|
|
|
else
|
|
else
|
|
@@ -88,7 +92,7 @@ namespace Tasks
|
|
|
item.makeFileName = fileName;
|
|
item.makeFileName = fileName;
|
|
|
item.makeFilePath = path;
|
|
item.makeFilePath = path;
|
|
|
item.updateTime = DateTime.Now;
|
|
item.updateTime = DateTime.Now;
|
|
|
- item.updateBy = data["createBy"].ToString();
|
|
|
|
|
|
|
+ item.updateBy = attach["createBy"].ToString();
|
|
|
makeDataService.Update(item);
|
|
makeDataService.Update(item);
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
@@ -100,5 +104,115 @@ namespace Tasks
|
|
|
// RabbitMQClient.Instance.Push("MakeSqlCallBackQueue", requestId + "#cut#" + attach + "#cut#" + resultString);
|
|
// RabbitMQClient.Instance.Push("MakeSqlCallBackQueue", requestId + "#cut#" + attach + "#cut#" + resultString);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ //生成代码版本
|
|
|
|
|
+ public int codeVersion(int DatabaseId, string versionNo)
|
|
|
|
|
+ {
|
|
|
|
|
+ int codeVersion = RedisServer.Cache.Get<int>("codeVersion:" + DatabaseId + ":" + versionNo);
|
|
|
|
|
+ if(codeVersion > 0)
|
|
|
|
|
+ {
|
|
|
|
|
+ return codeVersion;
|
|
|
|
|
+ }
|
|
|
|
|
+ var versionForProjectService = App.GetRequiredService<IVersionForProjectService>();
|
|
|
|
|
+ VersionForProject pro = versionForProjectService.GetFirst(m => m.databaseId == DatabaseId) ?? versionForProjectService.InsertReturnEntity(new VersionForProject()
|
|
|
|
|
+ {
|
|
|
|
|
+ databaseId = DatabaseId,
|
|
|
|
|
+ });
|
|
|
|
|
+ pro.javaVersion += 1;
|
|
|
|
|
+ versionForProjectService.Update(pro);
|
|
|
|
|
+ RedisServer.Cache.Set("codeVersion:" + DatabaseId + ":" + versionNo, pro.javaVersion, TimeSpan.FromMinutes(5));
|
|
|
|
|
+ return pro.javaVersion;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ //生成代码版本-添加文件
|
|
|
|
|
+ public void addFile(int projectId, int serverId, int groupId, string versionNo, string fileName, string downloadPath, string localPath, string fileType = "", int codeVersion = 0, string language = "")
|
|
|
|
|
+ {
|
|
|
|
|
+ var versionsService = App.GetRequiredService<IVersionsService>();
|
|
|
|
|
+ var makeFilesService = App.GetRequiredService<IMakeFilesService>();
|
|
|
|
|
+ var filesForAllService = App.GetRequiredService<IFilesForAllService>();
|
|
|
|
|
+ Versions version = versionsService.GetFirst(m => m.projectId == projectId && m.serverId == serverId && m.groupId == groupId && m.versionNo == versionNo) ?? versionsService.InsertReturnEntity(new Versions()
|
|
|
|
|
+ {
|
|
|
|
|
+ createTime = DateTime.Now,
|
|
|
|
|
+ projectId = projectId,
|
|
|
|
|
+ serverId = serverId,
|
|
|
|
|
+ versionNo = versionNo,
|
|
|
|
|
+ groupId = groupId,
|
|
|
|
|
+ });
|
|
|
|
|
+ string[] PathList = localPath.TrimStart('/').Split('/');
|
|
|
|
|
+ int ParentFileId = 0;
|
|
|
|
|
+ int AllParentFileId = 0;
|
|
|
|
|
+ string DirPath = "";
|
|
|
|
|
+ for (int i = 0; i < PathList.Length - 1; i++)
|
|
|
|
|
+ {
|
|
|
|
|
+ string Path = PathList[i];
|
|
|
|
|
+ DirPath += PathList[i] + "/";
|
|
|
|
|
+ MakeFiles filePath = makeFilesService.GetFirst(m => m.projectId == projectId && (m.versionId == version.versionId || m.versionId == 0) && m.localPath == DirPath) ?? makeFilesService.InsertReturnEntity(new MakeFiles()
|
|
|
|
|
+ {
|
|
|
|
|
+ createTime = DateTime.Now,
|
|
|
|
|
+ projectId = projectId,
|
|
|
|
|
+ versionId = version.versionId,
|
|
|
|
|
+ fileName = Path,
|
|
|
|
|
+ parentFileId = ParentFileId,
|
|
|
|
|
+ fileType = "path",
|
|
|
|
|
+ localPath = DirPath,
|
|
|
|
|
+ language = language,
|
|
|
|
|
+ });
|
|
|
|
|
+ filePath.fileVersionNo = codeVersion;
|
|
|
|
|
+ ParentFileId = filePath.fileId;
|
|
|
|
|
+
|
|
|
|
|
+ FilesForAll fileAllPath = filesForAllService.GetFirst(m => m.projectId == projectId && m.localPath == DirPath);
|
|
|
|
|
+ if(fileAllPath == null)
|
|
|
|
|
+ {
|
|
|
|
|
+ fileAllPath = filesForAllService.InsertReturnEntity(new FilesForAll()
|
|
|
|
|
+ {
|
|
|
|
|
+ createTime = DateTime.Now,
|
|
|
|
|
+ projectId = projectId,
|
|
|
|
|
+ fileName = Path,
|
|
|
|
|
+ parentFileId = AllParentFileId,
|
|
|
|
|
+ fileType = "path",
|
|
|
|
|
+ localPath = DirPath,
|
|
|
|
|
+ });
|
|
|
|
|
+ }
|
|
|
|
|
+ else
|
|
|
|
|
+ {
|
|
|
|
|
+ fileAllPath.versionNo = version.versionId;
|
|
|
|
|
+ filesForAllService.Update(fileAllPath);
|
|
|
|
|
+ }
|
|
|
|
|
+ AllParentFileId = fileAllPath.fileId;
|
|
|
|
|
+ }
|
|
|
|
|
+ MakeFiles file = makeFilesService.GetFirst(m => m.projectId == projectId && (m.versionId == version.versionId || m.versionId == 0) && m.localPath == localPath && m.fileName == fileName) ?? makeFilesService.InsertReturnEntity(new MakeFiles()
|
|
|
|
|
+ {
|
|
|
|
|
+ createTime = DateTime.Now,
|
|
|
|
|
+ projectId = projectId,
|
|
|
|
|
+ versionId = version.versionId,
|
|
|
|
|
+ fileName = fileName,
|
|
|
|
|
+ fileType = fileType,
|
|
|
|
|
+ localPath = localPath,
|
|
|
|
|
+ parentFileId = ParentFileId,
|
|
|
|
|
+ language = language,
|
|
|
|
|
+ });
|
|
|
|
|
+ file.downloadPath = downloadPath;
|
|
|
|
|
+ file.fileVersionNo = codeVersion;
|
|
|
|
|
+
|
|
|
|
|
+ FilesForAll fileAll = filesForAllService.GetFirst(m => m.projectId == projectId && m.localPath == localPath && m.fileName == fileName) ?? filesForAllService.InsertReturnEntity(new FilesForAll()
|
|
|
|
|
+ {
|
|
|
|
|
+ createTime = DateTime.Now,
|
|
|
|
|
+ projectId = projectId,
|
|
|
|
|
+ fileName = fileName,
|
|
|
|
|
+ fileType = fileType,
|
|
|
|
|
+ localPath = localPath,
|
|
|
|
|
+ parentFileId = ParentFileId,
|
|
|
|
|
+ });
|
|
|
|
|
+ fileAll.downloadPath = downloadPath;
|
|
|
|
|
+ fileAll.versionNo = codeVersion;
|
|
|
|
|
+ filesForAllService.Update(fileAll);
|
|
|
|
|
+
|
|
|
|
|
+ var files = makeFilesService.GetList(m => m.projectId == projectId && m.language == language && m.versionId == 0);
|
|
|
|
|
+ foreach(MakeFiles sub in files)
|
|
|
|
|
+ {
|
|
|
|
|
+ sub.versionId = version.versionId;
|
|
|
|
|
+ makeFilesService.Update(sub);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|