From 1f7276e4c4dd354743a261a1a58956340dfb7354 Mon Sep 17 00:00:00 2001 From: liangyuyan <1103300295@qq.com> Date: Thu, 24 Sep 2020 10:10:01 +0800 Subject: [PATCH 1/6] =?UTF-8?q?=E5=A4=8D=E5=88=B6=E6=B4=BB=E5=8A=A8?= =?UTF-8?q?=E5=95=86=E5=93=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Actions/Grid/v3/GoodsActivityCopy.php | 39 +++++++ .../v3/GoodsActivityController.php | 5 +- app/Admin/Forms/v3/GoodsActivityCopyForm.php | 110 ++++++++++++++++++ 3 files changed, 152 insertions(+), 2 deletions(-) create mode 100644 app/Admin/Actions/Grid/v3/GoodsActivityCopy.php create mode 100644 app/Admin/Forms/v3/GoodsActivityCopyForm.php diff --git a/app/Admin/Actions/Grid/v3/GoodsActivityCopy.php b/app/Admin/Actions/Grid/v3/GoodsActivityCopy.php new file mode 100644 index 0000000..4f95bca --- /dev/null +++ b/app/Admin/Actions/Grid/v3/GoodsActivityCopy.php @@ -0,0 +1,39 @@ +getKey(); + $form = GoodsActivityCopyForm::make(['id'=>$this->row->id,'name'=>$this->row->name])->setKey($id); + + $modal = Modal::make() + ->xl() + ->title($this->title) + ->body($form) + ->button($this->title); + + return $modal; + } + + public function parameters() + { + + return [ + 'id' => $this->row->id, + 'name' => $this->row->name + ]; + } +} diff --git a/app/Admin/Controllers/v3/GoodsActivityController.php b/app/Admin/Controllers/v3/GoodsActivityController.php index 395a34b..5018974 100644 --- a/app/Admin/Controllers/v3/GoodsActivityController.php +++ b/app/Admin/Controllers/v3/GoodsActivityController.php @@ -2,6 +2,7 @@ namespace App\Admin\Controllers\v3; +use App\Admin\Actions\Grid\v3\GoodsActivityCopy; use App\Admin\Actions\Grid\v3\GoodsActivitySetting; use App\Admin\Repositories\v3\GoodsActivity; use Dcat\Admin\Form; @@ -88,7 +89,7 @@ class GoodsActivityController extends AdminController }); // 每页10条 $grid->paginate(10); - + $grid->actions([new GoodsActivityCopy()]); // $grid->tools([new GoodsActivitySetting()]); }); } @@ -179,7 +180,7 @@ class GoodsActivityController extends AdminController $form->text('name')->required()->maxLength(20); $form->image('cover_img')->autoUpload()->required(); $form->select('type')->options(GoodsActivityModel::$_TYPE)->default('flash_sale'); - $form->datetime('expire_time')->required()->format('YYYY-MM-DD HH:mm:ss')->help($form->model()->expire_time_text); + $form->datetime('expire_time')->required()->format('YYYY-MM-DD HH:mm:ss')->rules('after:now',['after'=>'活动结束时间必须大于当前时间!'])->help($form->model()->expire_time_text); }); $form->column(6, function (Form $form) { $form->currency('price')->required()->floatTwo()->symbol('¥'); diff --git a/app/Admin/Forms/v3/GoodsActivityCopyForm.php b/app/Admin/Forms/v3/GoodsActivityCopyForm.php new file mode 100644 index 0000000..cc34693 --- /dev/null +++ b/app/Admin/Forms/v3/GoodsActivityCopyForm.php @@ -0,0 +1,110 @@ +get(); + $markets = StoreModel::whereIn('id',$storeIds)->pluck('market_id','id'); + foreach($storeIds as $key =>$value){ + $storeId = $value; + $model = new GoodsModel(); + + $model->store_id = $storeId; + $model->market_id = $markets[$storeId]; + $model->category_id = $goods->category_id; + + $model->name = $goods->name; + $model->cover_img = $goods->cover_img; + $model->goods_unit = $goods->goods_unit; + + $model->tags = $goods->tags; + $model->spec = $goods->spec; + $model->details_imgs = $goods->details_imgs; + $model->content = $goods->content; + $model->details = $goods->details; + + $model->price = $goods->price; + $model->original_price = $goods->original_price; + $model->vip_price = $goods->vip_price; + + $model->start_num = $goods->start_num; + $model->restrict_num = $goods->restrict_num; + $model->is_infinite = $goods->is_infinite; + $model->inventory = $goods->inventory; + + $model->on_sale = $goods->on_sale; + $model->sort = $goods->sort; + $model->remark = $goods->remark; + + if($model->save() && !empty($goodsBanners)){ + $goodsId = $model->getKey(); + $banners = []; + foreach($goodsBanners as $kb => $vb){ + $banners[] = [ + 'goods_id' => $goodsId, + 'type' => $vb->type, + 'path' => $vb->path, + 'sort' => $vb->sort, + 'created_at' => time(), + 'updated_at' => time(), + ]; + GoodsBannerModel::insert($banners); + } + }; + } + + return $this->success('修改成功', '/goods'); + } + + /** + * Build a form here. + */ + public function form() + { + $id = $this->getKey(); + $name = $this->name ?? ''; + dd($name); + $this->hidden('id')->value($id); + + $this->display('name')->value($name); + $stores = StoreModel::getStoreArray(); + $this->multipleSelect('store_ids','选择店铺')->required()->options($stores)->help('选择店铺,将当前商品复制到所选店铺。注意选择重复店铺问题!!!'); + } + + /** + * The data of the form. + * + * @return array + */ + public function default() + { + return []; + } + +} From 1afb8d8d261fe3384a64007432c955e3a871bd34 Mon Sep 17 00:00:00 2001 From: liangyuyan <1103300295@qq.com> Date: Thu, 24 Sep 2020 10:54:35 +0800 Subject: [PATCH 2/6] =?UTF-8?q?=E5=A4=8D=E5=88=B6=E6=B4=BB=E5=8A=A8?= =?UTF-8?q?=E5=95=86=E5=93=81--=E5=AE=8C-=E6=B5=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Actions/Grid/v3/GoodsActivityCopy.php | 3 +- .../v3/GoodsActivityController.php | 33 +++++++---- app/Admin/Forms/v3/GoodsActivityCopyForm.php | 57 +++++++++++++------ app/Admin/Forms/v3/GoodsCopyForm.php | 2 +- 4 files changed, 64 insertions(+), 31 deletions(-) diff --git a/app/Admin/Actions/Grid/v3/GoodsActivityCopy.php b/app/Admin/Actions/Grid/v3/GoodsActivityCopy.php index 4f95bca..d5097c4 100644 --- a/app/Admin/Actions/Grid/v3/GoodsActivityCopy.php +++ b/app/Admin/Actions/Grid/v3/GoodsActivityCopy.php @@ -16,8 +16,7 @@ class GoodsActivityCopy extends RowAction public function render() { - $id = $this->getKey(); - $form = GoodsActivityCopyForm::make(['id'=>$this->row->id,'name'=>$this->row->name])->setKey($id); + $form = GoodsActivityCopyForm::make()->payload(['id'=>$this->row->id,'name'=>$this->row->name]); $modal = Modal::make() ->xl() diff --git a/app/Admin/Controllers/v3/GoodsActivityController.php b/app/Admin/Controllers/v3/GoodsActivityController.php index 5018974..214ee64 100644 --- a/app/Admin/Controllers/v3/GoodsActivityController.php +++ b/app/Admin/Controllers/v3/GoodsActivityController.php @@ -227,12 +227,21 @@ class GoodsActivityController extends AdminController })->default(1); $form->saving(function (Form $form){ $storeId = $form->input('store_id'); - $marketIds = $form->input('market_ids'); + // $marketIds = $form->input('market_ids'); $tags = $form->input('tags'); $spec = $form->input('spec'); $detailsImgs = $form->input('details_imgs'); $goodsCategoryId = $form->input('goods_category_id'); + $onSale = $form->input('on_sale'); + $expireTime = $form->model()->expire_time; + $OldInventory = $form->model()->inventory; + if(!empty($onSale) && $onSale == 1 && $expireTime <= time()){ + return $form->error('活动结束时间必须大于当前时间,请修改后再上架!'); + }else if(!empty($onSale) && $onSale == 1 && $OldInventory <= 0){ + return $form->error('库存必须为大于0的数字'); + } + $inventory = $form->input('inventory'); // 规格 if(!empty($inventory)){ @@ -248,17 +257,17 @@ class GoodsActivityController extends AdminController $form->market_ids = ["$info->market_id"]; } - $marketIdsArr = []; - if(!empty($marketIds)){ - foreach($marketIds as $km => $marketId){ - if(empty($marketId)){ - unset($marketIds[$km]); - continue; - } - $marketIdsArr[] = $marketId; - } - } - $form->marketIds = json_encode($marketIdsArr); + // $marketIdsArr = []; + // if(!empty($marketIds)){ + // foreach($marketIds as $km => $marketId){ + // if(empty($marketId)){ + // unset($marketIds[$km]); + // continue; + // } + // $marketIdsArr[] = $marketId; + // } + // } + // $form->marketIds = json_encode($marketIdsArr); $tagsArr = []; if(!empty($tags)){ diff --git a/app/Admin/Forms/v3/GoodsActivityCopyForm.php b/app/Admin/Forms/v3/GoodsActivityCopyForm.php index cc34693..cd839a6 100644 --- a/app/Admin/Forms/v3/GoodsActivityCopyForm.php +++ b/app/Admin/Forms/v3/GoodsActivityCopyForm.php @@ -1,5 +1,7 @@ error('活动结束时间必须大于当前时间!'); + } $goods = GoodsModel::find($goodsId); $goodsBanners = GoodsBannerModel::where('goods_id',$goodsId)->get(); $markets = StoreModel::whereIn('id',$storeIds)->pluck('market_id','id'); - foreach($storeIds as $key =>$value){ - $storeId = $value; + foreach($storeIds as $key =>$storeId){ + + $marketId = $markets[$storeId]??0; $model = new GoodsModel(); + $model->expire_time = $expireTime; + $model->time_limit_days = $timeLimitDays; + $model->time_limit_num = $timeLimitNum; + $model->can_use_coupon = $canUseCoupon; + $model->type = $type; + $model->inventory = $inventory; + $model->store_id = $storeId; - $model->market_id = $markets[$storeId]; + $model->market_id = $marketId; + $model->market_ids = json_encode(["$marketId"]); $model->category_id = $goods->category_id; $model->name = $goods->name; @@ -56,9 +77,8 @@ class GoodsActivityCopyForm extends Form implements LazyRenderable $model->start_num = $goods->start_num; $model->restrict_num = $goods->restrict_num; $model->is_infinite = $goods->is_infinite; - $model->inventory = $goods->inventory; - $model->on_sale = $goods->on_sale; + $model->on_sale = 0; $model->sort = $goods->sort; $model->remark = $goods->remark; @@ -79,7 +99,7 @@ class GoodsActivityCopyForm extends Form implements LazyRenderable }; } - return $this->success('修改成功', '/goods'); + return $this->success('复制成功', '/goods_activity'); } /** @@ -87,14 +107,19 @@ class GoodsActivityCopyForm extends Form implements LazyRenderable */ public function form() { - $id = $this->getKey(); - $name = $this->name ?? ''; - dd($name); + $id = $this->payload['id'] ?? 0; + $name = $this->payload['name'] ?? ''; + $this->hidden('id')->value($id); - - $this->display('name')->value($name); + $this->display('name')->value($name)->help('复制的活动商品默认下架状态,请核对信息后手动上架!'); $stores = StoreModel::getStoreArray(); $this->multipleSelect('store_ids','选择店铺')->required()->options($stores)->help('选择店铺,将当前商品复制到所选店铺。注意选择重复店铺问题!!!'); + $this->number('inventory','库存')->required()->attribute('min', 1)->default(1); + $this->datetime('expire_time','活动结束时间')->required()->format('YYYY-MM-DD HH:mm:ss')->rules('after:now',['after'=>'活动结束时间必须大于当前时间!']); + $this->number('time_limit_days','限制的天数')->default(1)->help('A时间段内限购'); + $this->number('time_limit_num','限制购买数量')->default(1)->help('A时间段内限购的数量'); + $this->switch('can_use_coupon','可同时使用优惠券')->default(0); + $this->select('type','活动类型')->options(GoodsModel::$_TYPE)->default('flash_sale'); } /** diff --git a/app/Admin/Forms/v3/GoodsCopyForm.php b/app/Admin/Forms/v3/GoodsCopyForm.php index 2232de7..fcaed64 100644 --- a/app/Admin/Forms/v3/GoodsCopyForm.php +++ b/app/Admin/Forms/v3/GoodsCopyForm.php @@ -76,7 +76,7 @@ class GoodsCopyForm extends Form }; } - return $this->success('修改成功', '/goods'); + return $this->success('复制成功', '/goods'); } /** From 2d76a454a4ff4dca2a6dab7205d01866a0b1004b Mon Sep 17 00:00:00 2001 From: liangyuyan <1103300295@qq.com> Date: Thu, 24 Sep 2020 10:57:28 +0800 Subject: [PATCH 3/6] =?UTF-8?q?=E6=B4=BB=E5=8A=A8=E5=95=86=E5=93=81?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E6=B7=BB=E5=8A=A0=E5=8D=95=E4=BD=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Admin/Controllers/v3/GoodsActivityController.php | 1 + 1 file changed, 1 insertion(+) diff --git a/app/Admin/Controllers/v3/GoodsActivityController.php b/app/Admin/Controllers/v3/GoodsActivityController.php index 214ee64..01fb496 100644 --- a/app/Admin/Controllers/v3/GoodsActivityController.php +++ b/app/Admin/Controllers/v3/GoodsActivityController.php @@ -51,6 +51,7 @@ class GoodsActivityController extends AdminController $grid->column('cover_img')->image('',50); $grid->column('name')->editable(); $grid->column('price')->editable(); + $grid->column('goods_unit')->editable(); $grid->column('type_text'); $grid->column('inventory')->editable(); $grid->column('market_id')->display(function($marketId){ From 3a47583be84f26a335c21179a596ecab9d2a5ed4 Mon Sep 17 00:00:00 2001 From: liangyuyan <1103300295@qq.com> Date: Thu, 24 Sep 2020 15:19:29 +0800 Subject: [PATCH 4/6] =?UTF-8?q?=E6=98=BE=E7=A4=BA=E6=B4=BB=E5=8A=A8?= =?UTF-8?q?=E5=95=86=E5=93=81=E7=9A=84=E8=AE=BE=E7=BD=AE=EF=BC=8C=E9=9A=90?= =?UTF-8?q?=E8=97=8F=E5=A4=8D=E5=88=B6-=E6=B4=BB=E5=8A=A8=E5=95=86?= =?UTF-8?q?=E5=93=81=E5=A4=8D=E5=88=B6=E5=8A=9F=E8=83=BD=E8=BF=98=E9=9C=80?= =?UTF-8?q?=E8=A6=81=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Admin/Controllers/v3/GoodsActivityController.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/Admin/Controllers/v3/GoodsActivityController.php b/app/Admin/Controllers/v3/GoodsActivityController.php index 01fb496..505e24b 100644 --- a/app/Admin/Controllers/v3/GoodsActivityController.php +++ b/app/Admin/Controllers/v3/GoodsActivityController.php @@ -90,8 +90,8 @@ class GoodsActivityController extends AdminController }); // 每页10条 $grid->paginate(10); - $grid->actions([new GoodsActivityCopy()]); - // $grid->tools([new GoodsActivitySetting()]); + // $grid->actions([new GoodsActivityCopy()]); + $grid->tools([new GoodsActivitySetting()]); }); } From 8b4ef3d14a4d7df6027275305f382068ca7f4313 Mon Sep 17 00:00:00 2001 From: liangyuyan <1103300295@qq.com> Date: Thu, 24 Sep 2020 15:20:49 +0800 Subject: [PATCH 5/6] =?UTF-8?q?=E6=B4=BB=E5=8A=A8=E5=95=86=E5=93=81--?= =?UTF-8?q?=E5=9C=A8=E6=B5=8B=E8=AF=95=E6=9C=8D=E6=B4=BB=E5=8A=A8=E5=95=86?= =?UTF-8?q?=E5=93=81=E8=AE=BE=E7=BD=AE=E5=92=8C=E5=A4=8D=E5=88=B6=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=E9=83=BD=E6=98=BE=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Admin/Controllers/v3/GoodsActivityController.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Admin/Controllers/v3/GoodsActivityController.php b/app/Admin/Controllers/v3/GoodsActivityController.php index 505e24b..a5a4391 100644 --- a/app/Admin/Controllers/v3/GoodsActivityController.php +++ b/app/Admin/Controllers/v3/GoodsActivityController.php @@ -90,7 +90,7 @@ class GoodsActivityController extends AdminController }); // 每页10条 $grid->paginate(10); - // $grid->actions([new GoodsActivityCopy()]); + $grid->actions([new GoodsActivityCopy()]); $grid->tools([new GoodsActivitySetting()]); }); } From f1d9606f844d4cc4fe28dc80b2bed839fe57d688 Mon Sep 17 00:00:00 2001 From: liangyuyan <1103300295@qq.com> Date: Thu, 24 Sep 2020 15:22:25 +0800 Subject: [PATCH 6/6] =?UTF-8?q?=E6=B4=BB=E5=8A=A8=E5=95=86=E5=93=81--?= =?UTF-8?q?=E5=A4=8D=E5=88=B6=E5=8A=9F=E8=83=BD=E9=9A=90=E8=97=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Admin/Controllers/v3/GoodsActivityController.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Admin/Controllers/v3/GoodsActivityController.php b/app/Admin/Controllers/v3/GoodsActivityController.php index a5a4391..505e24b 100644 --- a/app/Admin/Controllers/v3/GoodsActivityController.php +++ b/app/Admin/Controllers/v3/GoodsActivityController.php @@ -90,7 +90,7 @@ class GoodsActivityController extends AdminController }); // 每页10条 $grid->paginate(10); - $grid->actions([new GoodsActivityCopy()]); + // $grid->actions([new GoodsActivityCopy()]); $grid->tools([new GoodsActivitySetting()]); }); }