作者 zhl

不达标项目外链,获取外链接口

@@ -10,6 +10,7 @@ namespace App\Console\Commands\Product; @@ -10,6 +10,7 @@ namespace App\Console\Commands\Product;
10 use App\Models\Domain\DomainInfo; 10 use App\Models\Domain\DomainInfo;
11 use App\Models\Product\Keyword; 11 use App\Models\Product\Keyword;
12 use App\Models\Project\Project; 12 use App\Models\Project\Project;
  13 +use App\Models\RankData\RankDataLog;
13 use App\Services\ProjectServer; 14 use App\Services\ProjectServer;
14 use Illuminate\Console\Command; 15 use Illuminate\Console\Command;
15 use Illuminate\Support\Facades\DB; 16 use Illuminate\Support\Facades\DB;
@@ -53,6 +54,12 @@ class ExternalLinkMake extends Command @@ -53,6 +54,12 @@ class ExternalLinkMake extends Command
53 continue; 54 continue;
54 } 55 }
55 56
  57 + $yesterday = RankDataLog::where(['project_id' => $project->id, 'date' => date('Y-m-d', '-1 day')])->first();
  58 + if (FALSE == empty($yesterday) && $yesterday->is_compliance == 1){
  59 + $this->output('项目昨日达标: ' . $project->id . ', 跳过');
  60 + continue;
  61 + }
  62 +
56 if(empty($project->deploy_optimize['start_date']) || $project->deploy_optimize['start_date'] > $date){ 63 if(empty($project->deploy_optimize['start_date']) || $project->deploy_optimize['start_date'] > $date){
57 $this->output('项目推广不到75天: ' . $project->id . ', 推广开始时间:' . $project->deploy_optimize['start_date']); 64 $this->output('项目推广不到75天: ' . $project->id . ', 推广开始时间:' . $project->deploy_optimize['start_date']);
58 continue; 65 continue;
@@ -568,4 +568,48 @@ class PrivateController extends BaseController @@ -568,4 +568,48 @@ class PrivateController extends BaseController
568 return $this->error('项目未匹配到域名'); 568 return $this->error('项目未匹配到域名');
569 return $this->success(['domain' => $domain->domain]); 569 return $this->success(['domain' => $domain->domain]);
570 } 570 }
  571 +
  572 + /**
  573 + * 根据域名获取外链
  574 + * @param Request $request
  575 + * @return false|string
  576 + */
  577 + public function getProjectExternalLink(Request $request)
  578 + {
  579 + $domain = trim($request->input('domain'));
  580 + $domain_parse = parse_url($domain);
  581 + $domain = $domain_parse['host'] ?? $domain;
  582 +
  583 + if (empty($domain)) {
  584 + return $this->error('非法参数!');
  585 + }
  586 +
  587 + $project = Project::getProjectByDomain($domain);
  588 + if (empty($project)) {
  589 + return $this->error('未找到当前域名对应的项目!');
  590 + }
  591 +
  592 + ProjectServer::useProject($project->id);
  593 + $keywords = Keyword::select(['id', 'title', 'route', 'seo_title'])->where('route', '<>', null)->orderBy('id', 'desc')->limit(500)->get();
  594 + $host = 'https://' . $domain . '/';
  595 + $data = [];
  596 + foreach ($keywords as $keyword) {
  597 + $data[] = $host . $keyword->route . '/{' . $keyword->seo_title . '}';
  598 + }
  599 + DB::disconnect('custom_mysql');
  600 + return $this->success($data);
  601 + }
  602 +
  603 + /**
  604 + * 获取今日需要推送的外链
  605 + * @param Request $request
  606 + * @return false|string
  607 + */
  608 + public function getExternalLink(Request $request)
  609 + {
  610 + $max_id = DB::table('gl_project_external_link_make')->where(['status' => 0])->max('id');
  611 + $links = DB::table('gl_project_external_link_make')->where(['status' => 0])->where('id', '<=', $max_id)->pluck('external_link')->toArray();
  612 + DB::table('gl_project_external_link_make')->where(['status' => 0])->where('id', '<=', $max_id)->update(['status' => 1, 'updated_at' => date('Y-m-d H:i;s')]);
  613 + return $this->success($links);
  614 + }
571 } 615 }
@@ -47,6 +47,10 @@ Route::any('project_new_url', [\App\Http\Controllers\Api\PrivateController::clas @@ -47,6 +47,10 @@ Route::any('project_new_url', [\App\Http\Controllers\Api\PrivateController::clas
47 Route::any('upgrade_project_domain', [\App\Http\Controllers\Api\PrivateController::class, 'upgradeProjectDomain'])->name('api.upgrade_project_domain'); 47 Route::any('upgrade_project_domain', [\App\Http\Controllers\Api\PrivateController::class, 'upgradeProjectDomain'])->name('api.upgrade_project_domain');
48 // 询盘通知微信提示hook 48 // 询盘通知微信提示hook
49 Route::any('inquiry_notice_hook', [\App\Http\Controllers\Api\NoticeController::class, 'inquiryNoticeHook'])->name('api.inquiry_notice_hook'); 49 Route::any('inquiry_notice_hook', [\App\Http\Controllers\Api\NoticeController::class, 'inquiryNoticeHook'])->name('api.inquiry_notice_hook');
  50 +// 获取当日需要推送外链列表
  51 +Route::any('get_today_push_external_link', [\App\Http\Controllers\Api\PrivateController::class, 'getExternalLink'])->name('api.today_push_external_link');
  52 +// 根据域名获取生成聚合页外链
  53 +Route::any('get_external_link_by_domain', [\App\Http\Controllers\Api\PrivateController::class, 'getProjectExternalLink'])->name('api.external_link_by_domain');
50 54
51 // --------------------- 站群服务 ------------------------------------------ 55 // --------------------- 站群服务 ------------------------------------------
52 // 获取项目信息 56 // 获取项目信息