|
@@ -69,78 +69,21 @@ namespace TEAMModelOS.Controllers.Learn
|
|
|
[AuthToken(Roles = "teacher,admin", Permissions = "schoolAc-upd")]
|
|
|
public async Task<IActionResult> Upsert(Homework homework)
|
|
|
{
|
|
|
- var (userid, _, _, school) = HttpContext.GetAuthTokenInfo();
|
|
|
- var client = _azureCosmos.GetCosmosClient();
|
|
|
- homework.pk = "Homework";
|
|
|
- long now = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds();
|
|
|
- if (!homework.code.StartsWith("Homework-"))
|
|
|
- {
|
|
|
- homework.code = $"Homework-{homework.code}";
|
|
|
- }
|
|
|
- homework.creatorId = userid;
|
|
|
- homework.createTime = now;
|
|
|
- homework.ttl = -1;
|
|
|
- if (string.IsNullOrEmpty(homework.id))
|
|
|
- {
|
|
|
- homework.id = Guid.NewGuid().ToString();
|
|
|
- if (homework.startTime > now)
|
|
|
- {
|
|
|
- homework.progress = "pending";
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- homework.progress = "going";
|
|
|
- }
|
|
|
- var messageBlob = new ServiceBusMessage();
|
|
|
- string blobcntr = null;
|
|
|
- if (homework.scope.Equals("school"))
|
|
|
- {
|
|
|
- blobcntr = homework.school;
|
|
|
- homework.size = await _azureStorage.GetBlobContainerClient(homework.school).GetBlobsSize($"homework/{homework.id}");
|
|
|
- messageBlob = new ServiceBusMessage(new { id = Guid.NewGuid().ToString(), progress = "insert", root = $"homework/{homework.id}", name = $"{homework.school}" }.ToJsonString());
|
|
|
- }
|
|
|
- else
|
|
|
+ try {
|
|
|
+ var (userid, _, _, school) = HttpContext.GetAuthTokenInfo();
|
|
|
+ var client = _azureCosmos.GetCosmosClient();
|
|
|
+ homework.pk = "Homework";
|
|
|
+ long now = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds();
|
|
|
+ if (!homework.code.StartsWith("Homework-"))
|
|
|
{
|
|
|
- blobcntr = homework.creatorId;
|
|
|
- homework.size = await _azureStorage.GetBlobContainerClient(homework.creatorId).GetBlobsSize($"homework/{homework.id}");
|
|
|
- messageBlob = new ServiceBusMessage(new { id = Guid.NewGuid().ToString(), progress = "insert", root = $"homework/{homework.id}", name = $"{homework.creatorId}" }.ToJsonString());
|
|
|
+ homework.code = $"Homework-{homework.code}";
|
|
|
}
|
|
|
- messageBlob.ApplicationProperties.Add("name", "BlobRoot");
|
|
|
- var ActiveTask = _configuration.GetValue<string>("Azure:ServiceBus:ActiveTask");
|
|
|
- await _serviceBus.GetServiceBusClient().SendMessageAsync(ActiveTask, messageBlob);
|
|
|
- homework.recordUrl = $"/homework/{homework.id}/record.json";
|
|
|
- var cods = new { records = new List<string>(), userids = new List<string>(), question = new List<QuestionRecord>() };
|
|
|
- await _azureStorage.UploadFileByContainer(blobcntr, cods.ToJsonString(), "homework", $"{homework.id}/record.json");
|
|
|
- homework = await client.GetContainer(Constant.TEAMModelOS, "Common").CreateItemAsync(homework, new PartitionKey($"{homework.code}"));
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- string blobcntr = null;
|
|
|
- var response = await client.GetContainer(Constant.TEAMModelOS, "Common").ReadItemStreamAsync(homework.id, new PartitionKey($"{homework.code}"));
|
|
|
- var messageBlob = new ServiceBusMessage();
|
|
|
- if (homework.scope.Equals("school"))
|
|
|
- {
|
|
|
- blobcntr = homework.school;
|
|
|
- homework.size = await _azureStorage.GetBlobContainerClient(homework.school).GetBlobsSize($"homework/{homework.id}");
|
|
|
- messageBlob = new ServiceBusMessage(new { id = Guid.NewGuid().ToString(), progress = "update", root = $"homework/{homework.id}", name = $"{homework.school}" }.ToJsonString());
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- blobcntr = homework.creatorId;
|
|
|
- homework.size = await _azureStorage.GetBlobContainerClient(homework.creatorId).GetBlobsSize($"homework/{homework.id}");
|
|
|
- messageBlob = new ServiceBusMessage(new { id = Guid.NewGuid().ToString(), progress = "update", root = $"homework/{homework.id}", name = $"{homework.creatorId}" }.ToJsonString());
|
|
|
- }
|
|
|
- messageBlob.ApplicationProperties.Add("name", "BlobRoot");
|
|
|
- var ActiveTask = _configuration.GetValue<string>("Azure:ServiceBus:ActiveTask");
|
|
|
- await _serviceBus.GetServiceBusClient().SendMessageAsync(ActiveTask, messageBlob);
|
|
|
- if (response.Status == 200)
|
|
|
+ homework.creatorId = userid;
|
|
|
+ homework.createTime = now;
|
|
|
+ homework.ttl = -1;
|
|
|
+ if (string.IsNullOrEmpty(homework.id))
|
|
|
{
|
|
|
- using var json = await JsonDocument.ParseAsync(response.ContentStream);
|
|
|
- var info = json.ToObject<Homework>();
|
|
|
- if (info.progress.Equals("going"))
|
|
|
- {
|
|
|
- return Ok(new { v = "活动正在进行中" });
|
|
|
- }
|
|
|
+ homework.id = Guid.NewGuid().ToString();
|
|
|
if (homework.startTime > now)
|
|
|
{
|
|
|
homework.progress = "pending";
|
|
@@ -149,27 +92,92 @@ namespace TEAMModelOS.Controllers.Learn
|
|
|
{
|
|
|
homework.progress = "going";
|
|
|
}
|
|
|
- homework.progress = info.progress;
|
|
|
- homework.recordUrl = $"/homework/{homework.id}/record.json";
|
|
|
- homework = await client.GetContainer(Constant.TEAMModelOS, "Common").ReplaceItemAsync(homework, info.id, new PartitionKey($"{info.code}"));
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- if (homework.startTime > now)
|
|
|
+ var messageBlob = new ServiceBusMessage();
|
|
|
+ string blobcntr = null;
|
|
|
+ if (homework.scope.Equals("school"))
|
|
|
{
|
|
|
- homework.progress = "pending";
|
|
|
+ blobcntr = homework.school;
|
|
|
+ homework.size = await _azureStorage.GetBlobContainerClient(homework.school).GetBlobsSize($"homework/{homework.id}");
|
|
|
+ messageBlob = new ServiceBusMessage(new { id = Guid.NewGuid().ToString(), progress = "insert", root = $"homework/{homework.id}", name = $"{homework.school}" }.ToJsonString());
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- homework.progress = "going";
|
|
|
+ blobcntr = homework.creatorId;
|
|
|
+ homework.size = await _azureStorage.GetBlobContainerClient(homework.creatorId).GetBlobsSize($"homework/{homework.id}");
|
|
|
+ messageBlob = new ServiceBusMessage(new { id = Guid.NewGuid().ToString(), progress = "insert", root = $"homework/{homework.id}", name = $"{homework.creatorId}" }.ToJsonString());
|
|
|
}
|
|
|
+ messageBlob.ApplicationProperties.Add("name", "BlobRoot");
|
|
|
+ var ActiveTask = _configuration.GetValue<string>("Azure:ServiceBus:ActiveTask");
|
|
|
+ await _serviceBus.GetServiceBusClient().SendMessageAsync(ActiveTask, messageBlob);
|
|
|
homework.recordUrl = $"/homework/{homework.id}/record.json";
|
|
|
var cods = new { records = new List<string>(), userids = new List<string>(), question = new List<QuestionRecord>() };
|
|
|
await _azureStorage.UploadFileByContainer(blobcntr, cods.ToJsonString(), "homework", $"{homework.id}/record.json");
|
|
|
homework = await client.GetContainer(Constant.TEAMModelOS, "Common").CreateItemAsync(homework, new PartitionKey($"{homework.code}"));
|
|
|
}
|
|
|
+ else
|
|
|
+ {
|
|
|
+ string blobcntr = null;
|
|
|
+ var response = await client.GetContainer(Constant.TEAMModelOS, "Common").ReadItemStreamAsync(homework.id, new PartitionKey($"{homework.code}"));
|
|
|
+ var messageBlob = new ServiceBusMessage();
|
|
|
+ if (homework.scope.Equals("school"))
|
|
|
+ {
|
|
|
+ blobcntr = homework.school;
|
|
|
+ homework.size = await _azureStorage.GetBlobContainerClient(homework.school).GetBlobsSize($"homework/{homework.id}");
|
|
|
+ messageBlob = new ServiceBusMessage(new { id = Guid.NewGuid().ToString(), progress = "update", root = $"homework/{homework.id}", name = $"{homework.school}" }.ToJsonString());
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ blobcntr = homework.creatorId;
|
|
|
+ homework.size = await _azureStorage.GetBlobContainerClient(homework.creatorId).GetBlobsSize($"homework/{homework.id}");
|
|
|
+ messageBlob = new ServiceBusMessage(new { id = Guid.NewGuid().ToString(), progress = "update", root = $"homework/{homework.id}", name = $"{homework.creatorId}" }.ToJsonString());
|
|
|
+ }
|
|
|
+ messageBlob.ApplicationProperties.Add("name", "BlobRoot");
|
|
|
+ var ActiveTask = _configuration.GetValue<string>("Azure:ServiceBus:ActiveTask");
|
|
|
+ await _serviceBus.GetServiceBusClient().SendMessageAsync(ActiveTask, messageBlob);
|
|
|
+ if (response.Status == 200)
|
|
|
+ {
|
|
|
+ using var json = await JsonDocument.ParseAsync(response.ContentStream);
|
|
|
+ var info = json.ToObject<Homework>();
|
|
|
+ if (info.progress.Equals("going"))
|
|
|
+ {
|
|
|
+ return Ok(new { v = "活动正在进行中" });
|
|
|
+ }
|
|
|
+ if (homework.startTime > now)
|
|
|
+ {
|
|
|
+ homework.progress = "pending";
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ homework.progress = "going";
|
|
|
+ }
|
|
|
+ homework.progress = info.progress;
|
|
|
+ homework.recordUrl = $"/homework/{homework.id}/record.json";
|
|
|
+ homework = await client.GetContainer(Constant.TEAMModelOS, "Common").ReplaceItemAsync(homework, info.id, new PartitionKey($"{info.code}"));
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ if (homework.startTime > now)
|
|
|
+ {
|
|
|
+ homework.progress = "pending";
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ homework.progress = "going";
|
|
|
+ }
|
|
|
+ homework.recordUrl = $"/homework/{homework.id}/record.json";
|
|
|
+ var cods = new { records = new List<string>(), userids = new List<string>(), question = new List<QuestionRecord>() };
|
|
|
+ await _azureStorage.UploadFileByContainer(blobcntr, cods.ToJsonString(), "homework", $"{homework.id}/record.json");
|
|
|
+ homework = await client.GetContainer(Constant.TEAMModelOS, "Common").CreateItemAsync(homework, new PartitionKey($"{homework.code}"));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return Ok(new { homework });
|
|
|
+ } catch (CosmosException ex) {
|
|
|
+ return Ok(new { error=ex.Status });
|
|
|
+ }
|
|
|
+ catch (Exception ex)
|
|
|
+ {
|
|
|
+ return Ok(new { error = 400 });
|
|
|
}
|
|
|
- return Ok(new { homework });
|
|
|
}
|
|
|
|
|
|
|
|
@@ -190,88 +198,98 @@ namespace TEAMModelOS.Controllers.Learn
|
|
|
[HttpPost("find")]
|
|
|
[AuthToken(Roles = "teacher,admin,student", Permissions = "schoolAc-read,schoolAc-upd")]
|
|
|
public async Task<IActionResult> Find(JsonElement request) {
|
|
|
- var client = _azureCosmos.GetCosmosClient();
|
|
|
- var (userid, _, _, school) = HttpContext.GetAuthTokenInfo();
|
|
|
- //必须有学校或者教师编码
|
|
|
- if (!request.TryGetProperty("code", out JsonElement code)) return BadRequest();
|
|
|
- //开始时间,默认最近三十天
|
|
|
- var stimestamp = DateTimeOffset.UtcNow.AddDays(-30).ToUnixTimeMilliseconds();
|
|
|
- if (request.TryGetProperty("stime", out JsonElement stime))
|
|
|
+ try
|
|
|
{
|
|
|
- if (long.TryParse($"{stime}", out long data))
|
|
|
+ var client = _azureCosmos.GetCosmosClient();
|
|
|
+ var (userid, _, _, school) = HttpContext.GetAuthTokenInfo();
|
|
|
+ //必须有学校或者教师编码
|
|
|
+ if (!request.TryGetProperty("code", out JsonElement code)) return BadRequest();
|
|
|
+ //开始时间,默认最近三十天
|
|
|
+ var stimestamp = DateTimeOffset.UtcNow.AddDays(-30).ToUnixTimeMilliseconds();
|
|
|
+ if (request.TryGetProperty("stime", out JsonElement stime))
|
|
|
{
|
|
|
- stimestamp = data;
|
|
|
+ if (long.TryParse($"{stime}", out long data))
|
|
|
+ {
|
|
|
+ stimestamp = data;
|
|
|
+ };
|
|
|
};
|
|
|
- };
|
|
|
- //默认当前时间
|
|
|
- var etimestamp = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds();
|
|
|
- if (request.TryGetProperty("etime", out JsonElement etime))
|
|
|
- {
|
|
|
- if (long.TryParse($"{etime}", out long data))
|
|
|
+ //默认当前时间
|
|
|
+ var etimestamp = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds();
|
|
|
+ if (request.TryGetProperty("etime", out JsonElement etime))
|
|
|
{
|
|
|
- etimestamp = data;
|
|
|
- };
|
|
|
-
|
|
|
- };
|
|
|
- var progresssql = "";
|
|
|
- if (request.TryGetProperty("progress", out JsonElement progress))
|
|
|
- {
|
|
|
+ if (long.TryParse($"{etime}", out long data))
|
|
|
+ {
|
|
|
+ etimestamp = data;
|
|
|
+ };
|
|
|
|
|
|
- if (!progress.ValueKind.Equals(JsonValueKind.Undefined) && !progress.ValueKind.Equals(JsonValueKind.Null) && progress.ValueKind.Equals(JsonValueKind.String))
|
|
|
+ };
|
|
|
+ var progresssql = "";
|
|
|
+ if (request.TryGetProperty("progress", out JsonElement progress))
|
|
|
{
|
|
|
- progresssql = $" and c.progress='{progress}' ";
|
|
|
+
|
|
|
+ if (!progress.ValueKind.Equals(JsonValueKind.Undefined) && !progress.ValueKind.Equals(JsonValueKind.Null) && progress.ValueKind.Equals(JsonValueKind.String))
|
|
|
+ {
|
|
|
+ progresssql = $" and c.progress='{progress}' ";
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
- string continuationToken = null;
|
|
|
- //默认不指定返回大小
|
|
|
- int? topcout = null;
|
|
|
- if (request.TryGetProperty("count", out JsonElement jcount))
|
|
|
- {
|
|
|
- if (int.TryParse($"{jcount}", out int data))
|
|
|
+ string continuationToken = null;
|
|
|
+ //默认不指定返回大小
|
|
|
+ int? topcout = null;
|
|
|
+ if (request.TryGetProperty("count", out JsonElement jcount))
|
|
|
{
|
|
|
- topcout = data;
|
|
|
- }
|
|
|
- };
|
|
|
- //是否需要进行分页查询,默认不分页
|
|
|
- bool iscontinuation = false;
|
|
|
- //如果指定了返回大小
|
|
|
- if (request.TryGetProperty("continuationToken", out JsonElement continuation))
|
|
|
- {
|
|
|
- //指定了cancellationToken 表示需要进行分页
|
|
|
- if (!continuation.ValueKind.Equals(JsonValueKind.Null) && !continuation.ValueKind.Equals(JsonValueKind.Undefined))
|
|
|
+ if (int.TryParse($"{jcount}", out int data))
|
|
|
+ {
|
|
|
+ topcout = data;
|
|
|
+ }
|
|
|
+ };
|
|
|
+ //是否需要进行分页查询,默认不分页
|
|
|
+ bool iscontinuation = false;
|
|
|
+ //如果指定了返回大小
|
|
|
+ if (request.TryGetProperty("continuationToken", out JsonElement continuation))
|
|
|
+ {
|
|
|
+ //指定了cancellationToken 表示需要进行分页
|
|
|
+ if (!continuation.ValueKind.Equals(JsonValueKind.Null) && !continuation.ValueKind.Equals(JsonValueKind.Undefined))
|
|
|
+ {
|
|
|
+ continuationToken = continuation.GetString();
|
|
|
+ iscontinuation = true;
|
|
|
+ }
|
|
|
+ };
|
|
|
+ List<Homework> homeworks = new List<Homework>();
|
|
|
+ var query = $"select c.owner, c.id,c.name,c.code,c.startTime,c.endTime,c.progress,c.classes,c.scope,c.school from c where c.createTime >= {stimestamp} and c.createTime <= {etimestamp} {progresssql } and c.ttl=-1 ";
|
|
|
+ if (string.IsNullOrEmpty(school))
|
|
|
{
|
|
|
- continuationToken = continuation.GetString();
|
|
|
- iscontinuation = true;
|
|
|
+ query = $"{query} and c.scope='private' ";
|
|
|
}
|
|
|
- };
|
|
|
- List<Homework> homeworks = new List<Homework>();
|
|
|
- var query = $"select c.owner, c.id,c.name,c.code,c.startTime,c.endTime,c.progress,c.classes,c.scope,c.school from c where c.createTime >= {stimestamp} and c.createTime <= {etimestamp} {progresssql } and c.ttl=-1 ";
|
|
|
- if (string.IsNullOrEmpty(school))
|
|
|
- {
|
|
|
- query = $"{query} and c.scope='private' ";
|
|
|
- }
|
|
|
- await foreach (var item in client.GetContainer(Constant.TEAMModelOS, "Common").GetItemQueryIterator<Homework>(queryText: query,
|
|
|
- requestOptions: new QueryRequestOptions() { MaxItemCount = topcout, PartitionKey = new PartitionKey($"Homework-{code}") }))
|
|
|
- {
|
|
|
- if (!string.IsNullOrEmpty(school))
|
|
|
+ await foreach (var item in client.GetContainer(Constant.TEAMModelOS, "Common").GetItemQueryIterator<Homework>(queryText: query,
|
|
|
+ requestOptions: new QueryRequestOptions() { MaxItemCount = topcout, PartitionKey = new PartitionKey($"Homework-{code}") }))
|
|
|
{
|
|
|
- //只能查出相关学校的
|
|
|
- if (!item.scope.Equals("private") && !string.IsNullOrEmpty(item.school) && item.school.Equals(school))
|
|
|
+ if (!string.IsNullOrEmpty(school))
|
|
|
{
|
|
|
- homeworks.Add(item);
|
|
|
+ //只能查出相关学校的
|
|
|
+ if (!item.scope.Equals("private") && !string.IsNullOrEmpty(item.school) && item.school.Equals(school))
|
|
|
+ {
|
|
|
+ homeworks.Add(item);
|
|
|
+ }
|
|
|
+ //和自己私人发布的
|
|
|
+ if (item.scope.Equals("private"))
|
|
|
+ {
|
|
|
+ homeworks.Add(item);
|
|
|
+ }
|
|
|
}
|
|
|
- //和自己私人发布的
|
|
|
- if (item.scope.Equals("private"))
|
|
|
+ else
|
|
|
{
|
|
|
homeworks.Add(item);
|
|
|
}
|
|
|
}
|
|
|
- else
|
|
|
- {
|
|
|
- homeworks.Add(item);
|
|
|
- }
|
|
|
+ return Ok(new { homeworks });
|
|
|
+ }
|
|
|
+ catch (CosmosException ex)
|
|
|
+ {
|
|
|
+ return Ok(new { error = ex.Status });
|
|
|
+ }
|
|
|
+ catch (Exception ex) {
|
|
|
+ return Ok(new { error = 400 });
|
|
|
}
|
|
|
- return Ok(new { homeworks });
|
|
|
}
|
|
|
|
|
|
///<summary>
|
|
@@ -297,7 +315,7 @@ namespace TEAMModelOS.Controllers.Learn
|
|
|
try
|
|
|
{
|
|
|
|
|
|
- work = await client.GetContainer(Constant.TEAMModelOS, "Common").ReadItemAsync<Homework>(id.GetString(), new PartitionKey($"{_code}"));
|
|
|
+ work = await client.GetContainer(Constant.TEAMModelOS, "Common").ReadItemAsync<Homework>(id.GetString(), new PartitionKey($"Homework-{_code}"));
|
|
|
return Ok(new { work, status = 200 });
|
|
|
}
|
|
|
catch (CosmosException ex)
|
|
@@ -321,44 +339,49 @@ namespace TEAMModelOS.Controllers.Learn
|
|
|
[HttpPost("delete")]
|
|
|
[AuthToken(Roles = "teacher,admin", Permissions = "schoolAc-upd")]
|
|
|
public async Task<IActionResult> Delete(JsonElement request) {
|
|
|
- var client = _azureCosmos.GetCosmosClient();
|
|
|
- var (userid, _, _, school) = HttpContext.GetAuthTokenInfo();
|
|
|
- if (!request.TryGetProperty("id", out JsonElement _id)) return BadRequest();
|
|
|
- if (!request.TryGetProperty("code", out JsonElement __code)) return BadRequest();
|
|
|
- Homework homeworkd = await client.GetContainer(Constant.TEAMModelOS, "Common").ReadItemAsync<Homework>(_id.GetString(), new PartitionKey($"{__code}"));
|
|
|
- bool flag = false;
|
|
|
- //必须是本人或者这个学校的管理者才能删除
|
|
|
- if (homeworkd.creatorId == userid)
|
|
|
- {
|
|
|
- flag = true;
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- if (homeworkd.scope.Equals("school") && homeworkd.school.Equals(school))
|
|
|
+ try {
|
|
|
+ var client = _azureCosmos.GetCosmosClient();
|
|
|
+ var (userid, _, _, school) = HttpContext.GetAuthTokenInfo();
|
|
|
+ if (!request.TryGetProperty("id", out JsonElement _id)) return BadRequest();
|
|
|
+ if (!request.TryGetProperty("code", out JsonElement __code)) return BadRequest();
|
|
|
+ Homework homeworkd = await client.GetContainer(Constant.TEAMModelOS, "Common").ReadItemAsync<Homework>(_id.GetString(), new PartitionKey($"Homework-{__code}"));
|
|
|
+ bool flag = false;
|
|
|
+ //必须是本人或者这个学校的管理者才能删除
|
|
|
+ if (homeworkd.creatorId == userid)
|
|
|
{
|
|
|
flag = true;
|
|
|
}
|
|
|
- }
|
|
|
- if (flag)
|
|
|
- {
|
|
|
- //使用ttl删除,并处理相关事务逻辑
|
|
|
- homeworkd.ttl = 1;
|
|
|
- homeworkd.status = 404;
|
|
|
- homeworkd = await client.GetContainer(Constant.TEAMModelOS, "Common").ReplaceItemAsync(homeworkd, homeworkd.id, new PartitionKey($"{homeworkd.code}"));
|
|
|
-
|
|
|
- //删除blob 相关资料
|
|
|
- await _azureStorage.GetBlobServiceClient().DeleteBlobs(_dingDing, $"{__code}".Replace("Homework-", ""), new List<string> { Path.Combine("homework", homeworkd.id) + "/" });
|
|
|
- //通知删除信息
|
|
|
- var messageBlob = new ServiceBusMessage(new { id = Guid.NewGuid().ToString(), progress = "delete", root = $"homework/{homeworkd.id}", name = $"{__code}" }.ToJsonString());
|
|
|
- messageBlob.ApplicationProperties.Add("name", "BlobRoot");
|
|
|
- var ActiveTask = _configuration.GetValue<string>("Azure:ServiceBus:ActiveTask");
|
|
|
- await _serviceBus.GetServiceBusClient().SendMessageAsync(ActiveTask, messageBlob);
|
|
|
- await _dingDing.SendBotMsg($"{_option.Location}-作业活动【{homeworkd.name}-{homeworkd.id}】被删除", GroupNames.成都开发測試群組);
|
|
|
- return Ok(new { flag });
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- return Ok(new { flag });
|
|
|
+ else
|
|
|
+ {
|
|
|
+ if (homeworkd.scope.Equals("school") && homeworkd.school.Equals(school))
|
|
|
+ {
|
|
|
+ flag = true;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (flag)
|
|
|
+ {
|
|
|
+ //使用ttl删除,并处理相关事务逻辑
|
|
|
+ homeworkd.ttl = 1;
|
|
|
+ homeworkd.status = 404;
|
|
|
+ homeworkd = await client.GetContainer(Constant.TEAMModelOS, "Common").ReplaceItemAsync(homeworkd, homeworkd.id, new PartitionKey($"{homeworkd.code}"));
|
|
|
+
|
|
|
+ //删除blob 相关资料
|
|
|
+ await _azureStorage.GetBlobServiceClient().DeleteBlobs(_dingDing, $"{__code}".Replace("Homework-", ""), new List<string> { Path.Combine("homework", homeworkd.id) + "/" });
|
|
|
+ //通知删除信息
|
|
|
+ var messageBlob = new ServiceBusMessage(new { id = Guid.NewGuid().ToString(), progress = "delete", root = $"homework/{homeworkd.id}", name = $"{__code}" }.ToJsonString());
|
|
|
+ messageBlob.ApplicationProperties.Add("name", "BlobRoot");
|
|
|
+ var ActiveTask = _configuration.GetValue<string>("Azure:ServiceBus:ActiveTask");
|
|
|
+ await _serviceBus.GetServiceBusClient().SendMessageAsync(ActiveTask, messageBlob);
|
|
|
+ await _dingDing.SendBotMsg($"{_option.Location}-作业活动【{homeworkd.name}-{homeworkd.id}】被删除", GroupNames.成都开发測試群組);
|
|
|
+ return Ok(new { flag });
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ return Ok(new { flag });
|
|
|
+ }
|
|
|
+
|
|
|
+ } catch (CosmosException ex) {
|
|
|
+ return Ok(new { flag=false,error=404 });
|
|
|
}
|
|
|
}
|
|
|
/// <summary>
|