|
@@ -16,7 +16,8 @@ namespace HTEXScreen.Service
|
|
|
public static async Task UpdateStuArtPDF(List<string> urls, ScreenshotDto screenshot, AzureRedisFactory _azureRedisFactory, AzureCosmosFactory _azureCosmosFactory) {
|
|
|
var env = screenshot.env.Equals("release") ? "Default" : "Test";
|
|
|
long now = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds();
|
|
|
- List<Task<Azure.Response>> responses = new List<Task<Azure.Response>>(0);
|
|
|
+ List<Task<Azure.Response>> responses = new List<Task<Azure.Response>>();
|
|
|
+ List<Task<bool>> redisSaves = new List<Task<bool>>();
|
|
|
foreach (var url in urls)
|
|
|
{
|
|
|
//https://teammodeltest.blob.core.chinacloudapi.cn/hbcn/art/e9a5ec36-7299-45dc-9517-7457960346c4/report/202106005.pdf
|
|
@@ -25,7 +26,9 @@ namespace HTEXScreen.Service
|
|
|
if (paths.Length == 2) {
|
|
|
var ps= paths[1].Split("/");
|
|
|
if (ps.Length == 3) {
|
|
|
- var value = _azureRedisFactory.GetRedisClient(8, env).HashGet($"ArtPDF:{ps[0]}", ps[2]);
|
|
|
+ string key = $"ArtPDF:{ps[0]}";
|
|
|
+ string field = ps[2].Replace(".pdf", "");
|
|
|
+ var value = _azureRedisFactory.GetRedisClient(8, env).HashGet(key, field);
|
|
|
if (value.HasValue && !value.IsNullOrEmpty)
|
|
|
{
|
|
|
JsonNode node = JsonNode.Parse(value.ToString());
|
|
@@ -38,6 +41,7 @@ namespace HTEXScreen.Service
|
|
|
pdfNode["url"] = uri;
|
|
|
pdfNode["blob"] = $"/art/{paths[1]}";
|
|
|
pdfNode["createTime"] = now;
|
|
|
+ pdfNode["prime"] = true;//此处的作用是判断是否已经生成OK.
|
|
|
node["pdf"] = pdfNode;
|
|
|
}
|
|
|
else {
|
|
@@ -45,9 +49,13 @@ namespace HTEXScreen.Service
|
|
|
pdfNode["url"] = uri;
|
|
|
pdfNode["blob"] = $"/art/{paths[1]}";
|
|
|
pdfNode["createTime"] = now;
|
|
|
+ pdfNode["prime"] = true;//此处的作用是判断是否已经生成OK.
|
|
|
node["pdf"] = pdfNode;
|
|
|
+
|
|
|
}
|
|
|
- byte[] bytes = Encoding.UTF8.GetBytes(node.ToJsonString());
|
|
|
+ string json = node.ToJsonString();
|
|
|
+ redisSaves.Add(_azureRedisFactory.GetRedisClient(8, env).HashSetAsync(key, field, json));
|
|
|
+ byte[] bytes = Encoding.UTF8.GetBytes(json);
|
|
|
var memoryStream = new MemoryStream(bytes);
|
|
|
responses.Add(_azureCosmosFactory.GetCosmosClient(null,env).GetContainer("TEAMModelOS", "Student").ReplaceItemStreamAsync(memoryStream, $"{id}", new Azure.Cosmos.PartitionKey($"{code}")));
|
|
|
}
|
|
@@ -55,6 +63,7 @@ namespace HTEXScreen.Service
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+ await Task.WhenAll(redisSaves);
|
|
|
await Task.WhenAll(responses);
|
|
|
}
|
|
|
|
|
@@ -240,6 +249,6 @@ namespace HTEXScreen.Service
|
|
|
public int pagesize { get; set; } = 5;
|
|
|
public string? root { get; set; }
|
|
|
public string? env { get; set; } = "release";
|
|
|
- public string msgId { get; set; }
|
|
|
+ public string? msgId { get; set; }
|
|
|
}
|
|
|
}
|