Browse Source

feat(alert): 添加算法枚举反序列化支持

- 引入 Jackson 注解以支持自定义反序列化逻辑
- 实现 deserialize 方法处理数字和字符串类型的输入
- 支持通过名称或代码值查找对应的算法枚举
- 添加对无效输入的安全默认返回机制
pull/52/head
CJL6015 3 weeks ago
parent
commit
1d14331598
  1. 24
      yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/common/enums/Algorithm.java

24
yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/common/enums/Algorithm.java

@ -1,5 +1,6 @@
package cn.iocoder.yudao.module.alert.common.enums;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.AllArgsConstructor;
@ -24,6 +25,29 @@ public enum Algorithm {
public final Integer code;
@JsonCreator
public static Algorithm deserialize(Object value) {
if (value == null) {
return ERROR;
}
if (value instanceof Number) {
return of(((Number) value).intValue());
}
String text = String.valueOf(value);
if ("ANN_O".equalsIgnoreCase(text)) {
return ANN;
}
for (Algorithm algorithm : values()) {
if (algorithm.name().equalsIgnoreCase(text)) {
return algorithm;
}
}
try {
return of(Integer.parseInt(text));
} catch (NumberFormatException ignore) {
return ERROR;
}
}
public static Algorithm of(Integer code) {
for (Algorithm algorithm : values()) {

Loading…
Cancel
Save