From 31c0c31e6355f697e190a44ff5c2d7e03d9514f0 Mon Sep 17 00:00:00 2001 From: PushM <584406942@qq.com> Date: Mon, 24 Jun 2024 16:01:19 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E5=A2=9E=E5=8A=A0=E9=80=80=E5=9B=9E?= =?UTF-8?q?=E4=BB=BB=E5=8A=A1=E9=80=9A=E7=9F=A5=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../configuration/entity/task/Task.java | 4 + .../server/task/TaskController.java | 11 +- .../server/task/TaskControllerApi.java | 22 ++- .../protection/server/task/TaskMapper.java | 4 +- .../protection/server/task/TaskService.java | 6 +- src/main/resources/mappers/TaskMapper.xml | 40 +++- .../server/task/TaskServiceTest.java | 181 ++++++++++++++---- 7 files changed, 225 insertions(+), 43 deletions(-) diff --git a/src/main/java/com/realtime/protection/configuration/entity/task/Task.java b/src/main/java/com/realtime/protection/configuration/entity/task/Task.java index 496b331..4f98fb1 100644 --- a/src/main/java/com/realtime/protection/configuration/entity/task/Task.java +++ b/src/main/java/com/realtime/protection/configuration/entity/task/Task.java @@ -148,5 +148,9 @@ public class Task { @Schema(description = "日志表中到期时间", example = "", accessMode = Schema.AccessMode.READ_ONLY) private LocalDateTime expireTime; + @JsonProperty("audit_info") + @Schema(description = "审核意见", example = "审核不同意", accessMode = Schema.AccessMode.READ_ONLY) + private String auditInfo; + } diff --git a/src/main/java/com/realtime/protection/server/task/TaskController.java b/src/main/java/com/realtime/protection/server/task/TaskController.java index e227c2b..9f737ab 100644 --- a/src/main/java/com/realtime/protection/server/task/TaskController.java +++ b/src/main/java/com/realtime/protection/server/task/TaskController.java @@ -295,7 +295,7 @@ public class TaskController implements TaskControllerApi { @Override @PostMapping("/auditInfo/{ids}") - public ResponseResult updateAuditInfo(@PathVariable List ids, + public ResponseResult updateAuditInfo(@PathVariable List ids, @RequestBody Map auditInfo) { if (auditInfo.get("auditInfo") == null || auditInfo.get("auditInfo").isEmpty()) { return ResponseResult.ok(); @@ -370,4 +370,13 @@ public class TaskController implements TaskControllerApi { .setData("commands", taskCommandInfos); } + @Override + @GetMapping("/auditinfo/alert/{userid}") + public ResponseResult auditInfoNotification(@PathVariable String userId){ + + return ResponseResult.ok() + .setData("success", true) + .setData("alert", taskService.auditInfoNotification(userId)); + } + } \ No newline at end of file diff --git a/src/main/java/com/realtime/protection/server/task/TaskControllerApi.java b/src/main/java/com/realtime/protection/server/task/TaskControllerApi.java index b399aa9..df985a3 100644 --- a/src/main/java/com/realtime/protection/server/task/TaskControllerApi.java +++ b/src/main/java/com/realtime/protection/server/task/TaskControllerApi.java @@ -650,7 +650,7 @@ public interface TaskControllerApi { } ) @PostMapping("/auditInfo/{ids}") - ResponseResult updateAuditInfo(@PathVariable List ids, + ResponseResult updateAuditInfo(@PathVariable List ids, @RequestBody Map auditInfo); @@ -822,4 +822,24 @@ public interface TaskControllerApi { ) @GetMapping("/push") ResponseResult pushWhiteList(); + + + @Operation( + summary = "查询用户下未通知的任务数量", + description = "接收用户id,返回所有该用户下审核退回且wei通知的任务数量", + responses = { + @io.swagger.v3.oas.annotations.responses.ApiResponse( + description = "返回是否成功", + content = @Content( + mediaType = "application/json", + schema = @Schema(implementation = ResponseResult.class) + ) + ) + }, + parameters = { + @Parameter(name = "用户id", description = "用户的id", example = "0000148"), + } + ) + @GetMapping("/auditinfo/alert/{userid}") + ResponseResult auditInfoNotification(@PathVariable String userId); } diff --git a/src/main/java/com/realtime/protection/server/task/TaskMapper.java b/src/main/java/com/realtime/protection/server/task/TaskMapper.java index f8cb66f..e4284ae 100644 --- a/src/main/java/com/realtime/protection/server/task/TaskMapper.java +++ b/src/main/java/com/realtime/protection/server/task/TaskMapper.java @@ -92,7 +92,7 @@ public interface TaskMapper { List queryAuditStatusByIds(@Param("idWithAuditStatusBatch") Map idsWithAuditStatusMap); - Boolean updateAuditInfo(@Param("ids")List ids, @Param("auditInfo")String auditInfo); + Boolean updateAuditInfo(@Param("ids")List ids, @Param("auditInfo")String auditInfo); String queryAuditInfo(Integer id); @@ -128,4 +128,6 @@ public interface TaskMapper { String queryEventTypeDepartment(String eventType); String queryEventTypeAct(String eventType); + + List queryAuditInfoNotification(String userId , Integer auditStatus); } diff --git a/src/main/java/com/realtime/protection/server/task/TaskService.java b/src/main/java/com/realtime/protection/server/task/TaskService.java index 91f90bd..c14e085 100644 --- a/src/main/java/com/realtime/protection/server/task/TaskService.java +++ b/src/main/java/com/realtime/protection/server/task/TaskService.java @@ -520,7 +520,7 @@ public class TaskService { return taskMapper.queryAuditStatusByIds(idsWithAuditStatusMap); } - public Boolean updateAuditInfo(List ids, String auditInfo) { + public Boolean updateAuditInfo(List ids, String auditInfo) { return taskMapper.updateAuditInfo(ids, auditInfo); } @@ -621,4 +621,8 @@ public class TaskService { } + + public List auditInfoNotification(String userId) { + return taskMapper.queryAuditInfoNotification(userId,AuditStatusEnum.RETURNED.getNum()); + } } diff --git a/src/main/resources/mappers/TaskMapper.xml b/src/main/resources/mappers/TaskMapper.xml index a777722..50478ee 100644 --- a/src/main/resources/mappers/TaskMapper.xml +++ b/src/main/resources/mappers/TaskMapper.xml @@ -256,7 +256,9 @@ UPDATE t_task - SET task_audit_info = #{auditInfo} + SET + task_audit_info = #{auditInfo}, + is_need_notification = 1 WHERE task_id IN #{id} @@ -678,4 +680,40 @@ dict_type = 'event_type' AND dict_value = #{eventType} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/test/java/com/realtime/protection/server/task/TaskServiceTest.java b/src/test/java/com/realtime/protection/server/task/TaskServiceTest.java index aca1630..a176d41 100644 --- a/src/test/java/com/realtime/protection/server/task/TaskServiceTest.java +++ b/src/test/java/com/realtime/protection/server/task/TaskServiceTest.java @@ -24,6 +24,7 @@ import org.springframework.boot.test.context.SpringBootTest; import org.springframework.dao.DataIntegrityViolationException; import org.springframework.transaction.annotation.Transactional; +import java.time.LocalDate; import java.time.LocalDateTime; import java.util.ArrayList; import java.util.HashMap; @@ -148,7 +149,7 @@ class TaskServiceTest extends ProtectionApplicationTests { // List tasks = taskService.queryTasks(null, null, null, null, null, null, null, null, null,null,null,null,null,1, 10); tasks.forEach(task -> System.out.println(task)); - Integer tasksnum = taskService.queryTaskTotalNum(null, null, "", "", null, "", "", "", "上述",null,null,null,null); + Integer tasksnum = taskService.queryTaskTotalNum(null, null, "", "", null, "", "", "", "上述",null, String.valueOf(LocalDate.now()),null,null); System.out.println(tasksnum); // // tasks = taskService.queryTasks(0, null, null, null, null,null, null, null, null, 1, 10); @@ -237,48 +238,52 @@ class TaskServiceTest extends ProtectionApplicationTests { @Test void testStartStaticTask() throws DorisStartException { + for (int j = 0; j < 1; j++) { + List staticRuleIds = new ArrayList<>(); + for (int i = 0; i < 10000; i++) { + StaticRuleObject staticRuleTest = new StaticRuleObject(); + staticRuleTest.setStaticRuleName("test_st3aticrule" + i); + staticRuleTest.setStaticRuleCreateUsername("NSADD管理员"); + staticRuleTest.setStaticRuleCreateDepart("组织树"); + staticRuleTest.setStaticRuleCreateUserId(22222222); - StaticRuleObject staticRuleTest = new StaticRuleObject(); - staticRuleTest.setStaticRuleName("test_staticrule"); - staticRuleTest.setStaticRuleCreateUsername("NSADD管理员"); - staticRuleTest.setStaticRuleCreateDepart("组织树"); - staticRuleTest.setStaticRuleCreateUserId(22222222); + staticRuleTest.setStaticRuleSip("32.33.3.1"); + staticRuleTest.setStaticRuleDip("2.2.3.2"); + staticRuleTest.setStaticRuleSport(i); + staticRuleTest.setStaticRuleProtocol("6"); + staticRuleService.newStaticRuleObject(staticRuleTest); + staticRuleIds.add(staticRuleTest.getStaticRuleId()); + staticRuleService.updateAuditStatus(staticRuleTest.getStaticRuleId(), 2, "NSADD管理员", 1111111, "组织树"); + } - staticRuleTest.setStaticRuleSip("32.2.3.1"); - staticRuleTest.setStaticRuleDip("2.2.3.2"); - staticRuleTest.setStaticRuleSport(80); - staticRuleTest.setStaticRuleProtocol("6"); - staticRuleService.newStaticRuleObject(staticRuleTest); -// staticRuleIds.add(staticRuleTest.getStaticRuleId()); - staticRuleService.updateAuditStatus(staticRuleTest.getStaticRuleId(), 2, "NSADD管理员", 1111111, "组织树"); + Task task = new Task(); + task.setTaskName("静态task测试-10000指令"+j); + + LocalDateTime taskStartTime = LocalDateTime.now().plusMinutes(1); + LocalDateTime taskEndTime = LocalDateTime.now().plusYears(1); + + task.setTaskStartTime(taskStartTime); + task.setTaskEndTime(taskEndTime); + task.setTaskAct("23"); + task.setTaskType(1); + task.setTaskRange("1009"); + task.setEventType("泛洪型DDOS"); + + task.setTaskCreateUserId(111111); + task.setTaskCreateUsername("xxx管理员"); + task.setTaskCreateDepart("xxx"); + + task.setStaticRuleIds(staticRuleIds); + + Long taskId = taskService.newTask(task); + taskService.changeTaskAuditStatus(taskId, 2, "NSADD管理员", "1111111", "组织树"); + + stateChangeService.changeState(2, taskId, false); + + } - - Task task = new Task(); - task.setTaskName("静态task测试s"); - - LocalDateTime taskStartTime = LocalDateTime.now().plusMinutes(1); - LocalDateTime taskEndTime = LocalDateTime.now().plusYears(1); - - task.setTaskStartTime(taskStartTime); - task.setTaskEndTime(taskEndTime); - task.setTaskAct("23"); - task.setTaskType(1); - task.setTaskRange("1007"); - - task.setTaskCreateUserId(111111); - task.setTaskCreateUsername("xxx管理员"); - task.setTaskCreateDepart("xxx"); - - task.setStaticRuleIds(List.of(staticRuleTest.getStaticRuleId())); - - Long taskId = taskService.newTask(task); - - taskService.changeTaskAuditStatus(taskId, 2, "NSADD管理员", "1111111", "组织树"); - - stateChangeService.changeState(2, taskId, false); - // System.out.println(commandService.queryCommandInfos(taskId, null, null, null, null, 1, 5)); } @@ -385,4 +390,104 @@ class TaskServiceTest extends ProtectionApplicationTests { } + @Test + void testQueryTask() throws DorisStartException { +// task/44279/running/2 + stateChangeService.changeState(2, 44279L, false); + } + + + + @DSTransactional + @Test + void testStartStaticTask_command() throws DorisStartException { + + for (int j = 0; j < 1; j++) { + List staticRuleIds = new ArrayList<>(); + staticRuleService.queryStaticRule( + null, null, null, null, null,null, null, 2,null,null,1, 39999) + .forEach(staticRuleObject -> staticRuleIds.add(staticRuleObject.getStaticRuleId())); + HashMap map = new HashMap<>(); +// for (Integer staticRuleId : staticRuleIds) { +// map.put(staticRuleId, 2); +// } +// staticRuleService.updateAuditStatusBatch(map); + Task task = new Task(); + task.setTaskName("指令生成性能测试任务-2w-0619"); + + LocalDateTime taskStartTime = LocalDateTime.now().plusMinutes(1); + LocalDateTime taskEndTime = LocalDateTime.now().plusYears(1); + + task.setTaskStartTime(taskStartTime); + task.setTaskEndTime(taskEndTime); + task.setTaskAct("23"); + task.setTaskType(1); + task.setTaskRange("1009"); + task.setEventType("网络后门"); + + task.setTaskCreateUserId(111111); + task.setTaskCreateUsername("NSADD管理员"); + task.setTaskCreateDepart("一室"); + + task.setStaticRuleIds(staticRuleIds); + + Long taskId = taskService.newTask(task); + System.out.println(staticRuleIds.size()); + System.out.println(taskId); + taskService.changeTaskAuditStatus(taskId, 2, "NSADD管理员", "1111111", "组织树"); + + stateChangeService.changeState(2, taskId, false); + + } + + + +// System.out.println(commandService.queryCommandInfos(taskId, null, null, null, null, 1, 5)); + + } + + @Test + void testNotificate(){ + + + List staticRuleIds = new ArrayList<>(); + staticRuleService.queryStaticRule( + null, null, null, null, null,null, null, 2,null,null,1, 1) + .forEach(staticRuleObject -> staticRuleIds.add(staticRuleObject.getStaticRuleId())); + HashMap map = new HashMap<>(); +// for (Integer staticRuleId : staticRuleIds) { +// map.put(staticRuleId, 2); +// } +// staticRuleService.updateAuditStatusBatch(map); + Task task = new Task(); + task.setTaskName("测试用户审核退回提醒"); + + LocalDateTime taskStartTime = LocalDateTime.now().plusMinutes(1); + LocalDateTime taskEndTime = LocalDateTime.now().plusYears(1); + + task.setTaskStartTime(taskStartTime); + task.setTaskEndTime(taskEndTime); + task.setTaskAct("23"); + task.setTaskType(1); + task.setTaskRange("1009"); + task.setEventType("网络后门"); + + task.setTaskCreateUserId(12345); + task.setTaskCreateUsername("NSADD管理员"); + task.setTaskCreateDepart("一室"); + + task.setStaticRuleIds(staticRuleIds); + + Long taskId = taskService.newTask(task); + System.out.println(staticRuleIds.size()); + System.out.println(taskId); + taskService.changeTaskAuditStatus(taskId, 1, "NSADD管理员", "123", "组织树"); + taskService.updateAuditInfo(List.of(taskId),"审核不通过,拒绝"); + + List tasks = taskService.auditInfoNotification("12345"); + System.out.println(tasks); + assert !tasks.isEmpty(); + } + + }