SyllabusController.cs 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. using Microsoft.AspNetCore.Authorization;
  2. using Microsoft.AspNetCore.Mvc;
  3. using System;
  4. using System.Collections.Generic;
  5. using System.Text;
  6. using System.Threading.Tasks;
  7. using TEAMModelOS.API.Models.Core;
  8. using TEAMModelOS.SDK.Extension.DataResult.JsonRpcRequest;
  9. using TEAMModelOS.SDK.Extension.DataResult.JsonRpcResponse;
  10. using TEAMModelOS.SDK.Helper.Common.CollectionHelper;
  11. using TEAMModelOS.SDK.Module.AzureCosmosDB.Interfaces;
  12. namespace TEAMModelOS.API.Controllers.Syllabus
  13. {
  14. [Route("api/[controller]")]
  15. [ApiController]
  16. [Authorize]
  17. public class SyllabusController : BaseController
  18. {
  19. private readonly IAzureCosmosDBRepository azureCosmosDBRepository;
  20. public SyllabusController(IAzureCosmosDBRepository _azureCosmosDBRepository)
  21. {
  22. azureCosmosDBRepository = _azureCosmosDBRepository;
  23. }
  24. /// <summary>
  25. /// 根据课纲的业务获取
  26. /// </summary>
  27. /// <param name="request"></param>
  28. /// <returns></returns>
  29. [HttpPost("GetSchoolInfoAsSyllabus")]
  30. public async Task<BaseJosnRPCResponse> GetSchoolInfoAsSyllabus(JosnRPCRequest<Dictionary<string, object>> request)
  31. {
  32. JsonRPCResponseBuilder builder = JsonRPCResponseBuilder.custom();
  33. if (request.@params != null && request.@params.TryGetValue("Code", out _))
  34. {
  35. List<School> schoolSystems = await azureCosmosDBRepository.FindByParams<School>(request.@params);
  36. List<dynamic> period_list = new List<dynamic>();
  37. if (schoolSystems.IsNotEmpty())
  38. {
  39. List<Period> periods = schoolSystems[0].period;
  40. foreach (Period period in periods)
  41. {
  42. List<dynamic> subject_list = new List<dynamic>();
  43. ///学科包含学期的数据
  44. foreach (Subject subject in period.subjects)
  45. {
  46. }
  47. dynamic per = new { subject = slist, period.periodName, period.periodCode };
  48. period_list.Add(per);
  49. }
  50. }
  51. return builder.Data(plist).build();
  52. }
  53. else
  54. {
  55. return builder.Error("SchoolCode is null or empty!", "SchoolCode is null or empty!").build();
  56. }
  57. }
  58. }
  59. }