diff --git a/pom.xml b/pom.xml
index a2b9982..eeb3a3b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -121,6 +121,11 @@
0.0.1-SNAPSHOT
compile
+
+ com.qniao
+ employee-admin-common
+ 1.0.12-SNAPSHOT
+
diff --git a/src/main/java/com/qniao/zsh/api/command/controlspider/admin/SpiderStateAdminCommandController.java b/src/main/java/com/qniao/zsh/api/command/controlspider/admin/SpiderStateAdminCommandController.java
index 9a6f171..7e4597b 100644
--- a/src/main/java/com/qniao/zsh/api/command/controlspider/admin/SpiderStateAdminCommandController.java
+++ b/src/main/java/com/qniao/zsh/api/command/controlspider/admin/SpiderStateAdminCommandController.java
@@ -2,6 +2,7 @@ package com.qniao.zsh.api.command.controlspider.admin;
import cn.hutool.core.util.EnumUtil;
+import com.qniao.zsh.api.command.controlspider.admin.request.SpiderDeleteDto;
import com.qniao.zsh.api.command.controlspider.admin.request.SpiderStopDto;
import com.qniao.zsh.domain.aggregate.spiderstate.constant.SpiderStateEnum;
import com.qniao.zsh.query.spider.queryparams.SpiderByQueryParam;
@@ -42,8 +43,8 @@ public class SpiderStateAdminCommandController {
@ApiOperation("启动爬虫")
@PostMapping("/run/spider")
- public List run(@RequestParam("spiderId") Long spiderId) throws Exception {
- return spiderStateApplicationService.run(spiderId);
+ public List run(@RequestBody SpiderState spiderState) throws Exception {
+ return spiderStateApplicationService.run(spiderState.getId());
}
@ApiOperation("停止爬虫的周期运行")
@@ -59,6 +60,12 @@ public class SpiderStateAdminCommandController {
//判断爬虫是否已经存在
return new EntityCreatedVo(createSpiderApplicationService.create(dto.transform().getSpiderName()));
}
+ @ApiOperation("删除爬虫")
+ @PostMapping("/delete/spider")
+ public List delete(@RequestBody @Validated SpiderDeleteDto dto) {
+ //判断爬虫是否已经停止
+ return spiderStateApplicationService.delete(dto.transform().getId());
+ }
@ApiOperation("查询爬虫列表分页")
@GetMapping("/query/spider")
diff --git a/src/main/java/com/qniao/zsh/api/command/controlspider/admin/request/SpiderDeleteDto.java b/src/main/java/com/qniao/zsh/api/command/controlspider/admin/request/SpiderDeleteDto.java
new file mode 100644
index 0000000..cb115a5
--- /dev/null
+++ b/src/main/java/com/qniao/zsh/api/command/controlspider/admin/request/SpiderDeleteDto.java
@@ -0,0 +1,27 @@
+package com.qniao.zsh.api.command.controlspider.admin.request;
+
+import com.qniao.zsh.api.validator.SpiderDelete;
+import com.qniao.zsh.domain.aggregate.spiderstate.entity.SpiderState;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.mc.ddd.domain.Assembler;
+import org.mc.ddd.infrastructure.util.ObjectConverter;
+
+/**
+ * @author wh
+ * @date 2023/3/27
+ */
+@Data
+public class SpiderDeleteDto implements Assembler {
+ @SpiderDelete
+ @ApiModelProperty("爬虫ID")
+ private Long id;
+
+
+ @Override
+ public SpiderState transform() {
+ SpiderState spiderState = ObjectConverter.convert(this, SpiderState.class);
+ spiderState.setId(id);
+ return spiderState;
+ }
+}
diff --git a/src/main/java/com/qniao/zsh/api/validator/SpiderDelete.java b/src/main/java/com/qniao/zsh/api/validator/SpiderDelete.java
new file mode 100644
index 0000000..82f26e1
--- /dev/null
+++ b/src/main/java/com/qniao/zsh/api/validator/SpiderDelete.java
@@ -0,0 +1,46 @@
+package com.qniao.zsh.api.validator;
+
+import com.qniao.zsh.domain.aggregate.spiderstate.constant.SpiderStateEnum;
+import com.qniao.zsh.domain.aggregate.spiderstate.entity.SpiderState;
+import com.qniao.zsh.infrastructure.dao.SpiderStateDao;
+
+import javax.annotation.Resource;
+import javax.validation.Constraint;
+import javax.validation.ConstraintValidator;
+import javax.validation.ConstraintValidatorContext;
+import javax.validation.Payload;
+import java.lang.annotation.Documented;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+import static java.lang.annotation.ElementType.FIELD;
+import static java.lang.annotation.ElementType.PARAMETER;
+
+/**
+ * @author wh
+ * @date 2023/3/27
+ */
+@Documented
+@Retention(RetentionPolicy.RUNTIME)
+@Target({FIELD, PARAMETER})
+@Constraint(validatedBy = {SpiderDeleteValidator.class})
+public @interface SpiderDelete {
+ String message() default "爬虫正在运行,请先停止爬虫。";
+
+ Class>[] groups() default {};
+
+ Class extends Payload>[] payload() default {};
+}
+
+class SpiderDeleteValidator implements ConstraintValidator {
+ @Resource
+ private SpiderStateDao spiderStateDao;
+
+ @Override
+ public boolean isValid(Long id, ConstraintValidatorContext context) {
+ SpiderState spiderState = spiderStateDao.selectById(id);
+ return spiderState.getStatus() == SpiderStateEnum.NOT_STARTED;
+
+ }
+}
diff --git a/src/main/java/com/qniao/zsh/api/validator/SpiderStopped.java b/src/main/java/com/qniao/zsh/api/validator/SpiderStopped.java
index 37aa63e..46f88c9 100644
--- a/src/main/java/com/qniao/zsh/api/validator/SpiderStopped.java
+++ b/src/main/java/com/qniao/zsh/api/validator/SpiderStopped.java
@@ -41,8 +41,6 @@ class SpiderStoppedValidator implements ConstraintValidator
@Override
public boolean isValid(Long id, ConstraintValidatorContext context) {
SpiderState spiderState = spiderStateDao.selectById(id);
- boolean test = spiderState.getStatus() == SpiderStateEnum.FAIL;
-// return spiderState.getStatus() == SpiderStateEnum.FAIL;
return spiderState.getStatus() != SpiderStateEnum.NOT_STARTED;
}
diff --git a/src/main/java/com/qniao/zsh/application/service/createspider/CreateSpiderApplicationService.java b/src/main/java/com/qniao/zsh/application/service/createspider/CreateSpiderApplicationService.java
index 6c4a64b..e15c5eb 100644
--- a/src/main/java/com/qniao/zsh/application/service/createspider/CreateSpiderApplicationService.java
+++ b/src/main/java/com/qniao/zsh/application/service/createspider/CreateSpiderApplicationService.java
@@ -24,4 +24,5 @@ public class CreateSpiderApplicationService {
}
+
}
diff --git a/src/main/java/com/qniao/zsh/application/service/startspider/SpiderStateApplicationService.java b/src/main/java/com/qniao/zsh/application/service/startspider/SpiderStateApplicationService.java
index e15614b..5a057ae 100644
--- a/src/main/java/com/qniao/zsh/application/service/startspider/SpiderStateApplicationService.java
+++ b/src/main/java/com/qniao/zsh/application/service/startspider/SpiderStateApplicationService.java
@@ -56,4 +56,10 @@ public class SpiderStateApplicationService {
spiderStateRepository.save(spiderState);
return Collections.singletonList(BizResponseTypeEnum.SUCCESS.getDesc());
}
+ public List delete(Long spiderId){
+
+ spiderStateRepository.delete(spiderId);
+ return Collections.singletonList(BizResponseTypeEnum.SUCCESS.getDesc());
+
+ }
}
diff --git a/src/main/java/com/qniao/zsh/infrastructure/persistence/repository/impl/SpiderState/SpiderStateRepositoryImpl.java b/src/main/java/com/qniao/zsh/infrastructure/persistence/repository/impl/SpiderState/SpiderStateRepositoryImpl.java
index 59d4190..b360cfa 100644
--- a/src/main/java/com/qniao/zsh/infrastructure/persistence/repository/impl/SpiderState/SpiderStateRepositoryImpl.java
+++ b/src/main/java/com/qniao/zsh/infrastructure/persistence/repository/impl/SpiderState/SpiderStateRepositoryImpl.java
@@ -37,7 +37,9 @@ public class SpiderStateRepositoryImpl implements SpiderStateRepository {
@Override
public void delete(Long id) {
-
+ SpiderState spiderState = this.load(id);
+ spiderState.setIsDeleted(true);
+ spiderStateDao.updateById(spiderState);
}
}