|
...
|
...
|
@@ -8,6 +8,7 @@ use App\Models\Ai\AiBlogOpenLog; |
|
|
|
use App\Models\Project\AiBlogTask as AiBlogTaskModel;
|
|
|
|
use App\Models\Project\Project;
|
|
|
|
use App\Models\Project\ProjectKeyword;
|
|
|
|
use App\Models\RankData\RankData;
|
|
|
|
use App\Models\WebSetting\WebSetting;
|
|
|
|
use App\Services\AiBlogService;
|
|
|
|
use App\Services\ProjectServer;
|
|
...
|
...
|
@@ -78,26 +79,38 @@ class AiBlogAutoPublish extends Command |
|
|
|
$keywords = array_map('trim', $keywords);
|
|
|
|
if (empty($keywords)) {
|
|
|
|
$this->output("项目{$project->id}未获取到关键词");
|
|
|
|
continue;
|
|
|
|
}
|
|
|
|
$last_task = AiBlogTaskModel::where('project_id', $project->id)->where('type', 2)->orderBy('id', 'desc')->first();
|
|
|
|
//如果没有发布过AI blog任务, 第一次提交3个任务
|
|
|
|
$compliance = RankData::where(['project_id' => $project->id, 'lang' => ''])->value('is_compliance');
|
|
|
|
$frequency = Project::typeBlogFrequency($project->deploy_optimize->send_ai_blog_frequency);
|
|
|
|
$frequency = explode('-', $frequency);
|
|
|
|
//1、之前测试那批项目,按照正常频率发送;
|
|
|
|
//2、未达标的项目,开启AIblog, 并立即推送三篇;
|
|
|
|
//3、其他项目等下下周 1 (2025-03-17)开始推送第一篇, 之后按照正频率发送;
|
|
|
|
if (!$last_task) {
|
|
|
|
if(!$compliance) {
|
|
|
|
for ($i = 0; $i < 3; $i++) {
|
|
|
|
$this->createTask($keywords, $project->id);
|
|
|
|
$this->createTask($keywords, $project->id, $frequency);
|
|
|
|
}
|
|
|
|
}else{
|
|
|
|
if(date('Y-m-d') >= '2025-03-17'){
|
|
|
|
$this->createTask($keywords, $project->id, $frequency);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
$this->createTask($keywords, $project->id);
|
|
|
|
$this->createTask($keywords, $project->id, $frequency);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
public function createTask($keywords, $project_id){
|
|
|
|
public function createTask($keywords, $project_id, $frequency){
|
|
|
|
$keyword = $keywords[array_rand($keywords)];
|
|
|
|
$aiBlogService = new AiBlogService($project_id);
|
|
|
|
$result = $aiBlogService->setRoute($keyword)->createTask($keyword);
|
|
|
|
if ($result['status'] == 200) {
|
|
|
|
$aiBlogTaskModel = new AiBlogTaskModel();
|
|
|
|
$next_auto_date = date('Y-m-d', strtotime('+' . mt_rand(3,6) . 'days')); //每3-6天自动发布
|
|
|
|
$next_auto_date = date('Y-m-d', strtotime('+' . mt_rand($frequency[0],$frequency[1]) . 'days')); //每3-6天自动发布
|
|
|
|
$aiBlogTaskModel->addReturnId(['project_id' => $project_id, 'type' => 2, 'task_id' => $result['data']['task_id'], 'status' => 1, 'next_auto_date' => $next_auto_date]);
|
|
|
|
|
|
|
|
ProjectServer::useProject($project_id);
|
...
|
...
|
|