sku 预售
parent
2030ffdee4
commit
3df12d381c
|
|
@ -145,6 +145,8 @@ class ProductSkuController extends AdminController
|
||||||
$form->ignore(['attr_group']);
|
$form->ignore(['attr_group']);
|
||||||
$form->display('created_at');
|
$form->display('created_at');
|
||||||
$form->display('updated_at');
|
$form->display('updated_at');
|
||||||
|
|
||||||
|
$form->hidden('is_pre_sale');
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -76,6 +76,7 @@ class ProductSkuTable extends Grid
|
||||||
2 => 'danger',
|
2 => 'danger',
|
||||||
]);
|
]);
|
||||||
$grid->column('release_at');
|
$grid->column('release_at');
|
||||||
|
$grid->column('is_pre_sale', '预售')->switch();
|
||||||
$grid->model()->orderBy('created_at', 'desc');
|
$grid->model()->orderBy('created_at', 'desc');
|
||||||
$grid->model()->orderBy('release_at', 'desc');
|
$grid->model()->orderBy('release_at', 'desc');
|
||||||
$grid->actions(function (Grid\Displayers\Actions $actions) {
|
$grid->actions(function (Grid\Displayers\Actions $actions) {
|
||||||
|
|
|
||||||
|
|
@ -66,6 +66,7 @@ class ProductSku extends Model
|
||||||
'sales_value',
|
'sales_value',
|
||||||
'buynote_id',
|
'buynote_id',
|
||||||
'verify_state',
|
'verify_state',
|
||||||
|
'is_pre_sale',
|
||||||
];
|
];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -114,8 +114,8 @@ class OrderService
|
||||||
foreach ($products as $product) {
|
foreach ($products as $product) {
|
||||||
$sku = $product['sku'];
|
$sku = $product['sku'];
|
||||||
|
|
||||||
// 商品是否预售
|
// 商品开启预售, 则不验证库存
|
||||||
if (!$sku->spu->is_pre_sale && $product['quantity'] > $sku->saleable_stock) {
|
if (!$sku->spu->is_pre_sale && !$sku->is_pre_sale && $product['quantity'] > $sku->saleable_stock) {
|
||||||
throw new BizException('商品库存不足');
|
throw new BizException('商品库存不足');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -390,7 +390,7 @@ class OrderService
|
||||||
]);
|
]);
|
||||||
|
|
||||||
// 未开启预售, 扣除商品库存
|
// 未开启预售, 扣除商品库存
|
||||||
if ($sku->spu && !$sku->spu->is_pre_sale) {
|
if (!$sku->spu->is_pre_sale && !$sku->is_pre_sale) {
|
||||||
$sku->update([
|
$sku->update([
|
||||||
'stock' => DB::raw("stock - {$qty}")
|
'stock' => DB::raw("stock - {$qty}")
|
||||||
]);
|
]);
|
||||||
|
|
@ -1205,9 +1205,14 @@ class OrderService
|
||||||
if (! $product->isGift()) {
|
if (! $product->isGift()) {
|
||||||
$product->spu?->increment('sales', -$product->quantity);
|
$product->spu?->increment('sales', -$product->quantity);
|
||||||
$product->sku?->update([
|
$product->sku?->update([
|
||||||
'stock' => DB::Raw("stock + {$product->quantity}"),
|
|
||||||
'sales' => DB::Raw("sales - {$product->quantity}"),
|
'sales' => DB::Raw("sales - {$product->quantity}"),
|
||||||
]);
|
]);
|
||||||
|
// 商品未开启预售,返还库存
|
||||||
|
if (!$product->spu->is_pre_sale && !$product->sku->is_pre_sale) {
|
||||||
|
$product->sku?->update([
|
||||||
|
'stock' => DB::Raw("stock + {$product->quantity}"),
|
||||||
|
]);
|
||||||
|
}
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,11 @@ class AddIsPreSaleToProductSpus extends Migration
|
||||||
public function up()
|
public function up()
|
||||||
{
|
{
|
||||||
Schema::table('product_spus', function (Blueprint $table) {
|
Schema::table('product_spus', function (Blueprint $table) {
|
||||||
$table->unsignedTinyInteger('is_pre_sale')->default(1)->comment('是否预售');
|
$table->unsignedTinyInteger('is_pre_sale')->default(0)->comment('是否预售');
|
||||||
|
});
|
||||||
|
|
||||||
|
Schema::table('product_skus', function (Blueprint $table) {
|
||||||
|
$table->unsignedTinyInteger('is_pre_sale')->default(0)->comment('是否预售');
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -28,5 +32,8 @@ class AddIsPreSaleToProductSpus extends Migration
|
||||||
Schema::table('product_spus', function (Blueprint $table) {
|
Schema::table('product_spus', function (Blueprint $table) {
|
||||||
$table->dropColumn(['is_pre_sale']);
|
$table->dropColumn(['is_pre_sale']);
|
||||||
});
|
});
|
||||||
|
// Schema::table('product_skus', function (Blueprint $table) {
|
||||||
|
// $table->dropColumn(['is_pre_sale']);
|
||||||
|
// });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -40,6 +40,7 @@ return [
|
||||||
'limit'=>'限量',
|
'limit'=>'限量',
|
||||||
'growth_value'=>'成长值',
|
'growth_value'=>'成长值',
|
||||||
'sales_value'=>'销售值',
|
'sales_value'=>'销售值',
|
||||||
|
'is_pre_sale' => '预售',
|
||||||
],
|
],
|
||||||
'options' => [
|
'options' => [
|
||||||
'deny' => '删除失败',
|
'deny' => '删除失败',
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue