TeacherREPController.cs 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  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()
  21. {
  22. "dghznx",
  23. "cxhhlx",
  24. "xjaxx",
  25. "zjqxx",
  26. "xnygxx",
  27. "lxxcfx",
  28. "gxjrxx",
  29. "cdgxsx",
  30. "yzxx",
  31. "kjyxx",
  32. "wjylxx",
  33. "dsgjxx",
  34. "ydzt",
  35. "xndbxx",
  36. "sqtszx",
  37. "cdxczx",
  38. "ghsyzx",
  39. "lqsx",
  40. "cdxxps",
  41. "xcfx",
  42. "xyqxx",
  43. "xncbyy",
  44. "cdlqjk",
  45. "lqdmxx",
  46. "lqyx",
  47. "pclxxx",
  48. "cdfzx",
  49. "xnblxx",
  50. "ghsx",
  51. "khdycz",
  52. "khbmxx",
  53. "khdecz",
  54. "khzx",
  55. "khhbzx",
  56. "gxxcxx",
  57. "khhtxx",
  58. "khdxxx",
  59. "khsyxx"
  60. };
  61. /// <summary>
  62. /// 修改教师学校信息
  63. /// </summary>
  64. /// <param name="json"></param>
  65. /// <returns></returns>
  66. [HttpPost("get-teachersc")]
  67. public async Task<IActionResult> SetTeacherSchool(JsonElement json)
  68. {
  69. var cosmosClient = _azureCosmos.GetCosmosClient();
  70. foreach (var item in schools)
  71. {
  72. School school = await cosmosClient.GetContainer("TEAMModelOS", "School").ReadItemAsync<School>($"{item}", new PartitionKey("Base"));
  73. List<Teacher> teachers = new();
  74. 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") }))
  75. {
  76. teachers.Add(tch);
  77. }
  78. if (teachers.Count > 0)
  79. {
  80. foreach (var teacher in teachers)
  81. {
  82. teacher.schools.ForEach(tch => { if (tch.schoolId.Equals(item)) { tch.areaId = school.areaId; } });
  83. await cosmosClient.GetContainer("TEAMModelOS", "Teacher").ReplaceItemAsync<Teacher>(teacher, teacher.id, new PartitionKey("Base"));
  84. }
  85. }
  86. }
  87. return Ok(new { state = 200 });
  88. }
  89. }
  90. }