Forráskód Böngészése

Merge branch 'refs/heads/peterguo-dev' into dev

peterguo 1 hónapja
szülő
commit
61628d6c9b

+ 11 - 2
app/Http/Controllers/API/ActionController.php

@@ -8,7 +8,9 @@ use App\Models\Action;
 use App\Models\Enums\ActionObjectType;
 use App\Models\Enums\FileObjectType;
 use App\Models\Enums\ObjectAction;
+use App\Models\File;
 use App\Repositories\ActionRepository;
+use App\Repositories\ContainerFileRepository;
 use App\Services\File\FileAssociationService;
 use App\Services\File\ImageUrlService;
 use DOMDocument;
@@ -21,10 +23,17 @@ class ActionController extends Controller
     {
         $actionObjectType = ActionObjectType::from($objectType);
 
-        $actionObjectType->modelBuilder()->where("company_id", Auth::user()->company_id)->findOrFail($objectId);
+        $model = $actionObjectType->modelBuilder()->where("company_id", Auth::user()->company_id)->findOrFail($objectId);
+
+        $objectIds = [$objectId];
+        if (ActionObjectType::CONTAINER_FILE->value == $objectType) {
+            ContainerFileRepository::getAllVersionFiles($model)->each(function ($file) use (&$objectIds) {
+                $objectIds[] = $file->id;
+            });
+        }
 
         return $this->success([
-            'data' => ActionRepository::actionWithHistory($actionObjectType, $objectId),
+            'data' => ActionRepository::actionWithHistory($actionObjectType, $objectIds),
         ]);
     }
 

+ 1 - 0
app/Http/Controllers/API/FileController.php

@@ -361,6 +361,7 @@ class FileController extends Controller
             ->where('is_bim', 1)
             ->where('object_type', $file->object_type)
             ->where('object_id', $file->object_id)
+            ->where('folder_id', $file->folder_id)
             ->where('title', $file->title)
             ->latest('version')
             ->paginate($pageSize);

+ 2 - 2
app/Repositories/ActionRepository.php

@@ -387,12 +387,12 @@ class ActionRepository
         return $objectNames;
     }
 
-    public static function actionWithHistory(ActionObjectType $actionObjectType, string $objectId): array
+    public static function actionWithHistory(ActionObjectType $actionObjectType, array $objectIds): array
     {
         $actions = Action::query()
             ->with(['histories', 'createdBy'])
             ->where("object_type", $actionObjectType->value)
-            ->where("object_id", $objectId)
+            ->whereIn("object_id", $objectIds)
             ->orderBy("created_at")
             ->get();
 

+ 19 - 0
app/Repositories/ContainerFileRepository.php

@@ -0,0 +1,19 @@
+<?php
+
+namespace App\Repositories;
+
+use App\Models\File;
+use Illuminate\Database\Eloquent\Collection;
+
+class ContainerFileRepository
+{
+    public static function getAllVersionFiles(File $file): Collection|array
+    {
+        return File::query()
+            ->where('object_type', $file->object_type)
+            ->where('object_id', $file->object_id)
+            ->where("title", $file->title)
+            ->where("folder_id", $file->folder_id)
+            ->get();
+    }
+}