|
@@ -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);
|