|
|
|
@ -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; |
|
|
|
|
|
|
|
} |
|
|
|
} |