TeacherREPController.cs 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. using Azure.Cosmos;
  2. using Microsoft.AspNetCore.Http;
  3. using Microsoft.AspNetCore.Mvc;
  4. using System.Collections.Generic;
  5. using System.Text.Json;
  6. using System.Threading.Tasks;
  7. using TEAMModelOS.SDK.DI;
  8. using TEAMModelOS.SDK.Models;
  9. namespace TEAMModelBI.Controllers.RepairApi
  10. {
  11. [Route("teacherrep")]
  12. [ApiController]
  13. public class TeacherREPController : ControllerBase
  14. {
  15. private readonly AzureCosmosFactory _azureCosmos;
  16. public TeacherREPController(AzureCosmosFactory azureCosmos)
  17. {
  18. _azureCosmos = azureCosmos;
  19. }
  20. List<string> schools = new() { "dghznx", "cxhhlx", "xjaxx", "zjqxx", "xnygxx", "lxxcfx", "gxjrxx", "cdgxsx", "yzxx", "kjyxx", "wjylxx", "dsgjxx", "ydzt", "xndbxx", "sqtszx", "cdxczx", "ghsyzx", "lqsx", "cdxxps", "xcfx", "xyqxx", "xncbyy", "cdlqjk", "lqdmxx", "lqyx", "pclxxx", "cdfzx", "xnblxx", "ghsx", "khdycz", "khbmxx", "khdecz", "khzx", "khhbzx", "gxxcxx", "khhtxx", "khdxxx", "khsyxx" };
  21. /// <summary>
  22. /// 修改教师学校信息
  23. /// </summary>
  24. /// <param name="json"></param>
  25. /// <returns></returns>
  26. [HttpPost("get-teachersc")]
  27. public async Task<IActionResult> SetTeacherSchool(JsonElement json)
  28. {
  29. var cosmosClient = _azureCosmos.GetCosmosClient();
  30. foreach (var item in schools)
  31. {
  32. School school = await cosmosClient.GetContainer("TEAMModelOS", "School").ReadItemAsync<School>($"{item}", new PartitionKey("Base"));
  33. List<Teacher> teachers = new();
  34. await foreach (var tch in cosmosClient.GetContainer("TEAMModelOS", "Teacher").GetItemQueryIterator<Teacher>(queryText: $"SELECT value(c) FROM c join s in c.schools where s.schoolId='dghznx' and c.code='Base'", requestOptions: new QueryRequestOptions() { PartitionKey = new PartitionKey("Base") }))
  35. {
  36. teachers.Add(tch);
  37. }
  38. if (teachers.Count > 0)
  39. {
  40. foreach (var teacher in teachers)
  41. {
  42. teacher.schools.ForEach(tch => { if (tch.schoolId.Equals(item)) { tch.areaId = school.areaId; } });
  43. await cosmosClient.GetContainer("TEAMModelOS", "Teacher").ReplaceItemAsync<Teacher>(teacher, teacher.id, new PartitionKey("Base"));
  44. }
  45. }
  46. }
  47. return Ok(new { state = 200 });
  48. }
  49. }
  50. }