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