Browse Source

知识总览查询返回部门总量

zhouyuexiang 2 months ago
parent
commit
4b62ff1327

+ 3 - 1
api/controllers/console/datasets/datasets.py

@@ -32,6 +32,7 @@ from libs.login import login_required
 from models import ApiToken, Dataset, Document, DocumentSegment, UploadFile
 from models.dataset import DatasetPermissionEnum
 from services.dataset_service import DatasetPermissionService, DatasetService, DocumentService
+from services.dept_service import DeptService
 
 
 def _validate_name(name):
@@ -794,7 +795,8 @@ class DatasetCountApi(Resource):
         tenant_id = request.args.get("tenant_id", default=None, type=str)
         datasets_count = DatasetService.get_datasets_count(tenant_id, current_user)
         tags_count = DatasetService.get_tags_count(tenant_id)
-        response = {"datasets_count": datasets_count, "tags_count": tags_count, "depts_count": 0}
+        depts_count = DeptService.get_depts_count()
+        response = {"datasets_count": datasets_count, "tags_count": tags_count, "depts_count": depts_count}
         return {"data": response}, 200
 
 

+ 0 - 3
api/services/dataset_service.py

@@ -180,19 +180,16 @@ class DatasetService:
             query = query.filter(Dataset.tenant_id == tenant_id)
 
         if user:
-            # Get dataset IDs that the user has permission to access
             dataset_permission = DatasetPermission.query.filter_by(account_id=user.id, tenant_id=tenant_id).all()
             permitted_dataset_ids = {dp.dataset_id for dp in dataset_permission} if dataset_permission else None
 
             if user.current_role == TenantAccountRole.DATASET_OPERATOR:
-                # Only show datasets that the user has permission to access
                 if permitted_dataset_ids:
                     query = query.filter(Dataset.id.in_(permitted_dataset_ids))
                 else:
                     return 0
             else:
                 if user.current_role != TenantAccountRole.OWNER:
-                    # Show all datasets that the user has permission to access
                     if permitted_dataset_ids:
                         query = query.filter(
                             db.or_(

+ 5 - 0
api/services/dept_service.py

@@ -204,3 +204,8 @@ class DeptService:
                 }
             )
         return dept_list
+
+    @staticmethod
+    def get_depts_count():
+        count = db.session.query(Dept).filter(Dept.status == "active").count()
+        return count