|
@@ -83,6 +83,7 @@ class CollectorService implements CollectorServiceInterface
|
|
*/
|
|
*/
|
|
public function upWeb(array $data): array
|
|
public function upWeb(array $data): array
|
|
{
|
|
{
|
|
|
|
+
|
|
$web = Web::where('id',$data['id'])->first();
|
|
$web = Web::where('id',$data['id'])->first();
|
|
if(empty($web->toArray())){
|
|
if(empty($web->toArray())){
|
|
return Result::error('请输入正确的网站id!');
|
|
return Result::error('请输入正确的网站id!');
|
|
@@ -103,16 +104,41 @@ class CollectorService implements CollectorServiceInterface
|
|
public function delWeb(array $data): array
|
|
public function delWeb(array $data): array
|
|
{
|
|
{
|
|
$web = Web::where('id',$data['id'])->first();
|
|
$web = Web::where('id',$data['id'])->first();
|
|
- if(empty($web->toArray())){
|
|
|
|
|
|
+ if(empty($web)){
|
|
return Result::error('请输入正确的网站id!');
|
|
return Result::error('请输入正确的网站id!');
|
|
|
|
|
|
}else{
|
|
}else{
|
|
- $id = Web::where('id',$data['id'])->delete();
|
|
|
|
- if(empty($id)){
|
|
|
|
- return Result::error('无法删除!');
|
|
|
|
|
|
+ $where = [
|
|
|
|
+ ['web_id','=',$data['id']]
|
|
|
|
+ ];
|
|
|
|
+ //判断此网站下是否规则任务
|
|
|
|
+ $rule = Rule::where($where)->get();
|
|
|
|
+ if(empty($rule)){
|
|
|
|
+ //若没有直接删除网站
|
|
|
|
+ $result['web'] = Web::where('id',$data['id'])->delete();
|
|
|
|
+ }else{
|
|
|
|
+ //若有,判断规则任务是否有已执行的
|
|
|
|
+ $rule = Rule::where($where)->where('status',2)->get();
|
|
|
|
+ // return Result::success($rule);
|
|
|
|
+ if(!empty($rule->toArray())){
|
|
|
|
+ //若有已执行的任务规则,不可删除网站
|
|
|
|
+ return Result::error('该网站已有成功执行的任务规则,不可删除!');
|
|
|
|
+ }else{
|
|
|
|
+ try {
|
|
|
|
+ Db::beginTransaction();
|
|
|
|
+ //若无已执行的任务规则,删除网站及相应的未执行的规则任务
|
|
|
|
+ $result['web'] = Web::where('id',$data['id'])->delete();
|
|
|
|
+ $result['rule'] = Rule::where($where)->delete();
|
|
|
|
+ Db::commit();
|
|
|
|
+ } catch(\Throwable $ex){
|
|
|
|
+ Db::rollBack();
|
|
|
|
+ var_dump($ex->getMessage());
|
|
|
|
+ return Result::error("删除失败",0);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- return Result::success($id);
|
|
|
|
|
|
+ return Result::success($result);
|
|
}
|
|
}
|
|
/**
|
|
/**
|
|
* 添加规则任务
|
|
* 添加规则任务
|
|
@@ -127,20 +153,24 @@ class CollectorService implements CollectorServiceInterface
|
|
|
|
|
|
}else{
|
|
}else{
|
|
$rulename = Rule::where('name',$data['name'])->get();
|
|
$rulename = Rule::where('name',$data['name'])->get();
|
|
|
|
+ //查找是否存在规则名称重复的
|
|
if(empty($rulename->toArray())){
|
|
if(empty($rulename->toArray())){
|
|
date_default_timezone_set('Asia/Shanghai');
|
|
date_default_timezone_set('Asia/Shanghai');
|
|
$time = time();
|
|
$time = time();
|
|
$catetime = date('Y-m-d H:i:s', $time);
|
|
$catetime = date('Y-m-d H:i:s', $time);
|
|
$data['created_at'] = $catetime;
|
|
$data['created_at'] = $catetime;
|
|
|
|
+ unset($data['type']);
|
|
|
|
+ //若不存在,根据网站类型添加到不行类型的规则表中
|
|
$id = Rule::insertGetId($data);
|
|
$id = Rule::insertGetId($data);
|
|
$result = ['data' => $id];
|
|
$result = ['data' => $id];
|
|
|
|
+
|
|
}else{
|
|
}else{
|
|
return Result::error('此任务已存在!');
|
|
return Result::error('此任务已存在!');
|
|
- }
|
|
|
|
|
|
+ }
|
|
}
|
|
}
|
|
-
|
|
|
|
return Result::success($result['data']);
|
|
return Result::success($result['data']);
|
|
}
|
|
}
|
|
|
|
+
|
|
/**
|
|
/**
|
|
* 获取并搜索规则任务
|
|
* 获取并搜索规则任务
|
|
* @param array $data
|
|
* @param array $data
|
|
@@ -153,22 +183,19 @@ class CollectorService implements CollectorServiceInterface
|
|
return Result::error('请输入正确的网站id!');
|
|
return Result::error('请输入正确的网站id!');
|
|
|
|
|
|
}else{
|
|
}else{
|
|
|
|
+ $where = [
|
|
|
|
+ ['web_id','=', $data['web_id']]
|
|
|
|
+ ];
|
|
if(isset($data['keyWord'])){
|
|
if(isset($data['keyWord'])){
|
|
|
|
+ //若存在搜索词,则存到条件数组$where中
|
|
$where = [
|
|
$where = [
|
|
- ['name','like','%'.$data['keyWord'].'%'],
|
|
|
|
- ['web_id','=', $data['web_id']]
|
|
|
|
|
|
+ ['name','like','%'.$data['keyWord'].'%']
|
|
];
|
|
];
|
|
- $rep = Rule::withCount(relations:'arts')->where($where)->limit($data['pageSize'])->orderBy("created_at","desc")->offset(($data['page']-1)*$data['pageSize'])->get();
|
|
|
|
- $count = Rule::where($where)->count();
|
|
|
|
- if($count==0){
|
|
|
|
- return Result::error('未查找到相关网站!');
|
|
|
|
- }
|
|
|
|
- }else{
|
|
|
|
- $rep = Rule::withCount(relations:'arts')->where('web_id',$data['web_id'])->limit($data['pageSize'])->orderBy("created_at","desc")->offset(($data['page']-1)*$data['pageSize'])->get();
|
|
|
|
- $count = Rule::where('web_id',$data['web_id'])->count();
|
|
|
|
- if($count==0){
|
|
|
|
- return Result::error('此网站下暂无规则任务!');
|
|
|
|
- }
|
|
|
|
|
|
+ }
|
|
|
|
+ $rep = Rule::withCount(relations:'arts')->where($where)->limit($data['pageSize'])->orderBy("created_at","desc")->offset(($data['page']-1)*$data['pageSize'])->get();
|
|
|
|
+ $count = Rule::where($where)->count();
|
|
|
|
+ if($count==0){
|
|
|
|
+ return Result::error('暂无相关规则任务!');
|
|
}
|
|
}
|
|
}
|
|
}
|
|
$data = [
|
|
$data = [
|
|
@@ -227,12 +254,31 @@ class CollectorService implements CollectorServiceInterface
|
|
return Result::error('请输入正确的规则任务id!');
|
|
return Result::error('请输入正确的规则任务id!');
|
|
|
|
|
|
}else{
|
|
}else{
|
|
- $delrule = Rule::where($where)->delete();
|
|
|
|
- if(empty($delrule)){
|
|
|
|
- return Result::error('此规则任务删除失败!');
|
|
|
|
|
|
+ //查找是否存在已导入的文章
|
|
|
|
+ $art_num = Article::where('rule_id',$data['rule'])->where('state',1)->count();
|
|
|
|
+ if($art_num==0){
|
|
|
|
+ //查找是否存在已采集但是未导入的文章
|
|
|
|
+ $colart_num = Article::where('rule_id',$data['rule'])->where('state',0)->count();
|
|
|
|
+ if($colart_num==0){
|
|
|
|
+ $result['rule'] = Rule::where($where)->delete();
|
|
|
|
+ }else{
|
|
|
|
+ try {
|
|
|
|
+ Db::beginTransaction();
|
|
|
|
+ //若有已采集但未导入的文章,删除规则任务及相应的未导入的文章
|
|
|
|
+ $result['rule'] = Rule::where($where)->delete();
|
|
|
|
+ $result['art'] = Article::where('rule_id',$data['id'])->delete();
|
|
|
|
+ Db::commit();
|
|
|
|
+ } catch(\Throwable $ex){
|
|
|
|
+ Db::rollBack();
|
|
|
|
+ var_dump($ex->getMessage());
|
|
|
|
+ return Result::error("删除失败",0);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }else{
|
|
|
|
+ return Result::error('此规则任务下的文章已导入,不可删除!');
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- return Result::success($delrule);
|
|
|
|
|
|
+ return Result::success($result);
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|