| 
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -5,7 +5,7 @@ use App\Common\ProductStatus; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					use App\Http\Controllers\Controller; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					use App\Models\Advertising; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					use App\Models\AgentProduct; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					use App\Models\Product; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					use App\Models\Category; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					use App\Models\UserFav; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					use Illuminate\Support\Facades\Storage; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -19,19 +19,47 @@ class AgentProductController extends Controller | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						// 代理商产品列表
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						public function index() | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						{ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							$category_id = request()->input('category_id'); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							$where = []; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							$formData = request()->only(['category_id', 'type', 'by']); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							$category_id  = $formData['category_id'] ?? 0; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							$type = $formData['type'] ?? 0; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							$by = $formData['by'] ?? 0; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							$list = AgentProduct::list($this->agent_id); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							if ($category_id) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								$where['category_id'] = $category_id; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								$list = $list->whereIn('category_id', [$category_id, ...$this->get_category_child_ids($category_id)]); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							$list = AgentProduct::list($this->agent_id)->where($where)->orderBy('id', 'DESC')->simplePaginate(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							$fields = ['id', 'sale', 'updated_at', 'price']; //排序字段 TODO 还有距离排序
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							$field = $fields[$type] ?? $fields[0]; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							$by = $by == 0 ? 'desc' : 'asc'; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							$list = $list->orderBy($field, $by)->simplePaginate(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							$list = $this->paginatePicAddHost($list); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							$list = $this->insertAd($list); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							return $this->success($list); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						//递归获取指定分类下的所有子分类
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						private function get_category_child_ids($category_id): array | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						{ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							static $category = null; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							if ($category === null) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								$category = Category::where('agent_id', $this->agent_id)->get()->toArray(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							$child = []; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							foreach ($category as $cat) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								if ($cat['pid'] == $category_id) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									$child[] = $cat['id']; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									$child = array_merge($child, $this->get_category_child_ids($cat['id'])); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							return $child; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						//首页搜索框
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						public function search() | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						{ | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -43,13 +71,13 @@ class AgentProductController extends Controller | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							$list = AgentProduct::list($this->agent_id); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							if ($category_id) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								$list = $list->where('category_id', $category_id); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								$list = $list->whereIn('category_id', [$category_id, ...$this->get_category_child_ids($category_id)]); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							if ($keywords) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								$list = $list->where('title', 'like', "%$keywords%"); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							$fields = ['id', 'sale', 'updated_at', 'price']; //排序字段 TODO 还有距离排序
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							$fields = ['id', 'sale', 'updated_at', 'price']; //排序字段
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							$field = $fields[$type] ?? $fields[0]; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							$by = $by == 0 ? 'desc' : 'asc'; | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -64,6 +92,8 @@ class AgentProductController extends Controller | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						public function travel_search() | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						{ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							$formData = request()->only(['departure_place', 'destination', 'type', 'by']); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							$type = $formData['type'] ?? 0; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							$by = $formData['by'] ?? 0; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							if (empty($formData['departure_place']) && empty($formData['destination'])) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								return $this->error('请输入出发地和目的地'); | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -71,8 +101,8 @@ class AgentProductController extends Controller | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							$fields = ['id', 'sale', 'updated_at', 'price']; //排序字段
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							$field = $fields[$formData['type']] ?? $fields[0]; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							$by = $formData['by'] == 0 ? 'desc' : 'asc'; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							$field = $fields[$type] ?? $fields[0]; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							$by = $by == 0 ? 'desc' : 'asc'; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							$list = AgentProduct::list($this->agent_id)->whereHas('product', function($query) use ($formData) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								//出发地
 | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
				
				 | 
				
					
  |