合并redis到haskafka branch

This commit is contained in:
EnderByEndera
2024-04-29 15:33:09 +08:00
committed by Hao Miao
parent d6c487cd12
commit 57fcf627c0
22 changed files with 218 additions and 41 deletions

View File

@@ -17,6 +17,11 @@ public class ProtectObject {
@Schema(description = "防护对象ID", accessMode = Schema.AccessMode.READ_ONLY)
private Integer protectObjectId;
@JsonProperty("proobj_display_id")
@ExcelProperty("ID")
@Schema(description = "防护对象显示ID", accessMode = Schema.AccessMode.READ_ONLY)
private String protectObjectDisplayId;
@JsonProperty("proobj_name")
@NotNull(message = "proobj_name字段不能为空。")
@ExcelProperty("名称")

View File

@@ -22,6 +22,10 @@ public class DynamicRuleObject {
@Schema(description = "动态规则ID", accessMode = Schema.AccessMode.READ_ONLY)
private Integer dynamicRuleId;
@JsonProperty("dynamic_rule_display_id")
@Schema(description = "动态规则显示ID", accessMode = Schema.AccessMode.READ_ONLY)
private String dynamicRuleDisplayId;
@NotNull
@JsonProperty("dynamic_rule_name")
@Schema(description = "动态规则名称", example = "动态规则测试", requiredMode = Schema.RequiredMode.REQUIRED)
@@ -38,8 +42,6 @@ public class DynamicRuleObject {
@Schema(description = "动态规则创建用户名称", accessMode = Schema.AccessMode.READ_ONLY)
private String dynamicRuleCreateUsername;
// @JsonProperty("dynamic_rule_audit_status")
// private Integer dynamicRuleAuditStatus;
@JsonProperty("dynamic_rule_create_depart")
@Schema(description = "动态规则创建用户所属部门", accessMode = Schema.AccessMode.READ_ONLY)
private String dynamicRuleCreateDepart;
@@ -99,7 +101,6 @@ public class DynamicRuleObject {
@Schema(description = "筛选条件-日志规则id", example = "1", requiredMode = Schema.RequiredMode.REQUIRED)
private Long logRuleId;
@JsonProperty("dynamic_rule_audit_status")
@ExcelIgnore
@Schema(description = "动态规则审核状态0为未审核1为已退回2为审核通过", example = "2", accessMode = Schema.AccessMode.READ_ONLY)

View File

@@ -28,6 +28,11 @@ public class StaticRuleObject {
@Schema(description = "静态规则ID", accessMode = Schema.AccessMode.READ_ONLY)
private Integer staticRuleId;
@JsonProperty("static_rule_display_id")
@ExcelProperty("ID")
@Schema(description = "静态规则显示ID", accessMode = Schema.AccessMode.READ_ONLY)
private String staticRuleDisplayId;
@NotNull
@JsonProperty("static_rule_name")
@ExcelProperty("名称")

View File

@@ -16,6 +16,10 @@ public class Task {
@Schema(description = "任务ID", accessMode = Schema.AccessMode.READ_ONLY)
private Long taskId;
@JsonProperty("task_display_id")
@Schema(description = "任务显示ID", accessMode = Schema.AccessMode.READ_ONLY)
private String taskDisplayId;
@JsonProperty("task_name")
@NotNull(message = "task_name字段不能为空。")
@Schema(description = "任务名称", example = "静态任务")

View File

@@ -17,6 +17,10 @@ public class TaskCommandInfo {
@JsonProperty("task_id")
private Long taskId;
@Schema(description = "任务显示ID", accessMode = Schema.AccessMode.READ_ONLY)
@JsonProperty("task_display_id")
private String taskDisplayId;
@Schema(description = "规则ID", hidden = true)
@JsonProperty("rule_id")
private Long ruleId;

View File

@@ -0,0 +1,37 @@
package com.realtime.protection.configuration.utils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.data.redis.core.BoundValueOperations;
import org.springframework.data.redis.core.Cursor;
import org.springframework.data.redis.core.ScanOptions;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Service;
@Service
@Slf4j
public class Counter {
private final StringRedisTemplate stringRedisTemplate;
public Counter(StringRedisTemplate stringRedisTemplate) {
this.stringRedisTemplate = stringRedisTemplate;
}
public Long generateId(String typeName) {
String key = String.format("counter::%s", typeName.toLowerCase());
BoundValueOperations<String, String> op = stringRedisTemplate.boundValueOps(key);
return op.increment();
}
@Scheduled(cron = "0 0 0 * * ?")
public void resetId() {
Cursor<String> cursor = stringRedisTemplate.scan(ScanOptions.scanOptions().build());
while (cursor.hasNext()) {
String key = cursor.next();
if (key.startsWith("counter::")) {
stringRedisTemplate.delete(key);
log.debug("删除计时器key: {}", key);
}
}
}
}