作者 lyh

GX生成白帽报表脚本

@@ -339,7 +339,7 @@ class AiBlogTask extends Command @@ -339,7 +339,7 @@ class AiBlogTask extends Command
339 ]; 339 ];
340 $res = http_post($c_url, json_encode($param,true)); 340 $res = http_post($c_url, json_encode($param,true));
341 if(empty($res)){ 341 if(empty($res)){
342 - NoticeLog::createLog(NoticeLog::GENERATE_PAGE, json_encode(['c_url'=>$c_url,'c_params'=>$param]),date('Y-m-d H:i:s',time()+300)); 342 + NoticeLog::createLog(NoticeLog::GENERATE_PAGE, ['c_url'=>$c_url,'c_params'=>$param],date('Y-m-d H:i:s',time()+300));
343 } 343 }
344 $this->output('notify: project id: ' . $project_id . ', result: ' . json_encode($res,JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES)); 344 $this->output('notify: project id: ' . $project_id . ', result: ' . json_encode($res,JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES));
345 } 345 }
@@ -259,7 +259,7 @@ class KeywordPageAiContent extends Command @@ -259,7 +259,7 @@ class KeywordPageAiContent extends Command
259 'url' => [], 259 'url' => [],
260 'language' => [], 260 'language' => [],
261 ]; 261 ];
262 - NoticeLog::createLog(NoticeLog::GENERATE_PAGE, json_encode(['c_url' => $url, 'c_params' => $param]), date('Y-m-d H:i:s', time() + 300)); 262 + NoticeLog::createLog(NoticeLog::GENERATE_PAGE, ['c_url' => $url, 'c_params' => $param], date('Y-m-d H:i:s', time() + 300));
263 echo getmypid() . ' ' . '更新中请稍后, 更新完成将会发送站内信通知更新结果!' . PHP_EOL; 263 echo getmypid() . ' ' . '更新中请稍后, 更新完成将会发送站内信通知更新结果!' . PHP_EOL;
264 } 264 }
265 } 265 }
  1 +<?php
  2 +/**
  3 + * @remark :
  4 + * @name :UpdateProjectTdk.php
  5 + * @author :lyh
  6 + * @method :post
  7 + * @time :2025/7/2 11:11
  8 + */
  9 +
  10 +namespace App\Console\Commands\Tdk;
  11 +
  12 +use App\Models\Com\NoticeLog;
  13 +use Illuminate\Console\Command;
  14 +
  15 +class UpdateProjectTdk extends Command
  16 +{
  17 + /**
  18 + * The name and signature of the console command.
  19 + *
  20 + * @var string
  21 + */
  22 + protected $signature = 'update_project_tdk';
  23 +
  24 + /**
  25 + * The console command description.
  26 + *
  27 + * @var string
  28 + */
  29 + protected $description = '根据给定的文件更新项目的tdk';
  30 +
  31 +
  32 + public function handle(){
  33 + $noticeLogModel = new NoticeLog();
  34 + while (true){
  35 + $task_id = $this->getTaskId();
  36 + if(empty($task_id)){
  37 + sleep(30);
  38 + continue;
  39 + }
  40 + $info = $noticeLogModel->read(['id'=>$task_id]);
  41 + if($info === false){
  42 +
  43 + }
  44 + }
  45 + return true;
  46 + }
  47 +
  48 + /**
  49 + * @remark :获取任务id
  50 + * @name :getTaskId
  51 + * @author :lyh
  52 + * @method :post
  53 + * @time :2025/7/2 11:19
  54 + */
  55 + public function getTaskId()
  56 + {
  57 + $task_id = Redis::rpop('update_project_tdk_task');
  58 + if (empty($task_id)) {
  59 + $noticeLogModel = new NoticeLog();
  60 + $ids = $noticeLogModel->selectField(['status'=>$noticeLogModel::STATUS_PENDING,'type'=>$noticeLogModel::TYPE_UPDATE_PROJECT_TDK],'id');
  61 + if(!empty($ids)){
  62 + foreach ($ids as $id) {
  63 + Redis::lpush('update_project_tdk_task', $id);
  64 + }
  65 + }
  66 + $task_id = Redis::rpop('update_project_tdk_task');
  67 + }
  68 + return $task_id;
  69 + }
  70 +}
@@ -260,7 +260,7 @@ class UpdateSeoTdk extends Command @@ -260,7 +260,7 @@ class UpdateSeoTdk extends Command
260 'url' => [], 260 'url' => [],
261 'language'=> [], 261 'language'=> [],
262 ]; 262 ];
263 - NoticeLog::createLog(NoticeLog::GENERATE_PAGE, json_encode(['c_url'=>$url,'c_params'=>$param]),date('Y-m-d H:i:s',time()+300)); 263 + NoticeLog::createLog(NoticeLog::GENERATE_PAGE, ['c_url'=>$url,'c_params'=>$param],date('Y-m-d H:i:s',time()+300));
264 // http_post($url, json_encode($param)); 264 // http_post($url, json_encode($param));
265 echo getmypid() . ' ' . '更新中请稍后, 更新完成将会发送站内信通知更新结果!'. PHP_EOL; 265 echo getmypid() . ' ' . '更新中请稍后, 更新完成将会发送站内信通知更新结果!'. PHP_EOL;
266 } 266 }
@@ -1259,4 +1259,23 @@ class ProjectController extends BaseController @@ -1259,4 +1259,23 @@ class ProjectController extends BaseController
1259 NoticeLog::createLog(NoticeLog::TYPE_GENERATE_COUNT_CHARTS, ['project_id' => $this->param['project_id']]); 1259 NoticeLog::createLog(NoticeLog::TYPE_GENERATE_COUNT_CHARTS, ['project_id' => $this->param['project_id']]);
1260 $this->response('success'); 1260 $this->response('success');
1261 } 1261 }
  1262 +
  1263 + /**
  1264 + * @remark :更新项目tdk
  1265 + * @name :updateTdk
  1266 + * @author :lyh
  1267 + * @method :post
  1268 + * @time :2025/7/2 11:04
  1269 + */
  1270 + public function updateTdk(){
  1271 + $this->request->validate([
  1272 + 'project_id'=>'required',
  1273 + 'url'=>'required'
  1274 + ],[
  1275 + 'project_id.required' => '项目id不能为空',
  1276 + 'url.required' => '文件路径不为空',
  1277 + ]);
  1278 + NoticeLog::createLog(NoticeLog::TYPE_UPDATE_PROJECT_TDK, ['project_id' => $this->param['project_id'],'url'=>$this->param['url']]);
  1279 + $this->response('success',Code::SUCCESS,['url'=>$this->param['url']]);
  1280 + }
1262 } 1281 }
@@ -304,7 +304,7 @@ class CNoticeController extends BaseController @@ -304,7 +304,7 @@ class CNoticeController extends BaseController
304 try { 304 try {
305 http_post($c_url, json_encode($c_param)); 305 http_post($c_url, json_encode($c_param));
306 }catch (\Exception $e){ 306 }catch (\Exception $e){
307 - NoticeLog::createLog(NoticeLog::GENERATE_PAGE, json_encode(['c_url'=>$c_url,'c_params'=>$c_param])); 307 + NoticeLog::createLog(NoticeLog::GENERATE_PAGE, ['c_url'=>$c_url,'c_params'=>$c_param]);
308 } 308 }
309 } 309 }
310 $this->response('更新中请稍后, 更新完成将会发送站内信通知更新结果!'); 310 $this->response('更新中请稍后, 更新完成将会发送站内信通知更新结果!');
@@ -15,6 +15,7 @@ class NoticeLog extends Base @@ -15,6 +15,7 @@ class NoticeLog extends Base
15 const TYPE_INIT_PROJECT = 'init_project'; 15 const TYPE_INIT_PROJECT = 'init_project';
16 const TYPE_INIT_KEYWORD_COMMENT = 'init_keyword_comment';//聚合页关键词评论 16 const TYPE_INIT_KEYWORD_COMMENT = 'init_keyword_comment';//聚合页关键词评论
17 const TYPE_GENERATE_COUNT_CHARTS = 'generate_count_charts';//聚合页关键字图表生成 17 const TYPE_GENERATE_COUNT_CHARTS = 'generate_count_charts';//聚合页关键字图表生成
  18 + const TYPE_UPDATE_PROJECT_TDK = 'updated_project_tdk';//根据路由更新tdk
18 const TYPE_COPY_PROJECT = 'copy_project'; 19 const TYPE_COPY_PROJECT = 'copy_project';
19 const TYPE_INIT_KEYWORD = 'init_keyword'; 20 const TYPE_INIT_KEYWORD = 'init_keyword';
20 const DELETE_PRODUCT_CATEGORY = 'delete_product_category'; 21 const DELETE_PRODUCT_CATEGORY = 'delete_product_category';
@@ -204,6 +204,7 @@ Route::middleware(['aloginauth'])->group(function () { @@ -204,6 +204,7 @@ Route::middleware(['aloginauth'])->group(function () {
204 Route::any('/updateProjectManager', [Aside\Project\ProjectController::class, 'updateProjectManager'])->name('admin.project_updateProjectManager');//更改项目人员配置 204 Route::any('/updateProjectManager', [Aside\Project\ProjectController::class, 'updateProjectManager'])->name('admin.project_updateProjectManager');//更改项目人员配置
205 Route::any('/setIsParticiple', [Aside\Project\ProjectController::class, 'setIsParticiple'])->name('admin.project_setIsParticiple');//开启/关闭分词 205 Route::any('/setIsParticiple', [Aside\Project\ProjectController::class, 'setIsParticiple'])->name('admin.project_setIsParticiple');//开启/关闭分词
206 Route::any('/saveSiteStatus', [Aside\Project\ProjectController::class, 'saveSiteStatus'])->name('admin.project_saveSiteStatus'); 206 Route::any('/saveSiteStatus', [Aside\Project\ProjectController::class, 'saveSiteStatus'])->name('admin.project_saveSiteStatus');
  207 + Route::any('/updateTdk', [Aside\Project\ProjectController::class, 'updateTdk'])->name('admin.project_updateTdk');//更新项目tdk
207 //获取关键词前缀和后缀 208 //获取关键词前缀和后缀
208 Route::prefix('keyword')->group(function () { 209 Route::prefix('keyword')->group(function () {
209 Route::any('/getKeywordPrefix', [Aside\Project\KeywordPrefixController::class, 'getKeywordPrefix'])->name('admin.keyword_getKeywordPrefix'); 210 Route::any('/getKeywordPrefix', [Aside\Project\KeywordPrefixController::class, 'getKeywordPrefix'])->name('admin.keyword_getKeywordPrefix');