|
...
|
...
|
@@ -9,8 +9,15 @@ |
|
|
|
|
|
|
|
namespace App\Console\Commands\DeleteCategory;
|
|
|
|
|
|
|
|
use App\Helper\Arr;
|
|
|
|
use App\Models\Com\NoticeLog;
|
|
|
|
use App\Models\Product\Category;
|
|
|
|
use App\Models\Product\CategoryRelated;
|
|
|
|
use App\Models\Product\Product;
|
|
|
|
use App\Models\Project\Project;
|
|
|
|
use App\Services\ProjectServer;
|
|
|
|
use Illuminate\Console\Command;
|
|
|
|
use Illuminate\Support\Facades\DB;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @remark :删除分类
|
|
...
|
...
|
@@ -33,7 +40,7 @@ class DeleteProductCategory extends Command |
|
|
|
*
|
|
|
|
* @var string
|
|
|
|
*/
|
|
|
|
protected $description = '删除产品关键字';
|
|
|
|
protected $description = '删除产品分类';
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Create a new command instance.
|
|
...
|
...
|
@@ -55,13 +62,68 @@ class DeleteProductCategory extends Command |
|
|
|
public function handle(){
|
|
|
|
while (true){
|
|
|
|
$noticeLogModel = new NoticeLog();
|
|
|
|
$list = $noticeLogModel->list(['status'=>NoticeLog::STATUS_PENDING,'type'=>NoticeLog::DELETE_PRODUCT_CATEGORY],'id',['*'],'asc','100');
|
|
|
|
$list = $noticeLogModel->list(['status'=>NoticeLog::STATUS_PENDING,'type'=>NoticeLog::DELETE_PRODUCT_CATEGORY],'id',['*'],'asc',100);
|
|
|
|
if(empty($list)){
|
|
|
|
sleep(100);
|
|
|
|
}
|
|
|
|
foreach ($list as $v){
|
|
|
|
foreach ($list as $item){
|
|
|
|
echo 'start:' . $item['id'] . PHP_EOL;
|
|
|
|
try {
|
|
|
|
$projectModel = new Project();
|
|
|
|
$projectInfo = $projectModel->read(['id'=>$item['data']['project_id']]);
|
|
|
|
if($projectInfo === false){
|
|
|
|
continue;
|
|
|
|
}
|
|
|
|
ProjectServer::useProject($projectInfo['id']);
|
|
|
|
$this->updateCategory();
|
|
|
|
DB::disconnect('custom_mysql');
|
|
|
|
$noticeLogModel->edit(['status'=>NoticeLog::STATUS_SUCCESS],['id'=>$item['id']]);
|
|
|
|
echo 'success:' . $item['id'] . PHP_EOL;
|
|
|
|
}catch (\Exception $e){
|
|
|
|
echo 'error:' . $item['id'] . $e->getMessage() . PHP_EOL;
|
|
|
|
errorLog('项目初始化失败', $item, $e);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @remark :更新分类
|
|
|
|
* @name :updateProductCategory
|
|
|
|
* @author :lyh
|
|
|
|
* @method :post
|
|
|
|
* @time :2024/5/16 15:38
|
|
|
|
*/
|
|
|
|
public function updateCategory(){
|
|
|
|
$page = 1;
|
|
|
|
while (true){
|
|
|
|
$productModel = new Product();
|
|
|
|
$productList = $productModel->lists(['status'=>1],$page,1000,'id',['id','category_id']);
|
|
|
|
if(empty($productList) || empty($productList['list'])){
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
foreach ($productList['list'] as $v){
|
|
|
|
$categoryRelatedModel = new CategoryRelated();
|
|
|
|
if(empty($v['category_id'])){
|
|
|
|
$categoryRelatedModel->del(['product_id'=>$v['id']]);
|
|
|
|
continue;
|
|
|
|
}
|
|
|
|
$category_id_arr = $v['category_id'];
|
|
|
|
$categoryModel = new Category();
|
|
|
|
foreach ($category_id_arr as $k=>$cate_id){
|
|
|
|
$cateInfo = $categoryModel->read(['id'=>$cate_id],['id']);
|
|
|
|
if($cateInfo == false){
|
|
|
|
//删除关联表
|
|
|
|
$categoryRelatedModel->del(['cate_id'=>$cate_id]);
|
|
|
|
unset($category_id_arr[$k]);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
$str = !empty($category_id_arr) ? ','.Arr::arrToSet($category_id_arr).',' : '';
|
|
|
|
$productModel->edit(['category_id'=>$str],['id'=>$v['id']]);
|
|
|
|
}
|
|
|
|
$page++;
|
|
|
|
}
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
} |
...
|
...
|
|