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