作者 lyh

更新产品

@@ -169,7 +169,26 @@ class ProductController extends BaseController @@ -169,7 +169,26 @@ class ProductController extends BaseController
169 } 169 }
170 $this->param['featured_status'] = $this->param['featured_status'] ?? 0; 170 $this->param['featured_status'] = $this->param['featured_status'] ?? 0;
171 if($this->param['featured_status'] != Category::STATUS_ACTIVE) { 171 if($this->param['featured_status'] != Category::STATUS_ACTIVE) {
172 - $query = $query->where('title','not like','Featured%'); 172 + $cateModel = new Category();
  173 + $featured_ids = $cateModel->where('title', 'like', 'Featured%')->pluck('id')->toArray();
  174 + if(!empty($featured_ids)){
  175 + $status = [];
  176 + if(isset($this->map['status'])){
  177 + $status = ['status'=>$this->map['status']];
  178 + }
  179 + $cateList = $cateModel->list($status,'id',['id','pid']);
  180 + //获取当前的子集
  181 + $featured_arr = [];
  182 + foreach ($featured_ids as $id){
  183 + $featured_arr = array_merge($featured_arr,array_unique(_get_all_sub($id,$cateList)));
  184 + }
  185 + if(!empty($featured_arr)){
  186 + $cateRelated = new CategoryRelated();
  187 + $product_ids = $cateRelated->whereIn('cate_id',$featured_arr)->pluck('product_id')->unique()->toArray();
  188 + $query = $query->whereNotIn('id',$product_ids);
  189 + }
  190 + }
  191 +
173 } 192 }
174 return $query; 193 return $query;
175 } 194 }
@@ -395,7 +395,7 @@ class ProductLogic extends BaseLogic @@ -395,7 +395,7 @@ class ProductLogic extends BaseLogic
395 foreach ($data as $k => $v){ 395 foreach ($data as $k => $v){
396 $map = []; 396 $map = [];
397 $cateModel = new Category(); 397 $cateModel = new Category();
398 - $cateList = $cateModel->list(['status'=>1],'id',['id','pid']); 398 + $cateList = $cateModel->list(['status'=>$v],'id',['id','pid']);
399 $this->param['featured_status'] = $this->param['featured_status'] ?? 0; 399 $this->param['featured_status'] = $this->param['featured_status'] ?? 0;
400 if(!empty($cateList) && ($this->param['featured_status'] != $cateModel::STATUS_ACTIVE)){ 400 if(!empty($cateList) && ($this->param['featured_status'] != $cateModel::STATUS_ACTIVE)){
401 $featured_ids = $cateModel->where('title', 'like', 'Featured%')->pluck('id')->toArray(); 401 $featured_ids = $cateModel->where('title', 'like', 'Featured%')->pluck('id')->toArray();