删除购物车不可用产品

This commit is contained in:
Edward Yang 2022-07-05 10:07:49 +08:00
parent 09f5acef41
commit e6143629ff
3 changed files with 16 additions and 2 deletions

View File

@ -25,4 +25,9 @@ class CartProduct extends Model
{
return $this->belongsTo(ProductSku::class, 'product_sku_id', 'id');
}
public function product(): BelongsTo
{
return $this->belongsTo(Product::class, 'product_id', 'id');
}
}

View File

@ -31,13 +31,23 @@ class CartService
return [];
}
$cartBuilder = CartProduct::query()
->with(['sku.product.description'])
->with(['product', 'sku.product.description'])
->where('customer_id', $customer->id)
->orderByDesc('id');
if ($selected) {
$cartBuilder->where('selected', true);
}
$cartItems = $cartBuilder->get();
$cartItems = $cartItems->filter(function ($item) {
$description = $item->sku->product->description ?? '';
$product = $item->product ?? null;
if (empty($description) || empty($product)) {
$item->delete();
}
return $description && $product;
});
$cartList = CartList::collection($cartItems)->jsonSerialize();
return $cartList;
}

View File

@ -21,7 +21,6 @@ class CreateCustomerTable extends Migration
$table->string('avatar')->default('');
$table->unsignedInteger('customer_group_id');
$table->string('locale', 10);
$table->text('cart')->nullable();
$table->tinyInteger('status')->default(0);
$table->string('code', 40)->default('');
$table->string('from', 16)->default('');