diff --git a/kernel-d-scanner/scanner-api/src/main/java/cn/stylefeng/roses/kernel/scanner/api/annotation/field/ChineseDescription.java b/kernel-a-rule/src/main/java/cn/stylefeng/roses/kernel/rule/annotation/ChineseDescription.java similarity index 96% rename from kernel-d-scanner/scanner-api/src/main/java/cn/stylefeng/roses/kernel/scanner/api/annotation/field/ChineseDescription.java rename to kernel-a-rule/src/main/java/cn/stylefeng/roses/kernel/rule/annotation/ChineseDescription.java index 33df90a8a..2ab684335 100644 --- a/kernel-d-scanner/scanner-api/src/main/java/cn/stylefeng/roses/kernel/scanner/api/annotation/field/ChineseDescription.java +++ b/kernel-a-rule/src/main/java/cn/stylefeng/roses/kernel/rule/annotation/ChineseDescription.java @@ -22,7 +22,7 @@ * 5.在修改包名,模块名称,项目代码等时,请注明软件出处 https://gitee.com/stylefeng/guns * 6.若您的项目无法满足以上几点,可申请商业授权 */ -package cn.stylefeng.roses.kernel.scanner.api.annotation.field; +package cn.stylefeng.roses.kernel.rule.annotation; import java.lang.annotation.*; diff --git a/kernel-a-rule/src/main/java/cn/stylefeng/roses/kernel/rule/pojo/response/ErrorResponseData.java b/kernel-a-rule/src/main/java/cn/stylefeng/roses/kernel/rule/pojo/response/ErrorResponseData.java index a6a0cb42f..536cc8dee 100644 --- a/kernel-a-rule/src/main/java/cn/stylefeng/roses/kernel/rule/pojo/response/ErrorResponseData.java +++ b/kernel-a-rule/src/main/java/cn/stylefeng/roses/kernel/rule/pojo/response/ErrorResponseData.java @@ -35,7 +35,7 @@ import lombok.EqualsAndHashCode; */ @EqualsAndHashCode(callSuper = true) @Data -public class ErrorResponseData extends ResponseData { +public class ErrorResponseData extends ResponseData { /** * 异常的具体类名称 @@ -58,7 +58,7 @@ public class ErrorResponseData extends ResponseData { super(Boolean.FALSE, code, message, null); } - public ErrorResponseData(String code, String message, Object object) { + public ErrorResponseData(String code, String message, T object) { super(Boolean.FALSE, code, message, object); } diff --git a/kernel-a-rule/src/main/java/cn/stylefeng/roses/kernel/rule/pojo/response/ResponseData.java b/kernel-a-rule/src/main/java/cn/stylefeng/roses/kernel/rule/pojo/response/ResponseData.java index 863f8c609..c5ac970c7 100644 --- a/kernel-a-rule/src/main/java/cn/stylefeng/roses/kernel/rule/pojo/response/ResponseData.java +++ b/kernel-a-rule/src/main/java/cn/stylefeng/roses/kernel/rule/pojo/response/ResponseData.java @@ -24,6 +24,7 @@ */ package cn.stylefeng.roses.kernel.rule.pojo.response; +import cn.stylefeng.roses.kernel.rule.annotation.ChineseDescription; import lombok.Data; /** @@ -33,32 +34,36 @@ import lombok.Data; * @date 2020/10/17 17:33 */ @Data -public class ResponseData { +public class ResponseData { /** * 请求是否成功 */ + @ChineseDescription("请求是否成功") private Boolean success; /** * 响应状态码 */ + @ChineseDescription("响应状态码") private String code; /** * 响应信息 */ + @ChineseDescription("响应信息") private String message; /** * 响应对象 */ - private Object data; + @ChineseDescription("响应对象") + private T data; public ResponseData() { } - public ResponseData(Boolean success, String code, String message, Object data) { + public ResponseData(Boolean success, String code, String message, T data) { this.success = success; this.code = code; this.message = message; diff --git a/kernel-a-rule/src/main/java/cn/stylefeng/roses/kernel/rule/pojo/response/SuccessResponseData.java b/kernel-a-rule/src/main/java/cn/stylefeng/roses/kernel/rule/pojo/response/SuccessResponseData.java index 3a14fa42e..3d2159e63 100644 --- a/kernel-a-rule/src/main/java/cn/stylefeng/roses/kernel/rule/pojo/response/SuccessResponseData.java +++ b/kernel-a-rule/src/main/java/cn/stylefeng/roses/kernel/rule/pojo/response/SuccessResponseData.java @@ -32,17 +32,17 @@ import cn.stylefeng.roses.kernel.rule.constants.RuleConstants; * @author fengshuonan * @date 2020/10/16 16:23 */ -public class SuccessResponseData extends ResponseData { +public class SuccessResponseData extends ResponseData { public SuccessResponseData() { super(Boolean.TRUE, RuleConstants.SUCCESS_CODE, RuleConstants.SUCCESS_MESSAGE, null); } - public SuccessResponseData(Object object) { + public SuccessResponseData(T object) { super(Boolean.TRUE, RuleConstants.SUCCESS_CODE, RuleConstants.SUCCESS_MESSAGE, object); } - public SuccessResponseData(String code, String message, Object object) { + public SuccessResponseData(String code, String message, T object) { super(Boolean.TRUE, code, message, object); } } diff --git a/kernel-d-auth/auth-api/src/main/java/cn/stylefeng/roses/kernel/auth/api/pojo/auth/LoginRequest.java b/kernel-d-auth/auth-api/src/main/java/cn/stylefeng/roses/kernel/auth/api/pojo/auth/LoginRequest.java index 19353930f..01334b841 100644 --- a/kernel-d-auth/auth-api/src/main/java/cn/stylefeng/roses/kernel/auth/api/pojo/auth/LoginRequest.java +++ b/kernel-d-auth/auth-api/src/main/java/cn/stylefeng/roses/kernel/auth/api/pojo/auth/LoginRequest.java @@ -24,8 +24,8 @@ */ package cn.stylefeng.roses.kernel.auth.api.pojo.auth; +import cn.stylefeng.roses.kernel.rule.annotation.ChineseDescription; import cn.stylefeng.roses.kernel.rule.pojo.request.BaseRequest; -import cn.stylefeng.roses.kernel.scanner.api.annotation.field.ChineseDescription; import lombok.Data; import lombok.EqualsAndHashCode; diff --git a/kernel-d-auth/auth-api/src/main/java/cn/stylefeng/roses/kernel/auth/api/pojo/auth/LoginResponse.java b/kernel-d-auth/auth-api/src/main/java/cn/stylefeng/roses/kernel/auth/api/pojo/auth/LoginResponse.java index b8d5f88f8..356072579 100644 --- a/kernel-d-auth/auth-api/src/main/java/cn/stylefeng/roses/kernel/auth/api/pojo/auth/LoginResponse.java +++ b/kernel-d-auth/auth-api/src/main/java/cn/stylefeng/roses/kernel/auth/api/pojo/auth/LoginResponse.java @@ -26,7 +26,7 @@ package cn.stylefeng.roses.kernel.auth.api.pojo.auth; import cn.hutool.core.bean.BeanUtil; import cn.stylefeng.roses.kernel.auth.api.pojo.login.LoginUser; -import cn.stylefeng.roses.kernel.scanner.api.annotation.field.ChineseDescription; +import cn.stylefeng.roses.kernel.rule.annotation.ChineseDescription; import lombok.Data; /** diff --git a/kernel-d-auth/auth-api/src/main/java/cn/stylefeng/roses/kernel/auth/api/pojo/login/LoginUser.java b/kernel-d-auth/auth-api/src/main/java/cn/stylefeng/roses/kernel/auth/api/pojo/login/LoginUser.java index 1a9fbda8a..89f8283ea 100644 --- a/kernel-d-auth/auth-api/src/main/java/cn/stylefeng/roses/kernel/auth/api/pojo/login/LoginUser.java +++ b/kernel-d-auth/auth-api/src/main/java/cn/stylefeng/roses/kernel/auth/api/pojo/login/LoginUser.java @@ -30,8 +30,8 @@ import cn.hutool.core.util.StrUtil; import cn.stylefeng.roses.kernel.auth.api.enums.DataScopeTypeEnum; import cn.stylefeng.roses.kernel.auth.api.pojo.login.basic.SimpleRoleInfo; import cn.stylefeng.roses.kernel.auth.api.pojo.login.basic.SimpleUserInfo; +import cn.stylefeng.roses.kernel.rule.annotation.ChineseDescription; import cn.stylefeng.roses.kernel.rule.constants.RuleConstants; -import cn.stylefeng.roses.kernel.scanner.api.annotation.field.ChineseDescription; import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; diff --git a/kernel-d-scanner/scanner-api/src/main/java/cn/stylefeng/roses/kernel/scanner/api/enums/FieldTypeEnum.java b/kernel-d-scanner/scanner-api/src/main/java/cn/stylefeng/roses/kernel/scanner/api/enums/FieldTypeEnum.java index aa3b65903..4b767ada6 100644 --- a/kernel-d-scanner/scanner-api/src/main/java/cn/stylefeng/roses/kernel/scanner/api/enums/FieldTypeEnum.java +++ b/kernel-d-scanner/scanner-api/src/main/java/cn/stylefeng/roses/kernel/scanner/api/enums/FieldTypeEnum.java @@ -27,7 +27,7 @@ package cn.stylefeng.roses.kernel.scanner.api.enums; import lombok.Getter; /** - * 字段类型 + * 解析字段元数据时,各种情况的枚举 * * @author fengshuonan * @date 2022/1/13 16:37 @@ -41,19 +41,44 @@ public enum FieldTypeEnum { BASIC(1), /** - * 数组类型,描述java中的数组、Collection等 + * 基础数组类型,描述java中的数组,例如long[] */ - ARRAY(2), + BASE_ARRAY(2), /** - * 对象类型,描述java中的自定义实体实体类型等 + * 实体类型的数组(需要解析其中具体字段),例如SysUser[] */ - OBJECT(3), + ARRAY_WITH_OBJECT(3), + + /** + * 基础集合类型,Collection等,单纯的集合,没带泛型,不需要再解析实体,例如List + */ + BASE_COLLECTION(4), + + /** + * 集合类型,Collection携带泛型的,需要具体解析泛型中实体的,例如List,List + */ + COLLECTION_WITH_OBJECT(5), + + /** + * 单纯对象类型,不带泛型,例如SysUser + */ + OBJECT(6), + + /** + * 对象类型携带泛型的,需要再解析泛型中的实体,例如ResponseData + */ + OBJECT_WITH_GENERIC(7), + + /** + * 带T类型的泛型对象,需要从所属类上拿到具体泛型,例如字段SomeEntity,List,T + */ + WITH_UNKNOWN_GENERIC(8), /** * 其他类型,未知 */ - OTHER(4); + OTHER(9); FieldTypeEnum(Integer code) { this.code = code; diff --git a/kernel-d-scanner/scanner-api/src/main/java/cn/stylefeng/roses/kernel/scanner/api/factory/ClassDetailMetadataFactory.java b/kernel-d-scanner/scanner-api/src/main/java/cn/stylefeng/roses/kernel/scanner/api/factory/ClassDetailMetadataFactory.java new file mode 100644 index 000000000..5cf71d59e --- /dev/null +++ b/kernel-d-scanner/scanner-api/src/main/java/cn/stylefeng/roses/kernel/scanner/api/factory/ClassDetailMetadataFactory.java @@ -0,0 +1,137 @@ +package cn.stylefeng.roses.kernel.scanner.api.factory; + +import cn.stylefeng.roses.kernel.scanner.api.enums.FieldTypeEnum; +import cn.stylefeng.roses.kernel.scanner.api.factory.description.ClassDescriptionUtil; +import cn.stylefeng.roses.kernel.scanner.api.factory.description.FieldDescriptionUtil; +import cn.stylefeng.roses.kernel.scanner.api.pojo.resource.FieldMetadata; +import cn.stylefeng.roses.kernel.scanner.api.util.ClassTypeUtil; +import lombok.extern.slf4j.Slf4j; + +import java.lang.reflect.Field; +import java.lang.reflect.ParameterizedType; +import java.lang.reflect.Type; +import java.util.LinkedHashSet; +import java.util.Set; + +/** + * 字段信息创建工具 + * + * @author fengshuonan + * @date 2022/1/13 13:49 + */ +@Slf4j +public class ClassDetailMetadataFactory { + + /** + * 根据传入的类型,解析出这个类型的所有子字段类型 + * + * @author fengshuonan + * @date 2022/1/14 14:31 + */ + public static Set createFieldDetailMetadataSet(Type fieldType) { + + // 获取参数的类型枚举 + FieldTypeEnum classFieldType = ClassTypeUtil.getClassFieldType(fieldType); + + // 设置响应结果 + Set fieldMetadata = null; + + // 根据字段类型的不同进行响应的处理 + switch (classFieldType) { + case BASIC: + // 基本类型不需要填充子类型信息 + fieldMetadata = null; + break; + case BASE_ARRAY: + // 如果是简单数组类型,则描述一下这个基本类型的信息 + Class baseArrayFieldClazz = (Class) fieldType; + Class baseArrayComponentType = baseArrayFieldClazz.getComponentType(); + FieldMetadata baseMetadata = ClassDescriptionUtil.createClassMetadata(baseArrayComponentType, FieldTypeEnum.BASIC); + fieldMetadata = new LinkedHashSet<>(); + fieldMetadata.add(baseMetadata); + break; + case ARRAY_WITH_OBJECT: + // 如果是带实体的数组,则加上实体对应的字段信息 + Class objArrayClass = (Class) fieldType; + Class objArrayComponentType = objArrayClass.getComponentType(); + fieldMetadata = ClassDetailMetadataFactory.createFieldDetailMetadataSet(objArrayComponentType); + break; + case BASE_COLLECTION: + // 如果是基础集合,因为不确定集合的内容,所以使用Object来描述一下集合的具体内容 + FieldMetadata collectionFieldMetadata = ClassDescriptionUtil.createClassMetadata(Object.class, FieldTypeEnum.OBJECT); + fieldMetadata = new LinkedHashSet<>(); + fieldMetadata.add(collectionFieldMetadata); + break; + case COLLECTION_WITH_OBJECT: + // 如果是集合里带的具体实体对象,则描述一下具体实体的数据结构 + ParameterizedType collectionParameterizedType = (ParameterizedType) fieldType; + Type[] actualTypeArguments = collectionParameterizedType.getActualTypeArguments(); + fieldMetadata = ClassDetailMetadataFactory.createFieldDetailMetadataSet(actualTypeArguments[0]); + break; + case OBJECT: + // 如果是实体对象,则描述实体对象的所有字段信息 + Class objectClass = (Class) fieldType; + Field[] fields = objectClass.getDeclaredFields(); + fieldMetadata = new LinkedHashSet<>(); + for (Field field : fields) { + // 获取字段的具体属性 + FieldMetadata fieldInfo = FieldDescriptionUtil.createFieldMetadata(field); + fieldMetadata.add(fieldInfo); + } + break; + case OBJECT_WITH_GENERIC: + // 如果是带泛型的Object实体类型 + ParameterizedType objWithGenericParameterizedType = (ParameterizedType) fieldType; + // 先获取主体类型 + Type rawType = objWithGenericParameterizedType.getRawType(); + // 获取具体泛型 + Type genericType = objWithGenericParameterizedType.getActualTypeArguments()[0]; + // 获取主体的所有字段信息 + fieldMetadata = getEntityWithGenericFieldMetadataList(rawType, genericType); + default: + } + + return fieldMetadata; + } + + /** + * 获取实体带泛型类型的字段填充详情 + * + * @author fengshuonan + * @date 2022/1/14 18:51 + */ + public static Set getEntityWithGenericFieldMetadataList(Type fieldType, Type genericType) { + if (fieldType instanceof Class) { + Class clazz = (Class) fieldType; + // 获取主类型的所有带泛型的属性 + Set fieldDetailMetadataSet = createFieldDetailMetadataSet(clazz); + for (FieldMetadata fieldMetadata : fieldDetailMetadataSet) { + // 如果是带泛型集合,如下情况List,又或是直接 T 这种形式 + if (FieldTypeEnum.COLLECTION_WITH_OBJECT.getCode().equals(fieldMetadata.getFieldType()) + || FieldTypeEnum.WITH_UNKNOWN_GENERIC.getCode().equals(fieldMetadata.getFieldType())) { + // 设置这个字段的子字段描述 + fieldMetadata.setGenericFieldMetadata(createFieldDetailMetadataSet(genericType)); + } + + // 如果T在携带在一个实体类上,例如ResponseData这种形式 + else if (FieldTypeEnum.OBJECT_WITH_GENERIC.getCode().equals(fieldMetadata.getFieldType())) { + // 设置这个字段的子字段描述 + Set current = null; + try { + current = getEntityWithGenericFieldMetadataList(Class.forName(fieldMetadata.getFieldClassPath()), genericType); + } catch (ClassNotFoundException e) { + log.error("类无法找到" + fieldMetadata.getFieldClassPath(), e); + continue; + } + fieldMetadata.setGenericFieldMetadata(current); + } + } + + return fieldDetailMetadataSet; + } else { + log.info("带泛型的实体主题rawType非Class类型" + fieldType); + return null; + } + } + +} diff --git a/kernel-d-scanner/scanner-api/src/main/java/cn/stylefeng/roses/kernel/scanner/api/factory/ClassMetadataFactory.java b/kernel-d-scanner/scanner-api/src/main/java/cn/stylefeng/roses/kernel/scanner/api/factory/ClassMetadataFactory.java new file mode 100644 index 000000000..5f2bfd088 --- /dev/null +++ b/kernel-d-scanner/scanner-api/src/main/java/cn/stylefeng/roses/kernel/scanner/api/factory/ClassMetadataFactory.java @@ -0,0 +1,70 @@ +package cn.stylefeng.roses.kernel.scanner.api.factory; + +import cn.stylefeng.roses.kernel.scanner.api.enums.FieldTypeEnum; +import cn.stylefeng.roses.kernel.scanner.api.factory.description.ClassDescriptionUtil; +import cn.stylefeng.roses.kernel.scanner.api.pojo.resource.FieldMetadata; +import cn.stylefeng.roses.kernel.scanner.api.util.ClassTypeUtil; +import lombok.extern.slf4j.Slf4j; + +import java.lang.reflect.ParameterizedType; +import java.lang.reflect.Type; +import java.util.Set; + +/** + * 字段信息创建工具 + * + * @author fengshuonan + * @date 2022/1/13 13:49 + */ +@Slf4j +public class ClassMetadataFactory { + + /** + * 通过传入的类型(Class或ParameterizedType)进行字段校验,解析出字段的元数据 + * + * @param type 类型 + * @return 传入类型的字段元数据信息 + * @author fengshuonan + * @date 2022/1/13 13:51 + */ + public static FieldMetadata beginCreateFieldMetadata(Type type) { + + // 获取类型的枚举 + FieldTypeEnum classFieldType = ClassTypeUtil.getClassFieldType(type); + + // 设置响应结果 + FieldMetadata fieldMetadata = null; + + // 组装类的基本信息 + if (type instanceof Class) { + Class clazz = (Class) type; + + // 创建类型的基本信息 + fieldMetadata = ClassDescriptionUtil.createClassMetadata(clazz, classFieldType); + + // 补充类型的子信息 + Set fieldDetailMetadataSet = ClassDetailMetadataFactory.createFieldDetailMetadataSet(clazz); + fieldMetadata.setGenericFieldMetadata(fieldDetailMetadataSet); + } + + // 如果是带泛型的 + else if (type instanceof ParameterizedType) { + ParameterizedType parameterizedType = (ParameterizedType) type; + + // 创建类型的基本信息 + FieldMetadata baseMetadata = ClassDescriptionUtil.createParameterizedMetadata(parameterizedType, classFieldType); + + // 补充类型的子信息 + Set fieldDetailMetadataSet = ClassDetailMetadataFactory.createFieldDetailMetadataSet(type); + baseMetadata.setGenericFieldMetadata(fieldDetailMetadataSet); + } + + // 其他情况 + else { + log.info("未知类型的处理,既不是class也不是ParameterizedType,打印出类的信息如下:{}", type.getTypeName()); + } + + return fieldMetadata; + } + +} diff --git a/kernel-d-scanner/scanner-api/src/main/java/cn/stylefeng/roses/kernel/scanner/api/factory/FieldMetadataFactory.java b/kernel-d-scanner/scanner-api/src/main/java/cn/stylefeng/roses/kernel/scanner/api/factory/FieldMetadataFactory.java deleted file mode 100644 index f0ac2e8d2..000000000 --- a/kernel-d-scanner/scanner-api/src/main/java/cn/stylefeng/roses/kernel/scanner/api/factory/FieldMetadataFactory.java +++ /dev/null @@ -1,279 +0,0 @@ -package cn.stylefeng.roses.kernel.scanner.api.factory; - -import cn.hutool.core.collection.ListUtil; -import cn.hutool.core.util.ClassUtil; -import cn.hutool.core.util.IdUtil; -import cn.stylefeng.roses.kernel.scanner.api.annotation.field.ChineseDescription; -import cn.stylefeng.roses.kernel.scanner.api.enums.FieldMetadataTypeEnum; -import cn.stylefeng.roses.kernel.scanner.api.enums.FieldTypeEnum; -import cn.stylefeng.roses.kernel.scanner.api.pojo.resource.FieldMetadata; -import cn.stylefeng.roses.kernel.scanner.api.util.ClassReflectUtil; -import lombok.extern.slf4j.Slf4j; - -import java.lang.annotation.Annotation; -import java.lang.reflect.Field; -import java.lang.reflect.ParameterizedType; -import java.lang.reflect.Type; -import java.util.*; - -/** - * 字段信息创建工具 - * - * @author fengshuonan - * @date 2022/1/13 13:49 - */ -@Slf4j -public class FieldMetadataFactory { - - private List entityScanPackage = ListUtil.list(false, "cn.stylefeng"); - - /** - * 通过传入的类型(Class或ParameterizedType)进行字段校验,解析出字段的元数据 - * - * @param type 类型 - * @return 传入类型的字段元数据信息 - * @author fengshuonan - * @date 2022/1/13 13:51 - */ - public FieldMetadata beginCreateFieldMetadata(Type type) { - if (type instanceof Class) { - return this.processClass((Class) type); - } else if (type instanceof ParameterizedType) { - return this.processParameterizedType((ParameterizedType) type); - } - // 其他情况,暂不处理 - return new FieldMetadata(); - } - - /** - * 处理class类型 - * - * @author fengshuonan - * @date 2022/1/13 13:56 - */ - private FieldMetadata processClass(Class clazz) { - - // 如果是基本类型 - if (ClassUtil.isSimpleValueType(clazz)) { - return createClassMetadata(clazz, FieldTypeEnum.BASIC); - } - - // 如果是基本数组类型 - else if (clazz.isArray()) { - FieldMetadata classMetadata = createClassMetadata(clazz, FieldTypeEnum.ARRAY); - // 数组元素真实类型 - Class componentType = clazz.getComponentType(); - FieldMetadata fieldMetadata = processClass(componentType); - classMetadata.addOneSubFieldMetadata(fieldMetadata); - return classMetadata; - } - - // 如果是集合类型,纯集合类型,不带泛型 - else if (Collection.class.isAssignableFrom(clazz)) { - return createClassMetadata(clazz, FieldTypeEnum.ARRAY); - } - - // 如果是实体对象类型 - else if (this.ensureEntityFlag(clazz)) { - FieldMetadata classMetadata = createClassMetadata(clazz, FieldTypeEnum.OBJECT); - - // 获取每个字段的元数据信息,开始组装 - Field[] fields = clazz.getFields(); - HashSet fieldMetadataSet = new HashSet<>(); - for (Field field : fields) { - // 获取字段的具体属性 - FieldMetadata fieldMetadata = this.createFieldMetadata(field); - fieldMetadataSet.add(fieldMetadata); - } - classMetadata.setGenericFieldMetadata(fieldMetadataSet); - } - - // 其他类型,暂不处理 - else { - log.info("未知类型的处理,打印出类的信息如下:{}", clazz.toGenericString()); - } - - return null; - } - - /** - * 处理带泛型的类型 - * - * @author fengshuonan - * @date 2022/1/13 13:56 - */ - private FieldMetadata processParameterizedType(ParameterizedType parameterizedType) { - - // 获取泛型的主体 - Type rawType = parameterizedType.getRawType(); - - // 获取泛型的具体参数,只处理带一个泛型的 - Type actualTypeArgument = parameterizedType.getActualTypeArguments()[0]; - - return null; - } - - /** - * 判断类类型是否是扫描的包范围之内 - * - * @author fengshuonan - * @date 2022/1/13 17:49 - */ - private boolean ensureEntityFlag(Class clazz) { - for (String packageName : entityScanPackage) { - if (clazz.getName().startsWith(packageName)) { - return true; - } - } - return false; - } - - /** - * 获取类类型的类别 - * - * @author fengshuonan - * @date 2022/1/14 0:25 - */ - private FieldTypeEnum getClassFieldType(Class clazz) { - // 如果是基本类型 - if (ClassUtil.isSimpleValueType(clazz)) { - return FieldTypeEnum.BASIC; - } - - // 如果是基本数组类型 - else if (clazz.isArray()) { - return FieldTypeEnum.ARRAY; - } - - // 如果是集合类型,纯集合类型,不带泛型 - else if (Collection.class.isAssignableFrom(clazz)) { - return FieldTypeEnum.ARRAY; - } - - // 如果是实体对象类型 - else if (this.ensureEntityFlag(clazz)) { - return FieldTypeEnum.OBJECT; - } - - // 其他类型,暂不处理 - else { - log.info("未知类型的处理,打印出类的信息如下:{}", clazz.toGenericString()); - return FieldTypeEnum.OTHER; - } - } - - /** - * 创建类或数组的元数据 - * - * @author fengshuonan - * @date 2022/1/13 18:06 - */ - private FieldMetadata createClassMetadata(Class clazz, FieldTypeEnum fieldTypeEnum) { - FieldMetadata fieldMetadataItem = new FieldMetadata(); - // 设置唯一id - fieldMetadataItem.setMetadataId(IdUtil.fastSimpleUUID()); - // 设置字段中文含义 - fieldMetadataItem.setChineseName(clazz.getSimpleName()); - // 设置字段类类型 - fieldMetadataItem.setFieldClassType(clazz.getSimpleName()); - // 设置类的全路径 - fieldMetadataItem.setFieldClassPath(clazz.getName()); - // 设置对应字段名称,无字段名称则填写类的简称 - fieldMetadataItem.setFieldName(clazz.getSimpleName()); - // 设置是否带泛型 - fieldMetadataItem.setGenericFieldMetadataType(FieldMetadataTypeEnum.FIELD.getCode()); - // 设置字段类型,基本、数组、还是object - fieldMetadataItem.setFieldType(fieldTypeEnum.getCode()); - // 设置字段 - return fieldMetadataItem; - } - - /** - * 创建类内字段的元数据 - * - * @author fengshuonan - * @date 2022/1/13 18:06 - */ - private FieldMetadata createFieldMetadata(Field field) { - FieldMetadata fieldMetadataItem = new FieldMetadata(); - // 设置唯一id - fieldMetadataItem.setMetadataId(IdUtil.fastSimpleUUID()); - // 设置字段中文含义 - ChineseDescription annotation = field.getAnnotation(ChineseDescription.class); - if (annotation != null) { - fieldMetadataItem.setChineseName(annotation.value()); - } - // 设置字段类类型 - Class fieldType = field.getType(); - fieldMetadataItem.setFieldClassType(fieldType.getSimpleName()); - // 设置类的全路径 - fieldMetadataItem.setFieldClassPath(fieldType.getName()); - // 设置对应字段名称 - fieldMetadataItem.setFieldName(field.getName()); - // 处理注解信息 - parsingAnnotation(field, fieldMetadataItem); - // 设置是否带泛型 - Type genericType = field.getGenericType(); - if (genericType instanceof ParameterizedType) { - fieldMetadataItem.setGenericFieldMetadataType(FieldMetadataTypeEnum.GENERIC.getCode()); - } else { - fieldMetadataItem.setGenericFieldMetadataType(FieldMetadataTypeEnum.FIELD.getCode()); - } - // 设置字段类型,基本、数组、还是object - fieldMetadataItem.setFieldType(getClassFieldType(fieldType).getCode()); - // 处理本字段的子字段信息 - fieldMetadataItem.setGenericFieldMetadata(getFieldSubMetadataSet(field)); - // 设置字段 - return fieldMetadataItem; - } - - /** - * 获取一个字段的子类型集合,如果改字段没有子类型则返回null即可 - * - * @author fengshuonan - * @date 2022/1/14 0:45 - */ - private static Set getFieldSubMetadataSet(Field field) { - - Type genericType = field.getGenericType(); - - if (genericType instanceof Class) { - - } else if (genericType instanceof ParameterizedType) { - - } - - } - - /** - * 解析所有注解 - * - * @author majianguo - * @date 2022/1/7 18:26 - **/ - private static void parsingAnnotation(Field declaredField, FieldMetadata fieldDescription) { - Annotation[] annotations = declaredField.getAnnotations(); - if (annotations != null && annotations.length > 0) { - - // 设置字段的所有注解 - fieldDescription.setAnnotations(ClassReflectUtil.annotationsToStrings(annotations)); - - // 遍历字段上的所有注解,找到带groups属性的,按group分类组装注解 - Map> groupAnnotations = new HashMap<>(); - for (Annotation annotation : annotations) { - Class[] validateGroupsClasses = ClassReflectUtil.invokeAnnotationMethodIgnoreError(annotation, "groups", Class[].class); - if (validateGroupsClasses != null) { - for (Class validateGroupsClass : validateGroupsClasses) { - ClassReflectUtil.addGroupValidateAnnotation(annotation, validateGroupsClass, groupAnnotations); - } - } - } - // 设置分组注解 - fieldDescription.setGroupValidationMessage(groupAnnotations); - } - } - - public static void main(String[] args) { - } - -} diff --git a/kernel-d-scanner/scanner-api/src/main/java/cn/stylefeng/roses/kernel/scanner/api/factory/description/ClassDescriptionUtil.java b/kernel-d-scanner/scanner-api/src/main/java/cn/stylefeng/roses/kernel/scanner/api/factory/description/ClassDescriptionUtil.java new file mode 100644 index 000000000..96ce1c0a0 --- /dev/null +++ b/kernel-d-scanner/scanner-api/src/main/java/cn/stylefeng/roses/kernel/scanner/api/factory/description/ClassDescriptionUtil.java @@ -0,0 +1,55 @@ +package cn.stylefeng.roses.kernel.scanner.api.factory.description; + +import cn.hutool.core.util.IdUtil; +import cn.stylefeng.roses.kernel.scanner.api.enums.FieldMetadataTypeEnum; +import cn.stylefeng.roses.kernel.scanner.api.enums.FieldTypeEnum; +import cn.stylefeng.roses.kernel.scanner.api.pojo.resource.FieldMetadata; + +import java.lang.reflect.ParameterizedType; + +/** + * 类的元数据描述 + * + * @author fengshuonan + * @date 2022/1/14 10:59 + */ +public class ClassDescriptionUtil { + + /** + * 创建针对类的基础描述 + * + * @author fengshuonan + * @date 2022/1/13 18:06 + */ + public static FieldMetadata createClassMetadata(Class clazz, FieldTypeEnum fieldTypeEnum) { + FieldMetadata fieldMetadataItem = new FieldMetadata(); + // 设置唯一id + fieldMetadataItem.setMetadataId(IdUtil.fastSimpleUUID()); + // 设置字段中文含义 + fieldMetadataItem.setChineseName(clazz.getSimpleName()); + // 设置字段类类型 + fieldMetadataItem.setFieldClassType(clazz.getSimpleName()); + // 设置类的全路径 + fieldMetadataItem.setFieldClassPath(clazz.getName()); + // 设置对应字段名称,无字段名称则填写类的简称 + fieldMetadataItem.setFieldName(null); + // 设置是否带泛型 + fieldMetadataItem.setGenericFieldMetadataType(FieldMetadataTypeEnum.FIELD.getCode()); + // 设置字段类型,基本、数组、还是object + fieldMetadataItem.setFieldType(fieldTypeEnum.getCode()); + // 设置字段 + return fieldMetadataItem; + } + + /** + * 创建针对类的基础描述 + * + * @author fengshuonan + * @date 2022/1/13 18:06 + */ + public static FieldMetadata createParameterizedMetadata(ParameterizedType parameterizedType, FieldTypeEnum fieldTypeEnum) { + Class rawType = (Class) parameterizedType.getRawType(); + return createClassMetadata(rawType, fieldTypeEnum); + } + +} diff --git a/kernel-d-scanner/scanner-api/src/main/java/cn/stylefeng/roses/kernel/scanner/api/factory/description/FieldDescriptionUtil.java b/kernel-d-scanner/scanner-api/src/main/java/cn/stylefeng/roses/kernel/scanner/api/factory/description/FieldDescriptionUtil.java new file mode 100644 index 000000000..378942d76 --- /dev/null +++ b/kernel-d-scanner/scanner-api/src/main/java/cn/stylefeng/roses/kernel/scanner/api/factory/description/FieldDescriptionUtil.java @@ -0,0 +1,96 @@ +package cn.stylefeng.roses.kernel.scanner.api.factory.description; + +import cn.hutool.core.util.IdUtil; +import cn.stylefeng.roses.kernel.rule.annotation.ChineseDescription; +import cn.stylefeng.roses.kernel.scanner.api.enums.FieldMetadataTypeEnum; +import cn.stylefeng.roses.kernel.scanner.api.enums.FieldTypeEnum; +import cn.stylefeng.roses.kernel.scanner.api.factory.ClassDetailMetadataFactory; +import cn.stylefeng.roses.kernel.scanner.api.pojo.resource.FieldMetadata; +import cn.stylefeng.roses.kernel.scanner.api.util.ClassReflectUtil; +import cn.stylefeng.roses.kernel.scanner.api.util.ClassTypeUtil; + +import java.lang.annotation.Annotation; +import java.lang.reflect.Field; +import java.lang.reflect.ParameterizedType; +import java.lang.reflect.Type; +import java.util.HashMap; +import java.util.Map; +import java.util.Set; + +/** + * 字段的元数据描述 + * + * @author fengshuonan + * @date 2022/1/14 10:59 + */ +public class FieldDescriptionUtil { + + /** + * 创建类内字段的元数据 + * + * @author fengshuonan + * @date 2022/1/13 18:06 + */ + public static FieldMetadata createFieldMetadata(Field field) { + FieldMetadata fieldMetadataItem = new FieldMetadata(); + // 设置唯一id + fieldMetadataItem.setMetadataId(IdUtil.fastSimpleUUID()); + // 设置字段中文含义 + ChineseDescription annotation = field.getAnnotation(ChineseDescription.class); + if (annotation != null) { + fieldMetadataItem.setChineseName(annotation.value()); + } + // 设置字段类类型 + Class classType = field.getType(); + fieldMetadataItem.setFieldClassType(classType.getSimpleName()); + // 设置类的全路径 + fieldMetadataItem.setFieldClassPath(classType.getName()); + // 设置对应字段名称 + fieldMetadataItem.setFieldName(field.getName()); + // 处理注解信息 + parsingAnnotation(field, fieldMetadataItem); + // 设置是否带泛型 + Type genericType = field.getGenericType(); + if (genericType instanceof ParameterizedType) { + fieldMetadataItem.setGenericFieldMetadataType(FieldMetadataTypeEnum.GENERIC.getCode()); + } else { + fieldMetadataItem.setGenericFieldMetadataType(FieldMetadataTypeEnum.FIELD.getCode()); + } + // 设置字段类型,基本、数组、还是object + FieldTypeEnum classFieldType = ClassTypeUtil.getClassFieldType(genericType); + fieldMetadataItem.setFieldType(classFieldType.getCode()); + // 根据情况,获取字段的具体子数据描述 + Set fieldDetailMetadataSet = ClassDetailMetadataFactory.createFieldDetailMetadataSet(genericType); + fieldMetadataItem.setGenericFieldMetadata(fieldDetailMetadataSet); + return fieldMetadataItem; + } + + /** + * 解析字段上的注解 + * + * @author fengshuonan + * @date 2022/1/14 11:57 + */ + private static void parsingAnnotation(Field declaredField, FieldMetadata fieldDescription) { + Annotation[] annotations = declaredField.getAnnotations(); + if (annotations != null && annotations.length > 0) { + + // 设置字段的所有注解 + fieldDescription.setAnnotations(ClassReflectUtil.annotationsToStrings(annotations)); + + // 遍历字段上的所有注解,找到带groups属性的,按group分类组装注解 + Map> groupAnnotations = new HashMap<>(); + for (Annotation annotation : annotations) { + Class[] validateGroupsClasses = ClassReflectUtil.invokeAnnotationMethodIgnoreError(annotation, "groups", Class[].class); + if (validateGroupsClasses != null) { + for (Class validateGroupsClass : validateGroupsClasses) { + ClassReflectUtil.addGroupValidateAnnotation(annotation, validateGroupsClass, groupAnnotations); + } + } + } + // 设置分组注解 + fieldDescription.setGroupValidationMessage(groupAnnotations); + } + } + +} diff --git a/kernel-d-scanner/scanner-api/src/main/java/cn/stylefeng/roses/kernel/scanner/api/pojo/resource/FieldMetadata.java b/kernel-d-scanner/scanner-api/src/main/java/cn/stylefeng/roses/kernel/scanner/api/pojo/resource/FieldMetadata.java index 8a89d7be5..b386de96e 100644 --- a/kernel-d-scanner/scanner-api/src/main/java/cn/stylefeng/roses/kernel/scanner/api/pojo/resource/FieldMetadata.java +++ b/kernel-d-scanner/scanner-api/src/main/java/cn/stylefeng/roses/kernel/scanner/api/pojo/resource/FieldMetadata.java @@ -24,11 +24,9 @@ */ package cn.stylefeng.roses.kernel.scanner.api.pojo.resource; -import cn.hutool.core.util.ObjectUtil; -import cn.stylefeng.roses.kernel.scanner.api.annotation.field.ChineseDescription; +import cn.stylefeng.roses.kernel.rule.annotation.ChineseDescription; import lombok.Data; -import java.util.HashSet; import java.util.Map; import java.util.Set; @@ -112,20 +110,4 @@ public class FieldMetadata { @ChineseDescription("泛型或object类型的字段的描述") private Set genericFieldMetadata; - /** - * 添加一个子数据 - * - * @author fengshuonan - * @date 2022/1/14 0:02 - */ - public void addOneSubFieldMetadata(FieldMetadata fieldMetadata) { - if (ObjectUtil.isEmpty(this.genericFieldMetadata)) { - HashSet subMetadataSet = new HashSet<>(); - subMetadataSet.add(fieldMetadata); - this.genericFieldMetadata = subMetadataSet; - } else { - this.genericFieldMetadata.add(fieldMetadata); - } - } - } diff --git a/kernel-d-scanner/scanner-api/src/main/java/cn/stylefeng/roses/kernel/scanner/api/pojo/resource/ResourceDefinition.java b/kernel-d-scanner/scanner-api/src/main/java/cn/stylefeng/roses/kernel/scanner/api/pojo/resource/ResourceDefinition.java index 18b0fda85..c7a537045 100644 --- a/kernel-d-scanner/scanner-api/src/main/java/cn/stylefeng/roses/kernel/scanner/api/pojo/resource/ResourceDefinition.java +++ b/kernel-d-scanner/scanner-api/src/main/java/cn/stylefeng/roses/kernel/scanner/api/pojo/resource/ResourceDefinition.java @@ -24,7 +24,7 @@ */ package cn.stylefeng.roses.kernel.scanner.api.pojo.resource; -import cn.stylefeng.roses.kernel.scanner.api.annotation.field.ChineseDescription; +import cn.stylefeng.roses.kernel.rule.annotation.ChineseDescription; import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; diff --git a/kernel-d-scanner/scanner-api/src/main/java/cn/stylefeng/roses/kernel/scanner/api/pojo/resource/SysResourcePersistencePojo.java b/kernel-d-scanner/scanner-api/src/main/java/cn/stylefeng/roses/kernel/scanner/api/pojo/resource/SysResourcePersistencePojo.java index 843c28a3b..3f90433d1 100644 --- a/kernel-d-scanner/scanner-api/src/main/java/cn/stylefeng/roses/kernel/scanner/api/pojo/resource/SysResourcePersistencePojo.java +++ b/kernel-d-scanner/scanner-api/src/main/java/cn/stylefeng/roses/kernel/scanner/api/pojo/resource/SysResourcePersistencePojo.java @@ -24,7 +24,7 @@ */ package cn.stylefeng.roses.kernel.scanner.api.pojo.resource; -import cn.stylefeng.roses.kernel.scanner.api.annotation.field.ChineseDescription; +import cn.stylefeng.roses.kernel.rule.annotation.ChineseDescription; import lombok.Data; /** diff --git a/kernel-d-scanner/scanner-api/src/main/java/cn/stylefeng/roses/kernel/scanner/api/util/ClassReflectUtil.java b/kernel-d-scanner/scanner-api/src/main/java/cn/stylefeng/roses/kernel/scanner/api/util/ClassReflectUtil.java index 267e6b568..cdd9ebcaf 100644 --- a/kernel-d-scanner/scanner-api/src/main/java/cn/stylefeng/roses/kernel/scanner/api/util/ClassReflectUtil.java +++ b/kernel-d-scanner/scanner-api/src/main/java/cn/stylefeng/roses/kernel/scanner/api/util/ClassReflectUtil.java @@ -29,7 +29,7 @@ import cn.hutool.core.util.ClassUtil; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.TypeUtil; -import cn.stylefeng.roses.kernel.scanner.api.annotation.field.ChineseDescription; +import cn.stylefeng.roses.kernel.rule.annotation.ChineseDescription; import cn.stylefeng.roses.kernel.scanner.api.enums.FieldMetadataTypeEnum; import cn.stylefeng.roses.kernel.scanner.api.pojo.resource.FieldMetadata; diff --git a/kernel-d-scanner/scanner-api/src/main/java/cn/stylefeng/roses/kernel/scanner/api/util/ClassTypeUtil.java b/kernel-d-scanner/scanner-api/src/main/java/cn/stylefeng/roses/kernel/scanner/api/util/ClassTypeUtil.java new file mode 100644 index 000000000..adc4a1092 --- /dev/null +++ b/kernel-d-scanner/scanner-api/src/main/java/cn/stylefeng/roses/kernel/scanner/api/util/ClassTypeUtil.java @@ -0,0 +1,145 @@ +package cn.stylefeng.roses.kernel.scanner.api.util; + +import cn.hutool.core.collection.ListUtil; +import cn.hutool.core.util.ClassUtil; +import cn.stylefeng.roses.kernel.scanner.api.enums.FieldTypeEnum; +import lombok.extern.slf4j.Slf4j; +import sun.reflect.generics.reflectiveObjects.TypeVariableImpl; + +import java.lang.reflect.ParameterizedType; +import java.lang.reflect.Type; +import java.util.Collection; +import java.util.List; +import java.util.Map; + +/** + * 获取类类型的工具 + * + * @author fengshuonan + * @date 2022/1/14 16:42 + */ +@Slf4j +public class ClassTypeUtil { + + /** + * 认定为实体对象的包结构,如果属于此包结构,则会被认定为实体结构 + */ + public static List entityScanPackage = ListUtil.list(false, "cn.stylefeng"); + + /** + * 判断类类型是否是扫描的包范围之内 + * + * @author fengshuonan + * @date 2022/1/13 17:49 + */ + public static boolean ensureEntityFlag(Class clazz) { + for (String packageName : entityScanPackage) { + if (clazz.getName().startsWith(packageName)) { + return true; + } + } + return false; + } + + /** + * 获取类类型的类别 + * + * @author fengshuonan + * @date 2022/1/14 0:25 + */ + public static FieldTypeEnum getClassFieldType(Type type) { + + // 如果是具体类,不带泛型 + if (type instanceof Class) { + + Class clazz = (Class) type; + + // 判断是否是基本类型,如果是Map或者Object,也认定为基本类型,不解析他们的字段 + if (ClassUtil.isSimpleValueType(clazz)) { + return FieldTypeEnum.BASIC; + } + + // 判断是否是数组类型 + else if (clazz.isArray()) { + // 获取array的具体类型 + Class componentType = clazz.getComponentType(); + if (ClassUtil.isSimpleValueType(componentType)) { + return FieldTypeEnum.BASE_ARRAY; + } else { + return FieldTypeEnum.ARRAY_WITH_OBJECT; + } + } + + // 如果是集合类型,纯集合类型,不带泛型 + else if (Collection.class.isAssignableFrom(clazz)) { + return FieldTypeEnum.BASE_COLLECTION; + } + + // 如果是实体对象类型 + else if (ClassTypeUtil.ensureEntityFlag(clazz)) { + return FieldTypeEnum.OBJECT; + } + + // 如果是Object类型,则认定为基本类型,不解析他的具体内容 + else if (Object.class.equals(clazz)) { + return FieldTypeEnum.BASIC; + } + + // 其他类型,暂不处理 + else { + log.info("类型是Class,但有处理不到的情况,打印出类的信息如下:{}", clazz.toGenericString()); + return FieldTypeEnum.OTHER; + } + } + + // 如果带具体泛型的类 + else if (type instanceof ParameterizedType) { + + ParameterizedType parameterizedType = (ParameterizedType) type; + + // 泛型类的主体 + Type rawType = parameterizedType.getRawType(); + + if (rawType instanceof Class) { + Class rawTypeClass = (Class) rawType; + + // 如果泛型主体是集合 + if (Collection.class.isAssignableFrom(rawTypeClass)) { + return FieldTypeEnum.COLLECTION_WITH_OBJECT; + } + + // 如果泛型的主体是实体包装类 + else if (ClassTypeUtil.ensureEntityFlag(rawTypeClass)) { + return FieldTypeEnum.OBJECT_WITH_GENERIC; + } + + // 如果是map类型,则认定为基本类型,不做处理,不解析他的元数据 + else if (Map.class.isAssignableFrom(rawTypeClass)) { + return FieldTypeEnum.BASIC; + } + + // 泛型的主体情况不确定,不处理 + else { + log.info("泛型的主体情况不确定,不处理,打印出rawTypeClass:{}", rawTypeClass.getName()); + return FieldTypeEnum.OTHER; + } + } else { + // 泛型的主体是别的类型 + log.info("rawType为非Class类型?打印出rawType:{}", rawType.getTypeName()); + return FieldTypeEnum.OTHER; + } + } + + // 带T的参数,例如解析到ResponseData中的data字段是带T的 + else if (type instanceof TypeVariableImpl) { + return FieldTypeEnum.WITH_UNKNOWN_GENERIC; + } + + // 其他情况,既不是class也不是ParameterizedType + else { + log.info("未知类型的处理,既不是class也不是ParameterizedType,打印出类的信息如下:{}", type.getTypeName()); + return FieldTypeEnum.OTHER; + } + } + +} diff --git a/kernel-d-security/security-api/src/main/java/cn/stylefeng/roses/kernel/security/api/pojo/ImageCaptcha.java b/kernel-d-security/security-api/src/main/java/cn/stylefeng/roses/kernel/security/api/pojo/ImageCaptcha.java index ab7144883..bc5afd958 100644 --- a/kernel-d-security/security-api/src/main/java/cn/stylefeng/roses/kernel/security/api/pojo/ImageCaptcha.java +++ b/kernel-d-security/security-api/src/main/java/cn/stylefeng/roses/kernel/security/api/pojo/ImageCaptcha.java @@ -24,7 +24,7 @@ */ package cn.stylefeng.roses.kernel.security.api.pojo; -import cn.stylefeng.roses.kernel.scanner.api.annotation.field.ChineseDescription; +import cn.stylefeng.roses.kernel.rule.annotation.ChineseDescription; import lombok.Builder; import lombok.Data; diff --git a/kernel-s-customer/customer-business/src/main/java/cn/stylefeng/roses/kernel/customer/modular/entity/Customer.java b/kernel-s-customer/customer-business/src/main/java/cn/stylefeng/roses/kernel/customer/modular/entity/Customer.java index 197db0bf2..04d7f60b5 100644 --- a/kernel-s-customer/customer-business/src/main/java/cn/stylefeng/roses/kernel/customer/modular/entity/Customer.java +++ b/kernel-s-customer/customer-business/src/main/java/cn/stylefeng/roses/kernel/customer/modular/entity/Customer.java @@ -1,7 +1,7 @@ package cn.stylefeng.roses.kernel.customer.modular.entity; import cn.stylefeng.roses.kernel.db.api.pojo.entity.BaseEntity; -import cn.stylefeng.roses.kernel.scanner.api.annotation.field.ChineseDescription; +import cn.stylefeng.roses.kernel.rule.annotation.ChineseDescription; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; diff --git a/kernel-s-customer/customer-business/src/main/java/cn/stylefeng/roses/kernel/customer/modular/request/CustomerRequest.java b/kernel-s-customer/customer-business/src/main/java/cn/stylefeng/roses/kernel/customer/modular/request/CustomerRequest.java index 5009ffa39..ede69be52 100644 --- a/kernel-s-customer/customer-business/src/main/java/cn/stylefeng/roses/kernel/customer/modular/request/CustomerRequest.java +++ b/kernel-s-customer/customer-business/src/main/java/cn/stylefeng/roses/kernel/customer/modular/request/CustomerRequest.java @@ -1,7 +1,7 @@ package cn.stylefeng.roses.kernel.customer.modular.request; +import cn.stylefeng.roses.kernel.rule.annotation.ChineseDescription; import cn.stylefeng.roses.kernel.rule.pojo.request.BaseRequest; -import cn.stylefeng.roses.kernel.scanner.api.annotation.field.ChineseDescription; import lombok.Data; import lombok.EqualsAndHashCode; diff --git a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/app/SysAppRequest.java b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/app/SysAppRequest.java index 5bdc7dbcf..cbe38becb 100644 --- a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/app/SysAppRequest.java +++ b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/app/SysAppRequest.java @@ -24,8 +24,8 @@ */ package cn.stylefeng.roses.kernel.system.api.pojo.app; +import cn.stylefeng.roses.kernel.rule.annotation.ChineseDescription; import cn.stylefeng.roses.kernel.rule.pojo.request.BaseRequest; -import cn.stylefeng.roses.kernel.scanner.api.annotation.field.ChineseDescription; import cn.stylefeng.roses.kernel.validator.api.validators.status.StatusValue; import cn.stylefeng.roses.kernel.validator.api.validators.unique.TableUniqueValue; import lombok.Data; diff --git a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/app/SysAppResult.java b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/app/SysAppResult.java index 0f59cd40d..f6c96d904 100644 --- a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/app/SysAppResult.java +++ b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/app/SysAppResult.java @@ -25,7 +25,7 @@ package cn.stylefeng.roses.kernel.system.api.pojo.app; import cn.stylefeng.roses.kernel.db.api.pojo.entity.BaseEntity; -import cn.stylefeng.roses.kernel.scanner.api.annotation.field.ChineseDescription; +import cn.stylefeng.roses.kernel.rule.annotation.ChineseDescription; import lombok.Data; import lombok.EqualsAndHashCode; diff --git a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/login/CurrentUserInfoResponse.java b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/login/CurrentUserInfoResponse.java index 5d1a8d7ca..7e60a1e1d 100644 --- a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/login/CurrentUserInfoResponse.java +++ b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/login/CurrentUserInfoResponse.java @@ -24,7 +24,7 @@ */ package cn.stylefeng.roses.kernel.system.api.pojo.login; -import cn.stylefeng.roses.kernel.scanner.api.annotation.field.ChineseDescription; +import cn.stylefeng.roses.kernel.rule.annotation.ChineseDescription; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; diff --git a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/menu/MenuAndButtonTreeResponse.java b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/menu/MenuAndButtonTreeResponse.java index e9e55ad80..dfe187a63 100644 --- a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/menu/MenuAndButtonTreeResponse.java +++ b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/menu/MenuAndButtonTreeResponse.java @@ -24,8 +24,8 @@ */ package cn.stylefeng.roses.kernel.system.api.pojo.menu; +import cn.stylefeng.roses.kernel.rule.annotation.ChineseDescription; import cn.stylefeng.roses.kernel.rule.tree.factory.base.AbstractTreeNode; -import cn.stylefeng.roses.kernel.scanner.api.annotation.field.ChineseDescription; import lombok.Data; import java.util.List; diff --git a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/menu/SysMenuButtonRequest.java b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/menu/SysMenuButtonRequest.java index 17ac87a3c..93605804a 100644 --- a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/menu/SysMenuButtonRequest.java +++ b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/menu/SysMenuButtonRequest.java @@ -24,8 +24,8 @@ */ package cn.stylefeng.roses.kernel.system.api.pojo.menu; +import cn.stylefeng.roses.kernel.rule.annotation.ChineseDescription; import cn.stylefeng.roses.kernel.rule.pojo.request.BaseRequest; -import cn.stylefeng.roses.kernel.scanner.api.annotation.field.ChineseDescription; import cn.stylefeng.roses.kernel.validator.api.validators.unique.TableUniqueValue; import lombok.Data; import lombok.EqualsAndHashCode; diff --git a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/menu/SysMenuRequest.java b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/menu/SysMenuRequest.java index 86fa84540..02180b661 100644 --- a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/menu/SysMenuRequest.java +++ b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/menu/SysMenuRequest.java @@ -24,8 +24,8 @@ */ package cn.stylefeng.roses.kernel.system.api.pojo.menu; +import cn.stylefeng.roses.kernel.rule.annotation.ChineseDescription; import cn.stylefeng.roses.kernel.rule.pojo.request.BaseRequest; -import cn.stylefeng.roses.kernel.scanner.api.annotation.field.ChineseDescription; import cn.stylefeng.roses.kernel.validator.api.validators.flag.FlagValue; import cn.stylefeng.roses.kernel.validator.api.validators.unique.TableUniqueValue; import lombok.Data; diff --git a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/menu/SysMenuResourceRequest.java b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/menu/SysMenuResourceRequest.java index 3640ada3f..b8671f667 100644 --- a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/menu/SysMenuResourceRequest.java +++ b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/menu/SysMenuResourceRequest.java @@ -24,8 +24,8 @@ */ package cn.stylefeng.roses.kernel.system.api.pojo.menu; +import cn.stylefeng.roses.kernel.rule.annotation.ChineseDescription; import cn.stylefeng.roses.kernel.rule.pojo.request.BaseRequest; -import cn.stylefeng.roses.kernel.scanner.api.annotation.field.ChineseDescription; import lombok.Data; import lombok.EqualsAndHashCode; diff --git a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/menu/antd/AntdMenuSelectTreeNode.java b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/menu/antd/AntdMenuSelectTreeNode.java index 04be377c1..ad143f55d 100644 --- a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/menu/antd/AntdMenuSelectTreeNode.java +++ b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/menu/antd/AntdMenuSelectTreeNode.java @@ -24,8 +24,8 @@ */ package cn.stylefeng.roses.kernel.system.api.pojo.menu.antd; +import cn.stylefeng.roses.kernel.rule.annotation.ChineseDescription; import cn.stylefeng.roses.kernel.rule.tree.factory.base.AbstractTreeNode; -import cn.stylefeng.roses.kernel.scanner.api.annotation.field.ChineseDescription; import lombok.Data; import java.math.BigDecimal; diff --git a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/menu/antd/AntdSysMenuDTO.java b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/menu/antd/AntdSysMenuDTO.java index 9a87a3a64..8ea72742f 100644 --- a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/menu/antd/AntdSysMenuDTO.java +++ b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/menu/antd/AntdSysMenuDTO.java @@ -24,7 +24,7 @@ */ package cn.stylefeng.roses.kernel.system.api.pojo.menu.antd; -import cn.stylefeng.roses.kernel.scanner.api.annotation.field.ChineseDescription; +import cn.stylefeng.roses.kernel.rule.annotation.ChineseDescription; import lombok.Data; import java.util.List; diff --git a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/menu/layui/LayuiMenuAndButtonTreeResponse.java b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/menu/layui/LayuiMenuAndButtonTreeResponse.java index 2c3623c8a..ea3f85ebc 100644 --- a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/menu/layui/LayuiMenuAndButtonTreeResponse.java +++ b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/menu/layui/LayuiMenuAndButtonTreeResponse.java @@ -24,8 +24,8 @@ */ package cn.stylefeng.roses.kernel.system.api.pojo.menu.layui; +import cn.stylefeng.roses.kernel.rule.annotation.ChineseDescription; import cn.stylefeng.roses.kernel.rule.tree.factory.base.AbstractTreeNode; -import cn.stylefeng.roses.kernel.scanner.api.annotation.field.ChineseDescription; import lombok.Data; import java.util.List; diff --git a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/notice/SysNoticeRequest.java b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/notice/SysNoticeRequest.java index 5899ea5f9..d9fa6338f 100644 --- a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/notice/SysNoticeRequest.java +++ b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/notice/SysNoticeRequest.java @@ -24,8 +24,8 @@ */ package cn.stylefeng.roses.kernel.system.api.pojo.notice; +import cn.stylefeng.roses.kernel.rule.annotation.ChineseDescription; import cn.stylefeng.roses.kernel.rule.pojo.request.BaseRequest; -import cn.stylefeng.roses.kernel.scanner.api.annotation.field.ChineseDescription; import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; import lombok.EqualsAndHashCode; diff --git a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/organization/HrOrganizationRequest.java b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/organization/HrOrganizationRequest.java index 413386d71..1eec67a03 100644 --- a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/organization/HrOrganizationRequest.java +++ b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/organization/HrOrganizationRequest.java @@ -24,8 +24,8 @@ */ package cn.stylefeng.roses.kernel.system.api.pojo.organization; +import cn.stylefeng.roses.kernel.rule.annotation.ChineseDescription; import cn.stylefeng.roses.kernel.rule.pojo.request.BaseRequest; -import cn.stylefeng.roses.kernel.scanner.api.annotation.field.ChineseDescription; import cn.stylefeng.roses.kernel.validator.api.validators.status.StatusValue; import cn.stylefeng.roses.kernel.validator.api.validators.unique.TableUniqueValue; import lombok.Data; diff --git a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/organization/HrPositionRequest.java b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/organization/HrPositionRequest.java index 0019cd563..a93c6e851 100644 --- a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/organization/HrPositionRequest.java +++ b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/organization/HrPositionRequest.java @@ -24,8 +24,8 @@ */ package cn.stylefeng.roses.kernel.system.api.pojo.organization; +import cn.stylefeng.roses.kernel.rule.annotation.ChineseDescription; import cn.stylefeng.roses.kernel.rule.pojo.request.BaseRequest; -import cn.stylefeng.roses.kernel.scanner.api.annotation.field.ChineseDescription; import cn.stylefeng.roses.kernel.validator.api.validators.status.StatusValue; import cn.stylefeng.roses.kernel.validator.api.validators.unique.TableUniqueValue; import lombok.Data; diff --git a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/organization/OrganizationTreeNode.java b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/organization/OrganizationTreeNode.java index 12c1dc9da..78ee1dff3 100644 --- a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/organization/OrganizationTreeNode.java +++ b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/organization/OrganizationTreeNode.java @@ -24,9 +24,9 @@ */ package cn.stylefeng.roses.kernel.system.api.pojo.organization; +import cn.stylefeng.roses.kernel.rule.annotation.ChineseDescription; import cn.stylefeng.roses.kernel.rule.tree.factory.base.AbstractTreeNode; import cn.stylefeng.roses.kernel.rule.tree.xmtree.base.AbstractXmSelectNode; -import cn.stylefeng.roses.kernel.scanner.api.annotation.field.ChineseDescription; import lombok.Data; import java.util.List; diff --git a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/resource/LayuiApiResourceTreeNode.java b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/resource/LayuiApiResourceTreeNode.java index 817ea0e8c..a40871264 100644 --- a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/resource/LayuiApiResourceTreeNode.java +++ b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/resource/LayuiApiResourceTreeNode.java @@ -24,8 +24,8 @@ */ package cn.stylefeng.roses.kernel.system.api.pojo.resource; +import cn.stylefeng.roses.kernel.rule.annotation.ChineseDescription; import cn.stylefeng.roses.kernel.rule.tree.factory.base.AbstractTreeNode; -import cn.stylefeng.roses.kernel.scanner.api.annotation.field.ChineseDescription; import lombok.Data; import java.util.HashMap; diff --git a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/resource/ResourceRequest.java b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/resource/ResourceRequest.java index e68ee2072..e7813346b 100644 --- a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/resource/ResourceRequest.java +++ b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/resource/ResourceRequest.java @@ -24,10 +24,8 @@ */ package cn.stylefeng.roses.kernel.system.api.pojo.resource; +import cn.stylefeng.roses.kernel.rule.annotation.ChineseDescription; import cn.stylefeng.roses.kernel.rule.pojo.request.BaseRequest; -import cn.stylefeng.roses.kernel.scanner.api.annotation.field.ChineseDescription; -import com.baomidou.mybatisplus.annotation.TableField; -import com.baomidou.mybatisplus.annotation.TableId; import lombok.Data; import lombok.EqualsAndHashCode; diff --git a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/role/dto/SysRoleDTO.java b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/role/dto/SysRoleDTO.java index d37f0e576..7b08a64d4 100644 --- a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/role/dto/SysRoleDTO.java +++ b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/role/dto/SysRoleDTO.java @@ -25,8 +25,8 @@ package cn.stylefeng.roses.kernel.system.api.pojo.role.dto; import cn.stylefeng.roses.kernel.auth.api.enums.DataScopeTypeEnum; +import cn.stylefeng.roses.kernel.rule.annotation.ChineseDescription; import cn.stylefeng.roses.kernel.rule.pojo.request.BaseRequest; -import cn.stylefeng.roses.kernel.scanner.api.annotation.field.ChineseDescription; import lombok.Data; import lombok.EqualsAndHashCode; diff --git a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/role/request/SysRoleRequest.java b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/role/request/SysRoleRequest.java index 8eea1539b..c8fe755d3 100644 --- a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/role/request/SysRoleRequest.java +++ b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/role/request/SysRoleRequest.java @@ -24,8 +24,8 @@ */ package cn.stylefeng.roses.kernel.system.api.pojo.role.request; +import cn.stylefeng.roses.kernel.rule.annotation.ChineseDescription; import cn.stylefeng.roses.kernel.rule.pojo.request.BaseRequest; -import cn.stylefeng.roses.kernel.scanner.api.annotation.field.ChineseDescription; import cn.stylefeng.roses.kernel.validator.api.validators.unique.TableUniqueValue; import lombok.Data; import lombok.EqualsAndHashCode; diff --git a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/theme/SysThemeRequest.java b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/theme/SysThemeRequest.java index 1a0f07d6e..7c3086e71 100644 --- a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/theme/SysThemeRequest.java +++ b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/theme/SysThemeRequest.java @@ -1,7 +1,7 @@ package cn.stylefeng.roses.kernel.system.api.pojo.theme; +import cn.stylefeng.roses.kernel.rule.annotation.ChineseDescription; import cn.stylefeng.roses.kernel.rule.pojo.request.BaseRequest; -import cn.stylefeng.roses.kernel.scanner.api.annotation.field.ChineseDescription; import lombok.Data; import lombok.EqualsAndHashCode; diff --git a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/theme/SysThemeTemplateFieldRequest.java b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/theme/SysThemeTemplateFieldRequest.java index 616658f76..e339af08e 100644 --- a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/theme/SysThemeTemplateFieldRequest.java +++ b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/theme/SysThemeTemplateFieldRequest.java @@ -1,7 +1,7 @@ package cn.stylefeng.roses.kernel.system.api.pojo.theme; +import cn.stylefeng.roses.kernel.rule.annotation.ChineseDescription; import cn.stylefeng.roses.kernel.rule.pojo.request.BaseRequest; -import cn.stylefeng.roses.kernel.scanner.api.annotation.field.ChineseDescription; import lombok.Data; import lombok.EqualsAndHashCode; diff --git a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/theme/SysThemeTemplateRelRequest.java b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/theme/SysThemeTemplateRelRequest.java index 23e8bcd19..fabcba27f 100644 --- a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/theme/SysThemeTemplateRelRequest.java +++ b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/theme/SysThemeTemplateRelRequest.java @@ -1,7 +1,7 @@ package cn.stylefeng.roses.kernel.system.api.pojo.theme; +import cn.stylefeng.roses.kernel.rule.annotation.ChineseDescription; import cn.stylefeng.roses.kernel.rule.pojo.request.BaseRequest; -import cn.stylefeng.roses.kernel.scanner.api.annotation.field.ChineseDescription; import lombok.Data; import lombok.EqualsAndHashCode; diff --git a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/theme/SysThemeTemplateRequest.java b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/theme/SysThemeTemplateRequest.java index 7aea74411..906ad7410 100644 --- a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/theme/SysThemeTemplateRequest.java +++ b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/theme/SysThemeTemplateRequest.java @@ -1,7 +1,7 @@ package cn.stylefeng.roses.kernel.system.api.pojo.theme; +import cn.stylefeng.roses.kernel.rule.annotation.ChineseDescription; import cn.stylefeng.roses.kernel.rule.pojo.request.BaseRequest; -import cn.stylefeng.roses.kernel.scanner.api.annotation.field.ChineseDescription; import lombok.Data; import lombok.EqualsAndHashCode; diff --git a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/user/OnlineUserDTO.java b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/user/OnlineUserDTO.java index d35a726b2..90016d20c 100644 --- a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/user/OnlineUserDTO.java +++ b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/user/OnlineUserDTO.java @@ -24,7 +24,7 @@ */ package cn.stylefeng.roses.kernel.system.api.pojo.user; -import cn.stylefeng.roses.kernel.scanner.api.annotation.field.ChineseDescription; +import cn.stylefeng.roses.kernel.rule.annotation.ChineseDescription; import lombok.Data; import java.util.Date; diff --git a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/user/SysUserDTO.java b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/user/SysUserDTO.java index d3d17860b..57cb65d79 100644 --- a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/user/SysUserDTO.java +++ b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/user/SysUserDTO.java @@ -24,7 +24,7 @@ */ package cn.stylefeng.roses.kernel.system.api.pojo.user; -import cn.stylefeng.roses.kernel.scanner.api.annotation.field.ChineseDescription; +import cn.stylefeng.roses.kernel.rule.annotation.ChineseDescription; import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; diff --git a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/user/UserSelectTreeNode.java b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/user/UserSelectTreeNode.java index 3c464a79c..3d81f24a5 100644 --- a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/user/UserSelectTreeNode.java +++ b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/user/UserSelectTreeNode.java @@ -25,9 +25,9 @@ package cn.stylefeng.roses.kernel.system.api.pojo.user; import cn.hutool.core.collection.IterUtil; +import cn.stylefeng.roses.kernel.rule.annotation.ChineseDescription; import cn.stylefeng.roses.kernel.rule.enums.TreeNodeEnum; import cn.stylefeng.roses.kernel.rule.tree.factory.node.DefaultTreeNode; -import cn.stylefeng.roses.kernel.scanner.api.annotation.field.ChineseDescription; import lombok.Data; import lombok.EqualsAndHashCode; diff --git a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/user/request/OnlineUserRequest.java b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/user/request/OnlineUserRequest.java index b33379819..5b81b9159 100644 --- a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/user/request/OnlineUserRequest.java +++ b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/user/request/OnlineUserRequest.java @@ -24,7 +24,7 @@ */ package cn.stylefeng.roses.kernel.system.api.pojo.user.request; -import cn.stylefeng.roses.kernel.scanner.api.annotation.field.ChineseDescription; +import cn.stylefeng.roses.kernel.rule.annotation.ChineseDescription; import lombok.Data; import javax.validation.constraints.NotBlank; diff --git a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/user/request/SysUserRequest.java b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/user/request/SysUserRequest.java index 65e854f3d..1b17d3922 100644 --- a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/user/request/SysUserRequest.java +++ b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/user/request/SysUserRequest.java @@ -24,8 +24,8 @@ */ package cn.stylefeng.roses.kernel.system.api.pojo.user.request; +import cn.stylefeng.roses.kernel.rule.annotation.ChineseDescription; import cn.stylefeng.roses.kernel.rule.pojo.request.BaseRequest; -import cn.stylefeng.roses.kernel.scanner.api.annotation.field.ChineseDescription; import cn.stylefeng.roses.kernel.validator.api.validators.date.DateValue; import cn.stylefeng.roses.kernel.validator.api.validators.phone.PhoneValue; import cn.stylefeng.roses.kernel.validator.api.validators.status.StatusValue; diff --git a/kernel-s-system/system-business-app/src/main/java/cn/stylefeng/roses/kernel/system/modular/app/entity/SysApp.java b/kernel-s-system/system-business-app/src/main/java/cn/stylefeng/roses/kernel/system/modular/app/entity/SysApp.java index 1e9357e4b..17e83c492 100644 --- a/kernel-s-system/system-business-app/src/main/java/cn/stylefeng/roses/kernel/system/modular/app/entity/SysApp.java +++ b/kernel-s-system/system-business-app/src/main/java/cn/stylefeng/roses/kernel/system/modular/app/entity/SysApp.java @@ -25,7 +25,7 @@ package cn.stylefeng.roses.kernel.system.modular.app.entity; import cn.stylefeng.roses.kernel.db.api.pojo.entity.BaseEntity; -import cn.stylefeng.roses.kernel.scanner.api.annotation.field.ChineseDescription; +import cn.stylefeng.roses.kernel.rule.annotation.ChineseDescription; import com.baomidou.mybatisplus.annotation.FieldFill; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; diff --git a/kernel-s-system/system-business-menu/src/main/java/cn/stylefeng/roses/kernel/system/modular/menu/entity/SysMenu.java b/kernel-s-system/system-business-menu/src/main/java/cn/stylefeng/roses/kernel/system/modular/menu/entity/SysMenu.java index 248e6938f..6e49adf58 100644 --- a/kernel-s-system/system-business-menu/src/main/java/cn/stylefeng/roses/kernel/system/modular/menu/entity/SysMenu.java +++ b/kernel-s-system/system-business-menu/src/main/java/cn/stylefeng/roses/kernel/system/modular/menu/entity/SysMenu.java @@ -25,8 +25,8 @@ package cn.stylefeng.roses.kernel.system.modular.menu.entity; import cn.stylefeng.roses.kernel.db.api.pojo.entity.BaseEntity; +import cn.stylefeng.roses.kernel.rule.annotation.ChineseDescription; import cn.stylefeng.roses.kernel.rule.tree.factory.base.AbstractTreeNode; -import cn.stylefeng.roses.kernel.scanner.api.annotation.field.ChineseDescription; import com.baomidou.mybatisplus.annotation.FieldFill; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; diff --git a/kernel-s-system/system-business-menu/src/main/java/cn/stylefeng/roses/kernel/system/modular/menu/entity/SysMenuButton.java b/kernel-s-system/system-business-menu/src/main/java/cn/stylefeng/roses/kernel/system/modular/menu/entity/SysMenuButton.java index a41634eb7..4f904632d 100644 --- a/kernel-s-system/system-business-menu/src/main/java/cn/stylefeng/roses/kernel/system/modular/menu/entity/SysMenuButton.java +++ b/kernel-s-system/system-business-menu/src/main/java/cn/stylefeng/roses/kernel/system/modular/menu/entity/SysMenuButton.java @@ -25,7 +25,7 @@ package cn.stylefeng.roses.kernel.system.modular.menu.entity; import cn.stylefeng.roses.kernel.db.api.pojo.entity.BaseEntity; -import cn.stylefeng.roses.kernel.scanner.api.annotation.field.ChineseDescription; +import cn.stylefeng.roses.kernel.rule.annotation.ChineseDescription; import com.baomidou.mybatisplus.annotation.FieldFill; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; diff --git a/kernel-s-system/system-business-menu/src/main/java/cn/stylefeng/roses/kernel/system/modular/menu/entity/SysMenuResource.java b/kernel-s-system/system-business-menu/src/main/java/cn/stylefeng/roses/kernel/system/modular/menu/entity/SysMenuResource.java index c53d1e603..d707a6fa0 100644 --- a/kernel-s-system/system-business-menu/src/main/java/cn/stylefeng/roses/kernel/system/modular/menu/entity/SysMenuResource.java +++ b/kernel-s-system/system-business-menu/src/main/java/cn/stylefeng/roses/kernel/system/modular/menu/entity/SysMenuResource.java @@ -25,7 +25,7 @@ package cn.stylefeng.roses.kernel.system.modular.menu.entity; import cn.stylefeng.roses.kernel.db.api.pojo.entity.BaseEntity; -import cn.stylefeng.roses.kernel.scanner.api.annotation.field.ChineseDescription; +import cn.stylefeng.roses.kernel.rule.annotation.ChineseDescription; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; diff --git a/kernel-s-system/system-business-notice/src/main/java/cn/stylefeng/roses/kernel/system/modular/notice/entity/SysNotice.java b/kernel-s-system/system-business-notice/src/main/java/cn/stylefeng/roses/kernel/system/modular/notice/entity/SysNotice.java index b4f7ec058..3c151d556 100644 --- a/kernel-s-system/system-business-notice/src/main/java/cn/stylefeng/roses/kernel/system/modular/notice/entity/SysNotice.java +++ b/kernel-s-system/system-business-notice/src/main/java/cn/stylefeng/roses/kernel/system/modular/notice/entity/SysNotice.java @@ -26,7 +26,7 @@ package cn.stylefeng.roses.kernel.system.modular.notice.entity; import cn.stylefeng.roses.kernel.db.api.pojo.entity.BaseEntity; import cn.stylefeng.roses.kernel.dict.api.serializer.DictValueSerializer; -import cn.stylefeng.roses.kernel.scanner.api.annotation.field.ChineseDescription; +import cn.stylefeng.roses.kernel.rule.annotation.ChineseDescription; import com.baomidou.mybatisplus.annotation.FieldFill; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; diff --git a/kernel-s-system/system-business-organization/src/main/java/cn/stylefeng/roses/kernel/system/modular/organization/entity/HrOrganization.java b/kernel-s-system/system-business-organization/src/main/java/cn/stylefeng/roses/kernel/system/modular/organization/entity/HrOrganization.java index 07ebaa028..5eb52efb1 100644 --- a/kernel-s-system/system-business-organization/src/main/java/cn/stylefeng/roses/kernel/system/modular/organization/entity/HrOrganization.java +++ b/kernel-s-system/system-business-organization/src/main/java/cn/stylefeng/roses/kernel/system/modular/organization/entity/HrOrganization.java @@ -25,14 +25,13 @@ package cn.stylefeng.roses.kernel.system.modular.organization.entity; import cn.stylefeng.roses.kernel.db.api.pojo.entity.BaseEntity; -import cn.stylefeng.roses.kernel.scanner.api.annotation.field.ChineseDescription; +import cn.stylefeng.roses.kernel.rule.annotation.ChineseDescription; import com.baomidou.mybatisplus.annotation.FieldFill; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; import lombok.EqualsAndHashCode; -import org.apache.ibatis.annotations.Insert; import java.math.BigDecimal; diff --git a/kernel-s-system/system-business-organization/src/main/java/cn/stylefeng/roses/kernel/system/modular/organization/entity/HrPosition.java b/kernel-s-system/system-business-organization/src/main/java/cn/stylefeng/roses/kernel/system/modular/organization/entity/HrPosition.java index 4828cfc34..99579e869 100644 --- a/kernel-s-system/system-business-organization/src/main/java/cn/stylefeng/roses/kernel/system/modular/organization/entity/HrPosition.java +++ b/kernel-s-system/system-business-organization/src/main/java/cn/stylefeng/roses/kernel/system/modular/organization/entity/HrPosition.java @@ -25,8 +25,8 @@ package cn.stylefeng.roses.kernel.system.modular.organization.entity; import cn.stylefeng.roses.kernel.db.api.pojo.entity.BaseEntity; +import cn.stylefeng.roses.kernel.rule.annotation.ChineseDescription; import cn.stylefeng.roses.kernel.rule.tree.xmtree.base.AbstractXmSelectNode; -import cn.stylefeng.roses.kernel.scanner.api.annotation.field.ChineseDescription; import com.baomidou.mybatisplus.annotation.FieldFill; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; diff --git a/kernel-s-system/system-business-resource/src/main/java/cn/stylefeng/roses/kernel/system/modular/resource/entity/SysResource.java b/kernel-s-system/system-business-resource/src/main/java/cn/stylefeng/roses/kernel/system/modular/resource/entity/SysResource.java index df5924aff..a57baaa18 100644 --- a/kernel-s-system/system-business-resource/src/main/java/cn/stylefeng/roses/kernel/system/modular/resource/entity/SysResource.java +++ b/kernel-s-system/system-business-resource/src/main/java/cn/stylefeng/roses/kernel/system/modular/resource/entity/SysResource.java @@ -25,7 +25,7 @@ package cn.stylefeng.roses.kernel.system.modular.resource.entity; import cn.stylefeng.roses.kernel.db.api.pojo.entity.BaseEntity; -import cn.stylefeng.roses.kernel.scanner.api.annotation.field.ChineseDescription; +import cn.stylefeng.roses.kernel.rule.annotation.ChineseDescription; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; diff --git a/kernel-s-system/system-business-resource/src/main/java/cn/stylefeng/roses/kernel/system/modular/resource/pojo/ResourceTreeNode.java b/kernel-s-system/system-business-resource/src/main/java/cn/stylefeng/roses/kernel/system/modular/resource/pojo/ResourceTreeNode.java index faa00a9c2..5362b2f5e 100644 --- a/kernel-s-system/system-business-resource/src/main/java/cn/stylefeng/roses/kernel/system/modular/resource/pojo/ResourceTreeNode.java +++ b/kernel-s-system/system-business-resource/src/main/java/cn/stylefeng/roses/kernel/system/modular/resource/pojo/ResourceTreeNode.java @@ -24,8 +24,8 @@ */ package cn.stylefeng.roses.kernel.system.modular.resource.pojo; +import cn.stylefeng.roses.kernel.rule.annotation.ChineseDescription; import cn.stylefeng.roses.kernel.rule.tree.factory.base.AbstractTreeNode; -import cn.stylefeng.roses.kernel.scanner.api.annotation.field.ChineseDescription; import lombok.Data; import java.util.List; diff --git a/kernel-s-system/system-business-role/src/main/java/cn/stylefeng/roses/kernel/system/modular/role/entity/SysRole.java b/kernel-s-system/system-business-role/src/main/java/cn/stylefeng/roses/kernel/system/modular/role/entity/SysRole.java index 5e9ec1a99..d3089a839 100644 --- a/kernel-s-system/system-business-role/src/main/java/cn/stylefeng/roses/kernel/system/modular/role/entity/SysRole.java +++ b/kernel-s-system/system-business-role/src/main/java/cn/stylefeng/roses/kernel/system/modular/role/entity/SysRole.java @@ -25,7 +25,7 @@ package cn.stylefeng.roses.kernel.system.modular.role.entity; import cn.stylefeng.roses.kernel.db.api.pojo.entity.BaseEntity; -import cn.stylefeng.roses.kernel.scanner.api.annotation.field.ChineseDescription; +import cn.stylefeng.roses.kernel.rule.annotation.ChineseDescription; import com.baomidou.mybatisplus.annotation.*; import lombok.Data; import lombok.EqualsAndHashCode; diff --git a/kernel-s-system/system-business-theme/src/main/java/cn/stylefeng/roses/kernel/system/modular/theme/entity/SysTheme.java b/kernel-s-system/system-business-theme/src/main/java/cn/stylefeng/roses/kernel/system/modular/theme/entity/SysTheme.java index 47c03001c..568a6b343 100644 --- a/kernel-s-system/system-business-theme/src/main/java/cn/stylefeng/roses/kernel/system/modular/theme/entity/SysTheme.java +++ b/kernel-s-system/system-business-theme/src/main/java/cn/stylefeng/roses/kernel/system/modular/theme/entity/SysTheme.java @@ -1,7 +1,7 @@ package cn.stylefeng.roses.kernel.system.modular.theme.entity; import cn.stylefeng.roses.kernel.db.api.pojo.entity.BaseEntity; -import cn.stylefeng.roses.kernel.scanner.api.annotation.field.ChineseDescription; +import cn.stylefeng.roses.kernel.rule.annotation.ChineseDescription; import cn.stylefeng.roses.kernel.system.modular.theme.pojo.AntdvFileInfo; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; diff --git a/kernel-s-system/system-business-theme/src/main/java/cn/stylefeng/roses/kernel/system/modular/theme/entity/SysThemeTemplate.java b/kernel-s-system/system-business-theme/src/main/java/cn/stylefeng/roses/kernel/system/modular/theme/entity/SysThemeTemplate.java index b19e7b78c..0ed1d03e1 100644 --- a/kernel-s-system/system-business-theme/src/main/java/cn/stylefeng/roses/kernel/system/modular/theme/entity/SysThemeTemplate.java +++ b/kernel-s-system/system-business-theme/src/main/java/cn/stylefeng/roses/kernel/system/modular/theme/entity/SysThemeTemplate.java @@ -1,7 +1,7 @@ package cn.stylefeng.roses.kernel.system.modular.theme.entity; import cn.stylefeng.roses.kernel.db.api.pojo.entity.BaseEntity; -import cn.stylefeng.roses.kernel.scanner.api.annotation.field.ChineseDescription; +import cn.stylefeng.roses.kernel.rule.annotation.ChineseDescription; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; diff --git a/kernel-s-system/system-business-theme/src/main/java/cn/stylefeng/roses/kernel/system/modular/theme/entity/SysThemeTemplateField.java b/kernel-s-system/system-business-theme/src/main/java/cn/stylefeng/roses/kernel/system/modular/theme/entity/SysThemeTemplateField.java index 732bb5143..2769e810b 100644 --- a/kernel-s-system/system-business-theme/src/main/java/cn/stylefeng/roses/kernel/system/modular/theme/entity/SysThemeTemplateField.java +++ b/kernel-s-system/system-business-theme/src/main/java/cn/stylefeng/roses/kernel/system/modular/theme/entity/SysThemeTemplateField.java @@ -1,7 +1,7 @@ package cn.stylefeng.roses.kernel.system.modular.theme.entity; import cn.stylefeng.roses.kernel.db.api.pojo.entity.BaseEntity; -import cn.stylefeng.roses.kernel.scanner.api.annotation.field.ChineseDescription; +import cn.stylefeng.roses.kernel.rule.annotation.ChineseDescription; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; diff --git a/kernel-s-system/system-business-theme/src/main/java/cn/stylefeng/roses/kernel/system/modular/theme/entity/SysThemeTemplateRel.java b/kernel-s-system/system-business-theme/src/main/java/cn/stylefeng/roses/kernel/system/modular/theme/entity/SysThemeTemplateRel.java index 670224f12..eca86e4bb 100644 --- a/kernel-s-system/system-business-theme/src/main/java/cn/stylefeng/roses/kernel/system/modular/theme/entity/SysThemeTemplateRel.java +++ b/kernel-s-system/system-business-theme/src/main/java/cn/stylefeng/roses/kernel/system/modular/theme/entity/SysThemeTemplateRel.java @@ -1,7 +1,7 @@ package cn.stylefeng.roses.kernel.system.modular.theme.entity; import cn.stylefeng.roses.kernel.db.api.pojo.entity.BaseEntity; -import cn.stylefeng.roses.kernel.scanner.api.annotation.field.ChineseDescription; +import cn.stylefeng.roses.kernel.rule.annotation.ChineseDescription; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId;