UserFeatureDBService.cs 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179
  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 : IVitalUserFeatureDBService
  18. {
  19. /// <summary>
  20. /// 创建用户权限数据
  21. /// </summary>
  22. /// <param name="request">创建请求</param>
  23. /// <returns></returns>
  24. public async Task<string> CreateUserFeatureAsync(CreateUserFeatureDBRequest request)
  25. {
  26. var entity = request.MappingTo<UserFeatureEntity>();
  27. return await _userFeatureDBRepository.InsertOneAsync(entity);
  28. }
  29. /// <summary>
  30. /// 根据编码获取用户权限数据
  31. /// </summary>
  32. /// <param name="request">获取请求</param>
  33. /// <returns></returns>
  34. public async Task<UserFeatureDTO> GetUserFeatureDetailAsync(GetUserFeatureDBRequest request)
  35. {
  36. var filter = Builders<UserFeatureEntity>.Filter.Eq(x => x.Code, request.Code);
  37. var result = await _userFeatureDBRepository.FindOneAsync(filter);
  38. return result.MappingTo<UserFeatureDTO>();
  39. }
  40. /// <summary>
  41. /// 根据关键字段获取用户权限数据
  42. /// </summary>
  43. /// <param name="request">获取请求</param>
  44. /// <returns></returns>
  45. public async Task<UserFeatureDTO> GetUserFeatureDetailByKeyAsync(GetUserFeatureByKeyDBRequest request)
  46. {
  47. var filter = Builders<UserFeatureEntity>.Filter.Eq(request.Key, request.Value);
  48. var result = await _userFeatureDBRepository.FindOneAsync(filter);
  49. return result.MappingTo<UserFeatureDTO>();
  50. }
  51. /// <summary>
  52. /// 获取用户权限数据分页
  53. /// </summary>
  54. /// <param name="request">分页请求</param>
  55. /// <returns></returns>
  56. public async Task<PageCollection<UserFeatureDTO>> GetUserFeaturePageAsync(DBPageRequest request)
  57. {
  58. var filter = await _userFeatureDBRepository.GetPageFilter(request);
  59. var pageFilter = new DBPageRequest<UserFeatureEntity>
  60. {
  61. PageIndex = request.PageIndex,
  62. PageSize = request.PageSize,
  63. Filter = filter,
  64. Sort = Builders<UserFeatureEntity>.Sort.Descending(x => x.CreateTime).Ascending(x => x.Code)
  65. };
  66. var result = await _userFeatureDBRepository.GetPages(pageFilter);
  67. return result.MappingTo<PageCollection<UserFeatureDTO>>();
  68. }
  69. /// <summary>
  70. /// 删除用户权限数据
  71. /// </summary>
  72. /// <param name="request">删除请求</param>
  73. /// <returns></returns>
  74. public async Task<bool> RemoveUserFeatureAsync(RemoveUserFeatureDBRequest request)
  75. {
  76. return await _userFeatureDBRepository.DeleteOneAsync("Code", request.Code);
  77. }
  78. /// <summary>
  79. /// 删除多个用户权限数据
  80. /// </summary>
  81. /// <param name="request">删除请求</param>
  82. /// <returns></returns>
  83. public async Task<long> RemoveUserFeatureListAsync(RemoveUserFeatureListDBRequest request)
  84. {
  85. var filter = new List<(string key, string val)>();
  86. foreach (var code in request.Codes)
  87. {
  88. filter.Add(("Code", code));
  89. }
  90. return await _userFeatureDBRepository.DeleteAllAsync(filter);
  91. }
  92. /// <summary>
  93. /// 获取用户权限数据列表
  94. /// </summary>
  95. /// <param name="request">列表请求</param>
  96. /// <returns></returns>
  97. public async Task<List<UserFeatureDTO>> GetUserFeatureListAsync(GetUserFeatureListDBRequest request)
  98. {
  99. var filter = Builders<UserFeatureEntity>.Filter.In(f => f.Code, request.Codes);
  100. var result = await _userFeatureDBRepository.FindAllAsync(filter);
  101. return result.MappingTo<List<UserFeatureDTO>>();
  102. }
  103. /// <summary>
  104. /// 根据关键字段获取用户权限数据列表
  105. /// </summary>
  106. /// <param name="request">列表请求</param>
  107. /// <returns></returns>
  108. public async Task<List<UserFeatureDTO>> GetUserFeatureListByKeyAsync(GetUserFeatureListByKeyDBRequest request)
  109. {
  110. var filter = Builders<UserFeatureEntity>.Filter.Eq(request.Key, request.Value);
  111. var result = await _userFeatureDBRepository.FindAllAsync(filter);
  112. return result.MappingTo<List<UserFeatureDTO>>();
  113. }
  114. /// <summary>
  115. /// 更新用户权限数据
  116. /// </summary>
  117. /// <param name="request">更新请求</param>
  118. /// <returns></returns>
  119. public async Task<bool> UpdateUserFeatureAsync(UpdateUserFeatureDBRequest request)
  120. {
  121. var filter = Builders<UserFeatureEntity>.Filter.Eq(f => f.Code, request.Code);
  122. var update = Builders<UserFeatureEntity>.Update
  123. .Set(f => f.FeatureName, request.FeatureName)
  124. .Set(f => f.FeatureShowName, request.FeatureShowName)
  125. .Set(f => f.Description, request.Description)
  126. .Set(f => f.FatherCode, request.FatherCode)
  127. .Set(f => f.Sort, request.Sort)
  128. .Set(f => f.AppType, request.AppType)
  129. .Set(f => f.FeatureType, request.FeatureType);
  130. return await _userFeatureDBRepository.UpdateOneAsync(filter, update) > 0;
  131. }
  132. private async Task<UserFeatureDTO> ConvertToDTO(UserFeatureEntity entity)
  133. {
  134. if (entity == null) return null;
  135. var dto = entity.MappingTo<UserFeatureDTO>();
  136. return dto;
  137. }
  138. private async Task<List<UserFeatureDTO>> ConvertToDTOList(List<UserFeatureEntity> entitys)
  139. {
  140. if (entitys == null || entitys.Count == 0) return new List<UserFeatureDTO>();
  141. var resultList = new List<UserFeatureDTO>();
  142. foreach (var entity in entitys)
  143. {
  144. if (entity == null)
  145. {
  146. continue;
  147. }
  148. var record = entity.MappingTo<UserFeatureDTO>();
  149. resultList.Add(record);
  150. }
  151. return resultList;
  152. }
  153. private async Task<PageCollection<UserFeatureDTO>> ConvertToDTOPage(PageCollection<UserFeatureEntity> entitys)
  154. {
  155. var resultPage = new PageCollection<UserFeatureDTO>
  156. {
  157. DataCount = entitys.DataCount,
  158. CurrentPage = entitys.CurrentPage,
  159. PageSize = entitys.PageSize,
  160. PageData = await ConvertToDTOList(entitys.PageData)
  161. };
  162. return resultPage;
  163. }
  164. }
  165. }