From b23adb421166ebaf526981a8f250b5d2b17188f5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E4=B8=9C=E4=BA=91?= Date: Wed, 13 Jul 2022 18:41:39 +0800 Subject: [PATCH] =?UTF-8?q?feat(studio.resource):=20=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E4=BA=86=E7=BA=BF=E6=A1=86=E6=A8=A1=E5=9E=8B=E7=9A=84=E8=B5=84?= =?UTF-8?q?=E6=BA=90=E6=A8=A1=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 李东云 --- .../Workspace/Tasks/Source/FrameDetail.php | 60 +++++++++++++++++++ .../Workspace/Tasks/Source/LatticeDetail.php | 5 +- .../Resource/Workspace/WorkspaceDetail.php | 19 ++++-- 3 files changed, 78 insertions(+), 6 deletions(-) create mode 100644 src/Studio/Resource/Workspace/Tasks/Source/FrameDetail.php diff --git a/src/Studio/Resource/Workspace/Tasks/Source/FrameDetail.php b/src/Studio/Resource/Workspace/Tasks/Source/FrameDetail.php new file mode 100644 index 0000000..c43b968 --- /dev/null +++ b/src/Studio/Resource/Workspace/Tasks/Source/FrameDetail.php @@ -0,0 +1,60 @@ + + * Powered by PhpStorm + * Created on 2022/5/13 + */ +declare(strict_types=1); + +namespace Singularity\HDK\Studio\Resource\Workspace\Tasks\Source; + +use Hyperf\Resource\Json\JsonResource; +use Singularity\HDK\Studio\Enums\TaskLatticeAction; +use Singularity\HDK\Studio\Resource\Field; +use Singularity\HDK\Studio\Resource\File; +use Singularity\HDK\Studio\Resource\Lattice as LatticeResource; +use Singularity\HDK\Utils\Resource\ClassicResponse; + +/** + * 晶格模型生成任务的 source 格式 + * Singularity\HDK\Studio\Resource\Workspace\Tasks\Source\Lattice@HDK + * + * @author 李东云 + * Powered by PhpStorm + * Created on 2022/5/13 + * + * @property string $fileId 要处理的模型文件 ID + * @property string $fileUrl 要处理的模型文件完整路径 + * @property TaskLatticeAction $action 模型精度 + * @property string $latticeId 晶格 + * @property float $scalingRatio 密度比,两位小数 + * @property float $size 晶格尺寸 + * @property float $wide 杆径粗细 + * @property int $surfaceNum 面数 + * @property int $fieldId + * @property LatticeResource $lattice + */ +final class FrameDetail extends JsonResource +{ + use ClassicResponse; + + public function toArray(): array + { + $action = $this->action ?? null; + return [ + 'modelName' => $this->modelName ?? $this?->source?->name, + 'field' => Field::make($this->field), + 'source' => File::make($this?->source), + 'action' => !isset($action) ? null : $action, + 'lattice' => LatticeResource::make($this->lattice), + 'scalingRatio' => $this->scalingRatio, + 'size' => $this->size, + 'wide' => $this->wide, + 'surfaceNum' => $this->surfaceNum, + 'output' => $this->when(isset($this->output), File::make($this?->output)), + ]; + } +} \ No newline at end of file diff --git a/src/Studio/Resource/Workspace/Tasks/Source/LatticeDetail.php b/src/Studio/Resource/Workspace/Tasks/Source/LatticeDetail.php index 541acfe..75aefbd 100644 --- a/src/Studio/Resource/Workspace/Tasks/Source/LatticeDetail.php +++ b/src/Studio/Resource/Workspace/Tasks/Source/LatticeDetail.php @@ -34,8 +34,11 @@ use Singularity\HDK\Utils\Resource\ClassicResponse; * @property float $size 晶格尺寸 * @property float $wide 杆径粗细 * @property int $surfaceNum 面数 - * @property int $fieldId + * @property int $field * @property LatticeResource $lattice + * @property-read File $source + * @property-read File $output + * @property-read File $outputSmall */ final class LatticeDetail extends JsonResource { diff --git a/src/Studio/Resource/Workspace/WorkspaceDetail.php b/src/Studio/Resource/Workspace/WorkspaceDetail.php index aeff8c4..2071cf3 100644 --- a/src/Studio/Resource/Workspace/WorkspaceDetail.php +++ b/src/Studio/Resource/Workspace/WorkspaceDetail.php @@ -10,6 +10,7 @@ namespace Singularity\HDK\Studio\Resource\Workspace; use Hyperf\Resource\Json\JsonResource; +use Singularity\HDK\Studio\Resource\Workspace\Tasks\Source\FrameDetail; use Singularity\HDK\Studio\Resource\Workspace\Tasks\Source\LatticeDetail; use Singularity\HDK\Utils\Resource\ClassicResponse; @@ -21,10 +22,11 @@ use Singularity\HDK\Utils\Resource\ClassicResponse; * Powered by PhpStorm * Created on 2022/5/12 * - * @property string $wsId - * @property string $userId 创建用户 - * @property int $status 状态,标记是否完结,晶格填充后就不能再操作了 - * @property-read ?array $latticeTask + * @property string $wsId + * @property string $userId 创建用户 + * @property int $status 状态,标记是否完结,晶格填充后就不能再操作了 + * @property-read array|null $latticeTask + * @property-read array|null $frameTask * @property \Carbon\Carbon $createdAt */ class WorkspaceDetail extends JsonResource @@ -36,7 +38,14 @@ class WorkspaceDetail extends JsonResource return [ 'id' => $this->wsId, 'status' => $this->status, - // 'tasks'=>$this->tasks, + $this->mergeWhen( + !empty($this->frameTask), + [ + 'frameTask' => empty($this->frameTask) ? $this->frameTask : FrameDetail::make( + $this->frameTask + )->toArray(), + ] + ), $this->mergeWhen( !empty($this->latticeTask), [