|
@@ -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
|
}
|