15313670163 há 5 meses atrás
pai
commit
53cf8469c4
1 ficheiros alterados com 204 adições e 38 exclusões
  1. 204 38
      app/Controller/CollectorController.php

+ 204 - 38
app/Controller/CollectorController.php

@@ -167,6 +167,7 @@ class CollectorController extends AbstractController
      */
     public function addRule()
     {
+        
         $requireData = $this->request->all();
         $validator = $this->validationFactory->make(
             $requireData,
@@ -185,7 +186,7 @@ class CollectorController extends AbstractController
             $errorMessage = $validator->errors()->first();
             return Result::error($errorMessage);
         }
-        switch ($requireData['type']){
+        switch($requireData['type']){
             case 1:
                 $validator = $this->validationFactory->make(
                     $requireData,
@@ -203,12 +204,19 @@ class CollectorController extends AbstractController
                         'second_start.required' => '第2页网址开头不能为空',
                         'second_num.required' => '第2页代码页数不能为空',
                         'second_end.required' => '第2页网址结束字符串不能为空',
+                        'end_pagenum.required' => '列表页结束页码不能为空',
                         'start.required' => '开始代码不能为空',
                         'title.required' => '标题标签类名不能为空',
                         'content.required' => '内容标签类名不能为空',
                     ]
-                );      
-                // var_dump("============1============");                
+                ); 
+                if ($validator->fails()) {
+                    $errorMessage = $validator->errors()->first();
+                    return Result::error($errorMessage);
+                }  
+                // var_dump("============1============");  
+
+                break;                
             case 2:
                 $validator = $this->validationFactory->make(
                     $requireData,
@@ -226,26 +234,78 @@ class CollectorController extends AbstractController
                         'title.required' => '标题标签不能为空',
                         'content.required' => '内容标签不能为空'
                     ]
-                );   
-                // var_dump("============2============";                    
+                );  
+                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['source']) && $requireData['type'] != 3){
             $validator = $this->validationFactory->make(
                 $requireData,
                 [
-                    'rule' => 'required'
+                    'source' => 'required'
                 ],
                 [
-                    'rule.required' => '采集规则不能为空'
+                    'source.required' => '文章来源不能为空'
                 ]
-            );        
-            // var_dump("============3============");  
-            break;
+            ); 
+            if ($validator->fails()) {
+                $errorMessage = $validator->errors()->first();
+                return Result::error($errorMessage);
+            }  
         }
-        // return Result::success($requireData);
-        if ($validator->fails()) {
-            $errorMessage = $validator->errors()->first();
-            return Result::error($errorMessage);
+        if(isset($requireData['writer_class']) && $requireData['type'] != 3){
+            $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);
+            }  
         }
         $result = $this->collectorServiceClient->addRule($requireData);
         if ($result['code'] != ErrorCode::SUCCESS) {
@@ -295,7 +355,7 @@ class CollectorController extends AbstractController
         return Result::success($result['data']);
     }
     /**
-     * 修改规则任务待开发
+     * 获取某个规则任务
      * @return array
      */
     public function getOneRule()
@@ -321,46 +381,152 @@ class CollectorController extends AbstractController
         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',
-                'first_url' => 'required',
-                'second_start' => 'required',
-                'second_num' => 'required',
-                'second_end' => 'required',
-                'start' => 'required',
-                'title' => 'required',
-                'content' => 'required',
-                'source' => 'required',
-                'writer_class' => 'required',
-                'writer' => 'required'
+                'type' => 'required'
             ],
             [
-                'id.required' => '任务规则id不能为空',
                 'name.required' => '任务规则名称不能为空',
-                'first_url.required' => '第2页网址开头不能为空',
-                'second_num.required' => '第2页代码页数不能为空',
-                'second_end.required' => '第2页网址结束字符串不能为空',
-                'start.required' => '开始代码不能为空',
-                'title.required' => '标题标签类名不能为空',
-                'content.required' => '内容标签类名不能为空',
-                'source.required' => '来源标签类名不能为空',
-                'writer_class.required' => '作者标签类名不能为空',
-                'writer.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',
+                        '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' => '开始代码不能为空',
+                        '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['source']) && $requireData['type'] != 3){
+            $validator = $this->validationFactory->make(
+                $requireData,
+                [
+                    'source' => 'required'
+                ],
+                [
+                    'source.required' => '文章来源不能为空'
+                ]
+            ); 
+            if ($validator->fails()) {
+                $errorMessage = $validator->errors()->first();
+                return Result::error($errorMessage);
+            }  
+        }
+        if(isset($requireData['writer_class']) && $requireData['type'] != 3){
+            $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,[]);