From 2d38dff36ba17f2232244cefd9e76f3109a3538e Mon Sep 17 00:00:00 2001 From: liapples Date: Thu, 19 Aug 2021 00:38:36 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8F=96=E6=B6=88=E7=BB=93=E7=AE=97=E6=96=B9?= =?UTF-8?q?=E5=BC=8F=EF=BC=8C=E5=A2=9E=E5=8A=A0=E4=BA=A7=E5=93=81=E7=8A=B6?= =?UTF-8?q?=E6=80=81=EF=BC=8C=E5=8F=AA=E6=9C=89=E4=B8=8A=E6=9E=B6=E5=92=8C?= =?UTF-8?q?=E4=B8=8B=E6=9E=B6=E4=B8=A4=E7=A7=8D=E6=96=B9=E5=BC=8F=EF=BC=8C?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=B0=81=E9=9D=A2=E4=BA=A7=E5=93=81=E9=80=89?= =?UTF-8?q?=E6=8B=A9=EF=BC=8C=E4=BF=AE=E6=94=B9=E4=BA=A7=E5=93=81=E4=B8=8B?= =?UTF-8?q?=E6=9E=B6=E7=9A=84=E5=88=A4=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/AgentProductController.php | 45 +++++++++++++------ 1 file changed, 32 insertions(+), 13 deletions(-) diff --git a/app/AdminAgent/Controllers/AgentProductController.php b/app/AdminAgent/Controllers/AgentProductController.php index 5517043..0423449 100644 --- a/app/AdminAgent/Controllers/AgentProductController.php +++ b/app/AdminAgent/Controllers/AgentProductController.php @@ -5,7 +5,6 @@ namespace App\AdminAgent\Controllers; use App\AdminAgent\Renderable\SelectProduct; use App\AdminAgent\Repositories\AgentProduct; use App\Common\ProductStatus; -use App\Common\Settlement; use App\Models\Category; use App\Models\Channel; use App\Models\Product; @@ -113,7 +112,7 @@ class AgentProductController extends AdminController $show->field('sale'); $show->field('channel_id'); $show->field('category_id'); - $show->field('status'); + $show->field('status')->using(ProductStatus::array()); $show->field('created_at'); $show->field('updated_at'); @@ -151,7 +150,15 @@ class AgentProductController extends AdminController $form->hidden('agent_id')->value($agent_id); $form->hidden('status')->value(ProductStatus::UNAUDITED); $form->hidden('product_id'); - $form->multipleSelectTable('product_ids', '供应商产品') + $form->multipleSelectTable('product_ids', '选择产品') + ->help('可多选组合销售') + ->title('选择产品') + ->dialogWidth('80%;min-width:825px;') + ->from(SelectProduct::make()) + ->model(Product::class) + ->required(); + $form->selectTable('product_id', '封面产品') + ->help('当多选产品时,产品列表显示的是该产品的标题和图片') ->title('选择产品') ->dialogWidth('80%;min-width:825px;') ->from(SelectProduct::make()) @@ -169,9 +176,12 @@ class AgentProductController extends AdminController ->options(array_slice($options, 1)) ->required(); - $form->radio('settlement') - ->options(Settlement::array()) - ->default(settlement::INSTANT) + $form->radio('status') + ->default(ProductStatus::ON_SALE) + ->options([ + ProductStatus::ON_SALE => '上架', + ProductStatus::SOLD_OUT => '下架', + ]) ->required(); })->saving(function (Form $form) { //不允许修改非自己的数据 @@ -181,18 +191,27 @@ class AgentProductController extends AdminController $agent_id = Admin::user()->id; - //判断供应商产品是否存在或下架 - if (!Product::where(['id' => $form->product_id, 'status' => ProductStatus::ON_SALE])->exists()) { - return $form->response()->error('供应商不存在该产品或已下架,不可销售'); - } - //不允许编辑的字段 $form->ignore(['id', 'agent_id', 'created_at', 'updated_at', 'deleted_at']); + $product_ids = explode(',', $form->product_ids); + if (empty($product_ids)) { + return $form->response()->error('请选择产品'); + } + + //判断供应商产品是否存在或下架 + $not_in_id = Product::query() + ->whereIn('id', $product_ids) + ->where('status', '<>', ProductStatus::ON_SALE) + ->pluck('id') + ->toArray(); + if ($not_in_id) { + return $form->response()->error('产品ID'. join(',', $not_in_id) .'不存在或已下架,请重新选择'); + } + //处理特殊字段 $form->agent_id = $agent_id; - $form->status = ProductStatus::UNAUDITED; - $form->product_id = $form->product_ids[0]; + $form->status = $form->status == ProductStatus::ON_SALE ? ProductStatus::ON_SALE : ProductStatus::SOLD_OUT; //判断是否重复发布产品 $where = [