Browse Source

复制活动商品--完-测

master
liangyuyan 5 years ago
parent
commit
1afb8d8d26
  1. 3
      app/Admin/Actions/Grid/v3/GoodsActivityCopy.php
  2. 33
      app/Admin/Controllers/v3/GoodsActivityController.php
  3. 57
      app/Admin/Forms/v3/GoodsActivityCopyForm.php
  4. 2
      app/Admin/Forms/v3/GoodsCopyForm.php

3
app/Admin/Actions/Grid/v3/GoodsActivityCopy.php

@ -16,8 +16,7 @@ class GoodsActivityCopy extends RowAction
public function render() 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() $modal = Modal::make()
->xl() ->xl()

33
app/Admin/Controllers/v3/GoodsActivityController.php

@ -227,12 +227,21 @@ class GoodsActivityController extends AdminController
})->default(1); })->default(1);
$form->saving(function (Form $form){ $form->saving(function (Form $form){
$storeId = $form->input('store_id'); $storeId = $form->input('store_id');
$marketIds = $form->input('market_ids');
// $marketIds = $form->input('market_ids');
$tags = $form->input('tags'); $tags = $form->input('tags');
$spec = $form->input('spec'); $spec = $form->input('spec');
$detailsImgs = $form->input('details_imgs'); $detailsImgs = $form->input('details_imgs');
$goodsCategoryId = $form->input('goods_category_id'); $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'); $inventory = $form->input('inventory');
// 规格 // 规格
if(!empty($inventory)){ if(!empty($inventory)){
@ -248,17 +257,17 @@ class GoodsActivityController extends AdminController
$form->market_ids = ["$info->market_id"]; $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 = []; $tagsArr = [];
if(!empty($tags)){ if(!empty($tags)){

57
app/Admin/Forms/v3/GoodsActivityCopyForm.php

@ -1,5 +1,7 @@
<?php <?php
/**
* 活动商品复制表单
*/
namespace App\Admin\Forms\v3; namespace App\Admin\Forms\v3;
use Dcat\Admin\Models\Administrator; use Dcat\Admin\Models\Administrator;
@ -8,13 +10,13 @@ use Dcat\Admin\Widgets\Form;
use Dcat\Admin\Contracts\LazyRenderable; use Dcat\Admin\Contracts\LazyRenderable;
use Symfony\Component\HttpFoundation\Response; use Symfony\Component\HttpFoundation\Response;
use App\Models\v3\Store as StoreModel; use App\Models\v3\Store as StoreModel;
use App\Models\v3\Goods as GoodsModel;
use App\Models\v3\GoodsBanners as GoodsBannerModel;
use App\Models\v3\GoodsActivity as GoodsModel;
use App\Models\v3\GoodsActivityBanners as GoodsBannerModel;
class GoodsActivityCopyForm extends Form implements LazyRenderable class GoodsActivityCopyForm extends Form implements LazyRenderable
{ {
use LazyWidget; use LazyWidget;
/** /**
* Handle the form request. * Handle the form request.
* *
@ -25,18 +27,37 @@ class GoodsActivityCopyForm extends Form implements LazyRenderable
public function handle(array $input) public function handle(array $input)
{ {
// 获取外部传递参数 // 获取外部传递参数
$goodsId = $input['goods_id'];
$goodsId = $input['id'];
$storeIds= $input['store_ids']; $storeIds= $input['store_ids'];
$expireTime = $input['expire_time'];
$timeLimitDays = $input['time_limit_days'];
$timeLimitNum = $input['time_limit_num'];
$canUseCoupon = $input['can_use_coupon'];
$type = $input['type'];
$inventory = $input['inventory'];
if($expireTime <= time()){
$this->error('活动结束时间必须大于当前时间!');
}
$goods = GoodsModel::find($goodsId); $goods = GoodsModel::find($goodsId);
$goodsBanners = GoodsBannerModel::where('goods_id',$goodsId)->get(); $goodsBanners = GoodsBannerModel::where('goods_id',$goodsId)->get();
$markets = StoreModel::whereIn('id',$storeIds)->pluck('market_id','id'); $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 = 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->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->category_id = $goods->category_id;
$model->name = $goods->name; $model->name = $goods->name;
@ -56,9 +77,8 @@ class GoodsActivityCopyForm extends Form implements LazyRenderable
$model->start_num = $goods->start_num; $model->start_num = $goods->start_num;
$model->restrict_num = $goods->restrict_num; $model->restrict_num = $goods->restrict_num;
$model->is_infinite = $goods->is_infinite; $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->sort = $goods->sort;
$model->remark = $goods->remark; $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() 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->hidden('id')->value($id);
$this->display('name')->value($name);
$this->display('name')->value($name)->help('复制的活动商品默认下架状态,请核对信息后手动上架!');
$stores = StoreModel::getStoreArray(); $stores = StoreModel::getStoreArray();
$this->multipleSelect('store_ids','选择店铺')->required()->options($stores)->help('选择店铺,将当前商品复制到所选店铺。注意选择重复店铺问题!!!'); $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');
} }
/** /**

2
app/Admin/Forms/v3/GoodsCopyForm.php

@ -76,7 +76,7 @@ class GoodsCopyForm extends Form
}; };
} }
return $this->success('修改成功', '/goods');
return $this->success('复制成功', '/goods');
} }
/** /**

Loading…
Cancel
Save