作者 lyh

变更数据

... ... @@ -127,4 +127,21 @@ class GeoLinkController extends BaseController
}
$this->response('success',Code::SUCCESS,$data);
}
/**
* @remark :执行da值返回数据
* @name :daResultData
* @author :lyh
* @method :post
* @time :2025/10/9 09:39
*/
public function daResultData(){
$this->request->validate([
'id'=>'required',
],[
'id.required' => 'ID不能为空',
]);
$data = $this->logic->daResultData();
$this->response('success',Code::SUCCESS,$data);
}
}
... ...
... ... @@ -79,4 +79,21 @@ class LinkDataController extends BaseController
$result = $linkData->del(['id'=>['in',$this->param['id']]]);
$this->response('success',Code::SUCCESS,$result);
}
/**
* @remark :执行da值返回数据
* @name :daResultData
* @author :lyh
* @method :post
* @time :2025/10/9 09:39
*/
public function daResultData(LinkDataLogic $logic){
$this->request->validate([
'id'=>'required',
],[
'id.required' => 'ID不能为空',
]);
$data = $logic->daResultData();
$this->response('success',Code::SUCCESS,$data);
}
}
... ...
... ... @@ -11,6 +11,7 @@ namespace App\Http\Logic\Aside\Geo;
use App\Http\Logic\Aside\BaseLogic;
use App\Models\Geo\GeoLink;
use App\Services\Geo\GeoService;
/**
* @remark :geo权威新闻(链接数据)
... ... @@ -101,4 +102,64 @@ class GeoLinkLogic extends BaseLogic
}
return $this->success();
}
/**
* @remark :返回数据data
* @name :daResultData
* @author :lyh
* @method :post
* @time :2025/10/9 09:43
*/
public function daResultData()
{
$info = $this->model->read(['id'=>$this->param['id']]);
if($info === false){
$this->fail('当前数据不存在或者已被删除');
}
$geoService = new GeoService();
if(!empty($info['time'])){
$date1 = new DateTime($info['time']);
$date2 = new DateTime(date('Y-m-d'));
$diff = $date1->diff($date2);
if($diff >= 60){
$host = $this->getDomainWithWWW($info['url']);
$result = $geoService->daResult($host);
}else{
return $this->success($info);
}
}else{
$host = $this->getDomainWithWWW($info['url']);
$result = $geoService->daResult($host);
}
if(!isset($result['data']) || empty($result['data'])){
$this->model->edit(['time'=>date('Y-m-d')], ['id'=>$info['id']]);
return $this->success($info);
}
$info['da'] = (int)$result['data']['mozDA'];//获取数据中的da值
$this->model->edit(['time'=>date('Y-m-d'),'da'=>$info['da']], ['id'=>$info['id']]);
return $this->success($result);
}
/**
* @remark :获取域名
* @name :getDomainWithWWW
* @author :lyh
* @method :post
* @time :2025/10/9 10:28
*/
public function getDomainWithWWW($url) {
// 获取 host
$host = parse_url($url, PHP_URL_HOST);
// 去掉端口号等情况
$host = preg_replace('/:\d+$/', '', $host);
// 分割域名
$parts = explode('.', $host);
// 判断是几段
$count = count($parts);
// 如果只有两段,比如 fox8.com、theamericawatch.com,就拼接 www.
if ($count === 2) {
return 'www.' . $host;
}
return $host;
}
}
... ...
... ... @@ -11,6 +11,7 @@ namespace App\Http\Logic\Bside\SeoSetting;
use App\Http\Logic\Bside\BaseLogic;
use App\Models\SeoSetting\LinkData;
use App\Services\Geo\GeoService;
/**
* @remark :获取外链数据
... ... @@ -50,4 +51,64 @@ class LinkDataLogic extends BaseLogic
}
return $this->success();
}
/**
* @remark :返回数据data
* @name :daResultData
* @author :lyh
* @method :post
* @time :2025/10/9 09:43
*/
public function daResultData()
{
$info = $this->model->read(['id'=>$this->param['id']]);
if($info === false){
$this->fail('当前数据不存在或者已被删除');
}
$geoService = new GeoService();
if(!empty($info['time'])){
$date1 = new DateTime($info['time']);
$date2 = new DateTime(date('Y-m-d'));
$diff = $date1->diff($date2);
if($diff >= 60){
$host = $this->getDomainWithWWW($info['da_values']);
$result = $geoService->daResult($host);
}else{
return $this->success($info);
}
}else{
$host = $this->getDomainWithWWW($info['da_values']);
$result = $geoService->daResult($host);
}
if(!isset($result['data']) || empty($result['data'])){
$this->model->edit(['time'=>date('Y-m-d')], ['id'=>$info['id']]);
return $this->success($info);
}
$info['da_values'] = (int)$result['data']['mozDA'];//获取数据中的da值
$this->model->edit(['time'=>date('Y-m-d'),'da_values'=>$info['da_values']], ['id'=>$info['id']]);
return $this->success($result);
}
/**
* @remark :获取域名
* @name :getDomainWithWWW
* @author :lyh
* @method :post
* @time :2025/10/9 10:28
*/
public function getDomainWithWWW($url) {
// 获取 host
$host = parse_url($url, PHP_URL_HOST);
// 去掉端口号等情况
$host = preg_replace('/:\d+$/', '', $host);
// 分割域名
$parts = explode('.', $host);
// 判断是几段
$count = count($parts);
// 如果只有两段,比如 fox8.com、theamericawatch.com,就拼接 www.
if ($count === 2) {
return 'www.' . $host;
}
return $host;
}
}
... ...
... ... @@ -137,4 +137,18 @@ class GeoService
$result = Http::post($url, $param);
return $result->json();
}
/**
* @remark :根据域名获取da值
* @name :daResult
* @author :lyh
* @method :post
* @time :2025/10/9 09:33
*/
public function daResult($domain)
{
$url = 'https://www.cmer.site/api/get_domain_da?domain='.$domain;
$result = http_get($url);
return $result;
}
}
... ...
... ... @@ -583,6 +583,7 @@ Route::middleware(['aloginauth'])->group(function () {
Route::any('/info', [Aside\Geo\GeoLinkController::class, 'info'])->name('admin.geo_link_info');
Route::any('/del', [Aside\Geo\GeoLinkController::class, 'del'])->name('admin.geo_link_del');
Route::any('/downloadGeoLink', [Aside\Geo\GeoLinkController::class, 'downloadGeoLink'])->name('admin.geo_link_downloadGeoLink');
Route::any('/daResultData', [Aside\Geo\GeoLinkController::class, 'daResultData'])->name('admin.geo_link_daResultData');
});
});
// 任务相关
... ...
... ... @@ -715,6 +715,7 @@ Route::middleware(['bloginauth'])->group(function () {
Route::any('/batchSave', [\App\Http\Controllers\Bside\SeoSetting\LinkDataController::class, 'batchSave'])->name('link_data_batchSave');
Route::any('/info', [\App\Http\Controllers\Bside\SeoSetting\LinkDataController::class, 'info'])->name('link_data_info');
Route::any('/del', [\App\Http\Controllers\Bside\SeoSetting\LinkDataController::class, 'del'])->name('link_data_del');
Route::any('/daResultData', [\App\Http\Controllers\Bside\SeoSetting\LinkDataController::class, 'daResultData'])->name('link_data_daResultData');
});
//seo白帽 域名设置
... ...