diff --git a/src/main/java/com/muyu/common/core/enums/SysFieldsType.java b/src/main/java/com/muyu/common/core/enums/SysFieldsType.java new file mode 100644 index 0000000..886aa16 --- /dev/null +++ b/src/main/java/com/muyu/common/core/enums/SysFieldsType.java @@ -0,0 +1,75 @@ +package com.muyu.common.core.enums; + +import lombok.Getter; + +import java.util.Arrays; +import java.util.List; +import java.util.Map; +import java.util.Set; + +/** + * @Author: 胡杨 + * @Name: SysApiState + * @Description: 字段类型字典 + * @CreatedDate: 2024/8/20 下午7:56 + * @FilePath: com.muyu.common.core.enums + */ + +@Getter +public enum SysFieldsType { + BYTE("Byte",Byte.class, "字节型"), + SHORT("Short",Short.class, "短整型"), + INTEGER("Integer",Integer.class, "整型"), + FLOAT("Float",Float.class, "单精度浮点型"), + DOUBLE("Double",Double.class, "双精度浮点型"), + LONG("Long",Long.class, "长整型"), + CHAR("char",char.class, "字符型"), + BOOLEAN("Boolean",Boolean.class, "布尔型"), + STRING("String",String.class, "字符串"), + LIST("List", List.class, "List集合"), + SET("Set", Set.class, "Set集合"), + MAP("Map", Map.class, "map集合"), + OBJECT("Object",Object.class, "其他"); + + private final String code; + private final Class type; + private final String name; + + SysFieldsType(String code, Class type, String name) { + this.code = code; + this.type = type; + this.name = name; + } + + /** + * 鉴别参数是否是启用状态 + * @param code 需鉴别参数 + * @return 如果存在返回结果turn,否则返回false + */ + public static boolean isCode(String code){ + return Arrays.stream(values()) + .map(SysFieldsType::getCode) + .anyMatch(c -> c.equals(code)); + } + + /** + * 参数转换,从编码转换为名称 + * @param code 编码 + * @return 名称 + */ + public static Class getTypeByCode(String code){ + return Arrays.stream(values()) + .filter(c -> c.getCode().equals(code)) + .findFirst() + .map(SysFieldsType::getType) + .orElse(Object.class); + } + + public static String getNameByCode(String code){ + return Arrays.stream(values()) + .filter(c -> c.getCode().equals(code)) + .findFirst() + .map(SysFieldsType::getName) + .orElse("-"); + } +} diff --git a/src/main/java/com/muyu/common/core/enums/SysNodeType.java b/src/main/java/com/muyu/common/core/enums/SysNodeType.java new file mode 100644 index 0000000..d19e722 --- /dev/null +++ b/src/main/java/com/muyu/common/core/enums/SysNodeType.java @@ -0,0 +1,42 @@ +package com.muyu.common.core.enums; + +import lombok.Getter; + +import java.util.Arrays; + +/** + * @Author: 胡杨 + * @Name: SysNodeType + * @Description: 节点类型枚举 + * @CreatedDate: 2024/8/29 下午4:46 + * @FilePath: com.muyu.common.core.enums + */ + +@Getter +public enum SysNodeType { + START("start", "开始"), + TABLE("table", "表结构"), + UNITE("unite", "联合查询"), + EXPORTATION("exportation", "数据输出"), + END("end", "结束"); + + private final String code; + private final String info; + + SysNodeType(String code, String info) { + this.code = code; + this.info = info; + } + + /** + * 鉴别参数是否是枚举的值 + * + * @param code 需鉴别参数 + * @return 如果存在返回结果turn, 否则返回false + */ + public static boolean isCode(String code) { + return Arrays.stream(values()) + .map(SysNodeType::getCode) + .anyMatch(c -> c.equals(code)); + } +} diff --git a/src/main/java/com/muyu/common/core/validation/IsSysFieldsTypeValidator.java b/src/main/java/com/muyu/common/core/validation/IsSysFieldsTypeValidator.java new file mode 100644 index 0000000..e1e496c --- /dev/null +++ b/src/main/java/com/muyu/common/core/validation/IsSysFieldsTypeValidator.java @@ -0,0 +1,22 @@ +package com.muyu.common.core.validation; + + +import com.muyu.common.core.enums.*; +import com.muyu.common.core.validation.custom.*; +import jakarta.validation.ConstraintValidator; +import jakarta.validation.ConstraintValidatorContext; + +/** + * @Author: 胡杨 + * @Name: SysFieldsType + * @Description: 判断语句 + * @CreatedDate: 2024/8/29 下午1:54 + * @FilePath: com.muyu.common.core.validation + */ + +public class IsSysFieldsTypeValidator implements ConstraintValidator { + @Override + public boolean isValid(String s, ConstraintValidatorContext constraintValidatorContext) { + return SysFieldsType.isCode(s); + } +} diff --git a/src/main/java/com/muyu/common/core/validation/IsSysNodeTypeValidator.java b/src/main/java/com/muyu/common/core/validation/IsSysNodeTypeValidator.java new file mode 100644 index 0000000..9f252fe --- /dev/null +++ b/src/main/java/com/muyu/common/core/validation/IsSysNodeTypeValidator.java @@ -0,0 +1,22 @@ +package com.muyu.common.core.validation; + + +import com.muyu.common.core.enums.*; +import com.muyu.common.core.validation.custom.*; +import jakarta.validation.ConstraintValidator; +import jakarta.validation.ConstraintValidatorContext; + +/** + * @Author: 胡杨 + * @Name: SysNodeType + * @Description: 节点类型字典 + * @CreatedDate: 2024/8/29 下午4:47 + * @FilePath: com.muyu.common.core.validation + */ + +public class IsSysNodeTypeValidator implements ConstraintValidator { + @Override + public boolean isValid(String s, ConstraintValidatorContext constraintValidatorContext) { + return SysNodeType.isCode(s); + } +} diff --git a/src/main/java/com/muyu/common/core/validation/custom/IsSysFieldsType.java b/src/main/java/com/muyu/common/core/validation/custom/IsSysFieldsType.java new file mode 100644 index 0000000..665b2d4 --- /dev/null +++ b/src/main/java/com/muyu/common/core/validation/custom/IsSysFieldsType.java @@ -0,0 +1,29 @@ +package com.muyu.common.core.validation.custom; + +import com.muyu.common.core.validation.*; +import jakarta.validation.Constraint; +import jakarta.validation.Payload; + +import java.lang.annotation.*; + +import static java.lang.annotation.RetentionPolicy.RUNTIME; + +/** + * @Author: 胡杨 + * @Name: SysFieldsType + * @Description: 字段类型字典判断注释 + * @CreatedDate: 2024/8/29 下午1:53 + * @FilePath: com.muyu.common.core.validation.custom + */ + +@Target({ElementType.FIELD}) +@Retention(RUNTIME) +@Documented +@Constraint(validatedBy = IsSysFieldsTypeValidator.class) +public @interface IsSysFieldsType { + String message() default "数据字典:[字段类型字典] - 参数不合法"; + + Class[] groups() default {}; + + Class[] payload() default {}; +} diff --git a/src/main/java/com/muyu/common/core/validation/custom/IsSysNodeType.java b/src/main/java/com/muyu/common/core/validation/custom/IsSysNodeType.java new file mode 100644 index 0000000..95bcdeb --- /dev/null +++ b/src/main/java/com/muyu/common/core/validation/custom/IsSysNodeType.java @@ -0,0 +1,29 @@ +package com.muyu.common.core.validation.custom; + +import com.muyu.common.core.validation.*; +import jakarta.validation.Constraint; +import jakarta.validation.Payload; + +import java.lang.annotation.*; + +import static java.lang.annotation.RetentionPolicy.RUNTIME; + +/** + * @Author: 胡杨 + * @Name: SysNodeType + * @Description: 节点类型字典 + * @CreatedDate: 2024/8/29 下午4:47 + * @FilePath: com.muyu.common.core.validation.custom + */ + +@Target({ElementType.FIELD}) +@Retention(RUNTIME) +@Documented +@Constraint(validatedBy = IsSysNodeTypeValidator.class) +public @interface IsSysNodeType { + String message() default "数据字典:[节点类型字典] - 参数不合法"; + + Class[] groups() default {}; + + Class[] payload() default {}; +}