6
0
Fork 0

分区商品spu

release
panliang 2022-06-01 15:51:44 +08:00
parent 91eccc1761
commit 1b44673f05
7 changed files with 74 additions and 15 deletions

View File

@ -3,11 +3,11 @@
namespace App\Admin\Controllers;
use App\Admin\Actions\Grid\PartCoupon;
use App\Admin\Renderable\ProductPartSkuTable;
use App\Admin\Renderable\ProductSkuSimpleTable;
use App\Admin\Renderable\ProductPartSpuTable;
use App\Admin\Renderable\ProductSpuSimpleTable;
use App\Admin\Repositories\ProductPart;
use App\Models\ProductPart as ProductPartModel;
use App\Models\ProductSku;
use App\Models\ProductSpu;
use Dcat\Admin\Admin;
use Dcat\Admin\Form;
use Dcat\Admin\Grid;
@ -29,9 +29,9 @@ class ProductPartController extends AdminController
$grid->column('id')->sortable();
$grid->column('key');
$grid->column('name');
$grid->column('skus')->display('分区商品')->modal(function ($modal) {
$grid->column('spus')->display('分区商品')->modal(function ($modal) {
$modal->title('商品');
return ProductPartSkuTable::make(['id'=>$this->id]);
return ProductPartSpuTable::make(['id'=>$this->id]);
});
$grid->column('is_show')
@ -102,7 +102,7 @@ class ProductPartController extends AdminController
*/
protected function form()
{
$builder = ProductPart::with(['skus']);
$builder = ProductPart::with(['spus']);
return Form::make($builder, function (Form $form) {
$form->display('id');
if ($form->isCreating()) {
@ -113,9 +113,9 @@ class ProductPartController extends AdminController
$form->text('name');
// if ($form->isCreating()) {
$form->multipleSelectTable('skus')
->from(ProductSkuSimpleTable::make())
->model(ProductSku::class, 'id', 'name')
$form->multipleSelectTable('spus')
->from(ProductSpuSimpleTable::make())
->model(ProductSpu::class, 'id', 'name')
->customFormat(function ($v) {
if (!$v) {
return [];
@ -126,7 +126,7 @@ class ProductPartController extends AdminController
// } else {
// $form->hasMany('partSkus', function (Form\NestedForm $form) {
// $form->select('sku_id')->options(function ($id) {
// $sku = ProductSku::find($id);
// $sku = ProductSpu::find($id);
// if ($sku) {
// return [$sku->id => $sku->name];
// }

View File

@ -0,0 +1,25 @@
<?php
namespace App\Admin\Renderable;
use App\Models\ProductPartSku;
use Dcat\Admin\Grid;
use Dcat\Admin\Grid\LazyRenderable;
class ProductPartSpuTable extends LazyRenderable
{
public function grid(): Grid
{
$partId = $this->payload['id'];
// dd($partId);
$builder = ProductPartSku::query();
$builder->with('spu')->where('part_id', $partId);
return Grid::make($builder, function (Grid $grid) {
$grid->column('spu.name', __('product-sku.fields.name'));
$grid->column('sort');
$grid->quickSearch(['spu.name']);
$grid->model()->orderBy('sort', 'desc');
$grid->disableActions();
});
}
}

View File

@ -0,0 +1,21 @@
<?php
namespace App\Admin\Renderable;
use App\Models\ProductSpu;
use Dcat\Admin\Grid;
use Dcat\Admin\Grid\LazyRenderable;
class ProductSpuSimpleTable extends LazyRenderable
{
public function grid(): Grid
{
$builder = ProductSpu::query();
return Grid::make($builder, function (Grid $grid) {
$grid->disableRowSelector(false);
$grid->column('name');
$grid->quickSearch(['name']);
$grid->disableActions();
});
}
}

View File

@ -4,7 +4,7 @@ namespace App\Endpoint\Api\Http\Controllers\Product;
use App\Endpoint\Api\Http\Controllers\Controller;
use App\Endpoint\Api\Http\Resources\ProductSkuTinyResource;
use App\Models\ProductSku;
use App\Models\ProductSpu;
class HotController extends Controller
{
@ -15,10 +15,12 @@ class HotController extends Controller
*/
public function __invoke()
{
$skus = ProductSku::online()
->latest('sales')
->limit(20)
->get();
$skus = ProductSpu::whereHas('skus', function ($q) {
$q->online();
})
->latest('sales')
->limit(20)
->get();
return ProductSkuTinyResource::collection($skus);
}

View File

@ -53,6 +53,11 @@ class ProductPart extends Model
return $this->belongsToMany(ProductSku::class, ProductPartSku::class, 'part_id', 'sku_id')->withTimestamps();
}
public function spus()
{
return $this->belongsToMany(ProductSpu::class, ProductPartSku::class, 'part_id', 'sku_id')->withTimestamps();
}
/**
* 此分区购买赠送的券关系
*/

View File

@ -40,6 +40,11 @@ class ProductPartSku extends Model
return $this->belongsTo(ProductSku::class, 'sku_id');
}
public function spu()
{
return $this->belongsTo(ProductSpu::class, 'sku_id');
}
/**
* 此分区商品所属的分区
*/

View File

@ -11,6 +11,7 @@ return [
'is_show' => '显示',
'partSkus' => '分区商品',
'skus'=> '分区商品',
'spus'=> '分区商品',
'sku_id' => '商品名称',
'sort' => '排序',
'coupons'=>'赠券配置',