GoogleLinkController.php 1.7 KB
<?php
/**
 * @remark :
 * @name   :GoogleLinkController.php
 * @author :lyh
 * @method :post
 * @time   :2025/4/3 15:05
 */

namespace App\Http\Controllers\Bside\GoogleKeyword;

use App\Enums\Common\Code;
use App\Http\Controllers\Bside\BaseController;
use App\Models\GoogleSearch\GoogleLink;
use App\Services\GoogleLinkService;

class GoogleLinkController extends BaseController
{
    /**
     * @remark :外链数据
     * @name   :getLink
     * @author :lyh
     * @method :post
     * @time   :2025/4/3 16:09
     */
    public function getLink(){
        $linkModel = new GoogleLink();
        $lists = $linkModel->lists($this->map,$this->page,$this->row,'id',['url','moz_da','status','google_search','date','project_id','domain']);
        if(empty($lists['list'])){
            $linkService = new GoogleLinkService();
            $data = $linkService->linkPageData($this->user['domain'],$this->user['project_id']);
            $data = $this->paginateArray($data,$this->page,$this->row);
        }
        $this->response('success',Code::SUCCESS,$data);
    }

    /**
     * @remark :返回分页数据
     * @name   :paginateArray
     * @author :lyh
     * @method :post
     * @time   :2025/4/1 9:41
     */
    public function paginateArray($array, $page = 1, $pageSize = 20) {
        $totalItems = count($array);
        $totalPages = ceil($totalItems / $pageSize);
        // 确保页码有效
        $page = max(1, min($page, $totalPages));
        $offset = ($page - 1) * $pageSize;
        $data = array_slice($array, $offset, $pageSize);
        return [
            'list' => $data,
            'page' => $page,
            'size' => $pageSize,
            'total_page' => $totalPages,
            'total' => $totalItems,
        ];
    }
}