From 74f4283a65bf77a254dbe7887e075f819e279f3a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=9D=99?= Date: Fri, 10 Dec 2021 13:40:00 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E8=B4=AD=E7=89=A9=E8=BD=A6?= =?UTF-8?q?=E5=95=86=E5=93=81=E6=95=B0=E6=8D=AE=E7=BB=93=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ProductSkuShoppingCartResource.php | 28 ------------------- .../Resources/ShoppingCartItemResource.php | 23 +++++++++++++-- app/Models/ShoppingCartItem.php | 11 +------- 3 files changed, 22 insertions(+), 40 deletions(-) delete mode 100644 app/Endpoint/Api/Http/Resources/ProductSku/ProductSkuShoppingCartResource.php diff --git a/app/Endpoint/Api/Http/Resources/ProductSku/ProductSkuShoppingCartResource.php b/app/Endpoint/Api/Http/Resources/ProductSku/ProductSkuShoppingCartResource.php deleted file mode 100644 index 626b89ca..00000000 --- a/app/Endpoint/Api/Http/Resources/ProductSku/ProductSkuShoppingCartResource.php +++ /dev/null @@ -1,28 +0,0 @@ - $this->id, - 'name' => $this->name, - 'cover' => (string) $this->cover, - 'sell_price' => $this->sell_price, - 'vip_price' => (string) $this->vip_price, - 'specs' => array_values((array) $this->specs), - 'stock' => (int) $this->saleable_stock, - 'is_online' => $this->isOnline(), - ]; - } -} diff --git a/app/Endpoint/Api/Http/Resources/ShoppingCartItemResource.php b/app/Endpoint/Api/Http/Resources/ShoppingCartItemResource.php index 17961846..3d39c90f 100644 --- a/app/Endpoint/Api/Http/Resources/ShoppingCartItemResource.php +++ b/app/Endpoint/Api/Http/Resources/ShoppingCartItemResource.php @@ -2,7 +2,6 @@ namespace App\Endpoint\Api\Http\Resources; -use App\Endpoint\Api\Http\Resources\ProductSku\ProductSkuShoppingCartResource; use Illuminate\Http\Resources\Json\JsonResource; class ShoppingCartItemResource extends JsonResource @@ -17,7 +16,27 @@ class ShoppingCartItemResource extends JsonResource { return [ 'id' => $this->id, - 'sku' => ProductSkuShoppingCartResource::make($this->whenLoaded('sku')), + 'sku' => $this->when($this->relationLoaded('sku') && $this->sku, function () { + return [ + 'id' => $this->sku->id, + 'name' => $this->sku->name, + 'cover' => (string) $this->sku->cover, + 'sell_price' => $this->sku->sell_price, + 'vip_price' => (string) $this->sku->vip_price, + 'specs' => array_values((array) $this->sku->specs), + 'stock' => (int) $this->sku->saleable_stock, + 'is_online' => $this->sku->isOnline(), + ]; + }, [ + 'id' => $this->id, + 'name' => $this->name, + 'cover' => (string) $this->cover, + 'sell_price' => $this->sell_price, + 'vip_price' => (string) $this->vip_price, + 'specs' => array_values((array) $this->specs), + 'stock' => 0, + 'is_online' => false, + ]), 'quantity' => $this->quantity, ]; } diff --git a/app/Models/ShoppingCartItem.php b/app/Models/ShoppingCartItem.php index d775ac92..5534fbcb 100644 --- a/app/Models/ShoppingCartItem.php +++ b/app/Models/ShoppingCartItem.php @@ -33,15 +33,6 @@ class ShoppingCartItem extends Model */ public function sku() { - return $this->belongsTo(ProductSku::class)->withDefault(function ($sku, $item) { - $sku->id = $item->sku_id; - $sku->name = $item->name; - $sku->cover = $item->cover; - $sku->sell_price = $item->sell_price; - $sku->vip_price = $item->vip_price; - $sku->specs = $item->specs; - $sku->stock = 0; - $sku->release_at = null; - }); + return $this->belongsTo(ProductSku::class); } }