mirror of
https://github.com/Caraxi/mare.server.git
synced 2025-12-11 05:57:21 +01:00
remove unnecessary double-query on get shared data
This commit is contained in:
parent
c7287a8283
commit
7d8ebe88f3
1 changed files with 3 additions and 27 deletions
|
|
@ -145,7 +145,9 @@ public partial class MareHub
|
||||||
.Include(u => u.AllowedIndividiuals)
|
.Include(u => u.AllowedIndividiuals)
|
||||||
.Include(u => u.Poses)
|
.Include(u => u.Poses)
|
||||||
.Include(u => u.Uploader)
|
.Include(u => u.Uploader)
|
||||||
.Where(p => p.ShareType == CharaDataShare.Shared && validPairs.Contains(p.UploaderUID))
|
.Where(p => p.UploaderUID != UserUID && p.ShareType == CharaDataShare.Shared)
|
||||||
|
.Where(p => (validPairs.Contains(p.UploaderUID)
|
||||||
|
|| (p.AllowedIndividiuals.Any(u => u.AllowedUserUID == UserUID || (u.AllowedGroupGID != null && groups.Contains(u.AllowedGroupGID))))))
|
||||||
.AsSplitQuery()
|
.AsSplitQuery()
|
||||||
.AsNoTracking()
|
.AsNoTracking()
|
||||||
.ToListAsync()
|
.ToListAsync()
|
||||||
|
|
@ -159,32 +161,6 @@ public partial class MareHub
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
var ownGroups = await DbContext.GroupPairs.Where(u => u.GroupUserUID == UserUID)
|
|
||||||
.Select(k => k.GroupGID)
|
|
||||||
.ToListAsync()
|
|
||||||
.ConfigureAwait(false);
|
|
||||||
|
|
||||||
var charaDataDirectlyShared = await DbContext.CharaData.Include(u => u.Files)
|
|
||||||
.Include(u => u.OriginalFiles)
|
|
||||||
.Include(u => u.AllowedIndividiuals)
|
|
||||||
.Include(u => u.Poses)
|
|
||||||
.Include(u => u.Uploader)
|
|
||||||
.Where(p => p.UploaderUID != UserUID
|
|
||||||
&& p.ShareType == CharaDataShare.Shared
|
|
||||||
&& (p.AllowedIndividiuals.Any(u => u.AllowedUserUID == UserUID || (u.AllowedGroupGID != null && ownGroups.Contains(u.AllowedGroupGID)))))
|
|
||||||
.AsSplitQuery()
|
|
||||||
.AsNoTracking()
|
|
||||||
.ToListAsync()
|
|
||||||
.ConfigureAwait(false);
|
|
||||||
|
|
||||||
foreach (var data in charaDataDirectlyShared)
|
|
||||||
{
|
|
||||||
if (sharedCharaData.Exists(d => string.Equals(d.Id, data.Id, StringComparison.Ordinal)
|
|
||||||
&& string.Equals(d.UploaderUID, d.UploaderUID, StringComparison.Ordinal)))
|
|
||||||
continue;
|
|
||||||
sharedCharaData.Add(data);
|
|
||||||
}
|
|
||||||
|
|
||||||
_logger.LogCallInfo(MareHubLogger.Args("SUCCESS", sharedCharaData.Count));
|
_logger.LogCallInfo(MareHubLogger.Args("SUCCESS", sharedCharaData.Count));
|
||||||
|
|
||||||
return [.. sharedCharaData.Select(GetCharaDataMetaInfoDto)];
|
return [.. sharedCharaData.Select(GetCharaDataMetaInfoDto)];
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue