VolumeController.cs 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. using Microsoft.AspNetCore.Mvc;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Linq;
  5. using System.Text;
  6. using System.Threading.Tasks;
  7. using TEAMModelOS.Service.Models.Core;
  8. using TEAMModelOS.Service.Models.Syllabus;
  9. using TEAMModelOS.SDK.Context.Exception;
  10. using TEAMModelOS.SDK.Extension.DataResult.JsonRpcRequest;
  11. using TEAMModelOS.SDK.Extension.DataResult.JsonRpcResponse;
  12. using TEAMModelOS.SDK.Extension.SnowFlake;
  13. using TEAMModelOS.SDK.Helper.Common.CollectionHelper;
  14. using TEAMModelOS.SDK.Helper.Security.ShaHash;
  15. using TEAMModelOS.SDK.Module.AzureCosmosDB.Interfaces;
  16. using TEAMModelOS.Controllers;
  17. using TEAMModelOS.SDK;
  18. using TEAMModelOS.SDK.Module.AzureCosmosDBV3;
  19. using TEAMModelOS.Service.Services.Syllabus.Interface;
  20. namespace TEAMModelOS.Controllers.Syllabus
  21. {
  22. [Route("api/[controller]")]
  23. [ApiController]
  24. public class VolumeController : BaseController
  25. {
  26. private IAzureCosmosDBV3Repository azureCosmosDBRepository;
  27. private IVolumeService volumeService;
  28. public VolumeController(IAzureCosmosDBV3Repository azureCosmosDBRepository, IVolumeService volumeService)
  29. {
  30. this.azureCosmosDBRepository = azureCosmosDBRepository;
  31. this.volumeService = volumeService;
  32. }
  33. /// <summary>
  34. /// 新增册别
  35. /// </summary>
  36. /// <param name="request"></param>
  37. /// <returns></returns>
  38. [HttpPost("SaveOrUpdate")]
  39. public async Task<BaseJosnRPCResponse> SaveOrUpdate(JosnRPCRequest<SyllabusVolume> request)
  40. {
  41. JsonRPCResponseBuilder builder = JsonRPCResponseBuilder.custom();
  42. List<SyllabusVolume> volume = await volumeService.SaveOrUpdateVolume(request.@params);
  43. return builder.Data(volume.IsEmpty() ? null : volume[0]).build();
  44. }
  45. /// <summary>
  46. /// 删除册别
  47. /// </summary>
  48. /// <param name="request"></param>
  49. /// <returns></returns>
  50. [HttpPost("Delete")]
  51. public async Task<BaseJosnRPCResponse> Delete(JosnRPCRequest<SyllabusVolume> request)
  52. {
  53. JsonRPCResponseBuilder builder = JsonRPCResponseBuilder.custom();
  54. bool flag = false;
  55. if (!string.IsNullOrEmpty(request.@params.id))
  56. {
  57. //if (request.@params.type == 0)
  58. //{
  59. request.@params.status = 0;
  60. List<SyllabusVolume> volumes = new List<SyllabusVolume>
  61. {
  62. request.@params
  63. };
  64. await azureCosmosDBRepository.SaveOrUpdateAll<SyllabusVolume>(volumes);
  65. flag = true;
  66. //}
  67. //else
  68. //{
  69. // await azureCosmosDBRepository.DeleteAsync<Volume>(request.@params.id, request.@params.schoolCode);
  70. // await azureCosmosDBRepository.DeleteAll<SyllabusNode>(new Dictionary<string, object>() { { "volumeCode", request.@params.id } });
  71. // flag = true;
  72. //}
  73. }
  74. return builder.Data(flag).build();
  75. }
  76. /// <summary>
  77. /// 查找册别
  78. /// </summary>
  79. /// <param name="request"></param>
  80. /// <returns></returns>
  81. [HttpPost("Find")]
  82. public async Task<BaseJosnRPCResponse> Find(JosnRPCRequest<Dictionary<string, object>> request)
  83. {
  84. JsonRPCResponseBuilder builder = JsonRPCResponseBuilder.custom();
  85. List<SyllabusVolume> volumes ;
  86. if (request.@params.TryGetValue("scopeCode", out _))
  87. {
  88. volumes = await azureCosmosDBRepository.FindByDict<SyllabusVolume>(request.@params);
  89. }
  90. else
  91. {
  92. throw new BizException("scopeCode is null!");
  93. }
  94. return builder.Data(volumes).build();
  95. }
  96. }
  97. }