Sfoglia il codice sorgente

Glendale interface docking completed

moell 10 mesi fa
parent
commit
f04aff3226

+ 2 - 0
app/Console/Commands/AddBimToConvertQueue.php

@@ -4,6 +4,7 @@ namespace App\Console\Commands;
 
 use App\Models\BimFile;
 use App\Models\Enums\BimFileConvertStatus;
+use App\Services\File\BIM\BIMDriverEnum;
 use App\Services\File\BIM\BIMFactory;
 use Carbon\Carbon;
 use Illuminate\Console\Command;
@@ -33,6 +34,7 @@ class AddBimToConvertQueue extends Command
         BimFile::query()
             ->where("created_at", ">=", Carbon::now()->subDay())
             ->whereIn("convert_status", [BimFileConvertStatus::NotAdded->value, BimFileConvertStatus::FAILED_TO_ADD_QUEUE->value])
+            ->where("bim_driver", BIMDriverEnum::BLACK_HOLE->value)
             ->chunkById(2000, function (Collection $bimFiles) {
                 $this->pushToQueue($bimFiles);
             });

+ 2 - 2
app/Console/Commands/SyncBimConvertStatus.php

@@ -42,9 +42,9 @@ class SyncBimConvertStatus extends Command
     {
         foreach ($bimFiles as $bimFile) {
             try {
-                $status = BIMFactory::make($bimFile->bim_driver)->findConvertStatus($bimFile->bim_data_set_id);
+                $statusArr = BIMFactory::make($bimFile->bim_driver)->findConvertStatus($bimFile->bim_data_set_id);
 
-                $bimFile->convert_status = $status;
+                $bimFile->fill($statusArr);
                 $bimFile->save();
             } catch (\Exception $exception) {
             }

+ 1 - 1
app/Models/BimFile.php

@@ -10,6 +10,6 @@ class BimFile extends Model
     use HasFactory;
 
     protected $fillable = [
-        'file_id', 'bim_driver', 'bim_data_set_id', 'bim_file_id', 'convert_status', 'error'
+        'file_id', 'bim_driver', 'bim_data_set_id', 'bim_file_id', 'convert_status', 'error', 'source_status',
     ];
 }

+ 16 - 0
app/Services/File/BIM/Abstracts/BIMAbstract.php

@@ -0,0 +1,16 @@
+<?php
+
+namespace App\Services\File\BIM\Abstracts;
+
+use App\Services\File\BIM\Contacts\BIMContact;
+
+abstract class BIMAbstract implements BIMContact
+{
+    protected function convertStatusFormat(int $status, $sourceStatus): array
+    {
+        return [
+            'convert_status' => $status,
+            'source_status' => $sourceStatus
+        ];
+    }
+}

+ 6 - 3
app/Services/File/BIM/BlackHole/BlackHole.php

@@ -3,12 +3,13 @@
 namespace App\Services\File\BIM\BlackHole;
 
 use App\Models\Enums\BimFileConvertStatus;
+use App\Services\File\BIM\Abstracts\BIMAbstract;
 use App\Services\File\BIM\BIMDriverEnum;
 use App\Services\File\BIM\Contacts\BIMContact;
 use GuzzleHttp\Psr7;
 use Illuminate\Http\UploadedFile;
 
-class BlackHole implements BIMContact
+class BlackHole extends BIMAbstract
 {
     public function uploadFile(UploadedFile $file, array $params = [])
     {
@@ -68,7 +69,7 @@ class BlackHole implements BIMContact
         return $result['data'] ?? [];
     }
 
-    public function findConvertStatus(string $dataSetId)
+    public function findConvertStatus(string $dataSetId): array
     {
         $result = Client::getInstance()->post("/blackHole3D/project/dataSet/getConvertStatus", [
             'json' => [
@@ -76,13 +77,15 @@ class BlackHole implements BIMContact
             ]
         ]);
 
-        return match ($result['data']['status']) {
+        $status = match ($result['data']['status']) {
             0, 1 => BimFileConvertStatus::IN_QUEUE->value,
             2 => BimFileConvertStatus::CONVERTING->value,
             5 => BimFileConvertStatus::PAUSE->value,
             10 => BimFileConvertStatus::DONE->value,
             20 => BimFileConvertStatus::FAILED_TO_ADD_QUEUE->value,
         };
+
+        return $this->convertStatusFormat($status, $result['data']['status']);
     }
 
     public function addToConvertQueue(string $dataSetId): array

+ 1 - 1
app/Services/File/BIM/Contacts/BIMContact.php

@@ -10,7 +10,7 @@ interface BIMContact {
 
     public function downloadSourceFile();
 
-    public function findConvertStatus(string $dataSetId);
+    public function findConvertStatus(string $dataSetId): array;
 
     public function viewDataSetModel(array $dataSetIDS);
 

+ 2 - 2
app/Services/File/BIM/Glendale/Client.php

@@ -45,8 +45,8 @@ class Client {
     }
 
     public function get(string $uri, array $params = []) {
-        return $this->request("POST", $uri, [
-            'query_params' => $params
+        return $this->request("GET", $uri, [
+            'query' => $params
         ]);
     }
 

+ 14 - 12
app/Services/File/BIM/Glendale/Glendale.php

@@ -3,14 +3,14 @@
 namespace App\Services\File\BIM\Glendale;
 
 use App\Models\Enums\BimFileConvertStatus;
+use App\Services\File\BIM\Abstracts\BIMAbstract;
 use App\Services\File\BIM\BIMDriverEnum;
 use App\Services\File\BIM\Contacts\BIMContact;
 use Illuminate\Http\UploadedFile;
 use Illuminate\Support\Facades\Auth;
-use Illuminate\Support\Facades\Storage;
 use Ramsey\Uuid\Uuid;
 
-class Glendale implements BIMContact
+class Glendale extends BIMAbstract
 {
 
     public function uploadFile(UploadedFile $file, array $params = [])
@@ -36,7 +36,7 @@ class Glendale implements BIMContact
         return [
             'bim_data_set_id' => $result['datas']['lightweightName'],
             'bim_file_id' => $result['datas']['lightweightName'],
-            'bim_convert_status' => 0,
+            'bim_convert_status' => BimFileConvertStatus::IN_QUEUE->value,
             'bim_driver' => BIMDriverEnum::GLENDALE->value,
         ];
     }
@@ -46,10 +46,10 @@ class Glendale implements BIMContact
         // TODO: Implement downloadSourceFile() method.
     }
 
-    public function findConvertStatus(string $dataSetId)
+    public function findConvertStatus(string $dataSetId): array
     {
         $result = Client::getInstance()->post('/api/app/model/query-model-info', [
-            'query_params' => [
+            'query' => [
                 'LightweightName' => $dataSetId
             ]
         ]);
@@ -66,22 +66,24 @@ class Glendale implements BIMContact
             return BimFileConvertStatus::IN_QUEUE->value;
         };
 
-        return match ($result['data']['status']) {
+        $status = match ($result['datas'][0]['status']) {
             0, 1, 101 => BimFileConvertStatus::IN_QUEUE->value,
             100 => BimFileConvertStatus::DONE->value,
-            default => $getStatus($result['data']['status'])
+            default => $getStatus($result['datas'][0]['status'])
         };
+
+        return $this->convertStatusFormat($status, $result['datas'][0]['status']);
     }
 
     public function viewDataSetModel(array $dataSetIDS)
     {
-        $result = Client::getInstance()->get('/api/app/model/model-SourceFileurl', [
-            'LightweightName' => $dataSetIDS[0]
+        $result = Client::getInstance()->post('/api/app/model/query-model-info', [
+            'query' => [
+                'LightweightName' => $dataSetIDS[0]
+            ]
         ]);
 
-        return [
-            'datas' => $result['datas']
-        ];
+        return $result['datas'] ?? [];
     }
 
     public function addToConvertQueue(string $dataSetId): array

+ 28 - 0
database/migrations/2024_05_15_194517_add_source_status_to_bim_files_table.php

@@ -0,0 +1,28 @@
+<?php
+
+use Illuminate\Database\Migrations\Migration;
+use Illuminate\Database\Schema\Blueprint;
+use Illuminate\Support\Facades\Schema;
+
+return new class extends Migration
+{
+    /**
+     * Run the migrations.
+     */
+    public function up(): void
+    {
+        Schema::table('bim_files', function (Blueprint $table) {
+            $table->string("source_status", 30)->nullable();
+        });
+    }
+
+    /**
+     * Reverse the migrations.
+     */
+    public function down(): void
+    {
+        Schema::table('bim_files', function (Blueprint $table) {
+            $table->dropColumn(['source_status']);
+        });
+    }
+};