fix(sj_1.1.1): 任务批次删除逻辑错误,参数验证异常
This commit is contained in:
parent
e6cac1a812
commit
e60136c933
@ -20,6 +20,7 @@ import org.springframework.web.bind.MissingServletRequestParameterException;
|
||||
import org.springframework.web.bind.annotation.ControllerAdvice;
|
||||
import org.springframework.web.bind.annotation.ExceptionHandler;
|
||||
import org.springframework.web.bind.annotation.ResponseBody;
|
||||
import org.springframework.web.method.annotation.HandlerMethodValidationException;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
@ -133,6 +134,23 @@ public class RestExceptionHandler {
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Contrller 参数检验错误
|
||||
*
|
||||
* @param e 异常对象
|
||||
* @return HttpResult
|
||||
*/
|
||||
@ExceptionHandler(HandlerMethodValidationException.class)
|
||||
public Result onHandlerMethodValidationException(HandlerMethodValidationException e) {
|
||||
Object[] detailMessageArguments = e.getDetailMessageArguments();
|
||||
if (detailMessageArguments != null && detailMessageArguments.length > 0) {
|
||||
return new Result<String>(0, detailMessageArguments[0].toString());
|
||||
}
|
||||
|
||||
return new Result<>("参数校验失败");
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 400错误
|
||||
*/
|
||||
|
@ -5,7 +5,6 @@ import com.aizuda.snailjob.server.web.model.base.PageResult;
|
||||
import com.aizuda.snailjob.server.web.model.request.JobBatchQueryVO;
|
||||
import com.aizuda.snailjob.server.web.model.response.JobBatchResponseVO;
|
||||
import com.aizuda.snailjob.server.web.service.JobBatchService;
|
||||
import jakarta.validation.Valid;
|
||||
import jakarta.validation.constraints.NotEmpty;
|
||||
import jakarta.validation.constraints.Size;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
@ -52,10 +51,10 @@ public class JobBatchController {
|
||||
|
||||
@DeleteMapping("/ids")
|
||||
@LoginRequired
|
||||
public Boolean deleteJobBatchByIds(@RequestBody @Valid
|
||||
@NotEmpty(message = "ids不能为空")
|
||||
@Size(max = 100, message = "最多删除5个")
|
||||
Set<Long> ids) {
|
||||
return jobBatchService.deleteJobBatchByIds(ids);
|
||||
public Boolean deleteJobBatchByIds(@RequestBody
|
||||
@NotEmpty(message = "ids不能为空")
|
||||
@Size(max = 100, message = "最多删除 {max} 个")
|
||||
Long[] ids) {
|
||||
return jobBatchService.deleteJobBatchByIds(Set.of(ids));
|
||||
}
|
||||
}
|
||||
|
@ -155,9 +155,9 @@ public class JobHandler {
|
||||
}
|
||||
|
||||
WorkflowTaskBatch workflowTaskBatch = workflowTaskBatchMapper.selectOne(
|
||||
new LambdaQueryWrapper<WorkflowTaskBatch>()
|
||||
.select(WorkflowTaskBatch::getWfContext)
|
||||
.eq(WorkflowTaskBatch::getId, workflowTaskBatchId)
|
||||
new LambdaQueryWrapper<WorkflowTaskBatch>()
|
||||
.select(WorkflowTaskBatch::getWfContext)
|
||||
.eq(WorkflowTaskBatch::getId, workflowTaskBatchId)
|
||||
);
|
||||
|
||||
if (Objects.isNull(workflowTaskBatch)) {
|
||||
@ -170,29 +170,24 @@ public class JobHandler {
|
||||
/**
|
||||
* 批次删除定时任务批次
|
||||
*
|
||||
* @param ids 任务批次id
|
||||
* @param ids 任务批次id
|
||||
* @param namespaceId 命名空间
|
||||
*/
|
||||
@Transactional
|
||||
public void deleteJobTaskBatchByIds(Set<Long> ids, String namespaceId) {
|
||||
// 1. 删除任务批次 job_task_batch
|
||||
Assert.isTrue(jobTaskBatchMapper.deleteByIds(ids) > 0,
|
||||
() -> new SnailJobServerException("删除任务批次失败"));
|
||||
|
||||
Assert.isTrue(ids.size() == jobTaskBatchMapper.delete(
|
||||
new LambdaQueryWrapper<JobTaskBatch>()
|
||||
.in(JobTaskBatch::getId, ids)
|
||||
), () -> new SnailJobServerException("删除任务批次失败"));
|
||||
// 2. 删除任务实例 job_task
|
||||
jobTaskMapper.delete(new LambdaQueryWrapper<JobTask>()
|
||||
.eq(JobTask::getNamespaceId, namespaceId)
|
||||
.in(JobTask::getTaskBatchId, ids));
|
||||
|
||||
|
||||
Assert.isTrue(ids.size() == jobTaskMapper.delete(
|
||||
new LambdaQueryWrapper<JobTask>()
|
||||
.eq(JobTask::getNamespaceId, namespaceId)
|
||||
.in(JobTask::getId, ids)
|
||||
), () -> new SnailJobServerException("删除任务批次失败"));
|
||||
|
||||
// 删除日志信息
|
||||
// 3. 删除调度日志 job_log_message
|
||||
jobLogMessageMapper.delete(new LambdaQueryWrapper<JobLogMessage>()
|
||||
.eq(JobLogMessage::getNamespaceId, namespaceId)
|
||||
.in(JobLogMessage::getTaskId, ids)
|
||||
.in(JobLogMessage::getTaskBatchId, ids)
|
||||
);
|
||||
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user