123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123 |
- using MongoDB.Driver;
- using VitalService.Entities;
- using WingServerCommon.Mapper;
- using VitalService.Request;
- using WingInterfaceLibrary.Request.DBVitalRequest;
- using WingInterfaceLibrary.DTO.Vital;
- using WingInterfaceLibrary.Request;
- using WingInterfaceLibrary.Interface.DBVitalInterface;
- namespace VitalService.Service
- {
- /// <summary>
- /// 第三方厂商数据推送记录
- /// </summary>
- public partial class VitalDatabaseService : IVitalFacturyPostHistoryDBService
- {
- /// <summary>
- /// 创建数据
- /// </summary>
- /// <param name="request">创建请求</param>
- /// <returns></returns>
- public async Task<string> CreateFacturyPostHistoryDBAsync(CreateFacturyPostHistoryDBRequest request)
- {
- var entity = new FacturyPostHistoryEntity
- {
- FacturyUniqueCode = request.FacturyUniqueCode ?? string.Empty,
- FacturyUrl = request.FacturyUrl,
- IDCardNo = request.IDCardNo,
- PatientName = request.PatientName,
- ApiType = request.ApiType,
- Status = request.Status,
- PostTime = request.PostTime,
- Headers = request.Headers,
- Content = request.Content,
- Result = request.Result,
- };
- return await _facturyPostHistoryDBRepository.InsertOneAsync(entity);
- }
- /// <summary>
- /// 更新数据
- /// </summary>
- /// <param name="request">更新请求</param>
- /// <returns></returns>
- public async Task<bool> UpdateFacturyPostHistoryDBAsync(UpdateFacturyPostHistoryDBRequest request)
- {
- var code = request.Code;
- if (!string.IsNullOrWhiteSpace(code))
- {
- var entity = await _facturyPostHistoryDBRepository.FindOneAsync(Builders<FacturyPostHistoryEntity>.Filter.Eq(f => f.Code, code));
- if (entity != null && !entity.IsDelete)
- {
- var filter = Builders<FacturyPostHistoryEntity>.Filter.Eq(f => f.Code, code);
- var update = Builders<FacturyPostHistoryEntity>.Update
- .Set(f => f.Status, request.Status)
- .Set(f => f.Result, request.Result)
- .Set(f => f.PostTime, request.PostTime)
- .Set(f => f.UpdateTime, DateTime.UtcNow);
- return await _facturyPostHistoryDBRepository.UpdateOneAsync(filter, update) > 0;
- }
- }
- return false;
- }
- /// <summary>
- /// 根据编码获取第三方厂商数据推送记录
- /// </summary>
- /// <param name="request">数据编码</param>
- /// <returns></returns>
- public async Task<FacturyPostHistoryDTO> GetFacturyPostHistoryDBAsync(GetFacturyPostHistoryDBRequest request)
- {
- var filter = Builders<FacturyPostHistoryEntity>.Filter.Eq(f => f.Code, request.Code);
- var result = await _facturyPostHistoryDBRepository.FindOneAsync(filter);
- return result.MappingTo<FacturyPostHistoryDTO>();
- }
- /// <summary>
- /// 分页获取第三方厂商数据推送记录
- /// </summary>
- /// <param name="request">分页请求</param>
- /// <returns></returns>
- public async Task<PageCollection<FacturyPostHistoryDTO>> GetFacturyPostHistoryByPageDBAsync(GetFacturyPostHistoryByPageDBRequest request)
- {
- var filter = await _facturyPostHistoryDBRepository.GetPageFilter(request);
- if (request.Status > 0)
- {
- filter &= Builders<FacturyPostHistoryEntity>.Filter.Eq(x => x.Status, request.Status);
- }
- var pageFilter = new DBPageRequest<FacturyPostHistoryEntity>
- {
- PageIndex = request.PageIndex,
- PageSize = request.PageSize,
- Filter = filter,
- Sort = Builders<FacturyPostHistoryEntity>.Sort.Descending(x => x.CreateTime)
- };
- var result = await _facturyPostHistoryDBRepository.GetPages(pageFilter);
- return result.MappingTo<PageCollection<FacturyPostHistoryDTO>>();
- }
- /// <summary>
- /// 获取所有未推送数据记录
- /// </summary>
- /// <param name="request">分页请求</param>
- /// <returns></returns>
- public async Task<List<FacturyPostHistoryDTO>> GetNonPostHistoryDBAsync(GetNonPostHistoryDBRequest request)
- {
- var filter = Builders<FacturyPostHistoryEntity>.Filter.Eq(f => f.Status, 1);
- var entities = await _facturyPostHistoryDBRepository.FindAllAsync(filter);
- entities = entities.OrderBy(x => x.CreateTime).ToList();
- return entities.MappingTo<List<FacturyPostHistoryDTO>>();
- }
- /// <summary>
- /// 删除数据
- /// </summary>
- /// <param name="request">数据编码</param>
- /// <returns></returns>
- public async Task<bool> RemoveFacturyPostHistoryDBAsync(RemoveFacturyPostHistoryDBRequest request)
- {
- return await _facturyPostHistoryDBRepository.DeleteOneAsync("Code", request.Code);
- }
- }
- }
|