diff --git a/src/main/java/com/realtime/protection/configuration/entity/defense/object/ProtectObject.java b/src/main/java/com/realtime/protection/configuration/entity/defense/object/ProtectObject.java index 3a5a250..3d05034 100644 --- a/src/main/java/com/realtime/protection/configuration/entity/defense/object/ProtectObject.java +++ b/src/main/java/com/realtime/protection/configuration/entity/defense/object/ProtectObject.java @@ -68,34 +68,42 @@ public class ProtectObject { @JsonProperty("proobj_create_username") @ExcelIgnore - @Schema(description = "防护对象创建人", example = "xxx") + @Schema(description = "防护对象创建人", example = "xxx", accessMode = Schema.AccessMode.READ_ONLY) private String protectObjectCreateUsername; @JsonProperty("proobj_create_depart") @ExcelIgnore - @Schema(description = "防护对象创建人处室", example = "xxx") + @Schema(description = "防护对象创建人处室", example = "xxx", accessMode = Schema.AccessMode.READ_ONLY) private String protectObjectCreateDepart; @JsonProperty("proobj_create_userid") @ExcelIgnore - @Schema(description = "防护对象创建人ID", example = "0") + @Schema(description = "防护对象创建人ID", example = "0", accessMode = Schema.AccessMode.READ_ONLY) private Integer protectObjectCreateUserId; @JsonProperty("audit_user_name") - @Schema(description = "审核用户名称", example = "user11") + @Schema(description = "审核用户名称", example = "user11", accessMode = Schema.AccessMode.READ_ONLY) private String auditUserName; @JsonProperty("audit_user_id") - @Schema(description = "审核用户id", example = "11111") + @Schema(description = "审核用户id", example = "11111", accessMode = Schema.AccessMode.READ_ONLY) private String auditUserId; @JsonProperty("audit_user_depart") - @Schema(description = "审核用户部门", example = "部门1") + @Schema(description = "审核用户部门", example = "部门1", accessMode = Schema.AccessMode.READ_ONLY) private String auditUserDepart; @JsonProperty("create_time") - @Schema(description = "创建时间", example = "") + @Schema(description = "创建时间", example = "", accessMode = Schema.AccessMode.READ_ONLY) private LocalDateTime createTime; @JsonProperty("modify_time") - @Schema(description = "修改时间", example = "") + @Schema(description = "修改时间", example = "", accessMode = Schema.AccessMode.READ_ONLY) private LocalDateTime modifyTime; + + @JsonProperty("effecive_time") + @Schema(description = "日志表中有效开始时间", example = "", accessMode = Schema.AccessMode.READ_ONLY) + private LocalDateTime effeciveTime; + + @JsonProperty("expire_time") + @Schema(description = "日志表中有效结束时间", example = "", accessMode = Schema.AccessMode.READ_ONLY) + private LocalDateTime expireTime; } diff --git a/src/main/java/com/realtime/protection/configuration/entity/defense/template/TemplateNew.java b/src/main/java/com/realtime/protection/configuration/entity/defense/template/TemplateNew.java index 3ab8026..d80427c 100644 --- a/src/main/java/com/realtime/protection/configuration/entity/defense/template/TemplateNew.java +++ b/src/main/java/com/realtime/protection/configuration/entity/defense/template/TemplateNew.java @@ -7,6 +7,8 @@ import jakarta.validation.constraints.Min; import jakarta.validation.constraints.NotNull; import lombok.Data; +import java.time.LocalDateTime; + @Data public class TemplateNew { @JsonProperty("template_id") @@ -117,4 +119,12 @@ public class TemplateNew { @JsonProperty("update_time") @Schema(description = "更新时间", example = "部门1", accessMode = Schema.AccessMode.READ_ONLY) private String updateTime; + + @JsonProperty("effecive_time") + @Schema(description = "日志表中有效开始时间", example = "", accessMode = Schema.AccessMode.READ_ONLY) + private LocalDateTime effeciveTime; + + @JsonProperty("expire_time") + @Schema(description = "日志表中到期时间", example = "", accessMode = Schema.AccessMode.READ_ONLY) + private LocalDateTime expireTime; } diff --git a/src/main/java/com/realtime/protection/configuration/entity/rule/dynamicrule/DynamicRuleObject.java b/src/main/java/com/realtime/protection/configuration/entity/rule/dynamicrule/DynamicRuleObject.java index bd38141..47884f9 100644 --- a/src/main/java/com/realtime/protection/configuration/entity/rule/dynamicrule/DynamicRuleObject.java +++ b/src/main/java/com/realtime/protection/configuration/entity/rule/dynamicrule/DynamicRuleObject.java @@ -1,5 +1,6 @@ package com.realtime.protection.configuration.entity.rule.dynamicrule; +import com.alibaba.excel.annotation.ExcelIgnore; import com.fasterxml.jackson.annotation.JsonProperty; import com.realtime.protection.configuration.utils.enums.audit.AuditStatusEnum; import com.realtime.protection.configuration.utils.enums.audit.AuditStatusValidator; @@ -97,6 +98,19 @@ public class DynamicRuleObject { @Schema(description = "动态规则描述", example = "动态规则描述") private String description; + @JsonProperty("effecive_time") + @Schema(description = "日志表中有效开始时间", example = "", accessMode = Schema.AccessMode.READ_ONLY) + private LocalDateTime effeciveTime; + + @JsonProperty("expire_time") + @Schema(description = "日志表中到期时间", example = "", accessMode = Schema.AccessMode.READ_ONLY) + private LocalDateTime expireTime; + + @JsonProperty("used_task_name") + @ExcelIgnore + @Schema(description = "使用该规则的任务名称", example = "任务1", accessMode = Schema.AccessMode.READ_ONLY) + private String usedTaskName; + public void checkAuditStatusValidate(AuditStatusEnum newAuditStatus) { if (!List.of(AuditStatusEnum.AUDITED.getNum(), AuditStatusEnum.USING.getNum()).contains(this.getAuditStatus())) { throw new IllegalArgumentException("规则《" + this.getDynamicRuleName() + "》原审批状态非法"); diff --git a/src/main/java/com/realtime/protection/configuration/entity/rule/staticrule/StaticRuleObject.java b/src/main/java/com/realtime/protection/configuration/entity/rule/staticrule/StaticRuleObject.java index 9e4e94e..d3a1e14 100644 --- a/src/main/java/com/realtime/protection/configuration/entity/rule/staticrule/StaticRuleObject.java +++ b/src/main/java/com/realtime/protection/configuration/entity/rule/staticrule/StaticRuleObject.java @@ -167,6 +167,20 @@ public class StaticRuleObject { @Schema(description = "事件类型", example = "DDos") private String eventType; + @JsonProperty("effecive_time") + @ExcelIgnore + @Schema(description = "日志表中有效开始时间", example = "", accessMode = Schema.AccessMode.READ_ONLY) + private LocalDateTime effeciveTime; + + @JsonProperty("expire_time") + @ExcelIgnore + @Schema(description = "日志表中到期时间", example = "", accessMode = Schema.AccessMode.READ_ONLY) + private LocalDateTime expireTime; + + @JsonProperty("used_task_name") + @ExcelIgnore + @Schema(description = "使用该规则的任务名称", example = "任务1", accessMode = Schema.AccessMode.READ_ONLY) + private String usedTaskName; public void checkAuditStatusValidate(AuditStatusEnum newAuditStatus) { if (!List.of(AuditStatusEnum.AUDITED.getNum(), AuditStatusEnum.USING.getNum()).contains(this.getAuditStatus())) { 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 099ad41..a46de52 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 @@ -136,6 +136,13 @@ public class Task { accessMode = Schema.AccessMode.READ_ONLY) private List protectObjects; + @JsonProperty("effecive_time") + @Schema(description = "日志表中有效开始时间", example = "", accessMode = Schema.AccessMode.READ_ONLY) + private LocalDateTime effeciveTime; + + @JsonProperty("expire_time") + @Schema(description = "日志表中到期时间", example = "", accessMode = Schema.AccessMode.READ_ONLY) + private LocalDateTime expireTime; } diff --git a/src/main/java/com/realtime/protection/configuration/entity/whitelist/WhiteListObject.java b/src/main/java/com/realtime/protection/configuration/entity/whitelist/WhiteListObject.java index 512846d..0c4b275 100644 --- a/src/main/java/com/realtime/protection/configuration/entity/whitelist/WhiteListObject.java +++ b/src/main/java/com/realtime/protection/configuration/entity/whitelist/WhiteListObject.java @@ -96,4 +96,12 @@ public class WhiteListObject { @JsonProperty("modify_time") @Schema(description = "修改时间", example = "") private LocalDateTime modifyTime; + + @JsonProperty("effecive_time") + @Schema(description = "日志表中有效开始时间", example = "", accessMode = Schema.AccessMode.READ_ONLY) + private LocalDateTime effeciveTime; + + @JsonProperty("expire_time") + @Schema(description = "日志表中到期时间", example = "", accessMode = Schema.AccessMode.READ_ONLY) + private LocalDateTime expireTime; } diff --git a/src/main/java/com/realtime/protection/server/defense/object/ProtectObjectController.java b/src/main/java/com/realtime/protection/server/defense/object/ProtectObjectController.java index e2195ac..0a51a3b 100644 --- a/src/main/java/com/realtime/protection/server/defense/object/ProtectObjectController.java +++ b/src/main/java/com/realtime/protection/server/defense/object/ProtectObjectController.java @@ -168,7 +168,10 @@ public class ProtectObjectController implements ProtectObjectControllerApi { AuditStatusEnum.getNumByState(AuditStatusEnum.AUDITED.getState()))) .setData("proobj_undit_num", protectObjectService.queryProtectObjectsTotalNum(null, null, null, null, null, null, null, null, null, - AuditStatusEnum.getNumByState(AuditStatusEnum.PENDING.getState()))); + AuditStatusEnum.getNumByState(AuditStatusEnum.PENDING.getState()))) + .setData("proobj_returned_num", protectObjectService.queryProtectObjectsTotalNum(null, null, null, null, + null, null, null, null, null, + AuditStatusEnum.getNumByState(AuditStatusEnum.RETURNED.getState()))); } @@ -214,4 +217,14 @@ public class ProtectObjectController implements ProtectObjectControllerApi { .setData("auditInfo", protectObjectService.queryAuditInfo(id)); } + @Override + @GetMapping("/{id}/history") + public ResponseResult queryHistory(@PathVariable Integer id, + @RequestParam(value = "page", required = true) Integer page, + @RequestParam(value = "page_size", required = true) Integer pageSize) { + + return ResponseResult.ok() + .setData("history", protectObjectService.queryHistory(id, page, pageSize)); + } + } diff --git a/src/main/java/com/realtime/protection/server/defense/object/ProtectObjectControllerApi.java b/src/main/java/com/realtime/protection/server/defense/object/ProtectObjectControllerApi.java index 92da7bb..3387b6f 100644 --- a/src/main/java/com/realtime/protection/server/defense/object/ProtectObjectControllerApi.java +++ b/src/main/java/com/realtime/protection/server/defense/object/ProtectObjectControllerApi.java @@ -526,4 +526,9 @@ public interface ProtectObjectControllerApi { ) @GetMapping("/auditInfo/{id}") ResponseResult queryAuditInfo(@PathVariable Integer id); + + @GetMapping("/{id}/history") + ResponseResult queryHistory(@PathVariable Integer id, + @RequestParam(value = "page", required = true) Integer page, + @RequestParam(value = "page_size", required = true) Integer pageSize); } diff --git a/src/main/java/com/realtime/protection/server/defense/object/ProtectObjectMapper.java b/src/main/java/com/realtime/protection/server/defense/object/ProtectObjectMapper.java index 27f1604..3275018 100644 --- a/src/main/java/com/realtime/protection/server/defense/object/ProtectObjectMapper.java +++ b/src/main/java/com/realtime/protection/server/defense/object/ProtectObjectMapper.java @@ -69,4 +69,6 @@ public interface ProtectObjectMapper { void insertStaticRuleStatusLogBatch(List ids); void updateStaticRuleStatusLogExpireTimeBatch(List ids); + + List queryHistory(Integer id, Integer page, Integer pageSize); } diff --git a/src/main/java/com/realtime/protection/server/defense/object/ProtectObjectService.java b/src/main/java/com/realtime/protection/server/defense/object/ProtectObjectService.java index 68f6b8a..5f50e98 100644 --- a/src/main/java/com/realtime/protection/server/defense/object/ProtectObjectService.java +++ b/src/main/java/com/realtime/protection/server/defense/object/ProtectObjectService.java @@ -246,4 +246,8 @@ public class ProtectObjectService { protectObjectMapper.updateStaticRuleStatusLogExpireTimeBatch(ids); protectObjectMapper.insertStaticRuleStatusLogBatch(ids); } + + public List queryHistory(Integer id, Integer page, Integer pageSize) { + return protectObjectMapper.queryHistory(id, page, pageSize); + } } diff --git a/src/main/java/com/realtime/protection/server/defense/templatenew/TemplateController.java b/src/main/java/com/realtime/protection/server/defense/templatenew/TemplateController.java index 882f85a..2151d4d 100644 --- a/src/main/java/com/realtime/protection/server/defense/templatenew/TemplateController.java +++ b/src/main/java/com/realtime/protection/server/defense/templatenew/TemplateController.java @@ -1,10 +1,8 @@ package com.realtime.protection.server.defense.templatenew; import com.realtime.protection.configuration.entity.defense.template.TemplateNew; -import com.realtime.protection.configuration.entity.user.UserFull; import com.realtime.protection.configuration.response.ResponseResult; import com.realtime.protection.configuration.utils.enums.audit.AuditStatusEnum; -import jakarta.servlet.http.HttpSession; import jakarta.validation.Valid; import jakarta.validation.constraints.Min; import org.springframework.web.bind.annotation.*; @@ -151,6 +149,9 @@ public class TemplateController implements TemplateNewCpntrollerApi{ )) .setData("template_unaudit_num", templateService.queryAuditTemplateTotalNum( AuditStatusEnum.getNumByState(AuditStatusEnum.PENDING.getState()) + )) + .setData("template_returned_num", templateService.queryAuditTemplateTotalNum( + AuditStatusEnum.getNumByState(AuditStatusEnum.RETURNED.getState()) )); } @@ -216,4 +217,14 @@ public class TemplateController implements TemplateNewCpntrollerApi{ return ResponseResult.ok() .setData("auditInfo", templateService.queryAuditInfo(id)); } + + @Override + @GetMapping("/{id}/history") + public ResponseResult queryHistory(@PathVariable Integer id, + @RequestParam(value = "page", required = true) Integer page, + @RequestParam(value = "page_size", required = true) Integer pageSize) { + + return ResponseResult.ok() + .setData("history", templateService.queryHistory(id, page, pageSize)); + } } diff --git a/src/main/java/com/realtime/protection/server/defense/templatenew/TemplateMapper.java b/src/main/java/com/realtime/protection/server/defense/templatenew/TemplateMapper.java index 3c51286..a9fd713 100644 --- a/src/main/java/com/realtime/protection/server/defense/templatenew/TemplateMapper.java +++ b/src/main/java/com/realtime/protection/server/defense/templatenew/TemplateMapper.java @@ -69,4 +69,6 @@ public interface TemplateMapper { void updateStatusLogExpireTimeBatch(List ids); void insertStatusLogBatch(List ids); + + List queryHistory(Integer id, Integer page, Integer pageSize); } diff --git a/src/main/java/com/realtime/protection/server/defense/templatenew/TemplateNewCpntrollerApi.java b/src/main/java/com/realtime/protection/server/defense/templatenew/TemplateNewCpntrollerApi.java index e5d0d56..8537539 100644 --- a/src/main/java/com/realtime/protection/server/defense/templatenew/TemplateNewCpntrollerApi.java +++ b/src/main/java/com/realtime/protection/server/defense/templatenew/TemplateNewCpntrollerApi.java @@ -355,4 +355,27 @@ public interface TemplateNewCpntrollerApi { ) @GetMapping("/auditInfo/{id}") ResponseResult queryAuditInfo(@PathVariable Integer id); + + + @Operation( + summary = "查询历史变化", + description = "查询历史变化,只接收一个id", + responses = { + @io.swagger.v3.oas.annotations.responses.ApiResponse( + description = "返回是否成功", + content = @Content( + mediaType = "application/json", + schema = @Schema(implementation = ResponseResult.class) + ) + ) + }, + parameters = { + @Parameter(name = "page", description = "页数", example = "2"), + @Parameter(name = "page_size", description = "每页个数", example = "10"), + } + ) + @GetMapping("/{id}/history") + ResponseResult queryHistory(@PathVariable Integer id, + @RequestParam(value = "page", required = true) Integer page, + @RequestParam(value = "page_size", required = true) Integer pageSize); } diff --git a/src/main/java/com/realtime/protection/server/defense/templatenew/TemplateService.java b/src/main/java/com/realtime/protection/server/defense/templatenew/TemplateService.java index d9f1442..e271f02 100644 --- a/src/main/java/com/realtime/protection/server/defense/templatenew/TemplateService.java +++ b/src/main/java/com/realtime/protection/server/defense/templatenew/TemplateService.java @@ -188,4 +188,8 @@ public class TemplateService { templateMapper.updateStatusLogExpireTimeBatch(ids); templateMapper.insertStatusLogBatch(ids); } + + public List queryHistory(Integer id, Integer page, Integer pageSize) { + return templateMapper.queryHistory(id, page, pageSize); + } } diff --git a/src/main/java/com/realtime/protection/server/rule/dynamicrule/DynamicRuleController.java b/src/main/java/com/realtime/protection/server/rule/dynamicrule/DynamicRuleController.java index 3147528..3309bee 100644 --- a/src/main/java/com/realtime/protection/server/rule/dynamicrule/DynamicRuleController.java +++ b/src/main/java/com/realtime/protection/server/rule/dynamicrule/DynamicRuleController.java @@ -236,6 +236,9 @@ public class DynamicRuleController implements DynamicRuleControllerApi { )) .setData("dynamic_rule_unaudit_num", dynamicRuleService.queryAuditDynamicRuleTotalNum( AuditStatusEnum.getNumByState(AuditStatusEnum.PENDING.getState()) + )) + .setData("dynamic_rule_returned_num", dynamicRuleService.queryAuditDynamicRuleTotalNum( + AuditStatusEnum.getNumByState(AuditStatusEnum.RETURNED.getState()) )); } @@ -257,4 +260,14 @@ public class DynamicRuleController implements DynamicRuleControllerApi { .setData("auditInfo", dynamicRuleService.queryAuditInfo(id)); } + @Override + @GetMapping("/{id}/history") + public ResponseResult queryHistory(@PathVariable Integer id, + @RequestParam(value = "page", required = true) Integer page, + @RequestParam(value = "page_size", required = true) Integer pageSize) { + + return ResponseResult.ok() + .setData("history", dynamicRuleService.queryHistory(id, page, pageSize)); + } + } diff --git a/src/main/java/com/realtime/protection/server/rule/dynamicrule/DynamicRuleControllerApi.java b/src/main/java/com/realtime/protection/server/rule/dynamicrule/DynamicRuleControllerApi.java index 0deaed5..bcc99dc 100644 --- a/src/main/java/com/realtime/protection/server/rule/dynamicrule/DynamicRuleControllerApi.java +++ b/src/main/java/com/realtime/protection/server/rule/dynamicrule/DynamicRuleControllerApi.java @@ -505,4 +505,29 @@ public interface DynamicRuleControllerApi { @GetMapping("/auditInfo/{id}") ResponseResult queryAuditInfo(@PathVariable Integer id); + + + @Operation( + summary = "查询历史变化", + description = "查询历史变化,只接收一个id", + responses = { + @io.swagger.v3.oas.annotations.responses.ApiResponse( + description = "返回是否成功", + content = @Content( + mediaType = "application/json", + schema = @Schema(implementation = ResponseResult.class) + ) + ) + }, + parameters = { + @Parameter(name = "page", description = "页数", example = "2"), + @Parameter(name = "page_size", description = "每页个数", example = "10"), + } + ) + @GetMapping("/{id}/history") + ResponseResult queryHistory(@PathVariable Integer id, + @RequestParam(value = "page", required = true) Integer page, + @RequestParam(value = "page_size", required = true) Integer pageSize); + + } \ No newline at end of file diff --git a/src/main/java/com/realtime/protection/server/rule/dynamicrule/DynamicRuleMapper.java b/src/main/java/com/realtime/protection/server/rule/dynamicrule/DynamicRuleMapper.java index 0de23f0..7534ff7 100644 --- a/src/main/java/com/realtime/protection/server/rule/dynamicrule/DynamicRuleMapper.java +++ b/src/main/java/com/realtime/protection/server/rule/dynamicrule/DynamicRuleMapper.java @@ -73,4 +73,8 @@ public interface DynamicRuleMapper { void insertStatusLogBatch(List ids); void updateStatusLogExpireTimeBatch(List ids); + + List queryHistory(Integer id, Integer page, Integer pageSize); + + void removeUsedTaskId(Long taskId); } diff --git a/src/main/java/com/realtime/protection/server/rule/dynamicrule/DynamicRuleService.java b/src/main/java/com/realtime/protection/server/rule/dynamicrule/DynamicRuleService.java index b260fa0..ec0338b 100644 --- a/src/main/java/com/realtime/protection/server/rule/dynamicrule/DynamicRuleService.java +++ b/src/main/java/com/realtime/protection/server/rule/dynamicrule/DynamicRuleService.java @@ -362,4 +362,7 @@ public class DynamicRuleService { } + public List queryHistory(Integer id, Integer page, Integer pageSize) { + return dynamicRuleMapper.queryHistory(id, page, pageSize); + } } diff --git a/src/main/java/com/realtime/protection/server/rule/staticrule/StaticRuleController.java b/src/main/java/com/realtime/protection/server/rule/staticrule/StaticRuleController.java index 3b16615..3bea56b 100644 --- a/src/main/java/com/realtime/protection/server/rule/staticrule/StaticRuleController.java +++ b/src/main/java/com/realtime/protection/server/rule/staticrule/StaticRuleController.java @@ -279,7 +279,9 @@ public class StaticRuleController implements StaticRuleControllerApi { AuditStatusEnum.getNumByState(AuditStatusEnum.AUDITED.getState()) )) .setData("static_rule_unaudit_num", staticRuleService.queryAuditStaticRuleTotalNum( - AuditStatusEnum.getNumByState(AuditStatusEnum.PENDING.getState()))); + AuditStatusEnum.getNumByState(AuditStatusEnum.PENDING.getState()))) + .setData("static_rule_returned_num", staticRuleService.queryAuditStaticRuleTotalNum( + AuditStatusEnum.getNumByState(AuditStatusEnum.RETURNED.getState()))); } @@ -301,4 +303,14 @@ public class StaticRuleController implements StaticRuleControllerApi { .setData("auditInfo", staticRuleService.queryAuditInfo(id)); } + @Override + @GetMapping("/{id}/history") + public ResponseResult queryHistory(@PathVariable Integer id, + @RequestParam(value = "page", required = true) Integer page, + @RequestParam(value = "page_size", required = true) Integer pageSize) { + + return ResponseResult.ok() + .setData("history", staticRuleService.queryHistory(id, page, pageSize)); + } + } diff --git a/src/main/java/com/realtime/protection/server/rule/staticrule/StaticRuleControllerApi.java b/src/main/java/com/realtime/protection/server/rule/staticrule/StaticRuleControllerApi.java index 701e217..d522ab3 100644 --- a/src/main/java/com/realtime/protection/server/rule/staticrule/StaticRuleControllerApi.java +++ b/src/main/java/com/realtime/protection/server/rule/staticrule/StaticRuleControllerApi.java @@ -413,4 +413,29 @@ public interface StaticRuleControllerApi { ) @GetMapping("/auditInfo/{id}") ResponseResult queryAuditInfo(@PathVariable Integer id); + + + + @Operation( + summary = "查询历史变化", + description = "查询历史变化,只接收一个id", + responses = { + @io.swagger.v3.oas.annotations.responses.ApiResponse( + description = "返回是否成功", + content = @Content( + mediaType = "application/json", + schema = @Schema(implementation = ResponseResult.class) + ) + ) + }, + parameters = { + @Parameter(name = "page", description = "页数", example = "2"), + @Parameter(name = "page_size", description = "每页个数", example = "10"), + } + ) + @GetMapping("/{id}/history") + ResponseResult queryHistory(@PathVariable Integer id, + @RequestParam(value = "page", required = true) Integer page, + @RequestParam(value = "page_size", required = true) Integer pageSize); + } diff --git a/src/main/java/com/realtime/protection/server/rule/staticrule/StaticRuleMapper.java b/src/main/java/com/realtime/protection/server/rule/staticrule/StaticRuleMapper.java index c1512f0..514c4ba 100644 --- a/src/main/java/com/realtime/protection/server/rule/staticrule/StaticRuleMapper.java +++ b/src/main/java/com/realtime/protection/server/rule/staticrule/StaticRuleMapper.java @@ -76,4 +76,8 @@ public interface StaticRuleMapper { void insertStaticRuleStatusLogBatch(List ids); void updateStaticRuleStatusLogExpireTimeBatch(List ids); + + List queryHistory(Integer id, Integer page, Integer pageSize); + + void removeUsedTaskId(Long taskId); } 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 910225a..c57caab 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 @@ -420,4 +420,8 @@ public class StaticRuleService { staticRuleMapper.updateStaticRuleStatusLogExpireTimeBatch(ids); staticRuleMapper.insertStaticRuleStatusLogBatch(ids); } + + public List queryHistory(Integer id, Integer page, Integer pageSize) { + return staticRuleMapper.queryHistory(id, page, pageSize); + } } 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 3e1fec1..69d63d2 100644 --- a/src/main/java/com/realtime/protection/server/task/TaskController.java +++ b/src/main/java/com/realtime/protection/server/task/TaskController.java @@ -262,9 +262,11 @@ public class TaskController implements TaskControllerApi { null, null, null, null,null,null,null,null)) .setData("finished_num", taskService.queryTaskTotalNum(StateEnum.FINISHED.getStateNum(), null, null, null, null, null, null, null, null,null,null,null,null)) - .setData("unaudit_num", taskService.queryAuditTaskTotalNum( - AuditStatusEnum.PENDING.getNum() - )); + .setData("unaudit_num", taskService.queryAuditTaskTotalNum(AuditStatusEnum.PENDING.getNum())) + .setData("audited_num", taskService.queryAuditTaskTotalNum(AuditStatusEnum.AUDITED.getNum())) + .setData("rejected_num", taskService.queryAuditTaskTotalNum(AuditStatusEnum.RETURNED.getNum())) + .setData("using_num", taskService.queryAuditTaskTotalNum(AuditStatusEnum.USING.getNum())); + } @Override @@ -285,5 +287,15 @@ public class TaskController implements TaskControllerApi { .setData("auditInfo", taskService.queryAuditInfo(id)); } + @Override + @GetMapping("/{id}/history") + public ResponseResult queryHistory(@PathVariable Long id, + @RequestParam(value = "page", required = true) Integer page, + @RequestParam(value = "page_size", required = true) Integer pageSize) { + + return ResponseResult.ok() + .setData("history", taskService.queryHistory(id, page, pageSize)); + } + } \ 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 752efb1..c05f28b 100644 --- a/src/main/java/com/realtime/protection/server/task/TaskControllerApi.java +++ b/src/main/java/com/realtime/protection/server/task/TaskControllerApi.java @@ -670,4 +670,27 @@ public interface TaskControllerApi { ) @GetMapping("/auditInfo/{id}") ResponseResult queryAuditInfo(@PathVariable Integer id); + + + @Operation( + summary = "查询历史变化", + description = "查询历史变化,只接收一个id", + responses = { + @io.swagger.v3.oas.annotations.responses.ApiResponse( + description = "返回是否成功", + content = @Content( + mediaType = "application/json", + schema = @Schema(implementation = ResponseResult.class) + ) + ) + }, + parameters = { + @Parameter(name = "page", description = "页数", example = "2"), + @Parameter(name = "page_size", description = "每页个数", example = "10"), + } + ) + @GetMapping("/{id}/history") + ResponseResult queryHistory(@PathVariable Long id, + @RequestParam(value = "page", required = true) Integer page, + @RequestParam(value = "page_size", required = true) Integer pageSize); } 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 18399f7..1a5d3a3 100644 --- a/src/main/java/com/realtime/protection/server/task/TaskMapper.java +++ b/src/main/java/com/realtime/protection/server/task/TaskMapper.java @@ -112,4 +112,6 @@ public interface TaskMapper { void insertTaskStatusLogBatch(List idWithAuditStatusBatch); void updateTaskStatusLogExpireTimeBatch(List taskIds); + + List queryHistory(Long id, Integer page, Integer pageSize); } 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 da093c3..78c176a 100644 --- a/src/main/java/com/realtime/protection/server/task/TaskService.java +++ b/src/main/java/com/realtime/protection/server/task/TaskService.java @@ -153,10 +153,12 @@ public class TaskService { } mapper.updateAuditStatusByIdBatch(batchMap); + insertStaticRuleStatusLog(batchMap); batchMap.clear(); } mapper.updateAuditStatusByIdBatch(batchMap); + insertStaticRuleStatusLog(batchMap); batchMap.clear(); return null; @@ -214,10 +216,12 @@ public class TaskService { } mapper.updateAuditStatusByIdBatch(batchMap); + insertDynamicRuleStatusLog(batchMap); batchMap.clear(); } mapper.updateAuditStatusByIdBatch(batchMap); + insertDynamicRuleStatusLog(batchMap); batchMap.clear(); return null; @@ -243,6 +247,8 @@ public class TaskService { if (task == null) { continue; } + List protectObjects = taskMapper.queryProtectObjectsByTaskId(task.getTaskId()); + task.setProtectObjects(protectObjects); task.setStaticRuleIds(taskMapper.queryStaticRuleIdsFromTaskId(task.getTaskId(), List.of(AuditStatusEnum.AUDITED.getNum(), AuditStatusEnum.USING.getNum()))); @@ -523,4 +529,46 @@ public class TaskService { taskMapper.updateTaskStatusLogExpireTimeBatch(taskIds); taskMapper.insertTaskStatusLogBatch(taskIds); } + + public List queryHistory(Long id, Integer page, Integer pageSize) { + List tasks = taskMapper.queryHistory(id, page, pageSize); + + for (Task task : tasks) { + if (task == null) { + continue; + } + List protectObjects = taskMapper.queryProtectObjectsByTaskId(task.getTaskId()); + task.setProtectObjects(protectObjects); + + task.setStaticRuleIds(taskMapper.queryStaticRuleIdsFromTaskId(task.getTaskId(), + List.of(AuditStatusEnum.AUDITED.getNum(), AuditStatusEnum.USING.getNum()))); + task.setDynamicRuleIds(taskMapper.queryDynamicRuleIdsFromTaskId(task.getTaskId(), + List.of(AuditStatusEnum.AUDITED.getNum(), AuditStatusEnum.USING.getNum()))); + } + return tasks; + } + + public void removeDynamicRuleUsedTaskIdInTask(Long taskId) { + dynamicRuleMapper.removeUsedTaskId(taskId); + } + + public void removeStaticRuleUsedTaskIdInTask(Long taskId) { + staticRuleMapper.removeUsedTaskId(taskId); + } + + public void insertStaticRuleStatusLog(Map idWithAuditStatusBatch) { + Set keys = idWithAuditStatusBatch.keySet(); + ArrayList ids = new ArrayList<>(keys); + + staticRuleMapper.updateStaticRuleStatusLogExpireTimeBatch(ids); + staticRuleMapper.insertStaticRuleStatusLogBatch(ids); + } + public void insertDynamicRuleStatusLog(Map idWithAuditStatusBatch) { + Set keys = idWithAuditStatusBatch.keySet(); + ArrayList ids = new ArrayList<>(keys); + + dynamicRuleMapper.updateStatusLogExpireTimeBatch(ids); + dynamicRuleMapper.insertStatusLogBatch(ids); + + } } diff --git a/src/main/java/com/realtime/protection/server/task/status/StateHandler.java b/src/main/java/com/realtime/protection/server/task/status/StateHandler.java index 48d8e41..6489e71 100644 --- a/src/main/java/com/realtime/protection/server/task/status/StateHandler.java +++ b/src/main/java/com/realtime/protection/server/task/status/StateHandler.java @@ -69,8 +69,14 @@ public class StateHandler { protected Boolean handleFinish(CommandService commandService, TaskService taskService, Long taskId) { commandService.removeCommandsByTaskId(taskId); + taskService.updateDynamicRuleAuditStatusInTask(taskId, AuditStatusEnum.AUDITED); + // 要删去规则的used_task_id,因为在新建时检查了是否有重复使用的规则 + taskService.removeDynamicRuleUsedTaskIdInTask(taskId); + taskService.updateStaticRuleAuditStatusInTask(taskId, AuditStatusEnum.AUDITED); + taskService.removeStaticRuleUsedTaskIdInTask(taskId); + return true; } diff --git a/src/main/java/com/realtime/protection/server/whitelist/WhiteListController.java b/src/main/java/com/realtime/protection/server/whitelist/WhiteListController.java index f768ffe..06e0eda 100644 --- a/src/main/java/com/realtime/protection/server/whitelist/WhiteListController.java +++ b/src/main/java/com/realtime/protection/server/whitelist/WhiteListController.java @@ -212,6 +212,9 @@ public class WhiteListController implements WhiteListControllerApi { )) .setData("whiteobj_unaudit_num", whiteListService.queryAuditWhiteListTotalNum( AuditStatusEnum.getNumByState(AuditStatusEnum.PENDING.getState()) + )) + .setData("whiteobj_returned_num", whiteListService.queryAuditWhiteListTotalNum( + AuditStatusEnum.RETURNED.getNum() )); } @@ -257,5 +260,15 @@ public class WhiteListController implements WhiteListControllerApi { .setData("auditInfo", whiteListService.queryAuditInfo(id)); } + @Override + @GetMapping("/{id}/history") + public ResponseResult queryHistory(@PathVariable Integer id, + @RequestParam(value = "page", required = true) Integer page, + @RequestParam(value = "page_size", required = true) Integer pageSize) { + + return ResponseResult.ok() + .setData("history", whiteListService.queryHistory(id, page, pageSize)); + } + } diff --git a/src/main/java/com/realtime/protection/server/whitelist/WhiteListControllerApi.java b/src/main/java/com/realtime/protection/server/whitelist/WhiteListControllerApi.java index 274b8fb..9cc764c 100644 --- a/src/main/java/com/realtime/protection/server/whitelist/WhiteListControllerApi.java +++ b/src/main/java/com/realtime/protection/server/whitelist/WhiteListControllerApi.java @@ -375,5 +375,26 @@ public interface WhiteListControllerApi { @GetMapping("/auditInfo/{id}") ResponseResult queryAuditInfo(@PathVariable Integer id); + @Operation( + summary = "查询历史变化", + description = "查询历史变化,只接收一个id", + responses = { + @io.swagger.v3.oas.annotations.responses.ApiResponse( + description = "返回是否成功", + content = @Content( + mediaType = "application/json", + schema = @Schema(implementation = ResponseResult.class) + ) + ) + }, + parameters = { + @Parameter(name = "page", description = "页数", example = "2"), + @Parameter(name = "page_size", description = "每页个数", example = "10"), + } + ) + @GetMapping("/{id}/history") + ResponseResult queryHistory(@PathVariable Integer id, + @RequestParam(value = "page", required = true) Integer page, + @RequestParam(value = "page_size", required = true) Integer pageSize); } diff --git a/src/main/java/com/realtime/protection/server/whitelist/WhiteListMapper.java b/src/main/java/com/realtime/protection/server/whitelist/WhiteListMapper.java index 249ada7..31791b9 100644 --- a/src/main/java/com/realtime/protection/server/whitelist/WhiteListMapper.java +++ b/src/main/java/com/realtime/protection/server/whitelist/WhiteListMapper.java @@ -68,4 +68,6 @@ public interface WhiteListMapper { void updateStatusLogExpireTimeBatch(List ids); void insertStatusLogBatch(List ids); + + List queryHistory(Integer id, Integer page, Integer pageSize); } diff --git a/src/main/java/com/realtime/protection/server/whitelist/WhiteListService.java b/src/main/java/com/realtime/protection/server/whitelist/WhiteListService.java index 57b9883..0eebe71 100644 --- a/src/main/java/com/realtime/protection/server/whitelist/WhiteListService.java +++ b/src/main/java/com/realtime/protection/server/whitelist/WhiteListService.java @@ -294,4 +294,8 @@ public class WhiteListService { whiteListMapper.updateStatusLogExpireTimeBatch(ids); whiteListMapper.insertStatusLogBatch(ids); } + + public List queryHistory(Integer id, Integer page, Integer pageSize) { + return whiteListMapper.queryHistory(id, page, pageSize); + } } diff --git a/src/main/resources/mappers/CommandMapper.xml b/src/main/resources/mappers/CommandMapper.xml index 7eeadad..0090053 100644 --- a/src/main/resources/mappers/CommandMapper.xml +++ b/src/main/resources/mappers/CommandMapper.xml @@ -116,6 +116,7 @@ AND SRC_PORT = #{src_port} AND DST_PORT = #{dst_port} + ORDER BY CREATE_TIME DESC LIMIT ${(page-1) * page_num}, #{page_num} diff --git a/src/main/resources/mappers/DynamicRuleMapper.xml b/src/main/resources/mappers/DynamicRuleMapper.xml index 4f9908b..3160e15 100644 --- a/src/main/resources/mappers/DynamicRuleMapper.xml +++ b/src/main/resources/mappers/DynamicRuleMapper.xml @@ -233,6 +233,11 @@ and expire_time is null + + update t_dynamic_rule + set dynamic_rule_used_task_id = null + where dynamic_rule_used_task_id = #{taskId} + --> + + @@ -256,6 +263,8 @@ + + @@ -263,6 +272,7 @@ + @@ -284,6 +294,9 @@ + + + - select * + select *, + t_task.task_name as used_task_name from t_dynamic_rule - + left join t_task + on t_dynamic_rule.dynamic_rule_used_task_id = t_task.task_id t_dynamic_rule.dynamic_rule_name like concat('%', #{dynamicRuleName}, '%') @@ -336,6 +351,7 @@ + ORDER BY dynamic_rule_id DESC LIMIT ${(page - 1) * pageSize}, #{pageSize} @@ -445,6 +461,16 @@ from t_dynamic_rule where dynamic_rule_id = #{dynamicRuleId} - + \ No newline at end of file diff --git a/src/main/resources/mappers/ProtectObjectMapper.xml b/src/main/resources/mappers/ProtectObjectMapper.xml index 3f0773f..5e33579 100644 --- a/src/main/resources/mappers/ProtectObjectMapper.xml +++ b/src/main/resources/mappers/ProtectObjectMapper.xml @@ -150,6 +150,8 @@ + + @@ -191,6 +193,7 @@ AND protect_object_audit_status = #{proobj_audit_status} + ORDER BY protect_object_id DESC LIMIT ${(page-1) * page_size}, #{page_size} @@ -270,6 +273,13 @@ FROM t_protect_object WHERE protect_object_id = #{proobj_id} + UPDATE t_protect_object diff --git a/src/main/resources/mappers/StaticRuleMapper.xml b/src/main/resources/mappers/StaticRuleMapper.xml index 4ee627a..716f8d3 100644 --- a/src/main/resources/mappers/StaticRuleMapper.xml +++ b/src/main/resources/mappers/StaticRuleMapper.xml @@ -290,6 +290,11 @@ AND expire_time IS NULL + + update t_static_rule + set static_rule_used_task_id = NULL + where static_rule_used_task_id = #{taskId} + delete from t_static_rule @@ -331,6 +336,10 @@ + + + + @@ -483,4 +494,19 @@ WHERE static_rule_id = #{id} + + \ No newline at end of file diff --git a/src/main/resources/mappers/TaskMapper.xml b/src/main/resources/mappers/TaskMapper.xml index d4dc455..48ca727 100644 --- a/src/main/resources/mappers/TaskMapper.xml +++ b/src/main/resources/mappers/TaskMapper.xml @@ -76,6 +76,8 @@ + + @@ -134,7 +136,7 @@ - + order by task_id desc LIMIT ${(page - 1) * page_size}, #{page_size} @@ -647,4 +649,12 @@ where t_task_protectobject_conn.task_id = #{id} + + \ No newline at end of file diff --git a/src/main/resources/mappers/TemplateNewMapper.xml b/src/main/resources/mappers/TemplateNewMapper.xml index c5ab4e3..1bfa9a5 100644 --- a/src/main/resources/mappers/TemplateNewMapper.xml +++ b/src/main/resources/mappers/TemplateNewMapper.xml @@ -278,6 +278,7 @@ AND protect_level LIKE CONCAT('%', #{protect_level}, '%') + ORDER BY strategy_template_id DESC LIMIT ${(page - 1) * page_size}, #{page_size} @@ -346,5 +347,12 @@ FROM t_strategy_template_new WHERE strategy_template_id = #{id} + \ No newline at end of file diff --git a/src/main/resources/mappers/WhiteListMapper.xml b/src/main/resources/mappers/WhiteListMapper.xml index 866835a..06b63a3 100644 --- a/src/main/resources/mappers/WhiteListMapper.xml +++ b/src/main/resources/mappers/WhiteListMapper.xml @@ -177,6 +177,7 @@ and create_username = #{creator} + order by white_list_id desc LIMIT ${(page - 1) * pageSize}, #{pageSize} @@ -464,5 +465,13 @@ from t_white_list where white_list_id = #{id} + \ No newline at end of file diff --git a/src/test/java/com/realtime/protection/server/rule/staticrule/StaticRuleServiceTest.java b/src/test/java/com/realtime/protection/server/rule/staticrule/StaticRuleServiceTest.java index 4ac5efe..955b81b 100644 --- a/src/test/java/com/realtime/protection/server/rule/staticrule/StaticRuleServiceTest.java +++ b/src/test/java/com/realtime/protection/server/rule/staticrule/StaticRuleServiceTest.java @@ -143,6 +143,12 @@ public class StaticRuleServiceTest extends ProtectionApplicationTests { System.out.println(staticRuleService.queryAuditStatusByIds(map)); } + @Test + void testQueryHisttory(){ + List lists= staticRuleService.queryHistory(1559, 1, 10); + lists.forEach(System.out::println); + } + } 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 e9ac282..cea87ee 100644 --- a/src/test/java/com/realtime/protection/server/task/TaskServiceTest.java +++ b/src/test/java/com/realtime/protection/server/task/TaskServiceTest.java @@ -10,6 +10,7 @@ import com.realtime.protection.configuration.entity.task.DynamicTaskInfo; 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.utils.enums.audit.AuditStatusEnum; import com.realtime.protection.server.command.CommandService; import com.realtime.protection.server.defense.object.ProtectObjectService; import com.realtime.protection.server.defense.templatenew.TemplateService; @@ -145,8 +146,8 @@ class TaskServiceTest extends ProtectionApplicationTests { // } // // - List tasks = taskService.queryTasks(null, null, null, null, null, null, null, null, "eee",null,null,null,null,1, 10); - assertEquals(1, tasks.size()); + 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); System.out.println(tasksnum); // @@ -379,4 +380,16 @@ class TaskServiceTest extends ProtectionApplicationTests { void testQueryTaskTotalNum(){ System.out.println(taskService.queryTaskTotalNum(null, null, "", "", null, "", "", "", "",null,null,null,null)); } + + @Test + void testQueryTaskHistory(){ + System.out.println(taskService.queryHistory(44058L,1,10)); + } + + @Test + void updateStaticRuleAuditStatusInTask(){ + taskService.updateStaticRuleAuditStatusInTask(44126L, AuditStatusEnum.AUDITED); + + } + } diff --git a/src/test/java/com/realtime/protection/server/whitelist/WhiteListServiceTest.java b/src/test/java/com/realtime/protection/server/whitelist/WhiteListServiceTest.java index db8168d..a3c9f98 100644 --- a/src/test/java/com/realtime/protection/server/whitelist/WhiteListServiceTest.java +++ b/src/test/java/com/realtime/protection/server/whitelist/WhiteListServiceTest.java @@ -155,4 +155,12 @@ class WhiteListServiceTest extends ProtectionApplicationTests { whiteListService.updateAuditStatusBatch(idsWithAuditStatusMap); } + + @Test + void testQueryHistory() { + whiteListService.queryHistory(1, 1, 2).forEach( + System.out::println + ); + + } } \ No newline at end of file