|
@@ -0,0 +1,115 @@
|
|
|
+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,
|
|
|
+ FacturyType = request.FacturyType,
|
|
|
+ FacturyCode = request.FacturyCode,
|
|
|
+ FacturyName = request.FacturyName,
|
|
|
+ FatherCode = request.FatherCode ?? string.Empty,
|
|
|
+ FacturyData = request.FacturyData ?? new Dictionary<string, string>(),
|
|
|
+ };
|
|
|
+ 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.FacturyType, request.FacturyType)
|
|
|
+ .Set(f => f.FacturyCode, request.FacturyCode)
|
|
|
+ .Set(f => f.FacturyName, request.FacturyName)
|
|
|
+ .Set(f => f.FatherCode, request.FatherCode ?? string.Empty)
|
|
|
+ .Set(f => f.FacturyData, request.FacturyData)
|
|
|
+ .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);
|
|
|
+ filter &= Builders<FacturyPostHistoryEntity>.Filter.Where(f => f.FacturyCode == "");
|
|
|
+ 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)
|
|
|
+ {
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 删除数据
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="request">数据编码</param>
|
|
|
+ /// <returns></returns>
|
|
|
+ public async Task<bool> RemoveFacturyPostHistoryDBAsync(RemoveFacturyPostHistoryDBRequest request)
|
|
|
+ {
|
|
|
+ return await _facturyPostHistoryDBRepository.DeleteOneAsync("Code", request.Code);
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|