|
@@ -7,14 +7,14 @@ using System.Collections.Generic;
|
|
|
using System.Linq;
|
|
|
using System.Text.Json;
|
|
|
using System.Threading.Tasks;
|
|
|
-using TEAMModeBI.Filter;
|
|
|
+using TEAMModelBI.Filter;
|
|
|
using TEAMModelOS.Models;
|
|
|
using TEAMModelOS.SDK.DI;
|
|
|
using TEAMModelOS.SDK.Extension;
|
|
|
using TEAMModelOS.SDK.Models;
|
|
|
using TEAMModelOS.SDK.Models.Cosmos.BI;
|
|
|
|
|
|
-namespace TEAMModeBI.Controllers.BISchool
|
|
|
+namespace TEAMModelBI.Controllers.BISchool
|
|
|
{
|
|
|
[Route("schoolcheck")]
|
|
|
[ApiController]
|
|
@@ -135,33 +135,41 @@ namespace TEAMModeBI.Controllers.BISchool
|
|
|
[HttpPost("get-assustschool")]
|
|
|
public async Task<IActionResult> GetAssistSchool(JsonElement jsonElement)
|
|
|
{
|
|
|
- if (!jsonElement.TryGetProperty("tmdId", out JsonElement tmdId)) return BadRequest();
|
|
|
- List<string> schoolIds = new List<string>();
|
|
|
- List<object> schools = new List<object>();
|
|
|
- var cosmosClient = _azureCosmos.GetCosmosClient();
|
|
|
- string sqlTxt = $"SELECT DISTINCT REPLACE(c.code, 'Teacher-', '') AS schoolId FROM c WHERE c.pk = 'Teacher' AND c.status = 'join' AND ARRAY_CONTAINS(c.roles, 'assist', true) AND c.id='{tmdId}' ";
|
|
|
- await foreach (var item in cosmosClient.GetContainer(Constant.TEAMModelOS, "School").GetItemQueryStreamIterator(queryText: sqlTxt, requestOptions: new QueryRequestOptions() { }))
|
|
|
+ try
|
|
|
{
|
|
|
- using var json = await JsonDocument.ParseAsync(item.ContentStream);
|
|
|
- foreach (var obj in json.RootElement.GetProperty("Documents").EnumerateArray())
|
|
|
+ if (!jsonElement.TryGetProperty("tmdId", out JsonElement tmdId)) return BadRequest();
|
|
|
+ List<string> schoolIds = new List<string>();
|
|
|
+ List<object> schools = new List<object>();
|
|
|
+ var cosmosClient = _azureCosmos.GetCosmosClient();
|
|
|
+ string sqlTxt = $"SELECT DISTINCT REPLACE(c.code, 'Teacher-', '') AS schoolId FROM c WHERE c.pk = 'Teacher' AND c.status = 'join' AND ARRAY_CONTAINS(c.roles, 'assist', true) AND c.id='{tmdId}' ";
|
|
|
+ await foreach (var item in cosmosClient.GetContainer(Constant.TEAMModelOS, "School").GetItemQueryStreamIterator(queryText: sqlTxt, requestOptions: new QueryRequestOptions() { }))
|
|
|
{
|
|
|
- schoolIds.Add(obj.GetProperty("schoolId").GetString());
|
|
|
+ using var json = await JsonDocument.ParseAsync(item.ContentStream);
|
|
|
+ foreach (var obj in json.RootElement.GetProperty("Documents").EnumerateArray())
|
|
|
+ {
|
|
|
+ schoolIds.Add(obj.GetProperty("schoolId").GetString());
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
|
|
|
- foreach (var item in schoolIds)
|
|
|
- {
|
|
|
- await foreach (var itemBase in cosmosClient.GetContainer(Constant.TEAMModelOS, "School").GetItemQueryStreamIterator(queryText: $"select c.id,c.code,c.name,c.picture,c.region,c.province,c.city,c.dist from c where c.id='{item}'", requestOptions: new QueryRequestOptions() { PartitionKey = new PartitionKey("Base") }))
|
|
|
+ foreach (var item in schoolIds)
|
|
|
{
|
|
|
- var json = await JsonDocument.ParseAsync(itemBase.ContentStream);
|
|
|
- foreach (var obj in json.RootElement.GetProperty("Documents").EnumerateArray())
|
|
|
+ await foreach (var itemBase in cosmosClient.GetContainer(Constant.TEAMModelOS, "School").GetItemQueryStreamIterator(queryText: $"select c.id,c.code,c.name,c.picture,c.region,c.province,c.city,c.dist from c where c.id='{item}'", requestOptions: new QueryRequestOptions() { PartitionKey = new PartitionKey("Base") }))
|
|
|
{
|
|
|
- schools.Add(obj.ToObject<object>());
|
|
|
+ var json = await JsonDocument.ParseAsync(itemBase.ContentStream);
|
|
|
+ foreach (var obj in json.RootElement.GetProperty("Documents").EnumerateArray())
|
|
|
+ {
|
|
|
+ schools.Add(obj.ToObject<object>());
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
- }
|
|
|
|
|
|
- return Ok(new { state = 200, schools });
|
|
|
+ return Ok(new { state = 200, schools });
|
|
|
+ }
|
|
|
+ catch (Exception ex)
|
|
|
+ {
|
|
|
+ await _dingDing.SendBotMsg($"BI,{_option.Location} /schoolcheck/get-assustschool {ex.Message}{ex.StackTrace}", GroupNames.成都开发測試群組);
|
|
|
+ return BadRequest();
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
/// <summary>
|