|
|
|
<?php
|
|
|
|
|
|
|
|
namespace App\Http\Logic\Bside;
|
|
|
|
|
|
|
|
|
|
|
|
use App\Helper\Arr;
|
|
|
|
use App\Helper\Translate;
|
|
|
|
use App\Http\Logic\Aside\Project\ProjectLogic;
|
|
|
|
use App\Models\RankData\ExternalLinks;
|
|
|
|
use App\Models\RankData\IndexedPages;
|
|
|
|
use App\Models\RankData\RankData;
|
|
|
|
use App\Models\RankData\RankWeek;
|
|
|
|
use App\Models\RankData\RecommDomain;
|
|
|
|
use App\Models\RankData\Speed;
|
|
|
|
use Illuminate\Support\Str;
|
|
|
|
|
|
|
|
class RankDataLogic extends BaseLogic
|
|
|
|
{
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 统计数据
|
|
|
|
* @author zbj
|
|
|
|
* @date 2023/5/11
|
|
|
|
*/
|
|
|
|
public function index()
|
|
|
|
{
|
|
|
|
$project_id = $this->user['project_id'];
|
|
|
|
|
|
|
|
//查数据
|
|
|
|
$project = app(ProjectLogic::class)->getInfo($project_id);
|
|
|
|
$rank = RankData::where('project_id', $project_id)->first();
|
|
|
|
$rank_week = RankWeek::where('project_id', $project_id)->first();
|
|
|
|
$recomm_domain = RecommDomain::where('project_id', $project_id)->first();
|
|
|
|
$external_links = ExternalLinks::where('project_id', $project_id)->first();
|
|
|
|
$indexed_pages = IndexedPages::where('project_id', $project_id)->first();
|
|
|
|
$speed = Speed::where('project_id', $project_id)->first();
|
|
|
|
|
|
|
|
//排名数据
|
|
|
|
$data = [
|
|
|
|
'first_num' => $rank['first_num'] ?? 0,
|
|
|
|
'first_page_num' => $rank['first_page_num'] ?? 0,
|
|
|
|
'first_three_pages_num' => $rank['first_three_pages_num'] ?? 0,
|
|
|
|
'first_five_pages_num' => $rank['first_five_pages_num'] ?? 0,
|
|
|
|
'first_ten_pages_num' => $rank['first_ten_pages_num'] ?? 0,
|
|
|
|
'indexed_pages_num' => $rank['indexed_pages_num'] ?? 0,
|
|
|
|
'external_links_num' => $external_links['total'] ?? 0,
|
|
|
|
];
|
|
|
|
|
|
|
|
//小语种列表
|
|
|
|
$langs = Arr::pluck($project['deploy_optimize']['minor_languages'], 'tl');
|
|
|
|
foreach ($langs as $lang){
|
|
|
|
$data['langs'][$lang] = Translate::getTls($lang);
|
|
|
|
}
|
|
|
|
|
|
|
|
//项目信息
|
|
|
|
$data['project'] = [
|
|
|
|
'company' => $project['company'],
|
|
|
|
'domain' => $project['deploy_optimize']['domain'],
|
|
|
|
'domain_info' => '',
|
|
|
|
'cert_info' => '',
|
|
|
|
'plan' => str_replace('营销大师-', '全球搜-', $project['deploy_build']['plan'][0]),
|
|
|
|
'keyword_num' => $project['deploy_build']['keyword_num'],
|
|
|
|
'compliance_day' => $rank['compliance_day'] ?? 0,
|
|
|
|
'remain_day' => $project['deploy_build']['service_duration'] - ($rank['compliance_day'] ?? 0),
|
|
|
|
];
|
|
|
|
|
|
|
|
//测速
|
|
|
|
$data['speed'] = $speed['data'] ?? [];
|
|
|
|
|
|
|
|
//seo基础设置
|
|
|
|
$data['seo'] = [
|
|
|
|
'H1,H2,H3标签',
|
|
|
|
'TDK设置(Title, Description, Keywords)',
|
|
|
|
'Google 收录提交',
|
|
|
|
'Sitemap.xml Google站长地图',
|
|
|
|
'Robots.txt文件优化',
|
|
|
|
'Google站长工具优化设置'
|
|
|
|
];
|
|
|
|
|
|
|
|
//外链引荐域名
|
|
|
|
$data['external_links_domain_chat'] = [
|
|
|
|
'labels' => array_map(function ($item) {
|
|
|
|
return Str::substrReplace($item, '***', 2, 3);
|
|
|
|
}, Arr::pluck($recomm_domain['data'] ?? [], 'domain')),
|
|
|
|
'data' => Arr::pluck($recomm_domain['data'] ?? [], 'backlinks_num'),
|
|
|
|
'list_date' => $recomm_domain['updated_at'] ?? '',
|
|
|
|
];
|
|
|
|
//SEO数据周期分析图 外链数
|
|
|
|
$data['external_links_chat'] = [
|
|
|
|
'labels' => array_keys($external_links['data'] ?? []),
|
|
|
|
'data' => array_values($external_links['data'] ?? []),
|
|
|
|
];
|
|
|
|
//SEO数据周期分析图 收录数
|
|
|
|
$data['indexed_pages_chat'] = [
|
|
|
|
'labels' => array_keys($indexed_pages['data'] ?? []),
|
|
|
|
'data' => array_values($indexed_pages['data'] ?? []),
|
|
|
|
];
|
|
|
|
//收录数加上当日数据
|
|
|
|
if((Arr::last($data['indexed_pages_chat']['labels'])) != date('Y-m-d')){
|
|
|
|
$data['indexed_pages_chat']['labels'][] = date('Y-m-d');
|
|
|
|
$data['indexed_pages_chat']['data'][] = $data['indexed_pages_num'];
|
|
|
|
}
|
|
|
|
//关键词排名分析图
|
|
|
|
$data['rank_chat'] = [
|
|
|
|
'data' => $rank_week['data'],
|
|
|
|
'labels' => $rank_week['date'],
|
|
|
|
];
|
|
|
|
|
|
|
|
return $data;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 关键词排名
|
|
|
|
* @author zbj
|
|
|
|
* @date 2023/5/12
|
|
|
|
*/
|
|
|
|
public function keywords_rank_list(){
|
|
|
|
$lang = $this->request['lang'];
|
|
|
|
}
|
|
|
|
} |
...
|
...
|
|