From 1b290bc0faa4c2f96209361a7e97acb1e62c9a3f Mon Sep 17 00:00:00 2001 From: liangyuyan <1103300295@qq.com> Date: Tue, 29 Sep 2020 10:55:57 +0800 Subject: [PATCH] =?UTF-8?q?=E5=95=86=E5=93=81=E5=88=97=E8=A1=A8=E6=98=BE?= =?UTF-8?q?=E7=A4=BA=E8=BD=AE=E6=92=AD=E5=9B=BE=20=E5=95=86=E5=93=81?= =?UTF-8?q?=E5=9B=BE=E7=89=87=E5=9C=A8=E6=96=B0=E5=BB=BA=E7=9A=84=E6=97=B6?= =?UTF-8?q?=E5=80=99=E4=B8=8A=E4=BC=A0=E5=A4=B1=E8=B4=A5=E6=97=B6=E4=BC=9A?= =?UTF-8?q?=E5=88=A0=E9=99=A4=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../v3/GoodsActivityController.php | 10 ++++-- app/Admin/Controllers/v3/GoodsController.php | 33 ++++++++++++++++--- app/Admin/Controllers/v3/StoreController.php | 18 +++++++--- app/Models/v3/GoodsBanners.php | 31 +++++++++++++++++ 4 files changed, 82 insertions(+), 10 deletions(-) diff --git a/app/Admin/Controllers/v3/GoodsActivityController.php b/app/Admin/Controllers/v3/GoodsActivityController.php index 6d06822..e7db06f 100644 --- a/app/Admin/Controllers/v3/GoodsActivityController.php +++ b/app/Admin/Controllers/v3/GoodsActivityController.php @@ -179,7 +179,11 @@ class GoodsActivityController extends AdminController $form->select('goods_category_id'); $form->select('store_id')->required()->options($storeList); $form->text('name')->required()->maxLength(20); - $form->image('cover_img')->autoUpload()->required(); + if($form->isCreating()){ + $form->image('cover_img')->autoUpload()->retainable()->required(); + }else{ + $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')->rules('after:now',['after'=>'活动结束时间必须大于当前时间!'])->help($form->model()->expire_time_text); }); @@ -236,6 +240,7 @@ class GoodsActivityController extends AdminController $isInfinite = $form->input('is_infinite'); $inventory = $form->input('inventory'); $onSale = $form->input('on_sale'); + $remark = $form->input('remark'); // 库存 if(!empty($inventory) && empty($onSale)){ @@ -254,7 +259,7 @@ class GoodsActivityController extends AdminController if(!empty($onSale) && $onSale == 1 && $expireTime <= time()){ return $form->error('活动结束时间必须大于当前时间,请修改后再上架!'); }else if(!empty($onSale) && $onSale == 1 && $inventory <= 0 && $isInfinite == 0){ - return $form->error('商品上架或者关闭无限库存时,库存必须为大于0的数字'); + return $form->error('商品上架且关闭无限库存时,库存必须为大于0的数字'); } if(!empty($storeId)){ @@ -262,6 +267,7 @@ class GoodsActivityController extends AdminController $info = StoreModel::getStoreInfo($storeId,'market_id'); $form->market_id = $info->market_id; $form->market_ids = ["$info->market_id"]; + $form->remark = $remark ? $remark : ''; } $tagsArr = []; diff --git a/app/Admin/Controllers/v3/GoodsController.php b/app/Admin/Controllers/v3/GoodsController.php index 33fb12e..d59d6f6 100644 --- a/app/Admin/Controllers/v3/GoodsController.php +++ b/app/Admin/Controllers/v3/GoodsController.php @@ -18,6 +18,7 @@ use Dcat\Admin\Form\NestedForm; use App\Models\v3\Goods as GoodsModel; use App\Models\v3\Market as MarketModel; use App\Models\v3\GoodsCategory as GoodsCategoryModel; +use App\Models\v3\GoodsBanners as GoodsBannersModel; class GoodsController extends AdminController { @@ -48,6 +49,11 @@ class GoodsController extends AdminController $grid->id->sortable(); $grid->cover_img_url->image('',50); + $grid->column('banners')->display(function () { + $id = $this->id; + $banners = GoodsBannersModel::getArray([['goods_id','=',$id]]); + return $banners; + })->image('', 50); $grid->name->editable(); $grid->price->editable(); $grid->column('goods_unit','单位')->editable(); @@ -152,7 +158,7 @@ class GoodsController extends AdminController }); $show->width(6)->spec->as(function ($value){ $text = ''; - if($value){ + if($value && is_array($value)){ foreach ($value as $v){ $specKey = isset($v['spec_key'])?$v['spec_key']:''; $specValue = isset($v['spec_value'])?$v['spec_value']:''; @@ -198,19 +204,23 @@ class GoodsController extends AdminController // 二级分类 $categoryList = CategoryModel::getArray([['parent_id','>',0]]); // 商品类目 - $goodsCategoryList = GoodsCategoryModel::getArray(); + // $goodsCategoryList = GoodsCategoryModel::getArray(); // 店铺 $storeList = StoreModel::getStoreArray(); //市场 // $marketList = MarketModel::getMarketArray(); - $form->column(6, function (Form $form) use($storeList,$categoryList,$goodsCategoryList ){ + $form->column(6, function (Form $form) use($storeList,$categoryList){ $form->hidden('market_id')->default(0); $form->select('category_id')->required()->options($categoryList)->load('goods_category_id', '/api/goods_category_list'); $form->select('goods_category_id'); $form->select('store_id')->required()->options($storeList); $form->text('name')->required()->maxLength(20); - $form->image('cover_img')->autoUpload()->required(); + if($form->isCreating()){ + $form->image('cover_img')->autoUpload()->retainable()->required(); + }else{ + $form->image('cover_img')->autoUpload()->required(); + } $form->number('sort'); }); $form->column(6, function (Form $form) { @@ -266,11 +276,26 @@ class GoodsController extends AdminController $spec = $form->input('spec'); $detailsImgs = $form->input('details_imgs'); $goodsCategoryId = $form->input('goods_category_id'); + $isInfinite = $form->input('is_infinite'); + $inventory = $form->input('inventory'); + $onSale = $form->input('on_sale'); + $remark = $form->input('remark'); + + $OldInventory = $form->model()->inventory; + $OldIsInfinite = $form->model()->is_infinite; + + $isInfinite = empty($isInfinite)?$OldIsInfinite:$isInfinite; + $inventory = empty($inventory)?$OldInventory:$inventory; + + if(!empty($onSale) && $onSale == 1 && $inventory <= 0 && $isInfinite == 0){ + return $form->error('商品上架且关闭无限库存时,库存必须为大于0的数字'); + } if(!empty($storeId)){ // 商品所属市场,根据店铺查询市场 $info = StoreModel::getStoreInfo($storeId,'market_id'); $form->market_id = $info->market_id; + $form->remark = $remark ? $remark : ''; } $tagsArr = []; diff --git a/app/Admin/Controllers/v3/StoreController.php b/app/Admin/Controllers/v3/StoreController.php index 57d2213..7465ba2 100644 --- a/app/Admin/Controllers/v3/StoreController.php +++ b/app/Admin/Controllers/v3/StoreController.php @@ -193,7 +193,11 @@ class StoreController extends AdminController $form->select('market_id')->required()->options($marketList)->help('谨慎选择所属市场,添加成功后不能修改所属市场,因为会影响商品所属市场!'); $form->select('category_id')->options($categoryList); $form->text('name')->required()->maxLength(50); - $form->image('logo')->autoUpload()->required(); + if($form->isCreating()){ + $form->image('logo')->autoUpload()->retainable()->required(); + }else{ + $form->image('logo')->autoUpload()->required(); + } $form->mobile('tel'); $form->text('link_name')->required(); $form->mobile('link_tel')->required(); @@ -215,9 +219,15 @@ class StoreController extends AdminController $form->text('address')->required(); }); $form->column(6, function (Form $form) { - $form->image('business_license')->autoUpload()->required(); - $form->image('zm_img')->autoUpload()->required(); - $form->image('fm_img')->autoUpload()->required(); + if($form->isCreating()){ + $form->image('business_license')->autoUpload()->retainable()->required(); + $form->image('zm_img')->autoUpload()->retainable()->required(); + $form->image('fm_img')->autoUpload()->retainable()->required(); + }else{ + $form->image('business_license')->autoUpload()->required(); + $form->image('zm_img')->autoUpload()->required(); + $form->image('fm_img')->autoUpload()->required(); + } // $form->select('admin_id')->options($userList)->required(); // $form->select('user_id')->options($userList)->required(); $form->number('admin_id')->required()->min(0); diff --git a/app/Models/v3/GoodsBanners.php b/app/Models/v3/GoodsBanners.php index 699438a..3a03156 100644 --- a/app/Models/v3/GoodsBanners.php +++ b/app/Models/v3/GoodsBanners.php @@ -15,4 +15,35 @@ class GoodsBanners extends Model protected $dateFormat = 'U'; protected $fillable = ['path', 'id', 'goods_id','type','url']; + /** + * 获取单个信息 + * @param int $id + * @param string $field + * @return string + */ + public static function getInfo($id,$field = '*') + { + return self::select($field)->find($id); + } + + /** + * 获取二级分类数组 + * id为键,path为值 + * @return array + */ + public static function getArray($where = [],$options = []) + { + $model = self::whereNull('deleted_at'); + + if(count($where) > 0){ + $model->where($where); + } + $list = $model->pluck('id','path')->toArray(); + if(!empty($options)){ + $new = array_merge($options,$list); + return array_flip($new); + }else{ + return array_flip($list); + } + } }