diff --git a/beike/Models/ProductSku.php b/beike/Models/ProductSku.php index 25b24141..7b57447d 100644 --- a/beike/Models/ProductSku.php +++ b/beike/Models/ProductSku.php @@ -15,8 +15,16 @@ class ProductSku extends Base 'images' => 'array', ]; + protected $appends = ['image']; + public function product() { return $this->belongsTo(Product::class); } + + public function getImageAttribute() + { + $images = $this->images ?? []; + return $images[0] ?? ''; + } } diff --git a/beike/Shop/Http/Resources/CartDetail.php b/beike/Shop/Http/Resources/CartDetail.php index 8b433b54..3f7890ad 100644 --- a/beike/Shop/Http/Resources/CartDetail.php +++ b/beike/Shop/Http/Resources/CartDetail.php @@ -27,7 +27,8 @@ class CartDetail extends JsonResource 'product_id' => $this->product_id, 'sku_id' => $this->product_sku_id, 'name' => $description->name, - 'image' => image_resize($sku->image), + 'image' => $sku->image, + 'image_url' => image_resize($sku->image), 'quantity' => $this->quantity, 'selected' => $this->selected, 'price' => $price, diff --git a/beike/Shop/Services/CartService.php b/beike/Shop/Services/CartService.php index af1961b1..a5679152 100644 --- a/beike/Shop/Services/CartService.php +++ b/beike/Shop/Services/CartService.php @@ -47,8 +47,7 @@ class CartService return $description && $product; }); - $cartList = CartDetail::collection($cartItems)->jsonSerialize(); - return $cartList; + return CartDetail::collection($cartItems)->jsonSerialize(); } diff --git a/beike/Shop/Services/CheckoutService.php b/beike/Shop/Services/CheckoutService.php index 2fb72cf9..157a9427 100644 --- a/beike/Shop/Services/CheckoutService.php +++ b/beike/Shop/Services/CheckoutService.php @@ -11,12 +11,10 @@ namespace Beike\Shop\Services; -use Beike\Models\Cart; -use Beike\Models\CartProduct; use Beike\Models\Customer; -use Beike\Models\Order; use Beike\Repositories\CartRepo; use Beike\Repositories\OrderRepo; +use Illuminate\Support\Facades\DB; use Beike\Repositories\PluginRepo; use Beike\Repositories\AddressRepo; use Beike\Repositories\CountryRepo; @@ -81,9 +79,15 @@ class CheckoutService $checkoutData = self::checkoutData(); $checkoutData['customer'] = $customer; - $order = OrderRepo::create($checkoutData); - - CartRepo::clearSelectedCartProducts($customer); + try { + DB::beginTransaction(); + $order = OrderRepo::create($checkoutData); + CartRepo::clearSelectedCartProducts($customer); + DB::commit(); + } catch (\Exception $e) { + DB::rollBack(); + dd($e); + } // Notification::endmail(); // Notification::sendsms();