1. 修改setDataMap函数为addDataMap以防止swagger将DataMap视为一种属性
2. 当任务未通过审核时,现在会立刻报错而不是返回false
This commit is contained in:
@@ -2,7 +2,6 @@ package com.realtime.protection;
|
||||
|
||||
import org.springframework.boot.SpringApplication;
|
||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||
import org.springframework.scheduling.annotation.EnableScheduling;
|
||||
|
||||
@SpringBootApplication
|
||||
public class ProtectionApplication {
|
||||
|
||||
@@ -1,18 +0,0 @@
|
||||
package com.realtime.protection.configuration.cors;
|
||||
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.web.servlet.config.annotation.CorsRegistry;
|
||||
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
|
||||
|
||||
@Configuration
|
||||
public class CorsFilter implements WebMvcConfigurer {
|
||||
@Override
|
||||
public void addCorsMappings(CorsRegistry corsRegistry) {
|
||||
corsRegistry.addMapping("/**")
|
||||
.allowedOrigins("http://localhost:8000")
|
||||
.allowCredentials(true)
|
||||
.allowedMethods("GET", "POST", "DELETE", "PUT")
|
||||
.allowedHeaders("*")
|
||||
.exposedHeaders("*");
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
package com.realtime.protection.configuration.response;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.util.HashMap;
|
||||
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
@Schema(description = "xxx")
|
||||
public class ResponseData extends HashMap<String, Object> {
|
||||
|
||||
public Object put(String key, Object value, String description) {
|
||||
return super.put(key, value);
|
||||
}
|
||||
}
|
||||
@@ -18,12 +18,12 @@ public class ResponseResult implements Serializable {
|
||||
private String message;
|
||||
|
||||
@Schema(description = "封装数据")
|
||||
private Map<String, Object> data;
|
||||
private ResponseData data;
|
||||
|
||||
@Schema(description = "返回对象链接的另外一个返回对象")
|
||||
private ResponseResult another;
|
||||
|
||||
public ResponseResult(int code, String message, LinkedHashMap<String, Object> data) {
|
||||
public ResponseResult(int code, String message, ResponseData data) {
|
||||
this.code = code;
|
||||
this.message = message;
|
||||
this.data = data;
|
||||
@@ -31,13 +31,13 @@ public class ResponseResult implements Serializable {
|
||||
|
||||
public ResponseResult(int code) {
|
||||
this.code = code;
|
||||
this.data = new LinkedHashMap<>();
|
||||
this.data = new ResponseData();
|
||||
}
|
||||
|
||||
public ResponseResult(int code, String message) {
|
||||
this.code = code;
|
||||
this.message = message;
|
||||
this.data = new LinkedHashMap<>();
|
||||
this.data = new ResponseData();
|
||||
}
|
||||
|
||||
public static ResponseResult ok() {
|
||||
@@ -83,8 +83,8 @@ public class ResponseResult implements Serializable {
|
||||
return this;
|
||||
}
|
||||
|
||||
public ResponseResult setDataMap(Map<String, Object> data) {
|
||||
this.data = data;
|
||||
public ResponseResult addDataMap(Map<String, Object> data) {
|
||||
this.data = (ResponseData) data;
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -23,4 +23,6 @@ public interface CommandMapper {
|
||||
Boolean setCommandInvalid(@Param("command_id") String commandId);
|
||||
|
||||
List<TaskCommandInfo> queryCommandInfoByTaskId(@Param("task_id") Long taskId);
|
||||
|
||||
TaskCommandInfo queryCommandInfoByUUID(@Param("uuid") String uuid);
|
||||
}
|
||||
|
||||
@@ -6,8 +6,10 @@ import com.realtime.protection.configuration.entity.task.TaskCommandInfo;
|
||||
import com.realtime.protection.configuration.utils.SqlSessionWrapper;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
import java.util.function.Function;
|
||||
|
||||
@Service
|
||||
@@ -24,14 +26,19 @@ public class CommandService {
|
||||
this.sqlSessionWrapper = sqlSessionWrapper;
|
||||
}
|
||||
|
||||
public Boolean createCommand(TaskCommandInfo commandInfo) {
|
||||
return commandMapper.createCommand(commandInfo);
|
||||
@Transactional
|
||||
public String createCommand(TaskCommandInfo commandInfo) {
|
||||
commandInfo.setUUID(UUID.randomUUID().toString());
|
||||
commandMapper.createCommand(commandInfo);
|
||||
return commandInfo.getUUID();
|
||||
|
||||
}
|
||||
|
||||
public void createCommands(List<TaskCommandInfo> taskCommandInfos) {
|
||||
Function<CommandMapper, Function<List<TaskCommandInfo>, Boolean>> function = mapper -> list -> {
|
||||
List<TaskCommandInfo> taskCommandInfoBatch = ListUtils.newArrayListWithExpectedSize(BatchSize);
|
||||
for (TaskCommandInfo info : list) {
|
||||
info.setUUID(UUID.randomUUID().toString());
|
||||
taskCommandInfoBatch.add(info);
|
||||
if (taskCommandInfoBatch.size() < BatchSize) {
|
||||
continue;
|
||||
@@ -56,6 +63,10 @@ public class CommandService {
|
||||
return commandMapper.queryCommandInfoByTaskId(taskId);
|
||||
}
|
||||
|
||||
public TaskCommandInfo queryCommandInfoByUUID(String uuid) {
|
||||
return commandMapper.queryCommandInfoByUUID(uuid);
|
||||
}
|
||||
|
||||
public Boolean startCommandsByTaskId(Long taskId) {
|
||||
return commandMapper.startCommandsByTaskId(taskId);
|
||||
}
|
||||
|
||||
@@ -83,14 +83,13 @@ public class ProtectObjectController implements ProtectObjectControllerApi {
|
||||
|
||||
@Override
|
||||
@GetMapping("/{protectObjectId}/query")
|
||||
public ResponseResult queryProtectObject(@PathVariable Integer protectObjectId) throws IllegalAccessException {
|
||||
public ResponseResult queryProtectObject(@PathVariable Integer protectObjectId) {
|
||||
ProtectObject protectObject = protectObjectService.queryProtectObject(protectObjectId);
|
||||
if (protectObject == null) {
|
||||
return ResponseResult.invalid()
|
||||
.setMessage("无效的防护对象ID,也许该ID指定的防护对象不存在?");
|
||||
}
|
||||
return ResponseResult.ok()
|
||||
.setDataMap(EntityUtils.entityToMap(protectObject));
|
||||
return ResponseResult.ok().setData("protect_object", protectObject);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -124,7 +123,7 @@ public class ProtectObjectController implements ProtectObjectControllerApi {
|
||||
public ResponseResult changeProtectObjectAuditStatus(@PathVariable Integer protectObjectId,
|
||||
@PathVariable Integer auditStatus) {
|
||||
return ResponseResult.ok()
|
||||
.setDataMap(protectObjectService.changeProtectObjectAuditStatus(protectObjectId, auditStatus))
|
||||
.addDataMap(protectObjectService.changeProtectObjectAuditStatus(protectObjectId, auditStatus))
|
||||
.setData("proobj_id", protectObjectId);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -55,8 +55,7 @@ public class TemplateController implements TemplateControllerApi {
|
||||
return ResponseResult.invalid()
|
||||
.setMessage("无效的策略模板ID,也许该模板不存在?");
|
||||
}
|
||||
return ResponseResult.ok()
|
||||
.setDataMap(EntityUtils.entityToMap(template));
|
||||
return ResponseResult.ok().setData("template", template);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -152,7 +152,7 @@ public class StaticRuleController implements StaticRuleControllerApi {
|
||||
.setData("success", false);
|
||||
}
|
||||
return ResponseResult.ok()
|
||||
.setDataMap(staticRuleService.updateAuditStatus(id, auditStatus))
|
||||
.addDataMap(staticRuleService.updateAuditStatus(id, auditStatus))
|
||||
.setData("staticRule_id", id);
|
||||
|
||||
}
|
||||
|
||||
@@ -87,8 +87,7 @@ public class TaskController implements TaskControllerApi {
|
||||
return ResponseResult.invalid().setMessage("无效Task ID,也许该ID对应的任务不存在?");
|
||||
}
|
||||
|
||||
return ResponseResult.ok()
|
||||
.setDataMap(EntityUtils.entityToMap(task));
|
||||
return ResponseResult.ok().setData("task", task);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -4,6 +4,7 @@ import com.realtime.protection.configuration.entity.task.Task;
|
||||
import com.realtime.protection.configuration.entity.task.TaskCommandInfo;
|
||||
import com.realtime.protection.configuration.exception.DorisStartException;
|
||||
import com.realtime.protection.configuration.response.ResponseResult;
|
||||
import io.netty.channel.ChannelHandler;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import io.swagger.v3.oas.annotations.Parameter;
|
||||
import io.swagger.v3.oas.annotations.media.Content;
|
||||
@@ -16,6 +17,10 @@ import jakarta.validation.constraints.Min;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
import static com.fasterxml.jackson.databind.type.LogicalType.Map;
|
||||
|
||||
@Tag(name = "任务控制器API", description = "任务管理模块相关的所有接口")
|
||||
public interface TaskControllerApi {
|
||||
@PostMapping("/new")
|
||||
@@ -28,7 +33,8 @@ public interface TaskControllerApi {
|
||||
content = @Content(
|
||||
mediaType = "application/json",
|
||||
schema = @Schema(implementation = ResponseResult.class)
|
||||
)
|
||||
),
|
||||
responseCode = "200"
|
||||
)
|
||||
},
|
||||
requestBody = @io.swagger.v3.oas.annotations.parameters.RequestBody(description = "任务信息")
|
||||
|
||||
@@ -35,9 +35,9 @@ public class StateHandler {
|
||||
throw new IllegalArgumentException("无效的task_id,因为task_audit_status为空");
|
||||
}
|
||||
|
||||
// 如果审核状态不为已通过审核,则无效
|
||||
// 如果审核状态不为已通过审核,则报错
|
||||
if (taskAuditStatus != AuditStatus.AUDITED.getAuditStatus()) {
|
||||
return false;
|
||||
throw new IllegalArgumentException("无效的task_id,因为未通过审核");
|
||||
}
|
||||
|
||||
return switch (TaskTypeEnum.getTaskTypeByNum(task.getTaskType())) {
|
||||
|
||||
@@ -14,7 +14,8 @@ public class PendingState extends StateHandler implements State {
|
||||
case FAILED -> handleFailed(commandService, taskId);
|
||||
case RUNNING -> handleStart(taskService, commandService, taskId);
|
||||
case FINISHED -> handleFinish(commandService, taskId);
|
||||
default -> throw new IllegalStateException("Unexpected value: " + StateEnum.getStateEnumByState(newState));
|
||||
default -> throw new IllegalStateException(taskId + " meets unexpected value: "
|
||||
+ StateEnum.getStateEnumByState(newState));
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
@@ -165,7 +165,7 @@ public class WhiteListController implements WhiteListControllerApi {
|
||||
// }
|
||||
|
||||
return ResponseResult.ok()
|
||||
.setDataMap(whiteListService.updateWhiteListObjectAuditStatus(id, auditStatus))
|
||||
.addDataMap(whiteListService.updateWhiteListObjectAuditStatus(id, auditStatus))
|
||||
.setData("whiteobj_id", id);
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user