FacturyPostHistoryDBService.cs 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. using MongoDB.Driver;
  2. using VitalService.Entities;
  3. using WingServerCommon.Mapper;
  4. using VitalService.Request;
  5. using WingInterfaceLibrary.Request.DBVitalRequest;
  6. using WingInterfaceLibrary.DTO.Vital;
  7. using WingInterfaceLibrary.Request;
  8. using WingInterfaceLibrary.Interface.DBVitalInterface;
  9. namespace VitalService.Service
  10. {
  11. /// <summary>
  12. /// 第三方厂商数据推送记录
  13. /// </summary>
  14. public partial class VitalDatabaseService : IVitalFacturyPostHistoryDBService
  15. {
  16. /// <summary>
  17. /// 创建数据
  18. /// </summary>
  19. /// <param name="request">创建请求</param>
  20. /// <returns></returns>
  21. public async Task<string> CreateFacturyPostHistoryDBAsync(CreateFacturyPostHistoryDBRequest request)
  22. {
  23. var entity = new FacturyPostHistoryEntity
  24. {
  25. FacturyUniqueCode = request.FacturyUniqueCode ?? string.Empty,
  26. FacturyUrl = request.FacturyUrl,
  27. IDCardNo = request.IDCardNo,
  28. PatientName = request.PatientName,
  29. ApiType = request.ApiType,
  30. Status = request.Status,
  31. PostTime = request.PostTime,
  32. Headers = request.Headers,
  33. Content = request.Content,
  34. Result = request.Result,
  35. };
  36. return await _facturyPostHistoryDBRepository.InsertOneAsync(entity);
  37. }
  38. /// <summary>
  39. /// 更新数据
  40. /// </summary>
  41. /// <param name="request">更新请求</param>
  42. /// <returns></returns>
  43. public async Task<bool> UpdateFacturyPostHistoryDBAsync(UpdateFacturyPostHistoryDBRequest request)
  44. {
  45. var code = request.Code;
  46. if (!string.IsNullOrWhiteSpace(code))
  47. {
  48. var entity = await _facturyPostHistoryDBRepository.FindOneAsync(Builders<FacturyPostHistoryEntity>.Filter.Eq(f => f.Code, code));
  49. if (entity != null && !entity.IsDelete)
  50. {
  51. var filter = Builders<FacturyPostHistoryEntity>.Filter.Eq(f => f.Code, code);
  52. var update = Builders<FacturyPostHistoryEntity>.Update
  53. .Set(f => f.Status, request.Status)
  54. .Set(f => f.Result, request.Result)
  55. .Set(f => f.PostTime, DateTime.UtcNow)
  56. .Set(f => f.UpdateTime, DateTime.UtcNow);
  57. return await _facturyPostHistoryDBRepository.UpdateOneAsync(filter, update) > 0;
  58. }
  59. }
  60. return false;
  61. }
  62. /// <summary>
  63. /// 根据编码获取第三方厂商数据推送记录
  64. /// </summary>
  65. /// <param name="request">数据编码</param>
  66. /// <returns></returns>
  67. public async Task<FacturyPostHistoryDTO> GetFacturyPostHistoryDBAsync(GetFacturyPostHistoryDBRequest request)
  68. {
  69. var filter = Builders<FacturyPostHistoryEntity>.Filter.Eq(f => f.Code, request.Code);
  70. var result = await _facturyPostHistoryDBRepository.FindOneAsync(filter);
  71. return result.MappingTo<FacturyPostHistoryDTO>();
  72. }
  73. /// <summary>
  74. /// 分页获取第三方厂商数据推送记录
  75. /// </summary>
  76. /// <param name="request">分页请求</param>
  77. /// <returns></returns>
  78. public async Task<PageCollection<FacturyPostHistoryDTO>> GetFacturyPostHistoryByPageDBAsync(GetFacturyPostHistoryByPageDBRequest request)
  79. {
  80. var filter = await _facturyPostHistoryDBRepository.GetPageFilter(request);
  81. var pageFilter = new DBPageRequest<FacturyPostHistoryEntity>
  82. {
  83. PageIndex = request.PageIndex,
  84. PageSize = request.PageSize,
  85. Filter = filter,
  86. Sort = Builders<FacturyPostHistoryEntity>.Sort.Descending(x => x.CreateTime)
  87. };
  88. var result = await _facturyPostHistoryDBRepository.GetPages(pageFilter);
  89. return result.MappingTo<PageCollection<FacturyPostHistoryDTO>>();
  90. }
  91. /// <summary>
  92. /// 获取所有未推送数据记录
  93. /// </summary>
  94. /// <param name="request">分页请求</param>
  95. /// <returns></returns>
  96. public async Task<List<FacturyPostHistoryDTO>> GetNonPostHistoryDBAsync(GetNonPostHistoryDBRequest request)
  97. {
  98. var filter = Builders<FacturyPostHistoryEntity>.Filter.Eq(f => f.Status, 1);
  99. var result = await _facturyPostHistoryDBRepository.FindAllAsync(filter);
  100. return result.MappingTo<List<FacturyPostHistoryDTO>>();
  101. }
  102. /// <summary>
  103. /// 删除数据
  104. /// </summary>
  105. /// <param name="request">数据编码</param>
  106. /// <returns></returns>
  107. public async Task<bool> RemoveFacturyPostHistoryDBAsync(RemoveFacturyPostHistoryDBRequest request)
  108. {
  109. return await _facturyPostHistoryDBRepository.DeleteOneAsync("Code", request.Code);
  110. }
  111. }
  112. }