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('采集失败'); } /** * 发送请求 * @param $data * @return array */ public function goSendCrawler($data=[]) { var_dump("我要开始采集了!!!"); $this->collectorServiceClient->sendCrawler($data); return Result::success([]); } /** * 获取并搜索资讯 * @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); } }