作者 赵彬吉

update

... ... @@ -3,14 +3,14 @@
namespace App\Console\Commands\Tdk;
use App\Http\Controllers\Bside\News\NewsController;
use App\Models\News\News;
use App\Models\News\NewsCategory;
use App\Helper\Arr;
use App\Models\Product\Keyword;
use App\Models\Project\Project;
use App\Models\Project\ProjectUpdateTdk;
use App\Services\ProjectServer;
use Illuminate\Console\Command;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Str;
/**
* 重跑异常tdk
... ... @@ -63,25 +63,57 @@ class RerunSeoTdk extends Command
}
/**
* 判断异常
* 判断seo_title后缀重复
* @author zbj
* @date 2025/4/12
*/
public function judgeAnomalies($project_id){
//获取当前项目的所有分类
$categories = NewsCategory::pluck('name', 'id')->toArray();
$seo_titles = Keyword::pluck('seo_title', 'id')->toArray();
//新闻 seo_keyword 和 分类名一样的
$news_ids = [];
foreach ($categories as $category){
$ids = News::WhereRaw("FIND_IN_SET('{$category}', `seo_keywords`)")->pluck('id')->toArray();
$news_ids = array_unique(array_merge($news_ids, $ids));
$ids = [];
//Suppliers, Manufacturer
foreach ($seo_titles as $id=>$seo_title){
if(!Str::contains($seo_title, ', ')){
continue;
}
$arr = explode(', ', $seo_title);
$suffix1 = $arr[1];
$arr = explode(' ', $arr[0]);
$suffix2 = Arr::last($arr);
if(Str::singular($suffix1) == Str::singular($suffix2)){
$ids[] = $id;
}
}
$count = count($news_ids);
$count = count($ids);
if($count){
echo "项目{$project_id},共{$count}条需要重跑";
News::whereIn('id', $news_ids)->update(['seo_keywords' => '']);
Keyword::whereIn('id', $ids)->update(['seo_title' => '']);
ProjectUpdateTdk::add_task($project_id);
}
}
// /**
// * 判断异常
// * @author zbj
// * @date 2025/4/12
// */
// public function judgeAnomalies($project_id){
// //获取当前项目的所有分类
// $categories = NewsCategory::pluck('name', 'id')->toArray();
// //新闻 seo_keyword 和 分类名一样的
// $news_ids = [];
// foreach ($categories as $category){
// $ids = News::WhereRaw("FIND_IN_SET('{$category}', `seo_keywords`)")->pluck('id')->toArray();
// $news_ids = array_unique(array_merge($news_ids, $ids));
// }
//
// $count = count($news_ids);
// if($count){
// echo "项目{$project_id},共{$count}条需要重跑";
// News::whereIn('id', $news_ids)->update(['seo_keywords' => '']);
// ProjectUpdateTdk::add_task($project_id);
// }
// }
}
... ...