作者 zhl

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

... ... @@ -10,6 +10,7 @@ namespace App\Console\Commands\Product;
use App\Models\Domain\DomainInfo;
use App\Models\Product\Keyword;
use App\Models\Project\Project;
use App\Models\RankData\RankDataLog;
use App\Services\ProjectServer;
use Illuminate\Console\Command;
use Illuminate\Support\Facades\DB;
... ... @@ -53,6 +54,12 @@ class ExternalLinkMake extends Command
continue;
}
$yesterday = RankDataLog::where(['project_id' => $project->id, 'date' => date('Y-m-d', '-1 day')])->first();
if (FALSE == empty($yesterday) && $yesterday->is_compliance == 1){
$this->output('项目昨日达标: ' . $project->id . ', 跳过');
continue;
}
if(empty($project->deploy_optimize['start_date']) || $project->deploy_optimize['start_date'] > $date){
$this->output('项目推广不到75天: ' . $project->id . ', 推广开始时间:' . $project->deploy_optimize['start_date']);
continue;
... ...
... ... @@ -568,4 +568,48 @@ class PrivateController extends BaseController
return $this->error('项目未匹配到域名');
return $this->success(['domain' => $domain->domain]);
}
/**
* 根据域名获取外链
* @param Request $request
* @return false|string
*/
public function getProjectExternalLink(Request $request)
{
$domain = trim($request->input('domain'));
$domain_parse = parse_url($domain);
$domain = $domain_parse['host'] ?? $domain;
if (empty($domain)) {
return $this->error('非法参数!');
}
$project = Project::getProjectByDomain($domain);
if (empty($project)) {
return $this->error('未找到当前域名对应的项目!');
}
ProjectServer::useProject($project->id);
$keywords = Keyword::select(['id', 'title', 'route', 'seo_title'])->where('route', '<>', null)->orderBy('id', 'desc')->limit(500)->get();
$host = 'https://' . $domain . '/';
$data = [];
foreach ($keywords as $keyword) {
$data[] = $host . $keyword->route . '/{' . $keyword->seo_title . '}';
}
DB::disconnect('custom_mysql');
return $this->success($data);
}
/**
* 获取今日需要推送的外链
* @param Request $request
* @return false|string
*/
public function getExternalLink(Request $request)
{
$max_id = DB::table('gl_project_external_link_make')->where(['status' => 0])->max('id');
$links = DB::table('gl_project_external_link_make')->where(['status' => 0])->where('id', '<=', $max_id)->pluck('external_link')->toArray();
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')]);
return $this->success($links);
}
}
... ...
... ... @@ -47,6 +47,10 @@ Route::any('project_new_url', [\App\Http\Controllers\Api\PrivateController::clas
Route::any('upgrade_project_domain', [\App\Http\Controllers\Api\PrivateController::class, 'upgradeProjectDomain'])->name('api.upgrade_project_domain');
// 询盘通知微信提示hook
Route::any('inquiry_notice_hook', [\App\Http\Controllers\Api\NoticeController::class, 'inquiryNoticeHook'])->name('api.inquiry_notice_hook');
// 获取当日需要推送外链列表
Route::any('get_today_push_external_link', [\App\Http\Controllers\Api\PrivateController::class, 'getExternalLink'])->name('api.today_push_external_link');
// 根据域名获取生成聚合页外链
Route::any('get_external_link_by_domain', [\App\Http\Controllers\Api\PrivateController::class, 'getProjectExternalLink'])->name('api.external_link_by_domain');
// --------------------- 站群服务 ------------------------------------------
// 获取项目信息
... ...