Merge branch 'master' of http://47.244.231.31:8099/zhl/globalso-v6 into lyh-server
正在显示
7 个修改的文件
包含
73 行增加
和
15 行删除
| @@ -172,8 +172,8 @@ class SyncInquiryProject extends Command | @@ -172,8 +172,8 @@ class SyncInquiryProject extends Command | ||
| 172 | ProjectServer::useProject($val->id); | 172 | ProjectServer::useProject($val->id); |
| 173 | 173 | ||
| 174 | //排除白帽个人服务器项目 | 174 | //排除白帽个人服务器项目 |
| 175 | - $seo_type = WebSetting::where('project_id', $val->id)->value('seo_type'); | ||
| 176 | - if ($seo_type == 2) { | 175 | + $web_setting = WebSetting::where('project_id', $val->id)->first(); |
| 176 | + if (isset($web_setting->seo_type) && $web_setting->seo_type == 2) { | ||
| 177 | DB::disconnect('custom_mysql'); | 177 | DB::disconnect('custom_mysql'); |
| 178 | continue; | 178 | continue; |
| 179 | } | 179 | } |
| @@ -63,7 +63,7 @@ class KeywordPageAiContent extends Command | @@ -63,7 +63,7 @@ class KeywordPageAiContent extends Command | ||
| 63 | while (true) { | 63 | while (true) { |
| 64 | $task = ProjectKeywordAiTask::getPendingTask(); | 64 | $task = ProjectKeywordAiTask::getPendingTask(); |
| 65 | if (!$task) { | 65 | if (!$task) { |
| 66 | - sleep(10); | 66 | + sleep(60); |
| 67 | continue; | 67 | continue; |
| 68 | } | 68 | } |
| 69 | $project_id = $task->project_id; | 69 | $project_id = $task->project_id; |
| @@ -78,7 +78,17 @@ class KeywordPageAiContent extends Command | @@ -78,7 +78,17 @@ class KeywordPageAiContent extends Command | ||
| 78 | 78 | ||
| 79 | ProjectKeywordAiTask::finish($task->id, $update_rows); | 79 | ProjectKeywordAiTask::finish($task->id, $update_rows); |
| 80 | 80 | ||
| 81 | - $update_rows && $this->sendNotify($project_id); | 81 | +// $update_rows && $this->sendNotify($project_id); |
| 82 | + | ||
| 83 | + if($update_rows){ | ||
| 84 | + //缓存 在发送页面更新的项目数据 id | ||
| 85 | + $notify_cache_key = "keyword_page_ai_content_notify_{$project_id}"; | ||
| 86 | + if(Redis::setnx($notify_cache_key, 1)){ | ||
| 87 | + Redis::expire($notify_cache_key, 120); | ||
| 88 | + | ||
| 89 | + $this->sendNotify($project_id); //通知主站按需更新 | ||
| 90 | + } | ||
| 91 | + } | ||
| 82 | 92 | ||
| 83 | } catch (ValidateException $e) { | 93 | } catch (ValidateException $e) { |
| 84 | echo getmypid() . ' ' . date('Y-m-d H:i:s') . 'line: ' . $e->getLine() . ' error: ' . $project_id . '->' . $e->getMessage() . PHP_EOL; | 94 | echo getmypid() . ' ' . date('Y-m-d H:i:s') . 'line: ' . $e->getLine() . ' error: ' . $project_id . '->' . $e->getMessage() . PHP_EOL; |
| @@ -221,7 +221,7 @@ class UpdateSeoTdk extends Command | @@ -221,7 +221,7 @@ class UpdateSeoTdk extends Command | ||
| 221 | while (true) { | 221 | while (true) { |
| 222 | $task = ProjectUpdateTdk::getPendingTask(); | 222 | $task = ProjectUpdateTdk::getPendingTask(); |
| 223 | if (!$task) { | 223 | if (!$task) { |
| 224 | - sleep(10); | 224 | + sleep(60); |
| 225 | continue; | 225 | continue; |
| 226 | } | 226 | } |
| 227 | $project_id = $task->project_id; | 227 | $project_id = $task->project_id; |
| @@ -462,7 +462,16 @@ class UpdateSeoTdk extends Command | @@ -462,7 +462,16 @@ class UpdateSeoTdk extends Command | ||
| 462 | //通知C端更新界面 | 462 | //通知C端更新界面 |
| 463 | // $notify_master && $this->sendNotify($project_id, 1); //通知主站更新 | 463 | // $notify_master && $this->sendNotify($project_id, 1); //通知主站更新 |
| 464 | // $notify_keyword && $this->sendNotify($project_id, 4); //通知聚合页更新 | 464 | // $notify_keyword && $this->sendNotify($project_id, 4); //通知聚合页更新 |
| 465 | - $notify_master && $this->sendNotify($project_id, 2); //通知主站按需更新 | 465 | + |
| 466 | + if($notify_master){ | ||
| 467 | + //缓存 在发送页面更新的项目数据 id | ||
| 468 | + $notify_cache_key = "seo_tdk_update_notify_{$project_id}"; | ||
| 469 | + if(Redis::setnx($notify_cache_key, 1)){ | ||
| 470 | + Redis::expire($notify_cache_key, 120); | ||
| 471 | + | ||
| 472 | + $this->sendNotify($project_id, 2); //通知主站按需更新 | ||
| 473 | + } | ||
| 474 | + } | ||
| 466 | } | 475 | } |
| 467 | 476 | ||
| 468 | public function getPrompt($project_id, $prompt, $table, $data, $field){ | 477 | public function getPrompt($project_id, $prompt, $table, $data, $field){ |
| @@ -14,6 +14,7 @@ use App\Models\Devops\ServerConfig; | @@ -14,6 +14,7 @@ use App\Models\Devops\ServerConfig; | ||
| 14 | use App\Models\Devops\ServersIp; | 14 | use App\Models\Devops\ServersIp; |
| 15 | use App\Models\Domain\DomainCreateTask; | 15 | use App\Models\Domain\DomainCreateTask; |
| 16 | use App\Models\Domain\DomainInfo; | 16 | use App\Models\Domain\DomainInfo; |
| 17 | +use App\Models\Geo\GeoConf; | ||
| 17 | use App\Models\Inquiry\InquiryInfo; | 18 | use App\Models\Inquiry\InquiryInfo; |
| 18 | use App\Models\Inquiry\InquiryRelayAi; | 19 | use App\Models\Inquiry\InquiryRelayAi; |
| 19 | use App\Models\Product\Category; | 20 | use App\Models\Product\Category; |
| @@ -53,6 +54,46 @@ class Temp extends Command | @@ -53,6 +54,46 @@ class Temp extends Command | ||
| 53 | } | 54 | } |
| 54 | 55 | ||
| 55 | /** | 56 | /** |
| 57 | + * geo项目匹配项目负责人 | ||
| 58 | + * @author Akun | ||
| 59 | + * @date 2025/11/10 11:16 | ||
| 60 | + */ | ||
| 61 | + public function geoProjectMatchOptimist() | ||
| 62 | + { | ||
| 63 | + $project_list = DeployBuild::select('project_id')->where('seo_plan', '>', 0)->get(); | ||
| 64 | + | ||
| 65 | + foreach ($project_list as $value) { | ||
| 66 | + $project_id = $value['project_id']; | ||
| 67 | + | ||
| 68 | + $optimize_info = DeployOptimize::select(['optimist_mid', 'assist_mid'])->where('project_id', $project_id)->first(); | ||
| 69 | + | ||
| 70 | + if ($optimize_info) { | ||
| 71 | + $manager_id = 0; | ||
| 72 | + if (isset($optimize_info->assist_mid) && $optimize_info->assist_mid) { | ||
| 73 | + $manager_id = $optimize_info->assist_mid; | ||
| 74 | + } | ||
| 75 | + if (isset($optimize_info->optimist_mid) && $optimize_info->optimist_mid) { | ||
| 76 | + $manager_id = $optimize_info->optimist_mid; | ||
| 77 | + } | ||
| 78 | + | ||
| 79 | + if ($manager_id) { | ||
| 80 | + $geo_conf = GeoConf::where('project_id', $project_id)->first(); | ||
| 81 | + if (!$geo_conf) { | ||
| 82 | + $geo_conf = new GeoConf(); | ||
| 83 | + $geo_conf->project_id = $project_id; | ||
| 84 | + $geo_conf->manager_id = $manager_id; | ||
| 85 | + } elseif (empty($geo_conf['manager_id'])) { | ||
| 86 | + $geo_conf->manager_id = $manager_id; | ||
| 87 | + } | ||
| 88 | + $geo_conf->save(); | ||
| 89 | + } | ||
| 90 | + } | ||
| 91 | + | ||
| 92 | + $this->output('project_id:' . $project_id . ',success'); | ||
| 93 | + } | ||
| 94 | + } | ||
| 95 | + | ||
| 96 | + /** | ||
| 56 | * 4301项目特殊产品数据导入 | 97 | * 4301项目特殊产品数据导入 |
| 57 | * @return bool | 98 | * @return bool |
| 58 | * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception | 99 | * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception |
| @@ -50,11 +50,9 @@ class EnterpriseProductLogic extends BaseLogic | @@ -50,11 +50,9 @@ class EnterpriseProductLogic extends BaseLogic | ||
| 50 | 50 | ||
| 51 | 51 | ||
| 52 | /** | 52 | /** |
| 53 | - * @remark :批量保存外链数据 | ||
| 54 | - * @name :saveLinkData | ||
| 55 | - * @author :lyh | ||
| 56 | - * @method :post | ||
| 57 | - * @time :2025/4/2 9:08 | 53 | + * 批量保存外链数据 |
| 54 | + * TODO 约定参数, 验证参数, 参数兼容 | ||
| 55 | + * @return array | ||
| 58 | */ | 56 | */ |
| 59 | public function saveLinkData(){ | 57 | public function saveLinkData(){ |
| 60 | $linkModel = new GeoLink(); | 58 | $linkModel = new GeoLink(); |
| @@ -69,7 +67,7 @@ class EnterpriseProductLogic extends BaseLogic | @@ -69,7 +67,7 @@ class EnterpriseProductLogic extends BaseLogic | ||
| 69 | $data[] = [ | 67 | $data[] = [ |
| 70 | 'url'=>$v['url'], | 68 | 'url'=>$v['url'], |
| 71 | 'type'=>$linkModel::TYPE_LINK, | 69 | 'type'=>$linkModel::TYPE_LINK, |
| 72 | - 'da_values'=>$v['da_values'], | 70 | + 'da'=>$v['da'] ?? 0, // FIXME 确定数据库字段 |
| 73 | 'project_id'=>$this->param['project_id'], | 71 | 'project_id'=>$this->param['project_id'], |
| 74 | 'send_time'=>$v['send_time'] ?? date('Y-m-d H:i:s') | 72 | 'send_time'=>$v['send_time'] ?? date('Y-m-d H:i:s') |
| 75 | ]; | 73 | ]; |
| @@ -563,7 +563,7 @@ class RankDataLogic extends BaseLogic | @@ -563,7 +563,7 @@ class RankDataLogic extends BaseLogic | ||
| 563 | $without_project_ids = []; //不用处理排名的项目 | 563 | $without_project_ids = []; //不用处理排名的项目 |
| 564 | $without_extension_project_ids = [658]; //是否达标只统计主词的 | 564 | $without_extension_project_ids = [658]; //是否达标只统计主词的 |
| 565 | $extension_project_ids = [354]; //扩展词也到达标的 | 565 | $extension_project_ids = [354]; //扩展词也到达标的 |
| 566 | - $compliance_project_ids = [2163,257,823,1750,497,1006,2663]; //直接达标处理的 | 566 | + $compliance_project_ids = [2163,257,823,1750,497,1006,2663,255]; //直接达标处理的 |
| 567 | $ceaseProjectId = [354, 378, 649, 1226, 1283, 1703, 1893, 2066, 2250,2193,2399,1685, 3931,2273,3647,1934];//暂停的项目 | 567 | $ceaseProjectId = [354, 378, 649, 1226, 1283, 1703, 1893, 2066, 2250,2193,2399,1685, 3931,2273,3647,1934];//暂停的项目 |
| 568 | $uptimeProjectId = [1434,1812,276,2414,2974];//按上线时间统计的项目 | 568 | $uptimeProjectId = [1434,1812,276,2414,2974];//按上线时间统计的项目 |
| 569 | //一个项目多个api_no | 569 | //一个项目多个api_no |
| @@ -54,12 +54,12 @@ class ProjectUpdateTdk extends Base | @@ -54,12 +54,12 @@ class ProjectUpdateTdk extends Base | ||
| 54 | $project_id = Redis::rpop('updateSeoTdk'); | 54 | $project_id = Redis::rpop('updateSeoTdk'); |
| 55 | $data = []; | 55 | $data = []; |
| 56 | if($project_id){ | 56 | if($project_id){ |
| 57 | - $data = self::where('status', self::STATUS_PENDING)->where('project_id', $project_id)->orderBy('id', 'asc')->first(); | 57 | + $data = self::select(['id','project_id'])->where('status', self::STATUS_PENDING)->where('project_id', $project_id)->orderBy('id', 'asc')->first(); |
| 58 | } | 58 | } |
| 59 | if($data){ | 59 | if($data){ |
| 60 | return $data; | 60 | return $data; |
| 61 | } | 61 | } |
| 62 | - return self::where('status', self::STATUS_PENDING)->orderBy('id', 'asc')->first(); | 62 | + return self::select(['id','project_id'])->where('status', self::STATUS_PENDING)->orderBy('id', 'asc')->first(); |
| 63 | } | 63 | } |
| 64 | 64 | ||
| 65 | /** | 65 | /** |
-
请 注册 或 登录 后发表评论