|
@@ -11,6 +11,7 @@ use app\common\model\GoodsDetail;
|
|
|
use app\common\model\GoodsSku;
|
|
|
use app\common\model\Refund;
|
|
|
use think\Db;
|
|
|
+use Yansongda\Supports\Arr;
|
|
|
|
|
|
/**
|
|
|
* 商品列管理
|
|
@@ -120,20 +121,15 @@ class Goods extends Backend
|
|
|
'is_kill'=>['require'],
|
|
|
'logo|LOGO'=>['require','array','min:1','max:6'],
|
|
|
]);
|
|
|
- if(empty($data['size'])||empty($data['spec'])){
|
|
|
- $this->error('请填写尺寸和规格');
|
|
|
+ if(empty($data['size'])){
|
|
|
+ $this->error('请填写规格');
|
|
|
}
|
|
|
if(empty($data['sku'])){
|
|
|
$this->error('请填写参数');
|
|
|
}
|
|
|
foreach ($data['size'] as $key=>$item){
|
|
|
$this->validate($item,[
|
|
|
- 'name|尺寸名称'=>['require']
|
|
|
- ]);
|
|
|
- }
|
|
|
- foreach ($data['spec'] as $key=>$item){
|
|
|
- $this->validate($item,[
|
|
|
- 'name|规格名称'=>['require']
|
|
|
+ 'type|规格名称'=>['require']
|
|
|
]);
|
|
|
}
|
|
|
foreach ($data['sku'] as $key=>$item){
|
|
@@ -144,29 +140,27 @@ class Goods extends Backend
|
|
|
]);
|
|
|
foreach ($item['amount_ladder'] as $ladder){
|
|
|
$this->validate($ladder,[
|
|
|
- 'min|数量区间'=>['require','float','egt:0'],
|
|
|
- 'max|数量区间'=>['require','float','egt:0'],
|
|
|
- 'amount|区间售价'=>['require','float','egt:0'],
|
|
|
+ 'min|售价数量区间'=>['require','float','egt:0'],
|
|
|
+ 'max|售价数量区间'=>['require','float','egt:0'],
|
|
|
+ 'amount|售价区间价格'=>['require','float','egt:0'],
|
|
|
+ ]);
|
|
|
+ }
|
|
|
+ foreach ($item['detail'] as $d){
|
|
|
+ $this->validate($d,[
|
|
|
+ 'name|规格介绍参数名'=>['require','max:20'],
|
|
|
+ 'value|规格介绍参数值'=>['require','max:20'],
|
|
|
]);
|
|
|
}
|
|
|
if($data['is_kill']) {
|
|
|
foreach ($item['amount_kill_ladder'] as $ladder) {
|
|
|
$this->validate($ladder, [
|
|
|
- 'min|数量区间' => ['require', 'float', 'egt:0'],
|
|
|
- 'max|数量区间' => ['require', 'float', 'egt:0'],
|
|
|
- 'amount|区间售价' => ['require', 'float', 'egt:0'],
|
|
|
+ 'min|秒杀价数量区间' => ['require', 'float', 'egt:0'],
|
|
|
+ 'max|秒杀价数量区间' => ['require', 'float', 'egt:0'],
|
|
|
+ 'amount|秒杀价区间价格' => ['require', 'float', 'egt:0'],
|
|
|
]);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- foreach ($data['detail'] as $item){
|
|
|
- foreach ($item['arr'] as $d){
|
|
|
- $this->validate($d,[
|
|
|
- 'name|规格介绍参数名'=>['require','max:20'],
|
|
|
- 'value|规格介绍参数值'=>['require','max:20'],
|
|
|
- ]);
|
|
|
- }
|
|
|
- }
|
|
|
foreach ($data['service'] as $item){
|
|
|
$this->validate($item,[
|
|
|
'name|售后服务参数名'=>['require','max:20'],
|
|
@@ -201,21 +195,13 @@ class Goods extends Backend
|
|
|
}
|
|
|
$sizeId[]=$size['id'];
|
|
|
}
|
|
|
- foreach ($data['spec'] as $size){
|
|
|
- $size['goods_id']=$goods['id'];
|
|
|
- if(!empty($size['id'])){
|
|
|
- $size=GoodsSize::get($size['id']);
|
|
|
- $size->allowField($size)->save();
|
|
|
- }else{
|
|
|
- $size=GoodsSize::create($size);
|
|
|
- }
|
|
|
- $sizeId[]=$size['id'];
|
|
|
- }
|
|
|
$goods->size()->whereNotIn('id',$sizeId)->delete();
|
|
|
|
|
|
$skuId=[];
|
|
|
- foreach ($data['sku'] as $key=>$sku){
|
|
|
- $sku['name']=$sku['size']['name'].$sku['spec']['name'];
|
|
|
+ $detailId=[];
|
|
|
+ foreach ($data['sku'] as $key=>$_sku){
|
|
|
+ $sku=Arr::only($_sku,['amount_cost','amount_kill_ladder','amount_ladder','num_stock','num_stock_kill']);
|
|
|
+ $sku['name']=$_sku['specValues'];
|
|
|
if(!empty($sku['id'])){
|
|
|
$model=GoodsSku::get($sku['id']);
|
|
|
$model->allowField(true)->save($sku);
|
|
@@ -223,22 +209,20 @@ class Goods extends Backend
|
|
|
$model=GoodsSku::create($sku);
|
|
|
}
|
|
|
$skuId[]=$model['id'];
|
|
|
- }
|
|
|
- $goods->sku()->whereNotIn('id',$skuId)->delete();
|
|
|
|
|
|
- $detailId=[];
|
|
|
- foreach ($data['detail'] as $key=>$item){
|
|
|
- foreach ($item['arr'] as $detail){
|
|
|
+ foreach ($_sku['detail'] as $detail){
|
|
|
if(!empty($detail['id'])){
|
|
|
$model=GoodsDetail::get($detail['id']);
|
|
|
$model->allowField(true)->save($detail);
|
|
|
}else{
|
|
|
- $model=GoodsDetail::create([
|
|
|
- ''
|
|
|
- ]);
|
|
|
+ $detail['goods_id']=$goods['id'];
|
|
|
+ $model=GoodsDetail::create($detail);
|
|
|
}
|
|
|
+ $detailId[]=$model['id'];
|
|
|
}
|
|
|
}
|
|
|
+ $goods->sku()->whereNotIn('id',$skuId)->delete();
|
|
|
+ $goods->detail()->whereNotIn('id',$detailId)->delete();
|
|
|
|
|
|
$goods->setAmount();
|
|
|
Db::commit();
|