From 917cf56ea03636bc510003bcd9c8f8de67c0efd4 Mon Sep 17 00:00:00 2001 From: PushM <584406942@qq.com> Date: Mon, 10 Jun 2024 02:57:25 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E9=9D=99=E6=80=81=E4=BB=BB=E5=8A=A1?= =?UTF-8?q?=E4=B8=8B=E5=8F=91=E6=8C=87=E4=BB=A4=EF=BC=8C=E5=86=99=E5=85=A5?= =?UTF-8?q?=E4=BA=8B=E4=BB=B6=E7=B1=BB=E5=9E=8B=E5=AD=97=E6=AE=B5=202?= =?UTF-8?q?=E3=80=81=E4=BB=BB=E5=8A=A1=E6=96=B0=E5=BB=BA=E6=97=B6=EF=BC=8C?= =?UTF-8?q?=E5=B0=B1=E6=8A=8A=E9=80=89=E6=8B=A9=E8=A7=84=E5=88=99=E7=8A=B6?= =?UTF-8?q?=E6=80=81=E8=AE=BE=E7=BD=AE=E4=B8=BA=E4=BD=BF=E7=94=A8=E4=B8=AD?= =?UTF-8?q?=203=E3=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../rule/staticrule/StaticRuleService.java | 11 +++++----- .../protection/server/task/TaskMapper.java | 10 ++++++---- .../protection/server/task/TaskService.java | 20 +++++++++---------- src/main/resources/mappers/TaskMapper.xml | 4 ++++ 4 files changed, 26 insertions(+), 19 deletions(-) diff --git a/src/main/java/com/realtime/protection/server/rule/staticrule/StaticRuleService.java b/src/main/java/com/realtime/protection/server/rule/staticrule/StaticRuleService.java index b22c34c..c522c8e 100644 --- a/src/main/java/com/realtime/protection/server/rule/staticrule/StaticRuleService.java +++ b/src/main/java/com/realtime/protection/server/rule/staticrule/StaticRuleService.java @@ -109,11 +109,12 @@ public class StaticRuleService { @Transactional public Object deleteStaticRules(List staticRuleIds) { //判断当前静态规则是否能够删除---是否存在任务选择的静态规则?? - - //删除静态规则 -// for (Integer id : staticRuleIds) { -// staticRuleMapper.deleteStaticRule(id); -// } + List staticRuleObjects = staticRuleMapper.queryStaticRuleByIds(staticRuleIds); + for (StaticRuleObject staticRuleObject : staticRuleObjects) { + if (Objects.equals(staticRuleObject.getAuditStatus(), AuditStatusEnum.USING.getNum())) { + throw new IllegalArgumentException("当前静态规则正在使用,无法删除"); + } + } Function, Boolean>> deleteStaticRulesFunction = mapper -> list -> { if (list == null || list.isEmpty()) { 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 9e6141a..6e6011a 100644 --- a/src/main/java/com/realtime/protection/server/task/TaskMapper.java +++ b/src/main/java/com/realtime/protection/server/task/TaskMapper.java @@ -18,10 +18,12 @@ public interface TaskMapper { void newTask(@Param("task") Task task); void newTaskStaticRuleConcat(@Param("task_id") Long taskId, - @Param("rule_ids") List staticRuleIds); + @Param("rule_ids") List staticRuleIds, + @Param("status") Integer usingStatusNum); void newTaskDynamicRuleConcat(@Param("task_id") Long taskId, - @Param("rule_ids") List dynamicRuleIds); + @Param("rule_ids") List dynamicRuleIds, + @Param("status") Integer usingStatusNum); void newTaskUsingCommandInfo(@Param("info") TaskCommandInfo taskCommandInfo); @@ -40,9 +42,9 @@ public interface TaskMapper { void updateTask(@Param("task") Task task); - void clearTaskConnectedStaticRule(@Param("task_id") Long taskId); + void clearTaskConnectedStaticRule(@Param("task_id") Long taskId, @Param("status")Integer num); - void clearTaskConnectedDynamicRule(@Param("task_id") Long taskId); + void clearTaskConnectedDynamicRule(@Param("task_id") Long taskId, @Param("status")Integer num); void changeTaskAuditStatusWithAudior(@Param("task_id") Long taskId, @Param("audit_status") Integer auditStatus, @Param("auditUserName")String auditUserName, 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 fd02677..f432fba 100644 --- a/src/main/java/com/realtime/protection/server/task/TaskService.java +++ b/src/main/java/com/realtime/protection/server/task/TaskService.java @@ -76,7 +76,7 @@ public class TaskService { throw new IllegalArgumentException("部分静态规则已被其他任务使用"); } }); - taskMapper.newTaskStaticRuleConcat(task.getTaskId(), task.getStaticRuleIds()); + taskMapper.newTaskStaticRuleConcat(task.getTaskId(), task.getStaticRuleIds(), AuditStatusEnum.USING.getNum()); } if (task.getDynamicRuleIds() != null && !task.getDynamicRuleIds().isEmpty()) { @@ -89,7 +89,7 @@ public class TaskService { throw new IllegalArgumentException("部分动态规则已被其他任务使用"); } }); - taskMapper.newTaskDynamicRuleConcat(task.getTaskId(), task.getDynamicRuleIds()); + taskMapper.newTaskDynamicRuleConcat(task.getTaskId(), task.getDynamicRuleIds(), AuditStatusEnum.USING.getNum()); } if (task.getTaskType() != TaskTypeEnum.STATIC.getTaskType()) { if (task.getProtectObjectIds() != null && !task.getProtectObjectIds().isEmpty()) { @@ -300,17 +300,16 @@ public class TaskService { //更新task taskMapper.updateTask(task); //重新关联task和protectObjects - taskMapper.newTaskProtectObjectConcat(task.getTaskId(), task.getProtectObjectIds()); - taskMapper.clearTaskConnectedStaticRule(task.getTaskId()); - taskMapper.clearTaskConnectedDynamicRule(task.getTaskId()); + taskMapper.clearTaskConnectedStaticRule(task.getTaskId(), AuditStatusEnum.AUDITED.getNum()); + taskMapper.clearTaskConnectedDynamicRule(task.getTaskId(), AuditStatusEnum.AUDITED.getNum()); if (task.getStaticRuleIds() != null && !task.getStaticRuleIds().isEmpty()) - taskMapper.newTaskStaticRuleConcat(task.getTaskId(), task.getStaticRuleIds()); + taskMapper.newTaskStaticRuleConcat(task.getTaskId(), task.getStaticRuleIds(), AuditStatusEnum.USING.getNum()); if (task.getDynamicRuleIds() != null && !task.getDynamicRuleIds().isEmpty()) - taskMapper.newTaskDynamicRuleConcat(task.getTaskId(), task.getDynamicRuleIds()); + taskMapper.newTaskDynamicRuleConcat(task.getTaskId(), task.getDynamicRuleIds(),AuditStatusEnum.USING.getNum()); return true; } @@ -349,11 +348,12 @@ public class TaskService { if (task == null) { return true; } - +//有的规则被任务选择了,但任务还没有启动,此时规则的状态不是已使用,但used_task_id已经被设置 + //所以应该选择任务的时候就 updateStaticRuleAuditStatusInTask(taskId, AuditStatusEnum.AUDITED); updateDynamicRuleAuditStatusInTask(taskId, AuditStatusEnum.AUDITED); - taskMapper.clearTaskConnectedStaticRule(task.getTaskId()); - taskMapper.clearTaskConnectedDynamicRule(task.getTaskId()); + taskMapper.clearTaskConnectedStaticRule(task.getTaskId(), AuditStatusEnum.AUDITED.getNum()); + taskMapper.clearTaskConnectedDynamicRule(task.getTaskId(), AuditStatusEnum.AUDITED.getNum()); commandMapper.removeCommandsByTaskId(taskId); diff --git a/src/main/resources/mappers/TaskMapper.xml b/src/main/resources/mappers/TaskMapper.xml index 48ca727..6f8681e 100644 --- a/src/main/resources/mappers/TaskMapper.xml +++ b/src/main/resources/mappers/TaskMapper.xml @@ -24,6 +24,7 @@ UPDATE t_static_rule SET static_rule_used_task_id = #{task_id} + static_rule_audit_status = #{status} WHERE static_rule_id IN @@ -36,6 +37,7 @@ UPDATE t_dynamic_rule SET dynamic_rule_used_task_id = #{task_id} + audit_status = #{status} WHERE dynamic_rule_id IN @@ -329,6 +331,7 @@ + @@ -497,6 +500,7 @@ t_task.task_start_time, t_task.task_end_time, + t_task.event_type, INET_NTOA(tsr.static_rule_sip) as static_rule_sip, tsr.static_rule_sport,