Browse Source

增加删除停止状态的爬虫,登录接口依赖

wh-mc-dev
parent
commit
355efc7c2b
8 changed files with 97 additions and 5 deletions
  1. 5
      pom.xml
  2. 11
      src/main/java/com/qniao/zsh/api/command/controlspider/admin/SpiderStateAdminCommandController.java
  3. 27
      src/main/java/com/qniao/zsh/api/command/controlspider/admin/request/SpiderDeleteDto.java
  4. 46
      src/main/java/com/qniao/zsh/api/validator/SpiderDelete.java
  5. 2
      src/main/java/com/qniao/zsh/api/validator/SpiderStopped.java
  6. 1
      src/main/java/com/qniao/zsh/application/service/createspider/CreateSpiderApplicationService.java
  7. 6
      src/main/java/com/qniao/zsh/application/service/startspider/SpiderStateApplicationService.java
  8. 4
      src/main/java/com/qniao/zsh/infrastructure/persistence/repository/impl/SpiderState/SpiderStateRepositoryImpl.java

5
pom.xml

@ -121,6 +121,11 @@
<version>0.0.1-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.qniao</groupId>
<artifactId>employee-admin-common</artifactId>
<version>1.0.12-SNAPSHOT</version>
</dependency>
</dependencies>
<!-- 配置远程仓库 -->

11
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<String> run(@RequestParam("spiderId") Long spiderId) throws Exception {
return spiderStateApplicationService.run(spiderId);
public List<String> 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<String> delete(@RequestBody @Validated SpiderDeleteDto dto) {
//判断爬虫是否已经停止
return spiderStateApplicationService.delete(dto.transform().getId());
}
@ApiOperation("查询爬虫列表分页")
@GetMapping("/query/spider")

27
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<SpiderState> {
@SpiderDelete
@ApiModelProperty("爬虫ID")
private Long id;
@Override
public SpiderState transform() {
SpiderState spiderState = ObjectConverter.convert(this, SpiderState.class);
spiderState.setId(id);
return spiderState;
}
}

46
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<SpiderDelete, Long> {
@Resource
private SpiderStateDao spiderStateDao;
@Override
public boolean isValid(Long id, ConstraintValidatorContext context) {
SpiderState spiderState = spiderStateDao.selectById(id);
return spiderState.getStatus() == SpiderStateEnum.NOT_STARTED;
}
}

2
src/main/java/com/qniao/zsh/api/validator/SpiderStopped.java

@ -41,8 +41,6 @@ class SpiderStoppedValidator implements ConstraintValidator<SpiderStopped, Long>
@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;
}

1
src/main/java/com/qniao/zsh/application/service/createspider/CreateSpiderApplicationService.java

@ -24,4 +24,5 @@ public class CreateSpiderApplicationService {
}
}

6
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<String> delete(Long spiderId){
spiderStateRepository.delete(spiderId);
return Collections.singletonList(BizResponseTypeEnum.SUCCESS.getDesc());
}
}

4
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);
}
}

Loading…
Cancel
Save