FacturyPostHistoryDBService.cs 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  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, request.PostTime)
  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. if (request.Status > 0)
  82. {
  83. filter &= Builders<FacturyPostHistoryEntity>.Filter.Eq(x => x.Status, request.Status);
  84. }
  85. var pageFilter = new DBPageRequest<FacturyPostHistoryEntity>
  86. {
  87. PageIndex = request.PageIndex,
  88. PageSize = request.PageSize,
  89. Filter = filter,
  90. Sort = Builders<FacturyPostHistoryEntity>.Sort.Descending(x => x.CreateTime)
  91. };
  92. var result = await _facturyPostHistoryDBRepository.GetPages(pageFilter);
  93. return result.MappingTo<PageCollection<FacturyPostHistoryDTO>>();
  94. }
  95. /// <summary>
  96. /// 获取所有未推送数据记录
  97. /// </summary>
  98. /// <param name="request">分页请求</param>
  99. /// <returns></returns>
  100. public async Task<List<FacturyPostHistoryDTO>> GetNonPostHistoryDBAsync(GetNonPostHistoryDBRequest request)
  101. {
  102. var filter = Builders<FacturyPostHistoryEntity>.Filter.Eq(f => f.Status, 1);
  103. var entities = await _facturyPostHistoryDBRepository.FindAllAsync(filter);
  104. entities = entities.OrderBy(x => x.CreateTime).ToList();
  105. return entities.MappingTo<List<FacturyPostHistoryDTO>>();
  106. }
  107. /// <summary>
  108. /// 删除数据
  109. /// </summary>
  110. /// <param name="request">数据编码</param>
  111. /// <returns></returns>
  112. public async Task<bool> RemoveFacturyPostHistoryDBAsync(RemoveFacturyPostHistoryDBRequest request)
  113. {
  114. return await _facturyPostHistoryDBRepository.DeleteOneAsync("Code", request.Code);
  115. }
  116. }
  117. }