| 
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -2,6 +2,7 @@ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					namespace App\AdminAgent\Controllers; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					use App\Models\AgentProduct; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					use App\Models\Category; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					use Dcat\Admin\Admin; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					use Dcat\Admin\Form; | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -85,6 +86,30 @@ class CategoryController extends AdminController | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								$form->agent_id = Admin::user()->id; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								$form->sort = $form->sort ?? 255; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							})->deleting(function (Form $form) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								//获取到要删除分类的ID
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								$category_id = (int)$form->getKey(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								//获取要删除类目的所有下级ID
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								$agent_id = Admin::user()->id; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								$category = Category::where('agent_id', $agent_id)->pluck('pid', 'id')->toArray(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								$ids = getChildCate($category_id, $category); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								if (AgentProduct::query()->where('agent_id', $agent_id)->whereIn('category_id', $ids)->exists()) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									return $form->response()->error('该分类下已经发布产品,不允许删除'); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							}); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					//获取$pid下的所有子类目
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					function getChildCate($pid, $category): array | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					{ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						$cate_arr = [$pid]; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						foreach ($category as $k => $v) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							if ($v == $pid) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								$cate_arr = array_merge($cate_arr, getChildCate($k, $category)); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						return $cate_arr; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					} |