|
@@ -1,783 +1,782 @@
|
|
|
-<?php
|
|
|
-
|
|
|
-declare(strict_types=1);
|
|
|
-namespace App\Controller;
|
|
|
-
|
|
|
-use App\JsonRpc\CollectorServiceInterface;
|
|
|
-use App\Tools\PublicData;
|
|
|
-use Hyperf\Di\Annotation\Inject;
|
|
|
-use Hyperf\HttpServer\Annotation\AutoController;
|
|
|
-use App\Tools\Result;
|
|
|
-use Hyperf\Validation\Contract\ValidatorFactoryInterface;
|
|
|
-use App\Constants\ErrorCode;
|
|
|
-use Hyperf\Context\Context;
|
|
|
-//use App\Service\GatherQueueService;
|
|
|
-use App\Service\ImportQueueService;
|
|
|
-/**
|
|
|
- * ClassCollectorController
|
|
|
- * @package App\Controller
|
|
|
- */
|
|
|
-
|
|
|
-class CollectorController extends AbstractController
|
|
|
-{
|
|
|
- #[Inject]
|
|
|
- protected ValidatorFactoryInterface $validationFactory;
|
|
|
-// #[Inject]
|
|
|
-// protected GatherQueueService $Gservice;
|
|
|
- #[Inject]
|
|
|
- protected ImportQueueService $Iservice;
|
|
|
-
|
|
|
- /**
|
|
|
- * @var CollectorServiceInterface
|
|
|
- */
|
|
|
- #[Inject]
|
|
|
- private $collectorServiceClient;
|
|
|
-
|
|
|
- /**
|
|
|
- * 添加网站
|
|
|
- * @return array
|
|
|
- */
|
|
|
- public function addWeb()
|
|
|
- {
|
|
|
- $requireData = $this->request->all();
|
|
|
- $validator = $this->validationFactory->make(
|
|
|
- $requireData,
|
|
|
- [
|
|
|
- 'name'=> 'required',
|
|
|
- 'url'=> 'required',
|
|
|
- ],
|
|
|
- [
|
|
|
- 'name.required' => '网站名称不能为空',
|
|
|
- 'url.required' => '网站地址不能为空',
|
|
|
- ]
|
|
|
- );
|
|
|
- if ($validator->fails()) {
|
|
|
- $errorMessage = $validator->errors()->first();
|
|
|
- return Result::error($errorMessage);
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
- $result = $this->collectorServiceClient->addWeb($requireData);
|
|
|
- if ($result['code'] != ErrorCode::SUCCESS) {
|
|
|
- return Result::error($result['message'],0,[]);
|
|
|
- }
|
|
|
- return Result::success($result['data']);
|
|
|
- }
|
|
|
- /**
|
|
|
- * 获取及搜索网站
|
|
|
- * @return array
|
|
|
- */
|
|
|
- public function getWeb()
|
|
|
- {
|
|
|
- $requireData = $this->request->all();
|
|
|
- $validator = $this->validationFactory->make(
|
|
|
- $requireData,
|
|
|
- [
|
|
|
- 'page'=> 'required',
|
|
|
- 'pageSize'=> 'required',
|
|
|
- ],
|
|
|
- [
|
|
|
- 'page.required' => '第几页不能为空',
|
|
|
- 'pageSize.required' => '每页显示条数不能为空',
|
|
|
- ]
|
|
|
- );
|
|
|
- if(isset($requireData['keyWord'])){
|
|
|
- $validator = $this->validationFactory->make(
|
|
|
- $requireData,
|
|
|
- [
|
|
|
- 'keyWord'=> 'required'
|
|
|
- ],
|
|
|
- [
|
|
|
- 'keyWord.required' => '搜索词不能为空'
|
|
|
- ]
|
|
|
- );
|
|
|
- }
|
|
|
-
|
|
|
- if ($validator->fails()) {
|
|
|
- $errorMessage = $validator->errors()->first();
|
|
|
- return Result::error($errorMessage);
|
|
|
- }
|
|
|
- $result = $this->collectorServiceClient->getWeb($requireData);
|
|
|
- if ($result['code'] != ErrorCode::SUCCESS) {
|
|
|
- return Result::error($result['message'],0,[]);
|
|
|
- }
|
|
|
- return Result::success($result['data']);
|
|
|
- }
|
|
|
- /**
|
|
|
- * 修改网站
|
|
|
- * @return array
|
|
|
- */
|
|
|
- public function upWeb()
|
|
|
- {
|
|
|
- $requireData = $this->request->all();
|
|
|
- $validator = $this->validationFactory->make(
|
|
|
- $requireData,
|
|
|
- [
|
|
|
- 'name'=> 'required',
|
|
|
- 'url'=> 'required',
|
|
|
- 'id' => 'required'
|
|
|
- ],
|
|
|
- [
|
|
|
- 'name.required' => '网站名称不能为空',
|
|
|
- 'url.required' => '网站地址不能为空',
|
|
|
- 'id.required' => '网站id不能为空'
|
|
|
- ]
|
|
|
- );
|
|
|
- if ($validator->fails()) {
|
|
|
- $errorMessage = $validator->errors()->first();
|
|
|
- return Result::error($errorMessage);
|
|
|
- }
|
|
|
- $result = $this->collectorServiceClient->upWeb($requireData);
|
|
|
- if ($result['code'] != ErrorCode::SUCCESS) {
|
|
|
- return Result::error($result['message'],0,[]);
|
|
|
- }
|
|
|
- return Result::success($result['data']);
|
|
|
- }
|
|
|
- /**
|
|
|
- * 删除网站
|
|
|
- * @return array
|
|
|
- */
|
|
|
- public function delWeb()
|
|
|
- {
|
|
|
- $requireData = $this->request->all();
|
|
|
- $validator = $this->validationFactory->make(
|
|
|
- $requireData,
|
|
|
- [
|
|
|
- 'id' => 'required'
|
|
|
- ],
|
|
|
- [
|
|
|
- 'id.required' => '网站id不能为空'
|
|
|
- ]
|
|
|
- );
|
|
|
- if ($validator->fails()) {
|
|
|
- $errorMessage = $validator->errors()->first();
|
|
|
- return Result::error($errorMessage);
|
|
|
- }
|
|
|
- $result = $this->collectorServiceClient->delWeb($requireData);
|
|
|
- if ($result['code'] != ErrorCode::SUCCESS) {
|
|
|
- return Result::error($result['message'],0,[]);
|
|
|
- }
|
|
|
- return Result::success($result['data']);
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 添加规则任务
|
|
|
- * @return array
|
|
|
- */
|
|
|
- public function addRule()
|
|
|
- {
|
|
|
-
|
|
|
- $requireData = $this->request->all();
|
|
|
- $validator = $this->validationFactory->make(
|
|
|
- $requireData,
|
|
|
- [
|
|
|
- 'name' => 'required',
|
|
|
- 'web_id' => 'required',
|
|
|
- 'type' => 'required'
|
|
|
- ],
|
|
|
- [
|
|
|
- 'name.required' => '任务规则名称不能为空',
|
|
|
- 'web_id.required' => '网站id不能为空',
|
|
|
- 'type.required' => '网站类型不能为空'
|
|
|
- ]
|
|
|
- );
|
|
|
- if ($validator->fails()) {
|
|
|
- $errorMessage = $validator->errors()->first();
|
|
|
- return Result::error($errorMessage);
|
|
|
- }
|
|
|
- switch($requireData['type']){
|
|
|
- case 1:
|
|
|
- $validator = $this->validationFactory->make(
|
|
|
- $requireData,
|
|
|
- [
|
|
|
- 'first_url' => 'required',
|
|
|
- 'second_start' => 'required',
|
|
|
- 'second_num' => 'required',
|
|
|
- 'second_end' => 'required',
|
|
|
- 'end_pagenum' => 'required',
|
|
|
- 'start' => 'required',
|
|
|
- 'con_url' => 'required',
|
|
|
- 'title' => 'required',
|
|
|
- 'content' => 'required'
|
|
|
- ],
|
|
|
- [
|
|
|
- 'first_url.required' => '第1页网址不能为空',
|
|
|
- 'second_start.required' => '第2页网址开头不能为空',
|
|
|
- 'second_num.required' => '第2页代码页数不能为空',
|
|
|
- 'second_end.required' => '第2页网址结束字符串不能为空',
|
|
|
- 'end_pagenum.required' => '列表页结束页码不能为空',
|
|
|
- 'start.required' => '开始代码不能为空',
|
|
|
- 'con_url.required' => '详情页前缀地址不能为空',
|
|
|
- 'title.required' => '标题标签类名不能为空',
|
|
|
- 'content.required' => '内容标签类名不能为空'
|
|
|
- ]
|
|
|
- );
|
|
|
- if ($validator->fails()) {
|
|
|
- $errorMessage = $validator->errors()->first();
|
|
|
- return Result::error($errorMessage);
|
|
|
- }
|
|
|
-
|
|
|
- break;
|
|
|
- case 2:
|
|
|
- $validator = $this->validationFactory->make(
|
|
|
- $requireData,
|
|
|
- [
|
|
|
- 'first_url' => 'required',
|
|
|
- 'parameter' => 'required',
|
|
|
- 'start' => 'required',
|
|
|
- 'title' => 'required',
|
|
|
- 'content' => 'required',
|
|
|
- ],
|
|
|
- [
|
|
|
- 'first_url.required' => '开始采集地址不能为空',
|
|
|
- 'parameter.required' => '接口参数不能为空',
|
|
|
- 'start.required' => '列表标签不能为空',
|
|
|
- 'title.required' => '标题标签不能为空',
|
|
|
- 'content.required' => '内容标签不能为空'
|
|
|
- ]
|
|
|
- );
|
|
|
- if ($validator->fails()) {
|
|
|
- $errorMessage = $validator->errors()->first();
|
|
|
- return Result::error($errorMessage);
|
|
|
- }
|
|
|
- // var_dump("============2============");
|
|
|
- break;
|
|
|
- case 3:
|
|
|
- $validator = $this->validationFactory->make(
|
|
|
- $requireData,
|
|
|
- [
|
|
|
- 'diy_rule' => 'required'
|
|
|
- ],
|
|
|
- [
|
|
|
- 'diy_rule.required' => '采集规则不能为空'
|
|
|
- ]
|
|
|
- );
|
|
|
- if ($validator->fails()) {
|
|
|
- $errorMessage = $validator->errors()->first();
|
|
|
- return Result::error($errorMessage);
|
|
|
- }
|
|
|
- // var_dump("============3============");
|
|
|
- break;
|
|
|
- default:
|
|
|
- return Result::error('请输入正确的网站类型');
|
|
|
- break;
|
|
|
-
|
|
|
- }
|
|
|
- if(isset($requireData['writer_class']) && $requireData['type'] == 2){
|
|
|
- $validator = $this->validationFactory->make(
|
|
|
- $requireData,
|
|
|
- [
|
|
|
- 'writer_class' => 'required'
|
|
|
- ],
|
|
|
- [
|
|
|
- 'writer_class.required' => '作者标签不能为空'
|
|
|
- ]
|
|
|
- );
|
|
|
- if ($validator->fails()) {
|
|
|
- $errorMessage = $validator->errors()->first();
|
|
|
- return Result::error($errorMessage);
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- if(isset($requireData['writer']) && $requireData['type'] != 3){
|
|
|
- $validator = $this->validationFactory->make(
|
|
|
- $requireData,
|
|
|
- [
|
|
|
- 'writer' => 'required'
|
|
|
- ],
|
|
|
- [
|
|
|
- 'writer.required' => '文章作者不能为空'
|
|
|
- ]
|
|
|
- );
|
|
|
- if ($validator->fails()) {
|
|
|
- $errorMessage = $validator->errors()->first();
|
|
|
- return Result::error($errorMessage);
|
|
|
- }
|
|
|
- }
|
|
|
- // return Result::success($requireData);
|
|
|
- $result = $this->collectorServiceClient->addRule($requireData);
|
|
|
- if ($result['code'] != ErrorCode::SUCCESS) {
|
|
|
- return Result::error($result['message'],0,[]);
|
|
|
- }
|
|
|
- return Result::success($result['data']);
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 获取并搜索任务规则
|
|
|
- * @return array
|
|
|
- */
|
|
|
- public function getRule()
|
|
|
- {
|
|
|
- $requireData = $this->request->all();
|
|
|
- $validator = $this->validationFactory->make(
|
|
|
- $requireData,
|
|
|
- [
|
|
|
- 'pageSize' => 'required',
|
|
|
- 'page' => 'required'
|
|
|
- ],
|
|
|
- [
|
|
|
- 'pageSize.required' => '每页显示数量不能为空',
|
|
|
- 'page.required' => '第几页不能为空',
|
|
|
- ]
|
|
|
- );
|
|
|
- if(isset($requireData['keyWord'])){
|
|
|
- $validator = $this->validationFactory->make(
|
|
|
- $requireData,
|
|
|
- [
|
|
|
- 'keyWord' => 'required'
|
|
|
- ],
|
|
|
- [
|
|
|
- 'keyWord.required' => '搜索词不能为空'
|
|
|
- ]
|
|
|
- );
|
|
|
- }
|
|
|
-
|
|
|
- if(isset($requireData['web_id'])){
|
|
|
- $validator = $this->validationFactory->make(
|
|
|
- $requireData,
|
|
|
- [
|
|
|
- 'web_id' => 'required'
|
|
|
- ],
|
|
|
- [
|
|
|
- 'web_id.required' => '网站id不能为空'
|
|
|
- ]
|
|
|
- );
|
|
|
- }
|
|
|
-
|
|
|
- if ($validator->fails()) {
|
|
|
- $errorMessage = $validator->errors()->first();
|
|
|
- return Result::error($errorMessage);
|
|
|
- }
|
|
|
- $result = $this->collectorServiceClient->getRule($requireData);
|
|
|
- if ($result['code'] != ErrorCode::SUCCESS) {
|
|
|
- return Result::error($result['message'],0,[]);
|
|
|
- }
|
|
|
- return Result::success($result['data']);
|
|
|
- }
|
|
|
- /**
|
|
|
- * 获取某个规则任务
|
|
|
- * @return array
|
|
|
- */
|
|
|
- public function getOneRule()
|
|
|
- {
|
|
|
- $requireData = $this->request->all();
|
|
|
- $validator = $this->validationFactory->make(
|
|
|
- $requireData,
|
|
|
- [
|
|
|
- 'id' => 'required'
|
|
|
- ],
|
|
|
- [
|
|
|
- 'id.required' => '任务规则id不能为空'
|
|
|
- ]
|
|
|
- );
|
|
|
- if ($validator->fails()) {
|
|
|
- $errorMessage = $validator->errors()->first();
|
|
|
- return Result::error($errorMessage);
|
|
|
- }
|
|
|
- $result = $this->collectorServiceClient->getOneRule($requireData);
|
|
|
- if ($result['code'] != ErrorCode::SUCCESS) {
|
|
|
- return Result::error($result['message'],0,[]);
|
|
|
- }
|
|
|
- return Result::success($result['data']);
|
|
|
- }
|
|
|
- /**
|
|
|
- * 修改规则任务
|
|
|
- * @return array
|
|
|
- */
|
|
|
-
|
|
|
- public function upRule()
|
|
|
- {
|
|
|
- $requireData = $this->request->all();
|
|
|
- // var_dump("&&&&:",$requireData);
|
|
|
- $validator = $this->validationFactory->make(
|
|
|
- $requireData,
|
|
|
- [
|
|
|
- 'id' => 'required',
|
|
|
- 'name' => 'required',
|
|
|
- 'type' => 'required'
|
|
|
- ],
|
|
|
- [
|
|
|
- 'name.required' => '任务规则名称不能为空',
|
|
|
- 'id.required' => '任务规则id不能为空',
|
|
|
- 'type.required' => '网站类型不能为空'
|
|
|
- ]
|
|
|
- );
|
|
|
- if ($validator->fails()) {
|
|
|
- $errorMessage = $validator->errors()->first();
|
|
|
- return Result::error($errorMessage);
|
|
|
- }
|
|
|
- switch($requireData['type']){
|
|
|
- case 1:
|
|
|
- $validator = $this->validationFactory->make(
|
|
|
- $requireData,
|
|
|
- [
|
|
|
- 'first_url' => 'required',
|
|
|
- 'second_start' => 'required',
|
|
|
- 'second_num' => 'required',
|
|
|
- 'second_end' => 'required',
|
|
|
- 'start' => 'required',
|
|
|
- 'con_url' => 'required',
|
|
|
- 'title' => 'required',
|
|
|
- 'content' => 'required',
|
|
|
- ],
|
|
|
- [
|
|
|
- 'first_url.required' => '第1页网址不能为空',
|
|
|
- 'second_start.required' => '第2页网址开头不能为空',
|
|
|
- 'second_num.required' => '第2页代码页数不能为空',
|
|
|
- 'second_end.required' => '第2页网址结束字符串不能为空',
|
|
|
- 'end_pagenum.required' => '列表页结束页码不能为空',
|
|
|
- 'start.required' => '开始代码不能为空',
|
|
|
- 'con_url.required' => '详情页前缀地址不能为空',
|
|
|
- 'title.required' => '标题标签类名不能为空',
|
|
|
- 'content.required' => '内容标签类名不能为空',
|
|
|
- ]
|
|
|
- );
|
|
|
- if ($validator->fails()) {
|
|
|
- $errorMessage = $validator->errors()->first();
|
|
|
- return Result::error($errorMessage);
|
|
|
- }
|
|
|
- // var_dump("============1============");
|
|
|
- break;
|
|
|
- case 2:
|
|
|
- $validator = $this->validationFactory->make(
|
|
|
- $requireData,
|
|
|
- [
|
|
|
- 'first_url' => 'required',
|
|
|
- 'parameter' => 'required',
|
|
|
- 'start' => 'required',
|
|
|
- 'title' => 'required',
|
|
|
- 'content' => 'required',
|
|
|
- ],
|
|
|
- [
|
|
|
- 'first_url.required' => '开始采集地址不能为空',
|
|
|
- 'parameter.required' => '接口参数不能为空',
|
|
|
- 'start.required' => '列表标签不能为空',
|
|
|
- 'title.required' => '标题标签不能为空',
|
|
|
- 'content.required' => '内容标签不能为空'
|
|
|
- ]
|
|
|
- );
|
|
|
- if ($validator->fails()) {
|
|
|
- $errorMessage = $validator->errors()->first();
|
|
|
- return Result::error($errorMessage);
|
|
|
- }
|
|
|
- // var_dump("============2============");
|
|
|
- break;
|
|
|
- case 3:
|
|
|
- $validator = $this->validationFactory->make(
|
|
|
- $requireData,
|
|
|
- [
|
|
|
- 'diy_rule' => 'required'
|
|
|
- ],
|
|
|
- [
|
|
|
- 'diy_rule.required' => '采集规则不能为空'
|
|
|
- ]
|
|
|
- );
|
|
|
- if ($validator->fails()) {
|
|
|
- $errorMessage = $validator->errors()->first();
|
|
|
- return Result::error($errorMessage);
|
|
|
- }
|
|
|
- // var_dump("============3============");
|
|
|
- break;
|
|
|
- default:
|
|
|
- return Result::error('请输入正确的网站类型');
|
|
|
- break;
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
- if(isset($requireData['writer_class']) && $requireData['type'] == 2){
|
|
|
- $validator = $this->validationFactory->make(
|
|
|
- $requireData,
|
|
|
- [
|
|
|
- 'writer_class' => 'required'
|
|
|
- ],
|
|
|
- [
|
|
|
- 'writer_class.required' => '作者标签不能为空'
|
|
|
- ]
|
|
|
- );
|
|
|
- if ($validator->fails()) {
|
|
|
- $errorMessage = $validator->errors()->first();
|
|
|
- return Result::error($errorMessage);
|
|
|
- }
|
|
|
- }
|
|
|
- if(isset($requireData['writer']) && $requireData['type'] != 3){
|
|
|
- $validator = $this->validationFactory->make(
|
|
|
- $requireData,
|
|
|
- [
|
|
|
- 'writer' => 'required'
|
|
|
- ],
|
|
|
- [
|
|
|
- 'writer.required' => '文章作者不能为空'
|
|
|
- ]
|
|
|
- );
|
|
|
- if ($validator->fails()) {
|
|
|
- $errorMessage = $validator->errors()->first();
|
|
|
- return Result::error($errorMessage);
|
|
|
- }
|
|
|
- }
|
|
|
- // var_dump("++++++++++",$requireData);
|
|
|
- $result = $this->collectorServiceClient->upRule($requireData);
|
|
|
- if ($result['code'] != ErrorCode::SUCCESS) {
|
|
|
- return Result::error($result['message'],0,[]);
|
|
|
- }
|
|
|
- return Result::success($result['data']);
|
|
|
-
|
|
|
- }
|
|
|
- /**
|
|
|
- * 删除任务规则
|
|
|
- * @return array
|
|
|
- */
|
|
|
- public function delRule()
|
|
|
- {
|
|
|
- $requireData = $this->request->all();
|
|
|
- $validator = $this->validationFactory->make(
|
|
|
- $requireData,
|
|
|
- [
|
|
|
- 'rule_id' => 'required'
|
|
|
- ],
|
|
|
- [
|
|
|
- 'rule_id.required' => '任务规则id不能为空'
|
|
|
- ]
|
|
|
- );
|
|
|
- if ($validator->fails()) {
|
|
|
- $errorMessage = $validator->errors()->first();
|
|
|
- return Result::error($errorMessage);
|
|
|
- }
|
|
|
- $result = $this->collectorServiceClient->delRule($requireData);
|
|
|
- if ($result['code'] != ErrorCode::SUCCESS) {
|
|
|
- return Result::error($result['message'],0,[]);
|
|
|
- }
|
|
|
- return Result::success($result['data']);
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 开始采集
|
|
|
- * @return array
|
|
|
- */
|
|
|
- public function sendCrawler()
|
|
|
- {
|
|
|
- $data = [];
|
|
|
- $data['admin_user_id'] = Context::get("UserId");
|
|
|
- $data['time'] = microtime();
|
|
|
- $requireData = $this->request->all();
|
|
|
- $validator = $this->validationFactory->make(
|
|
|
- $requireData,
|
|
|
- [
|
|
|
- 'id'=> 'required',
|
|
|
- ],
|
|
|
- [
|
|
|
- 'id.required' => '规则id不能为空',
|
|
|
- ]
|
|
|
- );
|
|
|
- if ($validator->fails()) {
|
|
|
- $errorMessage = $validator->errors()->first();
|
|
|
- return Result::error($errorMessage);
|
|
|
- }
|
|
|
-// $b = $this->Iservice->push($data,1);
|
|
|
- $data['id'] = $requireData['id'];
|
|
|
- var_dump("发送数据:",$data);
|
|
|
- $result = $this->collectorServiceClient->sendCrawler($data);
|
|
|
- return $result['code']==200?Result::success($result['data']):Result::error('采集失败');
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- /**
|
|
|
- * 获取并搜索资讯
|
|
|
- * @return array
|
|
|
- */
|
|
|
- public function getInfo()
|
|
|
- {
|
|
|
- $requireData = $this->request->all();
|
|
|
- $validator = $this->validationFactory->make(
|
|
|
- $requireData,
|
|
|
- [
|
|
|
- 'rule_id' => 'required',
|
|
|
- 'pageSize' => 'required',
|
|
|
- 'page' => 'required'
|
|
|
- ],
|
|
|
- [
|
|
|
- 'rule_id.required' => '规则任务id不能为空',
|
|
|
- 'pageSize.required' => '每页显示数量不能为空',
|
|
|
- 'page.required' => '第几页不能为空'
|
|
|
- ]
|
|
|
- );
|
|
|
- if ($validator->fails()) {
|
|
|
- $errorMessage = $validator->errors()->first();
|
|
|
- return Result::error($errorMessage);
|
|
|
- }
|
|
|
- $result = $this->collectorServiceClient->getInfo($requireData);
|
|
|
- return $result['code']==200?Result::success($result['data']):Result::error($result['message']);
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 获取某个资讯
|
|
|
- * @return array
|
|
|
- */
|
|
|
- public function getOneInfo()
|
|
|
- {
|
|
|
- $requireData = $this->request->all();
|
|
|
- $validator = $this->validationFactory->make(
|
|
|
- $requireData,
|
|
|
- [
|
|
|
- 'art_id' => 'required'
|
|
|
- ],
|
|
|
- [
|
|
|
- 'art_id.required' => '资讯id不能为空'
|
|
|
- ]
|
|
|
- );
|
|
|
- if ($validator->fails()) {
|
|
|
- $errorMessage = $validator->errors()->first();
|
|
|
- return Result::error($errorMessage);
|
|
|
- }
|
|
|
- $result = $this->collectorServiceClient->getOneInfo($requireData);
|
|
|
- return $result['code']==200?Result::success($result['data']):Result::error($result['message']);
|
|
|
- }
|
|
|
- /**
|
|
|
- *修改资讯
|
|
|
- * @return array
|
|
|
- */
|
|
|
- public function upInfo()
|
|
|
- {
|
|
|
- $requireData = $this->request->all();
|
|
|
- $validator = $this->validationFactory->make(
|
|
|
- $requireData,
|
|
|
- [
|
|
|
- 'art_id' => 'required',
|
|
|
- 'title' => 'required',
|
|
|
- 'keyword' => 'required',
|
|
|
- 'content' => 'required',
|
|
|
- 'hits' => 'required',
|
|
|
- 'is_original' => 'required',
|
|
|
- 'islink' => 'required'
|
|
|
- ],
|
|
|
- [
|
|
|
- 'art_id.required' => '资讯id不能为空',
|
|
|
- 'title.required' => '资讯标题不能为空',
|
|
|
- 'keyword.required' => '资讯关键词不能为空',
|
|
|
- 'content.required' => '资讯内容不能为空',
|
|
|
- 'hits.required' => '浏览量不能为空',
|
|
|
- 'is_original.required' => '原创不能为空',
|
|
|
- 'islink.required' => '外链不能为空'
|
|
|
- ]
|
|
|
- );
|
|
|
- if ($validator->fails()) {
|
|
|
- $errorMessage = $validator->errors()->first();
|
|
|
- return Result::error($errorMessage);
|
|
|
- }
|
|
|
- if($requireData['islink']==1){
|
|
|
- $requireData = $this->request->all();
|
|
|
- $validator = $this->validationFactory->make(
|
|
|
- $requireData,
|
|
|
- [
|
|
|
- 'linkurl' => 'required'
|
|
|
- ],
|
|
|
- [
|
|
|
- 'linkurl.required' => '外链地址不能为空'
|
|
|
- ]
|
|
|
- );
|
|
|
- if ($validator->fails()) {
|
|
|
- $errorMessage = $validator->errors()->first();
|
|
|
- return Result::error($errorMessage);
|
|
|
- }
|
|
|
- }
|
|
|
- if($requireData['is_original']==0){
|
|
|
- $requireData = $this->request->all();
|
|
|
- $validator = $this->validationFactory->make(
|
|
|
- $requireData,
|
|
|
- [
|
|
|
- 'fromurl' => 'required',
|
|
|
- 'copyfrom' => 'required'
|
|
|
- ],
|
|
|
- [
|
|
|
- 'fromurl.required' => '采集来源地址不能为空',
|
|
|
- 'copyfrom' => '采集来源不能为空'
|
|
|
- ]
|
|
|
- );
|
|
|
- if ($validator->fails()) {
|
|
|
- $errorMessage = $validator->errors()->first();
|
|
|
- return Result::error($errorMessage);
|
|
|
- }
|
|
|
- }
|
|
|
- $result = $this->collectorServiceClient->upInfo($requireData);
|
|
|
- return $result['code']==200?Result::success($result['data']):Result::error($result['message']);
|
|
|
- }
|
|
|
- /**
|
|
|
- * 删除资讯
|
|
|
- * @return array
|
|
|
- */
|
|
|
- public function delInfo()
|
|
|
- {
|
|
|
- $requireData = $this->request->all();
|
|
|
- $validator = $this->validationFactory->make(
|
|
|
- $requireData,
|
|
|
- [
|
|
|
- 'art_id' => 'required'
|
|
|
- ],
|
|
|
- [
|
|
|
- 'art_id.required' => '资讯id不能为空'
|
|
|
- ]
|
|
|
- );
|
|
|
- if ($validator->fails()) {
|
|
|
- $errorMessage = $validator->errors()->first();
|
|
|
- return Result::error($errorMessage);
|
|
|
- }
|
|
|
- $result = $this->collectorServiceClient->delInfo($requireData);
|
|
|
- return $result['code']==200?Result::success($result['data']):Result::error($result['message']);
|
|
|
- }
|
|
|
- /**
|
|
|
- * 关联导航池
|
|
|
- * @return array
|
|
|
- */
|
|
|
- public function addCatid()
|
|
|
- {
|
|
|
- $requireData = $this->request->all();
|
|
|
- $validator = $this->validationFactory->make(
|
|
|
- $requireData,
|
|
|
- [
|
|
|
- 'rule_id' => 'required'
|
|
|
- ],
|
|
|
- [
|
|
|
- 'rule_id.required' => '任务规则id不能为空'
|
|
|
- ]
|
|
|
- );
|
|
|
- if ($validator->fails()) {
|
|
|
- $errorMessage = $validator->errors()->first();
|
|
|
- return Result::error($errorMessage);
|
|
|
- }
|
|
|
- $result = $this->collectorServiceClient->addCatid($requireData);
|
|
|
- return $result['code']==200?Result::success($result['data']):Result::error($result['message']);
|
|
|
- }
|
|
|
- /**
|
|
|
- * 开始导入
|
|
|
- * @return array
|
|
|
- */
|
|
|
- public function addArt()
|
|
|
- {
|
|
|
- $requireData = $this->request->all();
|
|
|
- if(!empty($requireData)){
|
|
|
- $validator = $this->validationFactory->make(
|
|
|
- $requireData,
|
|
|
- [
|
|
|
- 'rule_id' => 'required'
|
|
|
- ],
|
|
|
- [
|
|
|
- 'rule_id.required' => '任务规则id不能为空'
|
|
|
- ]
|
|
|
- );
|
|
|
- if ($validator->fails()) {
|
|
|
- $errorMessage = $validator->errors()->first();
|
|
|
- return Result::error($errorMessage);
|
|
|
- }
|
|
|
- }
|
|
|
- $data['rule_id'] = $requireData['rule_id'];
|
|
|
- $data['time'] = microtime();
|
|
|
-
|
|
|
- // var_dump("=====111",$data);
|
|
|
- $result = $this->collectorServiceClient->addArt($data);
|
|
|
- // var_dump("=====222",$result);
|
|
|
- return Result::success($result);
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
+<?php
|
|
|
+
|
|
|
+declare(strict_types=1);
|
|
|
+namespace App\Controller;
|
|
|
+
|
|
|
+use App\JsonRpc\CollectorServiceInterface;
|
|
|
+use App\Tools\PublicData;
|
|
|
+use Hyperf\Di\Annotation\Inject;
|
|
|
+use Hyperf\HttpServer\Annotation\AutoController;
|
|
|
+use App\Tools\Result;
|
|
|
+use Hyperf\Validation\Contract\ValidatorFactoryInterface;
|
|
|
+use App\Constants\ErrorCode;
|
|
|
+use Hyperf\Context\Context;
|
|
|
+//use App\Service\GatherQueueService;
|
|
|
+use App\Service\ImportQueueService;
|
|
|
+/**
|
|
|
+ * ClassCollectorController
|
|
|
+ * @package App\Controller
|
|
|
+ */
|
|
|
+
|
|
|
+class CollectorController extends AbstractController
|
|
|
+{
|
|
|
+ #[Inject]
|
|
|
+ protected ValidatorFactoryInterface $validationFactory;
|
|
|
+// #[Inject]
|
|
|
+// protected GatherQueueService $Gservice;
|
|
|
+ #[Inject]
|
|
|
+ protected ImportQueueService $Iservice;
|
|
|
+
|
|
|
+ /**
|
|
|
+ * @var CollectorServiceInterface
|
|
|
+ */
|
|
|
+ #[Inject]
|
|
|
+ private $collectorServiceClient;
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 添加网站
|
|
|
+ * @return array
|
|
|
+ */
|
|
|
+ public function addWeb()
|
|
|
+ {
|
|
|
+ $requireData = $this->request->all();
|
|
|
+ $validator = $this->validationFactory->make(
|
|
|
+ $requireData,
|
|
|
+ [
|
|
|
+ 'name'=> 'required',
|
|
|
+ 'url'=> 'required',
|
|
|
+ ],
|
|
|
+ [
|
|
|
+ 'name.required' => '网站名称不能为空',
|
|
|
+ 'url.required' => '网站地址不能为空',
|
|
|
+ ]
|
|
|
+ );
|
|
|
+ if ($validator->fails()) {
|
|
|
+ $errorMessage = $validator->errors()->first();
|
|
|
+ return Result::error($errorMessage);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ $result = $this->collectorServiceClient->addWeb($requireData);
|
|
|
+ if ($result['code'] != ErrorCode::SUCCESS) {
|
|
|
+ return Result::error($result['message'],0,[]);
|
|
|
+ }
|
|
|
+ return Result::success($result['data']);
|
|
|
+ }
|
|
|
+ /**
|
|
|
+ * 获取及搜索网站
|
|
|
+ * @return array
|
|
|
+ */
|
|
|
+ public function getWeb()
|
|
|
+ {
|
|
|
+ $requireData = $this->request->all();
|
|
|
+ $validator = $this->validationFactory->make(
|
|
|
+ $requireData,
|
|
|
+ [
|
|
|
+ 'page'=> 'required',
|
|
|
+ 'pageSize'=> 'required',
|
|
|
+ ],
|
|
|
+ [
|
|
|
+ 'page.required' => '第几页不能为空',
|
|
|
+ 'pageSize.required' => '每页显示条数不能为空',
|
|
|
+ ]
|
|
|
+ );
|
|
|
+ if(isset($requireData['keyWord'])){
|
|
|
+ $validator = $this->validationFactory->make(
|
|
|
+ $requireData,
|
|
|
+ [
|
|
|
+ 'keyWord'=> 'required'
|
|
|
+ ],
|
|
|
+ [
|
|
|
+ 'keyWord.required' => '搜索词不能为空'
|
|
|
+ ]
|
|
|
+ );
|
|
|
+ }
|
|
|
+
|
|
|
+ if ($validator->fails()) {
|
|
|
+ $errorMessage = $validator->errors()->first();
|
|
|
+ return Result::error($errorMessage);
|
|
|
+ }
|
|
|
+ $result = $this->collectorServiceClient->getWeb($requireData);
|
|
|
+ if ($result['code'] != ErrorCode::SUCCESS) {
|
|
|
+ return Result::error($result['message'],0,[]);
|
|
|
+ }
|
|
|
+ return Result::success($result['data']);
|
|
|
+ }
|
|
|
+ /**
|
|
|
+ * 修改网站
|
|
|
+ * @return array
|
|
|
+ */
|
|
|
+ public function upWeb()
|
|
|
+ {
|
|
|
+ $requireData = $this->request->all();
|
|
|
+ $validator = $this->validationFactory->make(
|
|
|
+ $requireData,
|
|
|
+ [
|
|
|
+ 'name'=> 'required',
|
|
|
+ 'url'=> 'required',
|
|
|
+ 'id' => 'required'
|
|
|
+ ],
|
|
|
+ [
|
|
|
+ 'name.required' => '网站名称不能为空',
|
|
|
+ 'url.required' => '网站地址不能为空',
|
|
|
+ 'id.required' => '网站id不能为空'
|
|
|
+ ]
|
|
|
+ );
|
|
|
+ if ($validator->fails()) {
|
|
|
+ $errorMessage = $validator->errors()->first();
|
|
|
+ return Result::error($errorMessage);
|
|
|
+ }
|
|
|
+ $result = $this->collectorServiceClient->upWeb($requireData);
|
|
|
+ if ($result['code'] != ErrorCode::SUCCESS) {
|
|
|
+ return Result::error($result['message'],0,[]);
|
|
|
+ }
|
|
|
+ return Result::success($result['data']);
|
|
|
+ }
|
|
|
+ /**
|
|
|
+ * 删除网站
|
|
|
+ * @return array
|
|
|
+ */
|
|
|
+ public function delWeb()
|
|
|
+ {
|
|
|
+ $requireData = $this->request->all();
|
|
|
+ $validator = $this->validationFactory->make(
|
|
|
+ $requireData,
|
|
|
+ [
|
|
|
+ 'id' => 'required'
|
|
|
+ ],
|
|
|
+ [
|
|
|
+ 'id.required' => '网站id不能为空'
|
|
|
+ ]
|
|
|
+ );
|
|
|
+ if ($validator->fails()) {
|
|
|
+ $errorMessage = $validator->errors()->first();
|
|
|
+ return Result::error($errorMessage);
|
|
|
+ }
|
|
|
+ $result = $this->collectorServiceClient->delWeb($requireData);
|
|
|
+ if ($result['code'] != ErrorCode::SUCCESS) {
|
|
|
+ return Result::error($result['message'],0,[]);
|
|
|
+ }
|
|
|
+ return Result::success($result['data']);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 添加规则任务
|
|
|
+ * @return array
|
|
|
+ */
|
|
|
+ public function addRule()
|
|
|
+ {
|
|
|
+
|
|
|
+ $requireData = $this->request->all();
|
|
|
+ $validator = $this->validationFactory->make(
|
|
|
+ $requireData,
|
|
|
+ [
|
|
|
+ 'name' => 'required',
|
|
|
+ 'web_id' => 'required',
|
|
|
+ 'type' => 'required'
|
|
|
+ ],
|
|
|
+ [
|
|
|
+ 'name.required' => '任务规则名称不能为空',
|
|
|
+ 'web_id.required' => '网站id不能为空',
|
|
|
+ 'type.required' => '网站类型不能为空'
|
|
|
+ ]
|
|
|
+ );
|
|
|
+ if ($validator->fails()) {
|
|
|
+ $errorMessage = $validator->errors()->first();
|
|
|
+ return Result::error($errorMessage);
|
|
|
+ }
|
|
|
+ switch($requireData['type']){
|
|
|
+ case 1:
|
|
|
+ $validator = $this->validationFactory->make(
|
|
|
+ $requireData,
|
|
|
+ [
|
|
|
+ 'first_url' => 'required',
|
|
|
+ 'second_start' => 'required',
|
|
|
+ 'second_num' => 'required',
|
|
|
+ 'second_end' => 'required',
|
|
|
+ 'end_pagenum' => 'required',
|
|
|
+ 'start' => 'required',
|
|
|
+ 'con_url' => 'required',
|
|
|
+ 'title' => 'required',
|
|
|
+ 'content' => 'required'
|
|
|
+ ],
|
|
|
+ [
|
|
|
+ 'first_url.required' => '第1页网址不能为空',
|
|
|
+ 'second_start.required' => '第2页网址开头不能为空',
|
|
|
+ 'second_num.required' => '第2页代码页数不能为空',
|
|
|
+ 'second_end.required' => '第2页网址结束字符串不能为空',
|
|
|
+ 'end_pagenum.required' => '列表页结束页码不能为空',
|
|
|
+ 'start.required' => '开始代码不能为空',
|
|
|
+ 'con_url.required' => '详情页前缀地址不能为空',
|
|
|
+ 'title.required' => '标题标签类名不能为空',
|
|
|
+ 'content.required' => '内容标签类名不能为空'
|
|
|
+ ]
|
|
|
+ );
|
|
|
+ if ($validator->fails()) {
|
|
|
+ $errorMessage = $validator->errors()->first();
|
|
|
+ return Result::error($errorMessage);
|
|
|
+ }
|
|
|
+
|
|
|
+ break;
|
|
|
+ case 2:
|
|
|
+ $validator = $this->validationFactory->make(
|
|
|
+ $requireData,
|
|
|
+ [
|
|
|
+ 'first_url' => 'required',
|
|
|
+ 'parameter' => 'required',
|
|
|
+ 'start' => 'required',
|
|
|
+ 'title' => 'required',
|
|
|
+ 'content' => 'required',
|
|
|
+ ],
|
|
|
+ [
|
|
|
+ 'first_url.required' => '开始采集地址不能为空',
|
|
|
+ 'parameter.required' => '接口参数不能为空',
|
|
|
+ 'start.required' => '列表标签不能为空',
|
|
|
+ 'title.required' => '标题标签不能为空',
|
|
|
+ 'content.required' => '内容标签不能为空'
|
|
|
+ ]
|
|
|
+ );
|
|
|
+ if ($validator->fails()) {
|
|
|
+ $errorMessage = $validator->errors()->first();
|
|
|
+ return Result::error($errorMessage);
|
|
|
+ }
|
|
|
+ // var_dump("============2============");
|
|
|
+ break;
|
|
|
+ case 3:
|
|
|
+ $validator = $this->validationFactory->make(
|
|
|
+ $requireData,
|
|
|
+ [
|
|
|
+ 'diy_rule' => 'required'
|
|
|
+ ],
|
|
|
+ [
|
|
|
+ 'diy_rule.required' => '采集规则不能为空'
|
|
|
+ ]
|
|
|
+ );
|
|
|
+ if ($validator->fails()) {
|
|
|
+ $errorMessage = $validator->errors()->first();
|
|
|
+ return Result::error($errorMessage);
|
|
|
+ }
|
|
|
+ // var_dump("============3============");
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ return Result::error('请输入正确的网站类型');
|
|
|
+ break;
|
|
|
+
|
|
|
+ }
|
|
|
+ if(isset($requireData['writer_class']) && $requireData['type'] == 2){
|
|
|
+ $validator = $this->validationFactory->make(
|
|
|
+ $requireData,
|
|
|
+ [
|
|
|
+ 'writer_class' => 'required'
|
|
|
+ ],
|
|
|
+ [
|
|
|
+ 'writer_class.required' => '作者标签不能为空'
|
|
|
+ ]
|
|
|
+ );
|
|
|
+ if ($validator->fails()) {
|
|
|
+ $errorMessage = $validator->errors()->first();
|
|
|
+ return Result::error($errorMessage);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if(isset($requireData['writer']) && $requireData['type'] != 3){
|
|
|
+ $validator = $this->validationFactory->make(
|
|
|
+ $requireData,
|
|
|
+ [
|
|
|
+ 'writer' => 'required'
|
|
|
+ ],
|
|
|
+ [
|
|
|
+ 'writer.required' => '文章作者不能为空'
|
|
|
+ ]
|
|
|
+ );
|
|
|
+ if ($validator->fails()) {
|
|
|
+ $errorMessage = $validator->errors()->first();
|
|
|
+ return Result::error($errorMessage);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // return Result::success($requireData);
|
|
|
+ $result = $this->collectorServiceClient->addRule($requireData);
|
|
|
+ if ($result['code'] != ErrorCode::SUCCESS) {
|
|
|
+ return Result::error($result['message'],0,[]);
|
|
|
+ }
|
|
|
+ return Result::success($result['data']);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 获取并搜索任务规则
|
|
|
+ * @return array
|
|
|
+ */
|
|
|
+ public function getRule()
|
|
|
+ {
|
|
|
+ $requireData = $this->request->all();
|
|
|
+ $validator = $this->validationFactory->make(
|
|
|
+ $requireData,
|
|
|
+ [
|
|
|
+ 'pageSize' => 'required',
|
|
|
+ 'page' => 'required'
|
|
|
+ ],
|
|
|
+ [
|
|
|
+ 'pageSize.required' => '每页显示数量不能为空',
|
|
|
+ 'page.required' => '第几页不能为空',
|
|
|
+ ]
|
|
|
+ );
|
|
|
+ if(isset($requireData['keyWord'])){
|
|
|
+ $validator = $this->validationFactory->make(
|
|
|
+ $requireData,
|
|
|
+ [
|
|
|
+ 'keyWord' => 'required'
|
|
|
+ ],
|
|
|
+ [
|
|
|
+ 'keyWord.required' => '搜索词不能为空'
|
|
|
+ ]
|
|
|
+ );
|
|
|
+ }
|
|
|
+
|
|
|
+ if(isset($requireData['web_id'])){
|
|
|
+ $validator = $this->validationFactory->make(
|
|
|
+ $requireData,
|
|
|
+ [
|
|
|
+ 'web_id' => 'required'
|
|
|
+ ],
|
|
|
+ [
|
|
|
+ 'web_id.required' => '网站id不能为空'
|
|
|
+ ]
|
|
|
+ );
|
|
|
+ }
|
|
|
+
|
|
|
+ if ($validator->fails()) {
|
|
|
+ $errorMessage = $validator->errors()->first();
|
|
|
+ return Result::error($errorMessage);
|
|
|
+ }
|
|
|
+ $result = $this->collectorServiceClient->getRule($requireData);
|
|
|
+ if ($result['code'] != ErrorCode::SUCCESS) {
|
|
|
+ return Result::error($result['message'],0,[]);
|
|
|
+ }
|
|
|
+ return Result::success($result['data']);
|
|
|
+ }
|
|
|
+ /**
|
|
|
+ * 获取某个规则任务
|
|
|
+ * @return array
|
|
|
+ */
|
|
|
+ public function getOneRule()
|
|
|
+ {
|
|
|
+ $requireData = $this->request->all();
|
|
|
+ $validator = $this->validationFactory->make(
|
|
|
+ $requireData,
|
|
|
+ [
|
|
|
+ 'id' => 'required'
|
|
|
+ ],
|
|
|
+ [
|
|
|
+ 'id.required' => '任务规则id不能为空'
|
|
|
+ ]
|
|
|
+ );
|
|
|
+ if ($validator->fails()) {
|
|
|
+ $errorMessage = $validator->errors()->first();
|
|
|
+ return Result::error($errorMessage);
|
|
|
+ }
|
|
|
+ $result = $this->collectorServiceClient->getOneRule($requireData);
|
|
|
+ if ($result['code'] != ErrorCode::SUCCESS) {
|
|
|
+ return Result::error($result['message'],0,[]);
|
|
|
+ }
|
|
|
+ return Result::success($result['data']);
|
|
|
+ }
|
|
|
+ /**
|
|
|
+ * 修改规则任务
|
|
|
+ * @return array
|
|
|
+ */
|
|
|
+
|
|
|
+ public function upRule()
|
|
|
+ {
|
|
|
+ $requireData = $this->request->all();
|
|
|
+ // var_dump("&&&&:",$requireData);
|
|
|
+ $validator = $this->validationFactory->make(
|
|
|
+ $requireData,
|
|
|
+ [
|
|
|
+ 'id' => 'required',
|
|
|
+ 'name' => 'required',
|
|
|
+ 'type' => 'required'
|
|
|
+ ],
|
|
|
+ [
|
|
|
+ 'name.required' => '任务规则名称不能为空',
|
|
|
+ 'id.required' => '任务规则id不能为空',
|
|
|
+ 'type.required' => '网站类型不能为空'
|
|
|
+ ]
|
|
|
+ );
|
|
|
+ if ($validator->fails()) {
|
|
|
+ $errorMessage = $validator->errors()->first();
|
|
|
+ return Result::error($errorMessage);
|
|
|
+ }
|
|
|
+ switch($requireData['type']){
|
|
|
+ case 1:
|
|
|
+ $validator = $this->validationFactory->make(
|
|
|
+ $requireData,
|
|
|
+ [
|
|
|
+ 'first_url' => 'required',
|
|
|
+ 'second_start' => 'required',
|
|
|
+ 'second_num' => 'required',
|
|
|
+ 'second_end' => 'required',
|
|
|
+ 'start' => 'required',
|
|
|
+ 'con_url' => 'required',
|
|
|
+ 'title' => 'required',
|
|
|
+ 'content' => 'required',
|
|
|
+ ],
|
|
|
+ [
|
|
|
+ 'first_url.required' => '第1页网址不能为空',
|
|
|
+ 'second_start.required' => '第2页网址开头不能为空',
|
|
|
+ 'second_num.required' => '第2页代码页数不能为空',
|
|
|
+ 'second_end.required' => '第2页网址结束字符串不能为空',
|
|
|
+ 'end_pagenum.required' => '列表页结束页码不能为空',
|
|
|
+ 'start.required' => '开始代码不能为空',
|
|
|
+ 'con_url.required' => '详情页前缀地址不能为空',
|
|
|
+ 'title.required' => '标题标签类名不能为空',
|
|
|
+ 'content.required' => '内容标签类名不能为空',
|
|
|
+ ]
|
|
|
+ );
|
|
|
+ if ($validator->fails()) {
|
|
|
+ $errorMessage = $validator->errors()->first();
|
|
|
+ return Result::error($errorMessage);
|
|
|
+ }
|
|
|
+ // var_dump("============1============");
|
|
|
+ break;
|
|
|
+ case 2:
|
|
|
+ $validator = $this->validationFactory->make(
|
|
|
+ $requireData,
|
|
|
+ [
|
|
|
+ 'first_url' => 'required',
|
|
|
+ 'parameter' => 'required',
|
|
|
+ 'start' => 'required',
|
|
|
+ 'title' => 'required',
|
|
|
+ 'content' => 'required',
|
|
|
+ ],
|
|
|
+ [
|
|
|
+ 'first_url.required' => '开始采集地址不能为空',
|
|
|
+ 'parameter.required' => '接口参数不能为空',
|
|
|
+ 'start.required' => '列表标签不能为空',
|
|
|
+ 'title.required' => '标题标签不能为空',
|
|
|
+ 'content.required' => '内容标签不能为空'
|
|
|
+ ]
|
|
|
+ );
|
|
|
+ if ($validator->fails()) {
|
|
|
+ $errorMessage = $validator->errors()->first();
|
|
|
+ return Result::error($errorMessage);
|
|
|
+ }
|
|
|
+ // var_dump("============2============");
|
|
|
+ break;
|
|
|
+ case 3:
|
|
|
+ $validator = $this->validationFactory->make(
|
|
|
+ $requireData,
|
|
|
+ [
|
|
|
+ 'diy_rule' => 'required'
|
|
|
+ ],
|
|
|
+ [
|
|
|
+ 'diy_rule.required' => '采集规则不能为空'
|
|
|
+ ]
|
|
|
+ );
|
|
|
+ if ($validator->fails()) {
|
|
|
+ $errorMessage = $validator->errors()->first();
|
|
|
+ return Result::error($errorMessage);
|
|
|
+ }
|
|
|
+ // var_dump("============3============");
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ return Result::error('请输入正确的网站类型');
|
|
|
+ break;
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ if(isset($requireData['writer_class']) && $requireData['type'] == 2){
|
|
|
+ $validator = $this->validationFactory->make(
|
|
|
+ $requireData,
|
|
|
+ [
|
|
|
+ 'writer_class' => 'required'
|
|
|
+ ],
|
|
|
+ [
|
|
|
+ 'writer_class.required' => '作者标签不能为空'
|
|
|
+ ]
|
|
|
+ );
|
|
|
+ if ($validator->fails()) {
|
|
|
+ $errorMessage = $validator->errors()->first();
|
|
|
+ return Result::error($errorMessage);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(isset($requireData['writer']) && $requireData['type'] != 3){
|
|
|
+ $validator = $this->validationFactory->make(
|
|
|
+ $requireData,
|
|
|
+ [
|
|
|
+ 'writer' => 'required'
|
|
|
+ ],
|
|
|
+ [
|
|
|
+ 'writer.required' => '文章作者不能为空'
|
|
|
+ ]
|
|
|
+ );
|
|
|
+ if ($validator->fails()) {
|
|
|
+ $errorMessage = $validator->errors()->first();
|
|
|
+ return Result::error($errorMessage);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // var_dump("++++++++++",$requireData);
|
|
|
+ $result = $this->collectorServiceClient->upRule($requireData);
|
|
|
+ if ($result['code'] != ErrorCode::SUCCESS) {
|
|
|
+ return Result::error($result['message'],0,[]);
|
|
|
+ }
|
|
|
+ return Result::success($result['data']);
|
|
|
+
|
|
|
+ }
|
|
|
+ /**
|
|
|
+ * 删除任务规则
|
|
|
+ * @return array
|
|
|
+ */
|
|
|
+ public function delRule()
|
|
|
+ {
|
|
|
+ $requireData = $this->request->all();
|
|
|
+ $validator = $this->validationFactory->make(
|
|
|
+ $requireData,
|
|
|
+ [
|
|
|
+ 'rule_id' => 'required'
|
|
|
+ ],
|
|
|
+ [
|
|
|
+ 'rule_id.required' => '任务规则id不能为空'
|
|
|
+ ]
|
|
|
+ );
|
|
|
+ if ($validator->fails()) {
|
|
|
+ $errorMessage = $validator->errors()->first();
|
|
|
+ return Result::error($errorMessage);
|
|
|
+ }
|
|
|
+ $result = $this->collectorServiceClient->delRule($requireData);
|
|
|
+ if ($result['code'] != ErrorCode::SUCCESS) {
|
|
|
+ return Result::error($result['message'],0,[]);
|
|
|
+ }
|
|
|
+ return Result::success($result['data']);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 开始采集
|
|
|
+ * @return array
|
|
|
+ */
|
|
|
+ public function sendCrawler()
|
|
|
+ {
|
|
|
+ $data = [];
|
|
|
+ $data['admin_user_id'] = Context::get("UserId");
|
|
|
+ $data['time'] = microtime();
|
|
|
+ $requireData = $this->request->all();
|
|
|
+ $validator = $this->validationFactory->make(
|
|
|
+ $requireData,
|
|
|
+ [
|
|
|
+ 'id'=> 'required',
|
|
|
+ ],
|
|
|
+ [
|
|
|
+ 'id.required' => '规则id不能为空',
|
|
|
+ ]
|
|
|
+ );
|
|
|
+ if ($validator->fails()) {
|
|
|
+ $errorMessage = $validator->errors()->first();
|
|
|
+ return Result::error($errorMessage);
|
|
|
+ }
|
|
|
+// $b = $this->Iservice->push($data,1);
|
|
|
+ $data['id'] = $requireData['id'];
|
|
|
+ var_dump("发送数据:",$data);
|
|
|
+ $result = $this->collectorServiceClient->sendCrawler($data);
|
|
|
+ return $result['code']==200?Result::success($result['data']):Result::error('采集失败');
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 获取并搜索资讯
|
|
|
+ * @return array
|
|
|
+ */
|
|
|
+ public function getInfo()
|
|
|
+ {
|
|
|
+ $requireData = $this->request->all();
|
|
|
+ $validator = $this->validationFactory->make(
|
|
|
+ $requireData,
|
|
|
+ [
|
|
|
+ 'rule_id' => 'required',
|
|
|
+ 'pageSize' => 'required',
|
|
|
+ 'page' => 'required'
|
|
|
+ ],
|
|
|
+ [
|
|
|
+ 'rule_id.required' => '规则任务id不能为空',
|
|
|
+ 'pageSize.required' => '每页显示数量不能为空',
|
|
|
+ 'page.required' => '第几页不能为空'
|
|
|
+ ]
|
|
|
+ );
|
|
|
+ if ($validator->fails()) {
|
|
|
+ $errorMessage = $validator->errors()->first();
|
|
|
+ return Result::error($errorMessage);
|
|
|
+ }
|
|
|
+ $result = $this->collectorServiceClient->getInfo($requireData);
|
|
|
+ return $result['code']==200?Result::success($result['data']):Result::error($result['message']);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 获取某个资讯
|
|
|
+ * @return array
|
|
|
+ */
|
|
|
+ public function getOneInfo()
|
|
|
+ {
|
|
|
+ $requireData = $this->request->all();
|
|
|
+ $validator = $this->validationFactory->make(
|
|
|
+ $requireData,
|
|
|
+ [
|
|
|
+ 'art_id' => 'required'
|
|
|
+ ],
|
|
|
+ [
|
|
|
+ 'art_id.required' => '资讯id不能为空'
|
|
|
+ ]
|
|
|
+ );
|
|
|
+ if ($validator->fails()) {
|
|
|
+ $errorMessage = $validator->errors()->first();
|
|
|
+ return Result::error($errorMessage);
|
|
|
+ }
|
|
|
+ $result = $this->collectorServiceClient->getOneInfo($requireData);
|
|
|
+ return $result['code']==200?Result::success($result['data']):Result::error($result['message']);
|
|
|
+ }
|
|
|
+ /**
|
|
|
+ *修改资讯
|
|
|
+ * @return array
|
|
|
+ */
|
|
|
+ public function upInfo()
|
|
|
+ {
|
|
|
+ $requireData = $this->request->all();
|
|
|
+ $validator = $this->validationFactory->make(
|
|
|
+ $requireData,
|
|
|
+ [
|
|
|
+ 'art_id' => 'required',
|
|
|
+ 'title' => 'required',
|
|
|
+ 'keyword' => 'required',
|
|
|
+ 'content' => 'required',
|
|
|
+ 'hits' => 'required',
|
|
|
+ 'is_original' => 'required',
|
|
|
+ 'islink' => 'required'
|
|
|
+ ],
|
|
|
+ [
|
|
|
+ 'art_id.required' => '资讯id不能为空',
|
|
|
+ 'title.required' => '资讯标题不能为空',
|
|
|
+ 'keyword.required' => '资讯关键词不能为空',
|
|
|
+ 'content.required' => '资讯内容不能为空',
|
|
|
+ 'hits.required' => '浏览量不能为空',
|
|
|
+ 'is_original.required' => '原创不能为空',
|
|
|
+ 'islink.required' => '外链不能为空'
|
|
|
+ ]
|
|
|
+ );
|
|
|
+ if ($validator->fails()) {
|
|
|
+ $errorMessage = $validator->errors()->first();
|
|
|
+ return Result::error($errorMessage);
|
|
|
+ }
|
|
|
+ if($requireData['islink']==1){
|
|
|
+ $requireData = $this->request->all();
|
|
|
+ $validator = $this->validationFactory->make(
|
|
|
+ $requireData,
|
|
|
+ [
|
|
|
+ 'linkurl' => 'required'
|
|
|
+ ],
|
|
|
+ [
|
|
|
+ 'linkurl.required' => '外链地址不能为空'
|
|
|
+ ]
|
|
|
+ );
|
|
|
+ if ($validator->fails()) {
|
|
|
+ $errorMessage = $validator->errors()->first();
|
|
|
+ return Result::error($errorMessage);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if($requireData['is_original']==0){
|
|
|
+ $requireData = $this->request->all();
|
|
|
+ $validator = $this->validationFactory->make(
|
|
|
+ $requireData,
|
|
|
+ [
|
|
|
+ 'fromurl' => 'required',
|
|
|
+ 'copyfrom' => 'required'
|
|
|
+ ],
|
|
|
+ [
|
|
|
+ 'fromurl.required' => '采集来源地址不能为空',
|
|
|
+ 'copyfrom' => '采集来源不能为空'
|
|
|
+ ]
|
|
|
+ );
|
|
|
+ if ($validator->fails()) {
|
|
|
+ $errorMessage = $validator->errors()->first();
|
|
|
+ return Result::error($errorMessage);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ $result = $this->collectorServiceClient->upInfo($requireData);
|
|
|
+ return $result['code']==200?Result::success($result['data']):Result::error($result['message']);
|
|
|
+ }
|
|
|
+ /**
|
|
|
+ * 删除资讯
|
|
|
+ * @return array
|
|
|
+ */
|
|
|
+ public function delInfo()
|
|
|
+ {
|
|
|
+ $requireData = $this->request->all();
|
|
|
+ $validator = $this->validationFactory->make(
|
|
|
+ $requireData,
|
|
|
+ [
|
|
|
+ 'art_id' => 'required'
|
|
|
+ ],
|
|
|
+ [
|
|
|
+ 'art_id.required' => '资讯id不能为空'
|
|
|
+ ]
|
|
|
+ );
|
|
|
+ if ($validator->fails()) {
|
|
|
+ $errorMessage = $validator->errors()->first();
|
|
|
+ return Result::error($errorMessage);
|
|
|
+ }
|
|
|
+ $result = $this->collectorServiceClient->delInfo($requireData);
|
|
|
+ return $result['code']==200?Result::success($result['data']):Result::error($result['message']);
|
|
|
+ }
|
|
|
+ /**
|
|
|
+ * 关联导航池
|
|
|
+ * @return array
|
|
|
+ */
|
|
|
+ public function addCatid()
|
|
|
+ {
|
|
|
+ $requireData = $this->request->all();
|
|
|
+ $validator = $this->validationFactory->make(
|
|
|
+ $requireData,
|
|
|
+ [
|
|
|
+ 'rule_id' => 'required'
|
|
|
+ ],
|
|
|
+ [
|
|
|
+ 'rule_id.required' => '任务规则id不能为空'
|
|
|
+ ]
|
|
|
+ );
|
|
|
+ if ($validator->fails()) {
|
|
|
+ $errorMessage = $validator->errors()->first();
|
|
|
+ return Result::error($errorMessage);
|
|
|
+ }
|
|
|
+ $result = $this->collectorServiceClient->addCatid($requireData);
|
|
|
+ return $result['code']==200?Result::success($result['data']):Result::error($result['message']);
|
|
|
+ }
|
|
|
+ /**
|
|
|
+ * 开始导入
|
|
|
+ * @return array
|
|
|
+ */
|
|
|
+ public function addArt()
|
|
|
+ {
|
|
|
+ $requireData = $this->request->all();
|
|
|
+ if(!empty($requireData)){
|
|
|
+ $validator = $this->validationFactory->make(
|
|
|
+ $requireData,
|
|
|
+ [
|
|
|
+ 'rule_id' => 'required'
|
|
|
+ ],
|
|
|
+ [
|
|
|
+ 'rule_id.required' => '任务规则id不能为空'
|
|
|
+ ]
|
|
|
+ );
|
|
|
+ if ($validator->fails()) {
|
|
|
+ $errorMessage = $validator->errors()->first();
|
|
|
+ return Result::error($errorMessage);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ $data['rule_id'] = $requireData['rule_id'];
|
|
|
+ $data['time'] = microtime();
|
|
|
+
|
|
|
+ // var_dump("=====111",$data);
|
|
|
+ $result = $this->collectorServiceClient->addArt($data);
|
|
|
+ // var_dump("=====222",$result);
|
|
|
+ return Result::success($result);
|
|
|
+ }
|
|
|
+
|
|
|
}
|