|
...
|
...
|
@@ -12,9 +12,15 @@ use App\Models\Channel\Channel; |
|
|
|
use App\Models\Com\KeywordVideoTask;
|
|
|
|
use App\Models\Domain\DomainInfo;
|
|
|
|
use App\Models\Manage\ManageHr;
|
|
|
|
use App\Models\Product\Category;
|
|
|
|
use App\Models\Product\Keyword;
|
|
|
|
use App\Models\Product\Product;
|
|
|
|
use App\Models\Project\DeployOptimize;
|
|
|
|
use App\Models\Project\Project;
|
|
|
|
use App\Models\RankData\RankData;
|
|
|
|
use App\Models\RouteMap\RouteMap;
|
|
|
|
use App\Services\ProjectServer;
|
|
|
|
use Illuminate\Support\Facades\DB;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @remark :优化
|
|
...
|
...
|
@@ -426,4 +432,58 @@ class OptimizeController extends BaseController |
|
|
|
$optimizeModel->edit(['ai_video'=>$this->param['status']],['project_id'=>$this->param['project_id']]);
|
|
|
|
$this->response('success');
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @remark :锚文本链接
|
|
|
|
* @name :anchorTextList
|
|
|
|
* @author :lyh
|
|
|
|
* @method :post
|
|
|
|
* @time :2024/7/17 14:04
|
|
|
|
*/
|
|
|
|
public function anchorTextList(){
|
|
|
|
$this->request->validate([
|
|
|
|
'project_id' => 'required',
|
|
|
|
], [
|
|
|
|
'project_id.required' => 'project_id不能为空',
|
|
|
|
]);
|
|
|
|
// 获取当前网站正式域名
|
|
|
|
$domainModel = new DomainInfo();
|
|
|
|
$domainInfo = $domainModel->read(['project_id' => $this->param['project_id']], ['domain']);
|
|
|
|
if ($domainInfo === false) {
|
|
|
|
$this->fail('请先设置域名');
|
|
|
|
}
|
|
|
|
$domain = 'https://' . $domainInfo['domain'] . '/';
|
|
|
|
$data = [];
|
|
|
|
ProjectServer::useProject($this->param['project_id']);
|
|
|
|
$productModel = new Product();
|
|
|
|
$this->processChunkedList($productModel, ['status' => $productModel::STATUS_ON], ['id', 'title', 'route'], $domain, $data, 'product');
|
|
|
|
$productCategoryModel = new Category();
|
|
|
|
$this->processChunkedList($productCategoryModel, ['status' => $productCategoryModel::STATUS_ACTIVE], ['id', 'title', 'route'], $domain, $data, 'product_category');
|
|
|
|
$productKeywordModel = new Keyword();
|
|
|
|
$this->processChunkedList($productKeywordModel, ['status' => $productKeywordModel::STATUS_ACTIVE], ['id', 'title', 'route'], $domain, $data, 'product_keyword');
|
|
|
|
DB::disconnect('custom_mysql');
|
|
|
|
$this->response('success', Code::SUCCESS, $data);
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @remark :分片查询
|
|
|
|
* @name :processChunkedList
|
|
|
|
* @author :lyh
|
|
|
|
* @method :post
|
|
|
|
* @time :2024/7/17 14:55
|
|
|
|
*/
|
|
|
|
public function processChunkedList($model, $conditions, $fields, $domain, &$data, $key) {
|
|
|
|
$offset = 1;
|
|
|
|
$chunkSize = 5000; // 每次查询的记录数
|
|
|
|
while (true) {
|
|
|
|
$chunk = $model->lists($conditions,$offset,$chunkSize, 'id', $fields);
|
|
|
|
if (count($chunk['list']) == 0) {
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
foreach ($chunk['list'] as $item) {
|
|
|
|
$data[$key][] = $domain . $item['route'] . '/{' . $item['title'] . '}';
|
|
|
|
}
|
|
|
|
$offset++;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
} |
...
|
...
|
|