作者 lyh

Merge branch 'master' of http://47.244.231.31:8099/zhl/globalso-v6 into lyh-server

... ... @@ -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) {
for ($i = 0; $i < 3; $i++) {
$this->createTask($keywords, $project->id);
if(!$compliance) {
for ($i = 0; $i < 3; $i++) {
$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);
... ...
... ... @@ -61,14 +61,18 @@ class Project extends Base
* @method :post
* @time :2025/3/15 10:29
*/
public static function typeBlogFrequency(){
return [
public static function typeBlogFrequency($val = 0){
$arr = [
1=>'1-2',
2=>'2-3',
3=>'2-4',
4=>'3-5',
5=>'5-7',
];
if($val){
return $arr[$val] ?? '';
}
return $arr;
}
/**
... ...