From af9886f6ac3e17ddd53a54ade85105765d3bfff0 Mon Sep 17 00:00:00 2001 From: liapples Date: Wed, 1 Sep 2021 16:41:00 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E5=88=97=E8=A1=A8=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E7=9B=B4=E6=8E=A5=E4=BF=AE=E6=94=B9=E5=BA=93=E5=AD=98=EF=BC=9B?= =?UTF-8?q?2=E3=80=81=E4=B8=8A=E4=B8=8B=E6=9E=B6=E6=8C=89=E9=92=AE?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=92=8C=E4=BF=AE=E6=94=B9=E5=BA=93=E5=AD=98?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E4=BE=9B=E5=BA=94=E5=95=86=E5=BA=93=E5=AD=98?= =?UTF-8?q?=E5=92=8C=E4=BA=A7=E5=93=81=E7=8A=B6=E6=80=81=E7=9A=84=E5=88=A4?= =?UTF-8?q?=E6=96=AD=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/AgentProductController.php | 36 +++++++++++++------ 1 file changed, 25 insertions(+), 11 deletions(-) diff --git a/app/AdminAgent/Controllers/AgentProductController.php b/app/AdminAgent/Controllers/AgentProductController.php index d0f05c6..46857d4 100644 --- a/app/AdminAgent/Controllers/AgentProductController.php +++ b/app/AdminAgent/Controllers/AgentProductController.php @@ -4,7 +4,6 @@ namespace App\AdminAgent\Controllers; use App\AdminAgent\Renderable\SelectGuide; use App\AdminAgent\Renderable\SelectProduct; -use App\AdminAgent\Renderable\SelectUser; use App\AdminAgent\Repositories\AgentProduct; use App\Common\AgentType; use App\Common\ProductStatus; @@ -14,7 +13,6 @@ use App\Models\Channel; use App\Models\Guide; use App\Models\Product; use App\Models\Supplier; -use App\Models\User; use Dcat\Admin\Admin; use Dcat\Admin\Form; use Dcat\Admin\Grid; @@ -41,7 +39,7 @@ class AgentProductController extends AdminController $grid->column('price'); $grid->column('original_price'); $grid->column('sale'); - $grid->column('stock'); + $grid->column('stock')->editable(); $channels = Channel::where('agent_id', $agent_id)->pluck('name', 'id')->toArray(); $grid->column('channel_id', '频道') @@ -238,18 +236,34 @@ class AgentProductController extends AdminController return $form->response()->error('数据不存在'); } - if ($form->product_id === null && $form->product_ids === null) { + if ($form->isEditing() && $form->product_id === null && $form->product_ids === null) { //推荐按钮开关 if ($form->is_rec !== null) { $form->model()->is_rec = $form->is_rec ? 1 : 0; $form->model()->save(); return $form->response()->success('更新成功!'); } - //上下架状态按钮开关 - if ($form->status !== null) { - $form->model()->status = $form->status == 1 ? ProductStatus::ON_SALE : ProductStatus::SOLD_OUT; - $form->model()->save(); - return $form->response()->success('更新成功!'); + + if ($form->stock !== null || $form->status !== null) { + $ids = explode(',', $form->model()->product_ids); + $count = Product::where([['status', '=', ProductStatus::ON_SALE], ['stock', '>=', $form->model()->stock]]) + ->whereIn('id', $ids)->count(); + if (count($ids) != $count) { + return $form->response()->success('供应商产品已下架或库存不足!'); + } + + //修改库存 + if ($form->stock !== null) { + $form->model()->stock = $form->stock; + $form->model()->save(); + return $form->response()->success('更新成功!'); + } + //上下架状态按钮开关 + if ($form->status !== null) { + $form->model()->status = $form->status == 1 ? ProductStatus::ON_SALE : ProductStatus::SOLD_OUT; + $form->model()->save(); + return $form->response()->success('更新成功!'); + } } } @@ -269,7 +283,7 @@ class AgentProductController extends AdminController if ($product->status != ProductStatus::ON_SALE) { return $form->response()->error('产品ID '. $form->product_id .' 已下架'); } else if ($product->stock < $form->stock) { - return $form->response()->error('库存不足,你设置的库存应小于等于' . $form->stock); + return $form->response()->error("供应商当前库存为{$form->stock},你设置的库存不能超过该数值"); } $form->title = $product->title; $form->pictures = $product->pictures; @@ -305,7 +319,7 @@ class AgentProductController extends AdminController ->pluck('id') ->toArray(); if ($not_in_id) { - return $form->response()->error('产品ID ' . join(',', $not_in_id) . ' 库存小于你设置的库存' . $form->stock . ',或不存在、已下架'); + return $form->response()->error('产品ID ' . join(',', $not_in_id) . ' 库存小于你设置的库存' . $form->stock . ',或不存在、已下架等'); } } else { return $form->response()->error('不存在此销售方式');