Преглед на файлове

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

peterguo преди 1 месец
родител
ревизия
d569aeac5b
променени са 3 файла, в които са добавени 12 реда и са изтрити 17 реда
  1. 3 2
      app/Http/Controllers/API/ActionController.php
  2. 2 2
      app/Repositories/ContainerFileRepository.php
  3. 7 13
      app/Services/File/Upload/FilesUploadTrait.php

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

@@ -27,13 +27,14 @@ class ActionController extends Controller
 
         $objectIds = [$objectId];
         if (ActionObjectType::CONTAINER_FILE->value == $objectType) {
-            ContainerFileRepository::getAllVersionFiles($model)->each(function ($file) use (&$objectIds) {
+            ContainerFileRepository::getSourceFileFiles($model)->each(function ($file) use (&$objectIds) {
                 $objectIds[] = $file->id;
+                $objectIds[] = $file->source_file_id;
             });
         }
 
         return $this->success([
-            'data' => ActionRepository::actionWithHistory($actionObjectType, $objectIds),
+            'data' => ActionRepository::actionWithHistory($actionObjectType, array_unique($objectIds)),
         ]);
     }
 

+ 2 - 2
app/Repositories/ContainerFileRepository.php

@@ -7,12 +7,12 @@ use Illuminate\Database\Eloquent\Collection;
 
 class ContainerFileRepository
 {
-    public static function getAllVersionFiles(File $file): Collection|array
+    public static function getSourceFileFiles(File $file): Collection|array
     {
         return File::query()
             ->where('object_type', $file->object_type)
             ->where('object_id', $file->object_id)
-            ->where("title", $file->title)
+            ->where("source_file_id", $file->source_file_id)
             ->where("folder_id", $file->folder_id)
             ->get();
     }

+ 7 - 13
app/Services/File/Upload/FilesUploadTrait.php

@@ -153,26 +153,20 @@ trait FilesUploadTrait
     protected function storeFile(array $fileArr): File
     {
         if ($fileArr['object_id'] && $fileArr['source'] == 1 || $fileArr['uuid'] && $fileArr['source'] == 1) {
-            $version = File::query()
+            $sameNameFile = File::query()
                 ->where('object_type', $fileArr['object_type'])
                 ->where('object_id', $fileArr['object_id'])
                 ->where("title", $fileArr['title'])
                 ->where("source", 1)
                 ->where("folder_id", $fileArr['folder_id'] ?? 0)
-                ->count();
-            $fileArr['version'] = $version + 1;
+                ->where('is_latest_version', 1)
+                ->first();
+
+            $fileArr['version'] = intval($sameNameFile?->version) + 1;
             $fileArr['is_latest_version'] = 1;
+            $fileArr['source_file_id'] = $sameNameFile?->source_file_id ? $sameNameFile->source_file_id : $sameNameFile?->id;
 
-            File::query()
-                ->where('object_type', $fileArr['object_type'])
-                ->where('object_id', $fileArr['object_id'])
-                ->where("title", $fileArr['title'])
-                ->where("folder_id", $fileArr['folder_id'] ?? 0)
-                ->where("source", 1)
-                ->where("is_latest_version", 1)
-                ->update([
-                    'is_latest_version' => 0
-                ]);
+            $sameNameFile?->update(['is_latest_version' => 0]);
         }
 
         $file = File::query()->create($fileArr);