SchoolController.cs 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. using Microsoft.AspNetCore.Mvc;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using TEAMModelOS.Service.Models;
  7. using TEAMModelOS.SDK.Extension.DataResult.JsonRpcRequest;
  8. using TEAMModelOS.SDK.Extension.DataResult.JsonRpcResponse;
  9. using TEAMModelOS.SDK.Module.AzureCosmosDB.Interfaces;
  10. using TEAMModelOS.SDK.Helper.Common.CollectionHelper;
  11. using TEAMModelOS.SDK.Module.AzureCosmosDBV3;
  12. using TEAMModelOS.SDK.Context.Exception;
  13. namespace TEAMModelOS.Controllers
  14. {
  15. [Route("api/[controller]")]
  16. [ApiController]
  17. public class SchoolController : Controller
  18. {
  19. public IAzureCosmosDBV3Repository _cosmosrepository;
  20. public SchoolController(IAzureCosmosDBV3Repository cosmosDBRepository)
  21. {
  22. _cosmosrepository = cosmosDBRepository;
  23. }
  24. /// <summary>
  25. /// 保存或更新学校
  26. /// </summary>
  27. /// <param name="request"></param>
  28. /// <returns></returns>
  29. [HttpPost("upsert")]
  30. public async Task<BaseJosnRPCResponse> Upsert(JosnRPCRequest<School> request)
  31. {
  32. JsonRPCResponseBuilder builder = JsonRPCResponseBuilder.custom();
  33. if (string.IsNullOrEmpty(request.@params.id))
  34. {
  35. List<School> schools = await _cosmosrepository.FindByDict<School>(new Dictionary<string, object> { { "code", request.@params.schoolCode } });
  36. if (schools.IsNotEmpty())
  37. {
  38. throw new BizException("学校编码已存在!", ResponseCode.DATA_EXIST);
  39. }
  40. request.@params.code = request.@params.schoolCode;
  41. request.@params.id = request.@params.schoolCode;
  42. }
  43. else {
  44. List<School> schools = await _cosmosrepository.FindByDict<School>(new Dictionary<string, object> { { "id", request.@params.id } });
  45. if (schools.IsEmpty())
  46. {
  47. throw new BizException("id不存在,不能更新!", ResponseCode.PARAMS_ERROR);
  48. }
  49. }
  50. if (request.@params.id.Equals(request.@params.code) && request.@params.id.Equals(request.@params.schoolCode))
  51. {
  52. School datas = await _cosmosrepository.SaveOrUpdate<School>(request.@params);
  53. return builder.Data(datas).build();
  54. }
  55. else {
  56. throw new BizException("id,code,schoolCode必须相同!", ResponseCode.PARAMS_ERROR);
  57. }
  58. }
  59. /// <summary>
  60. /// 查找学校
  61. /// </summary>
  62. /// <param name="request"></param>
  63. /// <returns></returns>
  64. [HttpPost("find")]
  65. public async Task<BaseJosnRPCResponse> Find(JosnRPCRequest<Dictionary<string, object>> request)
  66. {
  67. JsonRPCResponseBuilder builder = JsonRPCResponseBuilder.custom();
  68. if (request.@params.TryGetValue("code", out object code) && null != code &&! string.IsNullOrEmpty(code.ToString()))
  69. {
  70. List<School> sc = await _cosmosrepository.FindByDict<School>(request.@params);
  71. return builder.Data(sc).build();
  72. }
  73. else {
  74. return builder.Data(null).build();
  75. }
  76. }
  77. /// <summary>
  78. /// 取得所有學校基本資料("id","schoolCode","schoolName")
  79. /// </summary>
  80. /// <param name="GetAllSchoolBaesInfo"></param>
  81. /// <returns></returns>
  82. [HttpPost("GetAllSchoolBaesInfo")]
  83. public async Task<BaseJosnRPCResponse> GetAllSchoolBaesInfo(JosnRPCRequest<Dictionary<string, object>> request)
  84. {
  85. JsonRPCResponseBuilder builder = JsonRPCResponseBuilder.custom();
  86. List<School> sc = await _cosmosrepository.FindSQL<School>("SELECT c.id, c.schoolCode, c.schoolName FROM c WHERE c.pk='School'");
  87. return builder.Data(sc).build();
  88. }
  89. }
  90. }