优化购物车商品数据结构
parent
5c6b2c2b01
commit
74f4283a65
|
|
@ -1,28 +0,0 @@
|
|||
<?php
|
||||
|
||||
namespace App\Endpoint\Api\Http\Resources\ProductSku;
|
||||
|
||||
use Illuminate\Http\Resources\Json\JsonResource;
|
||||
|
||||
class ProductSkuShoppingCartResource extends JsonResource
|
||||
{
|
||||
/**
|
||||
* Transform the resource into an array.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return array|\Illuminate\Contracts\Support\Arrayable|\JsonSerializable
|
||||
*/
|
||||
public function toArray($request)
|
||||
{
|
||||
return [
|
||||
'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' => (int) $this->saleable_stock,
|
||||
'is_online' => $this->isOnline(),
|
||||
];
|
||||
}
|
||||
}
|
||||
|
|
@ -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,
|
||||
];
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue