peterguo 1 ay önce
ebeveyn
işleme
493a3b6434
1 değiştirilmiş dosya ile 25 ekleme ve 7 silme
  1. 25 7
      app/Http/Controllers/API/FolderController.php

+ 25 - 7
app/Http/Controllers/API/FolderController.php

@@ -408,29 +408,47 @@ class FolderController extends Controller
         $objectType = $request->get("object_type");
         $objectId = $request->get("object_id");
         $name=$request->get('name');
+        $docStages = $request->get('doc_stage', []); // 支持多选
+        $docTypes = $request->get('doc_type', []); // 支持多选
+        $namingRuleIds = $request->get('naming_rule_id', []); // 支持多选
 
         $folderObjectType = FolderObjectType::from($objectType);
 
         $folderObjectType->modelBuilderAllowed()->findOrFail($objectId);
 
-        $objectWhere = ['object_type' => $objectType, 'object_id' => $objectId,];
+        $objectWhere = ['object_type' => $objectType, 'object_id' => $objectId];
 
         $folders = Folder::query()
             ->where($objectWhere)
             ->where('name','like',"%$name%")
             ->get();
 
-        $newFolders=$folders?$service->folderFormat($folders):[];
+        $newFolders = $folders ? $service->folderFormat($folders) : [];
 
-        $file=File::query()
+        $fileQuery = File::query()
             ->with('bimFile')
             ->where($objectWhere)
             ->where('title','like',"%$name%")
-            ->where("is_latest_version", 1)
-            ->get();
-        $folderCount=count($newFolders)+1;
-        $newFiles=$file?$service->filesFormat($file,$folderCount):[];
+            ->where("is_latest_version", 1);
+        
+        // 添加doc_stage多选过滤
+        if (!empty($docStages)) {
+            $fileQuery->whereIn('doc_stage', $docStages);
+        }
+
+        // 添加doc_type多选过滤
+        if (!empty($docTypes)) {
+            $fileQuery->whereIn('doc_type', $docTypes);
+        }
+
+        // 添加naming_rule_id多选过滤
+        if (!empty($namingRuleIds)) {
+            $fileQuery->whereIn('naming_rule_id', $namingRuleIds);
+        }
 
+        $file = $fileQuery->get();
+        $folderCount = count($newFolders) + 1;
+        $newFiles = $file ? $service->filesFormat($file, $folderCount) : [];
 
         return $this->success([
             'data' => [