|
@@ -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']);
|
|
|
+ }
|
|
|
|
|
|
}
|