TeamRegionDBService.cs 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145
  1. using System.Threading.Tasks;
  2. using System.Collections.Generic;
  3. using MongoDB.Driver;
  4. using VitalService.Entities;
  5. using WingServerCommon.Mapper;
  6. using VitalService.Request;
  7. using WingInterfaceLibrary.Interface.DBVitalInterface;
  8. using WingInterfaceLibrary.Request.DBVitalRequest;
  9. using WingInterfaceLibrary.DTO.Vital;
  10. using WingInterfaceLibrary.Request;
  11. using WingInterfaceLibrary.Enum.VitalEnum;
  12. namespace VitalService.Service
  13. {
  14. /// <summary>
  15. /// 团队区域数据服务
  16. /// </summary>
  17. public partial class VitalDatabaseService : IVitalTeamRegionDBService
  18. {
  19. /// <summary>
  20. /// 创建团队区域数据
  21. /// </summary>
  22. /// <param name="request">创建请求</param>
  23. /// <returns></returns>
  24. public async Task<string> CreateTeamRegionAsync(CreateTeamRegionDBRequest request)
  25. {
  26. var entity = request.MappingTo<TeamRegionEntity>();
  27. await SetRequestCreatedFrom(entity, request.OperationDoctor, true);
  28. return await _teamRegionDBRepository.InsertOneAsync(entity);
  29. }
  30. /// <summary>
  31. /// 根据编码获取团队区域数据
  32. /// </summary>
  33. /// <param name="request">获取请求</param>
  34. /// <returns></returns>
  35. public async Task<TeamRegionDTO> GetTeamRegionDetailAsync(GetTeamRegionDBRequest request)
  36. {
  37. var filter = Builders<TeamRegionEntity>.Filter.Eq(x => x.Code, request.Code);
  38. filter = await AddPermissionFilter(filter, request.OperationDoctor);
  39. var result = await _teamRegionDBRepository.FindOneAsync(filter);
  40. return result.MappingTo<TeamRegionDTO>();
  41. }
  42. /// <summary>
  43. /// 根据关键字段获取团队区域数据
  44. /// </summary>
  45. /// <param name="request">获取请求</param>
  46. /// <returns></returns>
  47. public async Task<TeamRegionDTO> GetTeamRegionDetailByKeyAsync(GetTeamRegionByKeyDBRequest request)
  48. {
  49. var filter = Builders<TeamRegionEntity>.Filter.Eq(request.Key, request.Value);
  50. filter = await AddPermissionFilter(filter, request.OperationDoctor);
  51. var result = await _teamRegionDBRepository.FindOneAsync(filter);
  52. return result.MappingTo<TeamRegionDTO>();
  53. }
  54. /// <summary>
  55. /// 获取团队区域数据分页
  56. /// </summary>
  57. /// <param name="request">分页请求</param>
  58. /// <returns></returns>
  59. public async Task<PageCollection<TeamRegionDTO>> GetTeamRegionPageAsync(DBPageRequest request)
  60. {
  61. var filter = await _teamRegionDBRepository.GetPageFilter(request);
  62. filter = await AddPermissionFilter(filter, request.OperationDoctor);
  63. var pageFilter = new DBPageRequest<TeamRegionEntity>
  64. {
  65. PageIndex = request.PageIndex,
  66. PageSize = request.PageSize,
  67. Filter = filter,
  68. Sort = Builders<TeamRegionEntity>.Sort.Descending(x => x.CreateTime)
  69. };
  70. var result = await _teamRegionDBRepository.GetPages(pageFilter);
  71. return result.MappingTo<PageCollection<TeamRegionDTO>>();
  72. }
  73. /// <summary>
  74. /// 删除团队区域数据
  75. /// </summary>
  76. /// <param name="request">删除请求</param>
  77. /// <returns></returns>
  78. public async Task<bool> RemoveTeamRegionAsync(RemoveTeamRegionDBRequest request)
  79. {
  80. return await _teamRegionDBRepository.DeleteOneAsync("Code", request.Code);
  81. }
  82. /// <summary>
  83. /// 删除多个团队区域数据
  84. /// </summary>
  85. /// <param name="request">删除请求</param>
  86. /// <returns></returns>
  87. public async Task<long> RemoveTeamRegionListAsync(RemoveTeamRegionListDBRequest request)
  88. {
  89. var filter = new List<(string key, string val)>();
  90. foreach(var code in request.Codes)
  91. {
  92. filter.Add(("Code", code));
  93. }
  94. return await _teamRegionDBRepository.DeleteAllAsync(filter);
  95. }
  96. /// <summary>
  97. /// 获取团队区域数据列表
  98. /// </summary>
  99. /// <param name="request">列表请求</param>
  100. /// <returns></returns>
  101. public async Task<List<TeamRegionDTO>> GetTeamRegionListAsync(GetTeamRegionListDBRequest request)
  102. {
  103. var filter = Builders<TeamRegionEntity>.Filter.In(f=>f.Code, request.Codes);
  104. filter = await AddPermissionFilter(filter, request.OperationDoctor);
  105. var result = await _teamRegionDBRepository.FindAllAsync(filter);
  106. return result.MappingTo<List<TeamRegionDTO>>();
  107. }
  108. /// <summary>
  109. /// 根据关键字段获取团队区域数据列表
  110. /// </summary>
  111. /// <param name="request">列表请求</param>
  112. /// <returns></returns>
  113. public async Task<List<TeamRegionDTO>> GetTeamRegionListByKeyAsync(GetTeamRegionListByKeyDBRequest request)
  114. {
  115. var filter = Builders<TeamRegionEntity>.Filter.Eq(request.Key, request.Value);
  116. filter = await AddPermissionFilter(filter, request.OperationDoctor);
  117. var result = await _teamRegionDBRepository.FindAllAsync(filter);
  118. return result.MappingTo<List<TeamRegionDTO>>();
  119. }
  120. /// <summary>
  121. /// 更新团队区域数据
  122. /// </summary>
  123. /// <param name="request">更新请求</param>
  124. /// <returns></returns>
  125. public async Task<bool> UpdateTeamRegionAsync(UpdateTeamRegionDBRequest request)
  126. {
  127. var filter = Builders<TeamRegionEntity>.Filter.Eq(f => f.Code, request.Code);
  128. var update = Builders<TeamRegionEntity>.Update
  129. .Set(f => f.TeamCode, request.TeamCode)
  130. .Set(f => f.FullName, request.FullName)
  131. .Set(f => f.RegionCode, request.RegionCode);
  132. return await _teamRegionDBRepository.UpdateOneAsync(filter, update) > 0;
  133. }
  134. }
  135. }