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 { /// /// 第三方厂商数据推送记录 /// public partial class VitalDatabaseService : IVitalFacturyPostHistoryDBService { /// /// 创建数据 /// /// 创建请求 /// public async Task CreateFacturyPostHistoryDBAsync(CreateFacturyPostHistoryDBRequest request) { var entity = new FacturyPostHistoryEntity { FacturyUniqueCode = request.FacturyUniqueCode, }; return await _facturyPostHistoryDBRepository.InsertOneAsync(entity); } /// /// 更新数据 /// /// 更新请求 /// public async Task UpdateFacturyPostHistoryDBAsync(UpdateFacturyPostHistoryDBRequest request) { var code = request.Code; if (!string.IsNullOrWhiteSpace(code)) { var entity = await _facturyPostHistoryDBRepository.FindOneAsync(Builders.Filter.Eq(f => f.Code, code)); if (entity != null && !entity.IsDelete) { var filter = Builders.Filter.Eq(f => f.Code, code); var update = Builders.Update .Set(f => f.UpdateTime, DateTime.UtcNow); return await _facturyPostHistoryDBRepository.UpdateOneAsync(filter, update) > 0; } } return false; } /// /// 根据编码获取第三方厂商数据推送记录 /// /// 数据编码 /// public async Task GetFacturyPostHistoryDBAsync(GetFacturyPostHistoryDBRequest request) { var filter = Builders.Filter.Eq(f => f.Code, request.Code); var result = await _facturyPostHistoryDBRepository.FindOneAsync(filter); return result.MappingTo(); } /// /// 分页获取第三方厂商数据推送记录 /// /// 分页请求 /// public async Task> GetFacturyPostHistoryByPageDBAsync(GetFacturyPostHistoryByPageDBRequest request) { var filter = await _facturyPostHistoryDBRepository.GetPageFilter(request); var pageFilter = new DBPageRequest { PageIndex = request.PageIndex, PageSize = request.PageSize, Filter = filter, Sort = Builders.Sort.Descending(x => x.CreateTime) }; var result = await _facturyPostHistoryDBRepository.GetPages(pageFilter); return result.MappingTo>(); } /// /// 获取所有未推送数据记录 /// /// 分页请求 /// public async Task> GetNonPostHistoryDBAsync(GetNonPostHistoryDBRequest request) { return null; } /// /// 删除数据 /// /// 数据编码 /// public async Task RemoveFacturyPostHistoryDBAsync(RemoveFacturyPostHistoryDBRequest request) { return await _facturyPostHistoryDBRepository.DeleteOneAsync("Code", request.Code); } } }