创建成功后订单变为未支付 支付成功后减扣库存
This commit is contained in:
parent
df8b7db1cd
commit
b9b2ef7525
|
|
@ -19,12 +19,17 @@ class OrderProduct extends Base
|
|||
'product_id', 'order_number', 'product_sku', 'name', 'image', 'quantity', 'price',
|
||||
];
|
||||
|
||||
protected $appends = ['price_format'];
|
||||
|
||||
public function order(): BelongsTo
|
||||
{
|
||||
return $this->belongsTo(Order::class);
|
||||
}
|
||||
|
||||
protected $appends = ['price_format'];
|
||||
public function productSku(): BelongsTo
|
||||
{
|
||||
return $this->belongsTo(ProductSku::class, 'product_sku', 'id');
|
||||
}
|
||||
|
||||
public function getPriceFormatAttribute()
|
||||
{
|
||||
|
|
|
|||
|
|
@ -13,13 +13,13 @@ namespace Beike\Repositories;
|
|||
|
||||
use Beike\Models\Order;
|
||||
use Beike\Models\OrderProduct;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\Builder;
|
||||
use Illuminate\Database\Eloquent\Collection;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
class OrderProductRepo
|
||||
{
|
||||
public static function create(Order $order, $cartProducts)
|
||||
public static function createOrderProducts(Order $order, $cartProducts)
|
||||
{
|
||||
$orderProducts = [];
|
||||
foreach ($cartProducts as $cartProduct) {
|
||||
|
|
|
|||
|
|
@ -14,6 +14,7 @@ namespace Beike\Repositories;
|
|||
use Carbon\Carbon;
|
||||
use Beike\Models\Order;
|
||||
use Beike\Models\Address;
|
||||
use Beike\Services\StateMachineService;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\Builder;
|
||||
use Illuminate\Database\Eloquent\Collection;
|
||||
|
|
@ -199,7 +200,7 @@ class OrderRepo
|
|||
'currency_value' => 1,
|
||||
'ip' => request()->getClientIp(),
|
||||
'user_agent' => request()->userAgent(),
|
||||
'status' => 'unpaid',
|
||||
'status' => StateMachineService::CREATED,
|
||||
'shipping_method_code' => $shippingMethodCode,
|
||||
'shipping_method_name' => trans($shippingMethodCode),
|
||||
'shipping_customer_name' => $shippingAddress->name,
|
||||
|
|
@ -223,9 +224,8 @@ class OrderRepo
|
|||
]);
|
||||
$order->saveOrFail();
|
||||
|
||||
OrderProductRepo::create($order, $carts['carts']);
|
||||
OrderProductRepo::createOrderProducts($order, $carts['carts']);
|
||||
OrderTotalRepo::createTotals($order, $totals);
|
||||
// OrderHistoryRepo::create($order);
|
||||
|
||||
return $order;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -47,7 +47,7 @@ class StateMachineService
|
|||
self::CANCELLED => ['updateStatus', 'addHistory'],
|
||||
],
|
||||
self::PAID => [
|
||||
self::CANCELLED => ['updateStatus', 'addHistory', 'revertStock'],
|
||||
self::CANCELLED => ['updateStatus', 'addHistory'],
|
||||
self::SHIPPED => ['updateStatus', 'addHistory'],
|
||||
self::COMPLETED => ['updateStatus', 'addHistory']
|
||||
],
|
||||
|
|
@ -240,7 +240,17 @@ class StateMachineService
|
|||
*/
|
||||
private function subStock($oldCode, $newCode)
|
||||
{
|
||||
|
||||
$this->order->loadMissing([
|
||||
'orderProducts.productSku'
|
||||
]);
|
||||
$orderProducts = $this->order->orderProducts;
|
||||
foreach ($orderProducts as $orderProduct) {
|
||||
$productSku = $orderProduct->productSku;
|
||||
if (empty($productSku)) {
|
||||
continue;
|
||||
}
|
||||
$productSku->decrement('quantity', $orderProduct->quantity);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -20,6 +20,7 @@ use Illuminate\Support\Facades\DB;
|
|||
use Beike\Repositories\PluginRepo;
|
||||
use Beike\Repositories\AddressRepo;
|
||||
use Beike\Repositories\CountryRepo;
|
||||
use Beike\Services\StateMachineService;
|
||||
use Beike\Shop\Http\Resources\Account\AddressResource;
|
||||
use Beike\Shop\Http\Resources\Checkout\PaymentMethodItem;
|
||||
use Beike\Shop\Http\Resources\Checkout\ShippingMethodItem;
|
||||
|
|
@ -94,6 +95,7 @@ class CheckoutService
|
|||
try {
|
||||
DB::beginTransaction();
|
||||
$order = OrderRepo::create($checkoutData);
|
||||
StateMachineService::getInstance($order)->changeStatus(StateMachineService::UNPAID);
|
||||
CartRepo::clearSelectedCartProducts($customer);
|
||||
DB::commit();
|
||||
} catch (\Exception $e) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue