the_bug 5 kuukautta sitten
vanhempi
sitoutus
ba7d4dffe9

+ 350 - 0
app/Controller/CollectorController.php

@@ -129,8 +129,192 @@ class CollectorController extends AbstractController
         }
         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',
+                'first_url' => 'required',
+                'second_url' => 'required',
+                'start' => 'required',
+                'end' => 'required',
+                'tit_start' => 'required',
+                'tit_end' => 'required',
+                'con_start' => 'required',
+                'con_end' => 'required',
+                'web_id' => 'required'
+            ],
+            [
+                'name.required' => '任务规则名称不能为空',
+                'first_url.required' => '第1页网址不能为空',
+                'second_url.required' => '第2页网址不能为空',
+                'start.required' => '开始代码不能为空',
+                'end.required' => '结束代码不能为空',
+                'tit_start.required' => '标题开始字符串不能为空',
+                'tit_end.required' => '标题结束字符串不能为空',
+                'con_start.required' => '内容开始字符串不能为空',
+                'con_end.required' => '内容结束字符串不能为空',
+                'writer.required' => '作者名称不能为空',
+                'web_id.required' => '网站id不能为空'
+            ]
+        );        
+        if ($validator->fails()) {
+            $errorMessage = $validator->errors()->first();
+            return Result::error($errorMessage);
+        }        
+        $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,
+            [
+                'web_id' => 'required',
+                'pageSize' => 'required',
+                'page' => 'required'
+            ],
+            [
+                'web_id.required' => '网站id不能为空',
+                'pageSize.required' => '每页显示数量不能为空',
+                'page.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->getRule($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();
+        $validator = $this->validationFactory->make(
+            $requireData,
+            [
+                'id' => 'required',
+                'name' => 'required',
+                'first_url' => 'required',
+                'second_url' => 'required',
+                'start' => 'required',
+                'end' => 'required',
+                'tit_start' => 'required',
+                'tit_end' => 'required',
+                'con_start' => 'required',
+                'con_end' => 'required'
+            ],
+            [
+                'id.required' => '任务规则id不能为空',
+                'name.required' => '任务规则名称不能为空',
+                'first_url.required' => '第1页网址不能为空',
+                'second_url.required' => '第2页网址不能为空',
+                'start.required' => '开始代码不能为空',
+                'end.required' => '结束代码不能为空',
+                'tit_start.required' => '标题开始字符串不能为空',
+                'tit_end.required' => '标题结束字符串不能为空',
+                'con_start.required' => '内容开始字符串不能为空',
+                'con_end.required' => '内容结束字符串不能为空',
+                'writer.required' => '作者名称不能为空'
+            ]
+        );        
+        if ($validator->fails()) {
+            $errorMessage = $validator->errors()->first();
+            return Result::error($errorMessage);
+        }        
+        $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()
@@ -140,6 +324,172 @@ class CollectorController extends AbstractController
 
         return $result?Result::success($result['data']):Result::error($result['message']);
     }
+    /**
+     * 获取并搜索资讯
+     * @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);
+        }
+        if(isset($requireData['title'])){
+            $validator = $this->validationFactory->make(
+                $requireData,
+                [
+                    'title' => 'required'
+                ],
+                [
+                    'title.required' => '资讯题目不能为空'
+                ]
+            ); 
+            if ($validator->fails()) {
+                $errorMessage = $validator->errors()->first();
+                return Result::error($errorMessage);
+            }
+        }
+        if(isset($requireData['source'])){
+            $validator = $this->validationFactory->make(
+                $requireData,
+                [
+                    'source' => 'required'
+                ],
+                [
+                    'source.required' => '资讯来源不能为空'
+                ]
+            ); 
+            if ($validator->fails()) {
+                $errorMessage = $validator->errors()->first();
+                return Result::error($errorMessage);
+            }
 
+        }
+        if(isset($requireData['state'])){
+            $validator = $this->validationFactory->make(
+                $requireData,
+                [
+                    'state' => 'required'
+                ],
+                [
+                    'state.required' => '资讯状态不能为空'
+                ]
+            ); 
+            if ($validator->fails()) {
+                $errorMessage = $validator->errors()->first();
+                return Result::error($errorMessage);
+            }
+        }
+        $result = $this->collectorServiceClient->getInfo($requireData);        
+        return $result?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?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',
+                'level' => 'required',
+                'keyword' => 'required',
+                'content' => 'required',
+                'hits' => 'required',
+                'is_original' => 'required',
+                'islink' => 'required'
+            ],
+            [
+                'art_id.required' => '资讯id不能为空',
+                'title.required' => '资讯标题不能为空',
+                'level.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?Result::success($result['data']):Result::error($result['message']);
+    }
 
 }

+ 67 - 0
app/JsonRpc/CollectorService.php

@@ -41,6 +41,47 @@ class CollectorService extends AbstractServiceClient implements CollectorService
     {
         return $this->__request(__FUNCTION__, $data);
     }
+     /**
+     * @param array $data
+     * @return array|mixed
+     */
+    public function delWeb(array $data)
+    {
+        return $this->__request(__FUNCTION__, $data);
+    }
+     /**
+     * @param array $data
+     * @return array|mixed
+     */
+    public function addRule(array $data)
+    {
+        return $this->__request(__FUNCTION__, $data);
+    }
+     /**
+     * @param array $data
+     * @return array|mixed
+     */
+    public function getRule(array $data)
+    {
+        return $this->__request(__FUNCTION__, $data);
+    }
+     /**
+     * @param array $data
+     * @return array|mixed
+     */
+    public function upRule(array $data)
+    {
+        return $this->__request(__FUNCTION__, $data);
+    }
+     /**
+     * @param array $data
+     * @return array|mixed
+     */
+    public function delRule(array $data)
+    {
+        return $this->__request(__FUNCTION__, $data);
+    }
+
      /**
      * @param array $data
      * @return array|mixed
@@ -49,4 +90,30 @@ class CollectorService extends AbstractServiceClient implements CollectorService
     {
         return $this->__request(__FUNCTION__, $data);
     }
+
+     /**
+     * @param array $data
+     * @return array|mixed
+     */
+    public function getInfo(array $data)
+    {
+        return $this->__request(__FUNCTION__, $data);
+    }
+    /**
+     * @param array $data
+     * @return array|mixed
+     */
+    public function getOneInfo(array $data)
+    {
+        return $this->__request(__FUNCTION__, $data);
+    }
+    /**
+     * @param array $data
+     * @return array|mixed
+     */
+    public function upInfo(array $data)
+    {
+        return $this->__request(__FUNCTION__, $data);
+    }
+    
 }

+ 41 - 0
app/JsonRpc/CollectorServiceInterface.php

@@ -17,9 +17,50 @@ interface CollectorServiceInterface
      * @param array $data
      */
     public function upWeb(array $data);
+    /**
+     * @param array $data
+     */
+    public function delWeb(array $data);
+     /**
+     * @param array $data
+     * @return mixed
+     */
+    public function addRule(array $data);
+    /**
+     * @param array $data
+     * @return mixed
+     */
+    public function getRule(array $data);
+    /**
+     * @param array $data
+     * @return mixed
+     */
+    public function upRule(array $data);
+    /**
+     * @param array $data
+     * @return mixed
+     */
+    public function delRule(array $data);
+
      /**
      * @param array $data
      * @return mixed
      */
     public function sendCrawler(array $data);
+
+     /**
+     * @param array $data
+     * @return mixed
+     */
+    public function getInfo(array $data);
+    /**
+     * @param array $data
+     * @return mixed
+     */
+    public function getOneInfo(array $data);
+     /**
+     * @param array $data
+     * @return mixed
+     */
+    public function upInfo(array $data);
 }

+ 16 - 11
config/api/collector.php

@@ -15,32 +15,37 @@ Router::addGroup(
         //修改网站
         Router::post('/upWeb', [CollectorController::class, 'upWeb']);
         //查看并搜索网站
-        Router::get('/getWeb', [CollectorController::class, 'getWeb']);
+        Router::post('/getWeb', [CollectorController::class, 'getWeb']);
         //删除网站
         Router::get('/delWeb', [CollectorController::class, 'delWeb']);
 
-        //查看任务
-        Router::get('/getRule', [CollectorController::class, 'getRule']);
+        //查看并搜索任务
+        Router::post('/getRule', [CollectorController::class, 'getRule']);
         //添加规则
-        Router::get('/addRule', [CollectorController::class, 'addRule']);
+        Router::post('/addRule', [CollectorController::class, 'addRule']);
         //修改规则
-        Router::get('/upRule', [CollectorController::class, 'upRule']);
+        Router::post('/upRule', [CollectorController::class, 'upRule']);
         //删除规则
         Router::get('/delRule', [CollectorController::class, 'delRule']);
 
-        //采集数据
-        Router::get('/addInfo', [CollectorController::class, 'addInfo']);
+        //开始采集
+        Router::post('/sendCrawler', [CollectorController::class, 'sendCrawler']);
+
+        //获取并搜索资讯
+        Router::post('/getInfo', [CollectorController::class, 'getInfo']);
+        //获取某个资讯
+        Router::get('/getOneInfo', [CollectorController::class, 'getOneInfo']);
         //修改资讯
-        Router::get('/upInfo', [CollectorController::class, 'upInfo']);
+        Router::post('/upInfo', [CollectorController::class, 'upInfo']);
         //删除资讯
         Router::get('/delInfo', [CollectorController::class, 'delInfo']);
 
-        //导入数据
-        Router::get('/addArt', [CollectorController::class, 'addArt']);
         //关联导航
         Router::get('/addCatid', [CollectorController::class, 'addCatid']);
+        //导入数据
+        Router::get('/addArt', [CollectorController::class, 'addArt']);
+        
         
-        Router::post('/sendCrawler', [CollectorController::class, 'sendCrawler']);
         
     },
     ['middleware' => [FooMiddleware::class]]