style: 枚举接口 BaseEnum => IBaseEnum
This commit is contained in:
parent
43590bf66e
commit
f5e8b0943c
@ -21,16 +21,14 @@ import java.io.Serializable;
|
||||
import com.baomidou.mybatisplus.annotation.IEnum;
|
||||
|
||||
/**
|
||||
* 枚举基类
|
||||
* 枚举接口
|
||||
*
|
||||
* @param <V>
|
||||
* value 类型
|
||||
* @param <D>
|
||||
* description 类型
|
||||
* @author Charles7c
|
||||
* @since 2023/2/5 20:44
|
||||
*/
|
||||
public interface BaseEnum<V extends Serializable> extends IEnum<V> {
|
||||
public interface IBaseEnum<V extends Serializable> extends IEnum<V> {
|
||||
|
||||
/**
|
||||
* 枚举描述
|
@ -26,7 +26,7 @@ import com.alibaba.excel.metadata.property.ExcelContentProperty;
|
||||
import cn.hutool.core.convert.Convert;
|
||||
import cn.hutool.core.util.ClassUtil;
|
||||
|
||||
import top.charles7c.cnadmin.common.base.BaseEnum;
|
||||
import top.charles7c.cnadmin.common.base.IBaseEnum;
|
||||
import top.charles7c.cnadmin.common.constant.StringConsts;
|
||||
|
||||
/**
|
||||
@ -35,11 +35,11 @@ import top.charles7c.cnadmin.common.constant.StringConsts;
|
||||
* @author Charles7c
|
||||
* @since 2023/2/5 19:29
|
||||
*/
|
||||
public class ExcelBaseEnumConverter implements Converter<BaseEnum<Integer>> {
|
||||
public class ExcelBaseEnumConverter implements Converter<IBaseEnum<Integer>> {
|
||||
|
||||
@Override
|
||||
public Class<BaseEnum> supportJavaTypeKey() {
|
||||
return BaseEnum.class;
|
||||
public Class<IBaseEnum> supportJavaTypeKey() {
|
||||
return IBaseEnum.class;
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -51,16 +51,16 @@ public class ExcelBaseEnumConverter implements Converter<BaseEnum<Integer>> {
|
||||
* 转换为 Java 数据(读取 Excel)
|
||||
*/
|
||||
@Override
|
||||
public BaseEnum convertToJavaData(ReadCellData<?> cellData, ExcelContentProperty contentProperty,
|
||||
public IBaseEnum convertToJavaData(ReadCellData<?> cellData, ExcelContentProperty contentProperty,
|
||||
GlobalConfiguration globalConfiguration) {
|
||||
return this.getEnum(BaseEnum.class, Convert.toStr(cellData.getData()));
|
||||
return this.getEnum(IBaseEnum.class, Convert.toStr(cellData.getData()));
|
||||
}
|
||||
|
||||
/**
|
||||
* 转换为 Excel 数据(写入 Excel)
|
||||
*/
|
||||
@Override
|
||||
public WriteCellData<String> convertToExcelData(BaseEnum<Integer> value, ExcelContentProperty contentProperty,
|
||||
public WriteCellData<String> convertToExcelData(IBaseEnum<Integer> value, ExcelContentProperty contentProperty,
|
||||
GlobalConfiguration globalConfiguration) {
|
||||
if (null == value) {
|
||||
return new WriteCellData<>(StringConsts.EMPTY);
|
||||
@ -77,11 +77,11 @@ public class ExcelBaseEnumConverter implements Converter<BaseEnum<Integer>> {
|
||||
* 描述
|
||||
* @return 对应枚举 ,获取不到时为 {@code null}
|
||||
*/
|
||||
private BaseEnum<Integer> getEnum(Class<?> enumType, String description) {
|
||||
private IBaseEnum<Integer> getEnum(Class<?> enumType, String description) {
|
||||
Object[] enumConstants = enumType.getEnumConstants();
|
||||
for (Object enumConstant : enumConstants) {
|
||||
if (ClassUtil.isAssignable(BaseEnum.class, enumType)) {
|
||||
BaseEnum<Integer> baseEnum = (BaseEnum<Integer>)enumConstant;
|
||||
if (ClassUtil.isAssignable(IBaseEnum.class, enumType)) {
|
||||
IBaseEnum<Integer> baseEnum = (IBaseEnum<Integer>)enumConstant;
|
||||
if (baseEnum.getDescription().equals(description)) {
|
||||
return baseEnum;
|
||||
}
|
||||
|
@ -27,7 +27,7 @@ import com.fasterxml.jackson.databind.annotation.JacksonStdImpl;
|
||||
import cn.hutool.core.util.ClassUtil;
|
||||
import cn.hutool.core.util.ReflectUtil;
|
||||
|
||||
import top.charles7c.cnadmin.common.base.BaseEnum;
|
||||
import top.charles7c.cnadmin.common.base.IBaseEnum;
|
||||
|
||||
/**
|
||||
* 通用枚举基类 BaseEnum 反序列化器
|
||||
@ -36,13 +36,13 @@ import top.charles7c.cnadmin.common.base.BaseEnum;
|
||||
* @since 2023/1/8 13:56
|
||||
*/
|
||||
@JacksonStdImpl
|
||||
public class BaseEnumDeserializer extends JsonDeserializer<BaseEnum> {
|
||||
public class BaseEnumDeserializer extends JsonDeserializer<IBaseEnum> {
|
||||
|
||||
/** 静态实例 */
|
||||
public static final BaseEnumDeserializer SERIALIZER_INSTANCE = new BaseEnumDeserializer();
|
||||
|
||||
@Override
|
||||
public BaseEnum deserialize(JsonParser jsonParser, DeserializationContext deserializationContext)
|
||||
public IBaseEnum deserialize(JsonParser jsonParser, DeserializationContext deserializationContext)
|
||||
throws IOException {
|
||||
Class<?> targetClass = jsonParser.getCurrentValue().getClass();
|
||||
String fieldName = jsonParser.getCurrentName();
|
||||
@ -61,13 +61,13 @@ public class BaseEnumDeserializer extends JsonDeserializer<BaseEnum> {
|
||||
* 字段名
|
||||
* @return 对应枚举实例 ,获取不到时为 {@code null}
|
||||
*/
|
||||
private BaseEnum getEnum(Class<?> targetClass, String value, String fieldName) {
|
||||
private IBaseEnum getEnum(Class<?> targetClass, String value, String fieldName) {
|
||||
Field field = ReflectUtil.getField(targetClass, fieldName);
|
||||
Class<?> fieldTypeClass = field.getType();
|
||||
Object[] enumConstants = fieldTypeClass.getEnumConstants();
|
||||
for (Object enumConstant : enumConstants) {
|
||||
if (ClassUtil.isAssignable(BaseEnum.class, fieldTypeClass)) {
|
||||
BaseEnum baseEnum = (BaseEnum)enumConstant;
|
||||
if (ClassUtil.isAssignable(IBaseEnum.class, fieldTypeClass)) {
|
||||
IBaseEnum baseEnum = (IBaseEnum)enumConstant;
|
||||
if (baseEnum.getValue().equals(Integer.valueOf(value))) {
|
||||
return baseEnum;
|
||||
}
|
||||
|
@ -23,7 +23,7 @@ import com.fasterxml.jackson.databind.JsonSerializer;
|
||||
import com.fasterxml.jackson.databind.SerializerProvider;
|
||||
import com.fasterxml.jackson.databind.annotation.JacksonStdImpl;
|
||||
|
||||
import top.charles7c.cnadmin.common.base.BaseEnum;
|
||||
import top.charles7c.cnadmin.common.base.IBaseEnum;
|
||||
|
||||
/**
|
||||
* 通用枚举接口 BaseEnum 序列化器
|
||||
@ -32,13 +32,13 @@ import top.charles7c.cnadmin.common.base.BaseEnum;
|
||||
* @since 2023/1/8 13:56
|
||||
*/
|
||||
@JacksonStdImpl
|
||||
public class BaseEnumSerializer extends JsonSerializer<BaseEnum> {
|
||||
public class BaseEnumSerializer extends JsonSerializer<IBaseEnum> {
|
||||
|
||||
/** 静态实例 */
|
||||
public static final BaseEnumSerializer SERIALIZER_INSTANCE = new BaseEnumSerializer();
|
||||
|
||||
@Override
|
||||
public void serialize(BaseEnum value, JsonGenerator generator, SerializerProvider serializers) throws IOException {
|
||||
public void serialize(IBaseEnum value, JsonGenerator generator, SerializerProvider serializers) throws IOException {
|
||||
generator.writeObject(value.getValue());
|
||||
}
|
||||
}
|
||||
|
@ -41,7 +41,7 @@ import com.fasterxml.jackson.datatype.jsr310.ser.LocalTimeSerializer;
|
||||
|
||||
import cn.hutool.core.date.DatePattern;
|
||||
|
||||
import top.charles7c.cnadmin.common.base.BaseEnum;
|
||||
import top.charles7c.cnadmin.common.base.IBaseEnum;
|
||||
|
||||
/**
|
||||
* Jackson 配置
|
||||
@ -83,10 +83,10 @@ public class JacksonConfiguration {
|
||||
@Bean
|
||||
public ObjectMapper objectMapper(Jackson2ObjectMapperBuilder builder) {
|
||||
SimpleModule simpleModule = new SimpleModule();
|
||||
simpleModule.addSerializer(BaseEnum.class, BaseEnumSerializer.SERIALIZER_INSTANCE);
|
||||
simpleModule.addSerializer(IBaseEnum.class, BaseEnumSerializer.SERIALIZER_INSTANCE);
|
||||
|
||||
SimpleDeserializersWrapper deserializers = new SimpleDeserializersWrapper();
|
||||
deserializers.addDeserializer(BaseEnum.class, BaseEnumDeserializer.SERIALIZER_INSTANCE);
|
||||
deserializers.addDeserializer(IBaseEnum.class, BaseEnumDeserializer.SERIALIZER_INSTANCE);
|
||||
simpleModule.setDeserializers(deserializers);
|
||||
|
||||
ObjectMapper objectMapper = builder.createXmlMapper(false).build();
|
||||
|
@ -19,7 +19,7 @@ package top.charles7c.cnadmin.common.enums;
|
||||
import lombok.Getter;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
|
||||
import top.charles7c.cnadmin.common.base.BaseEnum;
|
||||
import top.charles7c.cnadmin.common.base.IBaseEnum;
|
||||
|
||||
/**
|
||||
* 数据权限枚举
|
||||
@ -29,7 +29,7 @@ import top.charles7c.cnadmin.common.base.BaseEnum;
|
||||
*/
|
||||
@Getter
|
||||
@RequiredArgsConstructor
|
||||
public enum DataScopeEnum implements BaseEnum<Integer> {
|
||||
public enum DataScopeEnum implements IBaseEnum<Integer> {
|
||||
|
||||
/** 全部数据权限 */
|
||||
ALL(1, "全部数据权限"),
|
||||
|
@ -19,7 +19,7 @@ package top.charles7c.cnadmin.common.enums;
|
||||
import lombok.Getter;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
|
||||
import top.charles7c.cnadmin.common.base.BaseEnum;
|
||||
import top.charles7c.cnadmin.common.base.IBaseEnum;
|
||||
import top.charles7c.cnadmin.common.constant.UIConsts;
|
||||
|
||||
/**
|
||||
@ -30,7 +30,7 @@ import top.charles7c.cnadmin.common.constant.UIConsts;
|
||||
*/
|
||||
@Getter
|
||||
@RequiredArgsConstructor
|
||||
public enum DisEnableStatusEnum implements BaseEnum<Integer> {
|
||||
public enum DisEnableStatusEnum implements IBaseEnum<Integer> {
|
||||
|
||||
/** 启用 */
|
||||
ENABLE(1, "启用", UIConsts.COLOR_SUCCESS),
|
||||
|
@ -19,7 +19,7 @@ package top.charles7c.cnadmin.common.enums;
|
||||
import lombok.Getter;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
|
||||
import top.charles7c.cnadmin.common.base.BaseEnum;
|
||||
import top.charles7c.cnadmin.common.base.IBaseEnum;
|
||||
|
||||
/**
|
||||
* 性别枚举
|
||||
@ -29,7 +29,7 @@ import top.charles7c.cnadmin.common.base.BaseEnum;
|
||||
*/
|
||||
@Getter
|
||||
@RequiredArgsConstructor
|
||||
public enum GenderEnum implements BaseEnum<Integer> {
|
||||
public enum GenderEnum implements IBaseEnum<Integer> {
|
||||
|
||||
/** 未知 */
|
||||
UNKNOWN(0, "未知"),
|
||||
|
@ -19,7 +19,7 @@ package top.charles7c.cnadmin.common.enums;
|
||||
import lombok.Getter;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
|
||||
import top.charles7c.cnadmin.common.base.BaseEnum;
|
||||
import top.charles7c.cnadmin.common.base.IBaseEnum;
|
||||
|
||||
/**
|
||||
* 菜单类型枚举
|
||||
@ -29,7 +29,7 @@ import top.charles7c.cnadmin.common.base.BaseEnum;
|
||||
*/
|
||||
@Getter
|
||||
@RequiredArgsConstructor
|
||||
public enum MenuTypeEnum implements BaseEnum<Integer> {
|
||||
public enum MenuTypeEnum implements IBaseEnum<Integer> {
|
||||
|
||||
/** 目录 */
|
||||
DIR(1, "目录"),
|
||||
|
@ -19,7 +19,7 @@ package top.charles7c.cnadmin.common.enums;
|
||||
import lombok.Getter;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
|
||||
import top.charles7c.cnadmin.common.base.BaseEnum;
|
||||
import top.charles7c.cnadmin.common.base.IBaseEnum;
|
||||
|
||||
/**
|
||||
* 查询类型枚举
|
||||
@ -29,7 +29,7 @@ import top.charles7c.cnadmin.common.base.BaseEnum;
|
||||
*/
|
||||
@Getter
|
||||
@RequiredArgsConstructor
|
||||
public enum QueryTypeEnum implements BaseEnum<Integer> {
|
||||
public enum QueryTypeEnum implements IBaseEnum<Integer> {
|
||||
|
||||
/**
|
||||
* 等值查询,例如:WHERE `age` = 18
|
||||
|
@ -19,7 +19,7 @@ package top.charles7c.cnadmin.common.enums;
|
||||
import lombok.Getter;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
|
||||
import top.charles7c.cnadmin.common.base.BaseEnum;
|
||||
import top.charles7c.cnadmin.common.base.IBaseEnum;
|
||||
import top.charles7c.cnadmin.common.constant.UIConsts;
|
||||
|
||||
/**
|
||||
@ -30,7 +30,7 @@ import top.charles7c.cnadmin.common.constant.UIConsts;
|
||||
*/
|
||||
@Getter
|
||||
@RequiredArgsConstructor
|
||||
public enum SuccessFailureStatusEnum implements BaseEnum<Integer> {
|
||||
public enum SuccessFailureStatusEnum implements IBaseEnum<Integer> {
|
||||
|
||||
/** 成功 */
|
||||
SUCCESS(1, "成功", UIConsts.COLOR_SUCCESS),
|
||||
|
@ -43,8 +43,8 @@ import top.charles7c.cnadmin.common.model.vo.R;
|
||||
@RestControllerAdvice
|
||||
@RequiredArgsConstructor
|
||||
public class GlobalResponseBodyAdviceHandler implements ResponseBodyAdvice<Object> {
|
||||
private static final String[] EXCLUDE = {"MultipleOpenApiWebMvcResource", "SwaggerConfigResource",};
|
||||
|
||||
private static final String[] EXCLUDE = {"MultipleOpenApiWebMvcResource", "SwaggerConfigResource",};
|
||||
private final ObjectMapper objectMapper;
|
||||
|
||||
@Override
|
||||
|
@ -19,7 +19,7 @@ package top.charles7c.cnadmin.monitor.enums;
|
||||
import lombok.Getter;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
|
||||
import top.charles7c.cnadmin.common.base.BaseEnum;
|
||||
import top.charles7c.cnadmin.common.base.IBaseEnum;
|
||||
|
||||
/**
|
||||
* 操作状态枚举
|
||||
@ -29,7 +29,7 @@ import top.charles7c.cnadmin.common.base.BaseEnum;
|
||||
*/
|
||||
@Getter
|
||||
@RequiredArgsConstructor
|
||||
public enum LogStatusEnum implements BaseEnum<Integer> {
|
||||
public enum LogStatusEnum implements IBaseEnum<Integer> {
|
||||
|
||||
/** 成功 */
|
||||
SUCCESS(1, "成功"),
|
||||
|
@ -19,7 +19,7 @@ package top.charles7c.cnadmin.system.enums;
|
||||
import lombok.Getter;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
|
||||
import top.charles7c.cnadmin.common.base.BaseEnum;
|
||||
import top.charles7c.cnadmin.common.base.IBaseEnum;
|
||||
import top.charles7c.cnadmin.common.constant.UIConsts;
|
||||
|
||||
/**
|
||||
@ -30,7 +30,7 @@ import top.charles7c.cnadmin.common.constant.UIConsts;
|
||||
*/
|
||||
@Getter
|
||||
@RequiredArgsConstructor
|
||||
public enum AnnouncementStatusEnum implements BaseEnum<Integer> {
|
||||
public enum AnnouncementStatusEnum implements IBaseEnum<Integer> {
|
||||
|
||||
/** 待发布 */
|
||||
PENDING_RELEASE(1, "待发布", UIConsts.COLOR_PRIMARY),
|
||||
|
@ -19,7 +19,7 @@ package top.charles7c.cnadmin.tool.enums;
|
||||
import lombok.Getter;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
|
||||
import top.charles7c.cnadmin.common.base.BaseEnum;
|
||||
import top.charles7c.cnadmin.common.base.IBaseEnum;
|
||||
|
||||
/**
|
||||
* 表单类型枚举
|
||||
@ -29,7 +29,7 @@ import top.charles7c.cnadmin.common.base.BaseEnum;
|
||||
*/
|
||||
@Getter
|
||||
@RequiredArgsConstructor
|
||||
public enum FormTypeEnum implements BaseEnum<Integer> {
|
||||
public enum FormTypeEnum implements IBaseEnum<Integer> {
|
||||
|
||||
/**
|
||||
* 文本框
|
||||
|
@ -42,7 +42,7 @@ import cn.hutool.core.lang.tree.Tree;
|
||||
import cn.hutool.core.util.ClassUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
|
||||
import top.charles7c.cnadmin.common.base.BaseEnum;
|
||||
import top.charles7c.cnadmin.common.base.IBaseEnum;
|
||||
import top.charles7c.cnadmin.common.config.properties.LocalStorageProperties;
|
||||
import top.charles7c.cnadmin.common.config.properties.ProjectProperties;
|
||||
import top.charles7c.cnadmin.common.constant.CacheConsts;
|
||||
@ -140,7 +140,7 @@ public class CommonController {
|
||||
* @return 枚举类型
|
||||
*/
|
||||
private Optional<Class<?>> getEnumClassByName(String enumClassName) {
|
||||
Set<Class<?>> classSet = ClassUtil.scanPackageBySuper(projectProperties.getBasePackage(), BaseEnum.class);
|
||||
Set<Class<?>> classSet = ClassUtil.scanPackageBySuper(projectProperties.getBasePackage(), IBaseEnum.class);
|
||||
return classSet.stream()
|
||||
.filter(
|
||||
c -> StrUtil.equalsAnyIgnoreCase(c.getSimpleName(), enumClassName, StrUtil.toCamelCase(enumClassName)))
|
||||
@ -157,7 +157,7 @@ public class CommonController {
|
||||
private List<LabelValueVO> listEnumDict(Class<?> enumClass) {
|
||||
Object[] enumConstants = enumClass.getEnumConstants();
|
||||
return Arrays.stream(enumConstants).map(e -> {
|
||||
BaseEnum<Integer> baseEnum = (BaseEnum<Integer>)e;
|
||||
IBaseEnum<Integer> baseEnum = (IBaseEnum<Integer>)e;
|
||||
return new LabelValueVO<>(baseEnum.getDescription(), baseEnum.getValue(), baseEnum.getColor());
|
||||
}).collect(Collectors.toList());
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user