|
@@ -80,7 +80,7 @@ namespace VitalService.Service
|
|
public async Task<PageCollection<FacturyUserDTO>> GetFacturyOrgByPageDBAsync(GetFacturyOrgByPageDBRequest request)
|
|
public async Task<PageCollection<FacturyUserDTO>> GetFacturyOrgByPageDBAsync(GetFacturyOrgByPageDBRequest request)
|
|
{
|
|
{
|
|
var filter = await _facturyUserDBRepository.GetPageFilter(request);
|
|
var filter = await _facturyUserDBRepository.GetPageFilter(request);
|
|
- filter &= Builders<FacturyUserEntity>.Filter.Where(f => f.FacturyCode == "");
|
|
|
|
|
|
+ filter &= Builders<FacturyUserEntity>.Filter.Where(f => f.FatherCode == "");
|
|
var pageFilter = new DBPageRequest<FacturyUserEntity>
|
|
var pageFilter = new DBPageRequest<FacturyUserEntity>
|
|
{
|
|
{
|
|
PageIndex = request.PageIndex,
|
|
PageIndex = request.PageIndex,
|
|
@@ -100,7 +100,7 @@ namespace VitalService.Service
|
|
public async Task<PageCollection<FacturyUserDTO>> GetFacturyUserByPageDBAsync(GetFacturyUserByPageDBRequest request)
|
|
public async Task<PageCollection<FacturyUserDTO>> GetFacturyUserByPageDBAsync(GetFacturyUserByPageDBRequest request)
|
|
{
|
|
{
|
|
var filter = await _facturyUserDBRepository.GetPageFilter(request);
|
|
var filter = await _facturyUserDBRepository.GetPageFilter(request);
|
|
- filter &= Builders<FacturyUserEntity>.Filter.Where(f => f.FacturyCode == request.FacturyOrgCode);
|
|
|
|
|
|
+ filter &= Builders<FacturyUserEntity>.Filter.Where(f => f.FatherCode == request.FacturyOrgCode);
|
|
var pageFilter = new DBPageRequest<FacturyUserEntity>
|
|
var pageFilter = new DBPageRequest<FacturyUserEntity>
|
|
{
|
|
{
|
|
PageIndex = request.PageIndex,
|
|
PageIndex = request.PageIndex,
|
|
@@ -131,7 +131,54 @@ namespace VitalService.Service
|
|
/// <returns></returns>
|
|
/// <returns></returns>
|
|
public async Task<bool> RemoveFacturyUserDBAsync(RemoveFacturyUserDBRequest request)
|
|
public async Task<bool> RemoveFacturyUserDBAsync(RemoveFacturyUserDBRequest request)
|
|
{
|
|
{
|
|
- return await _facturyUserDBRepository.DeleteOneAsync("Code", request.Code);
|
|
|
|
|
|
+ var code = request.Code;
|
|
|
|
+ if (!string.IsNullOrWhiteSpace(code))
|
|
|
|
+ {
|
|
|
|
+ var entity = await _facturyUserDBRepository.FindOneAsync(Builders<FacturyUserEntity>.Filter.Eq(f => f.Code, code));
|
|
|
|
+ if (entity != null && !entity.IsDelete)
|
|
|
|
+ {
|
|
|
|
+ var filter = Builders<FacturyUserEntity>.Filter.Eq(f => f.Code, code);
|
|
|
|
+ var update = Builders<FacturyUserEntity>.Update
|
|
|
|
+ .Set(f => f.IsDelete, true)
|
|
|
|
+ .Set(f => f.UpdateTime, DateTime.UtcNow);
|
|
|
|
+ var res = await _facturyUserDBRepository.UpdateOneAsync(filter, update) > 0;
|
|
|
|
+ if (res)
|
|
|
|
+ {
|
|
|
|
+ var removeUserCodes = new List<string> { };
|
|
|
|
+ if (string.IsNullOrWhiteSpace(entity.FatherCode))
|
|
|
|
+ {
|
|
|
|
+ var filter2 = Builders<FacturyUserEntity>.Filter.Eq(f => f.FatherCode, code);
|
|
|
|
+ var orgUseers = await _facturyUserDBRepository.FindAllAsync(filter2);
|
|
|
|
+ if (orgUseers?.Any() ?? false)
|
|
|
|
+ {
|
|
|
|
+ removeUserCodes.AddRange(orgUseers.Select(x => x.Code));
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ else
|
|
|
|
+ {
|
|
|
|
+ removeUserCodes.Add(code);
|
|
|
|
+ }
|
|
|
|
+ if (removeUserCodes.Any())
|
|
|
|
+ {
|
|
|
|
+ var filterUser = Builders<UserEntity>.Filter.In(x => x.Code, removeUserCodes);
|
|
|
|
+ var userEntities = await _userDBRepository.FindAllAsync(filterUser);
|
|
|
|
+ if (userEntities?.Any() ?? false)
|
|
|
|
+ {
|
|
|
|
+ foreach (var user in userEntities)
|
|
|
|
+ {
|
|
|
|
+ var filterUser2 = Builders<UserEntity>.Filter.Eq(f => f.Code, user.Code);
|
|
|
|
+ var updateUser2 = Builders<UserEntity>.Update
|
|
|
|
+ .Set(f => f.FacturyUserCode, "")
|
|
|
|
+ .Set(f => f.UpdateTime, DateTime.UtcNow);
|
|
|
|
+ await _userDBRepository.UpdateOneAsync(filterUser2, updateUser2);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ return res;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ return false;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|