lyhDemo.php
3.1 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
<?php
/**
* @remark :
* @name :lyhDemo.php
* @author :lyh
* @method :post
* @time :2025/3/24 9:38
*/
namespace App\Console\Commands\LyhTest;
use App\Console\Commands\Domain\DomainInfo;
use App\Http\Logic\Aside\Project\ProjectLogic;
use App\Models\Ai\AiBlog;
use App\Models\Ai\AiBlogAuthor;
use App\Models\Com\NoticeLog;
use App\Models\Com\V6WeeklyReport;
use App\Models\Project\AiBlogTask;
use App\Models\Project\DeployBuild;
use App\Models\Project\DeployOptimize;
use App\Models\Project\OnlineCheck;
use App\Models\Project\Project;
use App\Models\Project\ProjectAiSetting;
use App\Models\ProjectAssociation\ProjectAssociation;
use App\Models\RouteMap\RouteMap;
use App\Models\Visit\Visit;
use App\Models\WebSetting\WebLanguage;
use App\Models\WebSetting\WebSetting;
use App\Models\Workchat\MessagePush;
use App\Services\AiBlogService;
use App\Services\ProjectServer;
use Illuminate\Console\Command;
use Illuminate\Support\Facades\Artisan;
use Illuminate\Support\Facades\DB;
class lyhDemo extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'lyh_demo';
/**
* The console command description.
*
* @var string
*/
protected $description = '更新路由';
public function handle(){
$projectModel = new Project();
$lists = $projectModel->list(['delete_status' => 0,'id'=>467,'extend_type'=>0,'type'=>['in',[1,2,3,4,6]]], 'id', ['id']);
foreach ($lists as $val) {
echo date('Y-m-d H:i:s') . '开始--项目的id:'. $val['id'] . PHP_EOL;
ProjectServer::useProject($val['id']);
$aiBlogModel = new AiBlog();
$aiLists = $aiBlogModel->list(['status'=>2],'id',['id','seo_description']);
if(!empty($aiLists)){
foreach ($aiLists as $item){
if(!empty($item['seo_description'])){
//查看当前是否包含句号。
$result = $this->hasAnyPeriod($item['seo_description']);
if($result === false){
$text = $this->trimToLastFullWord($item['seo_description']);
}else{
$arr = explode('.',$item['seo_description']);
$text = $arr[0].'.';
}
$aiBlogModel->edit(['seo_description'=>$text],['id'=>$item['id']]);
}
}
}
DB::disconnect('custom_mysql');
echo date('Y-m-d H:i:s') . '结束--项目的id:'. $val['id'] . PHP_EOL;
}
return true;
}
public function trimToLastFullWord($text) {
// 去掉结尾非字母数字字符
$text = rtrim($text);
// 如果最后一个单词被截断,就删除它
if (preg_match('/^(.*?\b)\w*$/', $text, $matches)) {
return $matches[1];
}
return trim($text); // fallback
}
public function hasAnyPeriod($text) {
return strpos($text, '.') !== false || mb_strpos($text, '。') !== false;
}
}