refactor: 获取授权树或者资产列表时避免读时锁

This commit is contained in:
xinwen
2021-03-03 15:36:42 +08:00
committed by Jiangjie.Bai
parent 91a26abf9e
commit 78bf6f5817
2 changed files with 33 additions and 25 deletions

View File

@@ -29,8 +29,12 @@ class AllGrantedAssetPagination(GrantedAssetPaginationBase):
def get_count_from_nodes(self, queryset):
if settings.PERM_SINGLE_ASSET_TO_UNGROUP_NODE:
return None
assets_amount = sum(UserAssetGrantedTreeNodeRelation.objects.filter(
values = UserAssetGrantedTreeNodeRelation.objects.filter(
user=self._user, node_parent_key=''
).values_list('node_assets_amount', flat=True))
).values_list('node_assets_amount', flat=True)
if not values:
return None
assets_amount = sum(values)
logger.debug(f'Hit all assets amount {assets_amount} -> {self._request.get_full_path()}')
return assets_amount