From 7bf1fb63beff0879fe768dba1c0d7b6f26150e1d Mon Sep 17 00:00:00 2001 From: song_jx <1649991905@qq.com> Date: Thu, 25 May 2023 21:02:27 +0800 Subject: [PATCH] =?UTF-8?q?[=E4=BB=A3=E7=A0=81=E9=87=8D=E6=9E=84](dev):=20?= =?UTF-8?q?=E5=A4=A7=E9=87=8D=E6=9E=84,=E5=88=86=E7=A6=BB=E6=A0=B8?= =?UTF-8?q?=E5=BF=83=E8=B7=9Fspringboot=E5=BC=95=E5=85=A5,=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0demo=E6=A8=A1=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 3 +- CHANGELOG.md | 9 + README.md | 334 +++++++++++++----- dict-trans-core/pom.xml | 43 +++ .../aizuda/trans/annotation/Dictionary.java | 5 +- .../aizuda/trans/annotation/Translate.java | 2 +- .../aizuda/trans/annotation/Translator.java | 11 +- .../constants/DesensitizedTypeConstants.java | 0 .../trans/desensitized/Desensitized.java | 0 .../trans/desensitized/IDesensitized.java | 0 .../com/aizuda/trans/dict/DictTranslate.java | 0 .../java/com/aizuda/trans/enums/EnumPool.java | 0 .../com/aizuda/trans/enums/FormatType.java | 0 .../java/com/aizuda/trans/enums/IEnum.java | 0 .../com/aizuda/trans/json/IJsonConvert.java | 0 .../com/aizuda/trans/json/JSONConvert.java | 0 .../trans/service/DictTranslateService.java | 0 .../aizuda/trans/service/Translatable.java | 0 .../com/aizuda/trans/util/LambdaUtil.java | 0 .../java/com/aizuda/trans/util/NameUtil.java | 12 +- dict-trans-demo/pom.xml | 70 ++++ .../trans/TranslatorBootApplication.java | 2 - .../trans/controller/TestController.java | 28 ++ .../com/aizuda/trans/demo/DemoService.java | 23 +- .../impl/CustomerTranslateServiceImpl.java | 0 .../trans/demo/impl/DemoServiceImpl.java | 26 +- .../trans/demo/impl/ResultUnWrapper.java | 21 ++ .../aizuda/trans/dict/CustomerDictImpl.java | 0 .../java/com/aizuda/trans/entity/Device.java | 0 .../java/com/aizuda/trans/entity/Dict.java | 0 .../java/com/aizuda/trans/entity/People.java | 4 + .../java/com/aizuda/trans/entity/People2.java | 2 +- .../java/com/aizuda/trans/entity/People3.java | 0 .../java/com/aizuda/trans/entity/Result.java | 26 ++ .../java/com/aizuda/trans/entity/UserDB.java | 0 .../com/aizuda/trans/enums/DeviceStatus.java | 0 .../src/main}/resources/application.yml | 0 .../java/com/aizuda/trans/TranslatorTest.java | 32 +- dict-trans-spring-boot-starter/pom.xml | 55 +++ .../aizuda/trans/aspect/TranslateAspect.java | 43 +++ .../aizuda/trans/config/TranslatorConfig.java | 24 +- .../trans/handler/TranslatorHandle.java | 157 ++++---- .../com/aizuda/trans/service/UnWrapper.java | 36 ++ .../service/impl/DataBaseTranslator.java | 5 +- .../impl/DefaultDictTranslateServiceImpl.java | 0 .../service/impl/DesensitizedTranslator.java | 0 .../service/impl/DictCacheTranslator.java | 0 .../trans/service/impl/EnumTranslator.java | 0 .../service/impl/JsonConvertTranslator.java | 0 .../service/impl/wrapper/IPageUnWrapper.java | 19 + .../main/resources/META-INF/spring.factories | 0 doc/imgs/demo.png | Bin 124443 -> 115708 bytes pom.xml | 115 +++--- .../aizuda/trans/aspect/TranslateAspect.java | 40 --- 54 files changed, 840 insertions(+), 307 deletions(-) create mode 100644 CHANGELOG.md create mode 100644 dict-trans-core/pom.xml rename {src => dict-trans-core/src}/main/java/com/aizuda/trans/annotation/Dictionary.java (90%) rename {src => dict-trans-core/src}/main/java/com/aizuda/trans/annotation/Translate.java (100%) rename {src => dict-trans-core/src}/main/java/com/aizuda/trans/annotation/Translator.java (62%) rename {src => dict-trans-core/src}/main/java/com/aizuda/trans/constants/DesensitizedTypeConstants.java (100%) rename {src => dict-trans-core/src}/main/java/com/aizuda/trans/desensitized/Desensitized.java (100%) rename {src => dict-trans-core/src}/main/java/com/aizuda/trans/desensitized/IDesensitized.java (100%) rename {src => dict-trans-core/src}/main/java/com/aizuda/trans/dict/DictTranslate.java (100%) rename {src => dict-trans-core/src}/main/java/com/aizuda/trans/enums/EnumPool.java (100%) rename {src => dict-trans-core/src}/main/java/com/aizuda/trans/enums/FormatType.java (100%) rename {src => dict-trans-core/src}/main/java/com/aizuda/trans/enums/IEnum.java (100%) rename {src => dict-trans-core/src}/main/java/com/aizuda/trans/json/IJsonConvert.java (100%) rename {src => dict-trans-core/src}/main/java/com/aizuda/trans/json/JSONConvert.java (100%) rename {src => dict-trans-core/src}/main/java/com/aizuda/trans/service/DictTranslateService.java (100%) rename {src => dict-trans-core/src}/main/java/com/aizuda/trans/service/Translatable.java (100%) rename {src => dict-trans-core/src}/main/java/com/aizuda/trans/util/LambdaUtil.java (100%) rename {src => dict-trans-core/src}/main/java/com/aizuda/trans/util/NameUtil.java (79%) create mode 100644 dict-trans-demo/pom.xml rename {src => dict-trans-demo/src}/main/java/com/aizuda/trans/TranslatorBootApplication.java (80%) create mode 100644 dict-trans-demo/src/main/java/com/aizuda/trans/controller/TestController.java rename {src/test => dict-trans-demo/src/main}/java/com/aizuda/trans/demo/DemoService.java (69%) rename {src/test => dict-trans-demo/src/main}/java/com/aizuda/trans/demo/impl/CustomerTranslateServiceImpl.java (100%) rename {src/test => dict-trans-demo/src/main}/java/com/aizuda/trans/demo/impl/DemoServiceImpl.java (66%) create mode 100644 dict-trans-demo/src/main/java/com/aizuda/trans/demo/impl/ResultUnWrapper.java rename {src/test => dict-trans-demo/src/main}/java/com/aizuda/trans/dict/CustomerDictImpl.java (100%) rename {src/test => dict-trans-demo/src/main}/java/com/aizuda/trans/entity/Device.java (100%) rename {src/test => dict-trans-demo/src/main}/java/com/aizuda/trans/entity/Dict.java (100%) rename {src/test => dict-trans-demo/src/main}/java/com/aizuda/trans/entity/People.java (92%) rename {src/test => dict-trans-demo/src/main}/java/com/aizuda/trans/entity/People2.java (98%) rename {src/test => dict-trans-demo/src/main}/java/com/aizuda/trans/entity/People3.java (100%) create mode 100644 dict-trans-demo/src/main/java/com/aizuda/trans/entity/Result.java rename {src/test => dict-trans-demo/src/main}/java/com/aizuda/trans/entity/UserDB.java (100%) rename {src/test => dict-trans-demo/src/main}/java/com/aizuda/trans/enums/DeviceStatus.java (100%) rename {src/test => dict-trans-demo/src/main}/resources/application.yml (100%) rename {src => dict-trans-demo/src}/test/java/com/aizuda/trans/TranslatorTest.java (61%) create mode 100644 dict-trans-spring-boot-starter/pom.xml create mode 100644 dict-trans-spring-boot-starter/src/main/java/com/aizuda/trans/aspect/TranslateAspect.java rename {src => dict-trans-spring-boot-starter/src}/main/java/com/aizuda/trans/config/TranslatorConfig.java (53%) rename {src => dict-trans-spring-boot-starter/src}/main/java/com/aizuda/trans/handler/TranslatorHandle.java (77%) create mode 100644 dict-trans-spring-boot-starter/src/main/java/com/aizuda/trans/service/UnWrapper.java rename {src => dict-trans-spring-boot-starter/src}/main/java/com/aizuda/trans/service/impl/DataBaseTranslator.java (97%) rename {src => dict-trans-spring-boot-starter/src}/main/java/com/aizuda/trans/service/impl/DefaultDictTranslateServiceImpl.java (100%) rename {src => dict-trans-spring-boot-starter/src}/main/java/com/aizuda/trans/service/impl/DesensitizedTranslator.java (100%) rename {src => dict-trans-spring-boot-starter/src}/main/java/com/aizuda/trans/service/impl/DictCacheTranslator.java (100%) rename {src => dict-trans-spring-boot-starter/src}/main/java/com/aizuda/trans/service/impl/EnumTranslator.java (100%) rename {src => dict-trans-spring-boot-starter/src}/main/java/com/aizuda/trans/service/impl/JsonConvertTranslator.java (100%) create mode 100644 dict-trans-spring-boot-starter/src/main/java/com/aizuda/trans/service/impl/wrapper/IPageUnWrapper.java rename {src => dict-trans-spring-boot-starter/src}/main/resources/META-INF/spring.factories (100%) delete mode 100644 src/main/java/com/aizuda/trans/aspect/TranslateAspect.java diff --git a/.gitignore b/.gitignore index 96b4386..7531ad8 100644 --- a/.gitignore +++ b/.gitignore @@ -110,4 +110,5 @@ buildNumber.properties .mvn/wrapper/maven-wrapper.jar /.idea/ -/.fastRequest/ \ No newline at end of file +/.fastRequest/ +.flattened-pom.xml \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..1951e40 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,9 @@ +# ChangeLog + +All notable changes to this project will be documented in this file,ChangeLog information is generated by the [CommitMessage plugin](https://plugins.jetbrains.com/plugin/12256-commit-message-create) + +## [v](https://git/compare/v...master) + + +## [0.1](https://git/compare/0.1...master) + diff --git a/README.md b/README.md index 4749589..85a4590 100644 --- a/README.md +++ b/README.md @@ -12,91 +12,161 @@ * [x] 自定义翻译 * [x] 翻译结果脱敏 * [x] json字符串翻译为json对象 +* [x] 嵌套翻译 ## 项目结构 ``` -EasyTranslate - └── src - ├── main - │ └── java - │ └── com - │ └── aizuda - │ └── trans - │ ├── annotation 翻译注解 - │ │ ├── Dictionary.java 字典注解,标识在字典数据类上(自动生成查询 SQL) - │ │ ├── Translate.java 翻译字段注解,标识在需要翻译的字段上 - │ │ └── Translator.java 翻译方法注解,对方法返回值进行翻译 - │ ├── aspect - │ │ └── TranslateAspect.java 翻译切面 - │ ├── config - │ │ └── TranslatorConfig.java 默认翻译方法注入配置 - │ ├── constants 常量配置 - │ │ └── DesensitizedTypeConstants.java - │ ├── desensitized 脱敏相关 - │ │ ├── Desensitized.java - │ │ └── IDesensitized.java - │ ├── dict 数据字典相关 - │ │ └── DictTranslate.java - │ ├── enums 枚举相关 - │ │ ├── EnumPool.java - │ │ ├── FormatType.java - │ │ └── IEnum.java - │ ├── handler 主要操作类 - │ │ └── TranslatorHandle.java - │ ├── json json相关 - │ │ ├── IJsonConvert.java - │ │ └── JSONConvert.java - │ ├── service - │ │ ├── impl - │ │ │ ├── DefaultDictTranslateServiceImpl.java 默认数据字典翻译实现(实现字典翻译接口。仿照该方法,实现自己的业务) - │ │ │ ├── DictCacheTranslator.java 数据字典翻译实现(调用 字典翻译接口实现) - │ │ │ ├── DataBaseTranslator.java 数据库翻译服务 - │ │ │ ├── DesensitizedTranslator.java 脱敏实现(没啥操作,就返回原值) - │ │ │ ├── EnumTranslator.java 枚举翻译实现 - │ │ │ └── JsonConvertTranslator.java json翻译实现 - │ │ ├── Translatable.java 翻译接口(字典、枚举、....接实现该接口) - │ │ └── DictTranslateService.java 字典翻译接口 - │ ├── TranslatorBootApplication.java - │ └── util 一些工具类 - │ ├── LambdaUtil.java - │ └── NameUtil.java - └── test demo演示 +dict-trans + ├── dict-trans-core + │ └── src + │ └── main + │ └── java + │ └── com + │ └── aizuda + │ └── trans + │ ├── annotation 翻译注解 + │ │ ├── Dictionary.java 字典注解,标识在字典数据类上(自动生成查询 SQL) + │ │ ├── Translate.java 翻译字段注解,标识在需要翻译的字段上 + │ │ └── Translator.java 翻译方法注解,对方法返回值进行翻译 + │ ├── constants 常量配置 + │ │ └── DesensitizedTypeConstants.java + │ ├── desensitized 脱敏相关 + │ │ ├── Desensitized.java + │ │ └── IDesensitized.java + │ ├── dict 数据字典相关 + │ │ └── DictTranslate.java + │ ├── enums 枚举相关 + │ │ ├── EnumPool.java + │ │ ├── FormatType.java + │ │ └── IEnum.java + │ ├── json json相关 + │ │ ├── IJsonConvert.java + │ │ └── JSONConvert.java + │ ├── service + │ │ ├── DictTranslateService.java 字典翻译接口 + │ │ └── Translatable.java 翻译接口(字典、枚举、....接实现该接口) + │ └── util 一些工具类 + │ ├── LambdaUtil.java + │ └── NameUtil.java + ├── dict-trans-demo demo演示 + │ └── src + │ ├── main + │ │ ├── java + │ │ │ └── com + │ │ │ └── aizuda + │ │ │ └── trans + │ │ │ ├── controller + │ │ │ │ └── TestController.java + │ │ │ ├── demo + │ │ │ │ ├── DemoService.java + │ │ │ │ └── impl + │ │ │ │ ├── CustomerTranslateServiceImpl.java + │ │ │ │ ├── DemoServiceImpl.java + │ │ │ │ └── ResultUnWrapper.java 业务统一返回 解包器实现 + │ │ │ ├── dict + │ │ │ │ └── CustomerDictImpl.java + │ │ │ ├── entity + │ │ │ │ ├── Device.java + │ │ │ │ ├── Dict.java + │ │ │ │ ├── People.java + │ │ │ │ ├── People2.java + │ │ │ │ ├── People3.java + │ │ │ │ ├── Result.java + │ │ │ │ └── UserDB.java + │ │ │ ├── enums + │ │ │ │ └── DeviceStatus.java + │ │ │ └── TranslatorBootApplication.java + │ │ └── resources + │ │ └── application.yml + │ └── test + │ └── java + │ └── com + │ └── aizuda + │ └── trans + │ └── TranslatorTest.java + ├── dict-trans-spring-boot-starter + │ └── src + │ └── main + │ └── java + │ └── com + │ └── aizuda + │ └── trans + │ ├── aspect 翻译切面 + │ │ └── TranslateAspect.java + │ ├── config + │ │ └── TranslatorConfig.java 默认翻译方法注入配置 + │ ├── handler 主要操作类 + │ │ └── TranslatorHandle.java + │ └── service + │ ├── impl + │ │ ├── DataBaseTranslator.java 数据库翻译服务 + │ │ ├── DefaultDictTranslateServiceImpl.java 默认数据字典翻译实现(实现字典翻译接口。仿照该方法,实现自己的业务) + │ │ ├── DesensitizedTranslator.java 脱敏实现(没啥操作,就返回原值) + │ │ ├── DictCacheTranslator.java 数据字典翻译实现(调用 字典翻译接口实现) + │ │ ├── EnumTranslator.java 枚举翻译实现 + │ │ ├── JsonConvertTranslator.java json翻译实现 + │ │ └── wrapper + │ │ └── IPageUnWrapper.java mybatis-plus 解包实现(就是取 records 而已) + │ └── UnWrapper.java 解包接口 + └── doc + ├── imgs + │ └── demo.png + └── t_test.sql demo 数据库脚本 ``` ## 快速开始 ### 引入jar包 +> 不要问为什么强依赖 `Hutool` 、 `MyBatis-Plus` 。 +> +> 就是爱! +> +> 不用这两个的,下面可以不用看了!!! + ```xml - - - + + + + + com.aizuda dict-trans - 0.2 - - - - + 0.3 + + + + cn.hutool hutool-all - ${hutool.version} - - - - + 5.8.18 + + + + com.baomidou mybatis-plus-boot-starter - ${mybatis-plus.version} - true - - - + 3.5.3.1 + + + + + + + org.springframework.boot + spring-boot-starter-web + 2.7.12 + + + + mysql mysql-connector-java - true - + 5.1.49 + + + ``` ### 配置 @@ -331,13 +401,14 @@ private Object jsonObj; > 方法返回类型支持 `Map` 、 `Entity` 、 `List` 、 `IPage` -说明:对方法返回值进行翻译,**只能用在方法上** +说明:对方法返回值进行翻译,**可用在方法、字段上** 参数:无 示例: ```java +// =========================== 示例1 用在方法上 =========================== @Component public class DemoServiceImpl implements DemoService { @@ -366,41 +437,121 @@ public class DemoServiceImpl implements DemoService { } } -``` -## 演示 +// =========================== 示例2 用在字段上 =========================== -```java -@SpringBootTest -@RunWith(SpringRunner.class) -public class TranslatorTest { +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class People { - @Autowired - private DemoService demoService; + @Translate(dictClass = Dict.class, groupValue = "sex", translateField = "sexName") + private String sex; - @Test - public void demo1() { - List peopleList = demoService.dictDemo(); - Console.log("---> 翻译结果:{}", peopleList); - } + private String sexName; - @Test - public void demo2() { - List deviceList = demoService.enumDemo(); - Console.log("---> 翻译结果:{}", deviceList); - } + /** 手机号脱敏 */ + @Translate(dictClass = Desensitized.class, translateField = "phone", desensitizedModel = DesensitizedTypeConstants.MOBILE_PHONE) + private String phone; - @Test - public void demo3() { - List peopleList = demoService.dbDemo(); - Console.log("---> 翻译结果:{}", peopleList); - } + /** 自定义翻译 */ + @Translate(dictionary = @Dictionary(translator = CustomerTranslateServiceImpl.class), translateField = "name") + private String id; + + private String name; + + /** 用在字段上,可嵌套翻译 */ + @Translator + private Device device; } ``` +## 演示 + +> 完整示例参考 `dict-trans-demo` 模块 + +```java +/** + * 转换测试 + * + * @author nn200433 + * @date 2020年05月18日 0018 15:05:05 + */ +@SpringBootTest +@RunWith(SpringRunner.class) +public class TranslatorTest { + + @Autowired + private DemoService demoService; + + @Test + public void demo1() { + List peopleList = demoService.dictDemo(); + Console.log("---> 字典 & 脱敏 翻译结果:{}", JSONUtil.toJsonStr(peopleList)); + } + + @Test + public void demo2() { + List deviceList = demoService.enumDemo(); + Console.log("---> 枚举 翻译结果:{}", JSONUtil.toJsonStr(deviceList)); + } + + @Test + public void demo3() { + List peopleList = demoService.dbDemo(); + Console.log("---> 数据库 翻译结果:{}", JSONUtil.toJsonStr(peopleList)); + } + + @Test + public void demo4() { + List peopleList = demoService.jsonDemo(); + Console.log("---> json 翻译结果:{}", JSONUtil.toJsonStr(peopleList)); + } + + @Test + public void demo5() { + Result result = demoService.responseNestedMockTest(); + Console.log("---> 响应嵌套数据:{}", JSONUtil.toJsonStr(result)); + } + +} +``` + ![运行示例](./doc/imgs/demo.png) +``` + . ____ _ __ _ _ + /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ +( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ + \\/ ___)| |_)| | | | | || (_| | ) ) ) ) + ' |____| .__|_| |_|_| |_\__, | / / / / + =========|_|==============|___/=/_/_/_/ + :: Spring Boot :: (v2.7.12) + +2023-05-25 20:47:53.135 INFO 34112 --- [ main] com.aizuda.trans.TranslatorTest : Starting TranslatorTest using Java 1.8.0_311 on LAPTOP-N9LDSE74 with PID 34112 (started by nn200 in D:\idea_hengfeng\dict-trans\dict-trans-demo) +2023-05-25 20:47:53.139 INFO 34112 --- [ main] com.aizuda.trans.TranslatorTest : No active profile set, falling back to 1 default profile: "default" +2023-05-25 20:47:55.086 WARN 34112 --- [ main] o.m.s.mapper.ClassPathMapperScanner : No MyBatis mapper was found in '[com.aizuda.trans]' package. Please check your configuration. + _ _ |_ _ _|_. ___ _ | _ +| | |\/|_)(_| | |_\ |_)||_|_\ + / | + 3.5.3.1 +2023-05-25 20:48:02.307 INFO 34112 --- [ main] com.aizuda.trans.TranslatorTest : Started TranslatorTest in 10.317 seconds (JVM running for 12.941) +---> 字典 & 脱敏 翻译结果:[{"sex":"1","sexName":"男","phone":"186****5678","id":"1","name":"结果1"},{"sex":"2","sexName":"女","phone":"186****5678","id":"2","name":"结果2"}] +---> 枚举 翻译结果:[{"status":"1","statusName":"未使用"},{"status":"2","statusName":"试运行"}] +2023-05-25 20:48:03.226 INFO 34112 --- [ main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Starting... +2023-05-25 20:48:03.913 INFO 34112 --- [ main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Start completed. +---> 数据库 翻译结果:[{"id":"1","name":"张三"},{"id":"2","name":"李四"}] +---> json 翻译结果:[{"id":"1","name":"张三","json":"{\"abc\":\"def\", \"eg\":3}","jsonObj":{"abc":"def","eg":3}},{"id":"2","name":"李四","json":"[{\"a\":\"b\",\"c\":6},{\"d\":\"f\",\"e\":{\"a\":\"6\"}}]","jsonObj":[{"a":"b","c":6},{"d":"f","e":{"a":"6"}}]}] +---> 响应嵌套数据:{"status":200,"data":[{"sex":"1","sexName":"男","phone":"186****5678","id":"1","name":"结果1","device":{"status":"1","statusName":"未使用"}},{"sex":"2","sexName":"女","phone":"186****5678","id":"2","name":"结果2","device":{"status":"2","statusName":"试运行"}}]} +2023-05-25 20:48:04.168 INFO 34112 --- [ionShutdownHook] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Shutdown initiated... +2023-05-25 20:48:04.194 INFO 34112 --- [ionShutdownHook] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Shutdown completed. +Disconnected from the target VM, address: '127.0.0.1:1229', transport: 'socket' + +Process finished with exit code 0 +``` + ## 附注 该项目得益于 [Transformer v1 版本](https://github.com/luo-zhan/Transformer) 增加了 脱敏,完善了 数据库翻译 等功能。(Transformer可能是最简单,但最强大的字段转换插件,一个注解搞定任意转换,让开发变得更加丝滑),基本上就是在此项目上增加功能。 @@ -410,4 +561,5 @@ public class TranslatorTest { > 感谢以下的项目,排名不分先后 * [Hutool](https://hutool.cn) Hutool是一个Java工具包,让Java语言也可以“甜甜的”。 -* [MyBatis-Plus](https://baomidou.com/) MyBatis-Plus (opens new window)(简称 MP)是一个 MyBatis (opens new window)的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。 \ No newline at end of file +* [MyBatis-Plus](https://baomidou.com/) MyBatis-Plus (opens new window)(简称 MP)是一个 MyBatis (opens new window)的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。 +* [Transformer](https://github.com/luo-zhan/Transformer) Transformer 是一款功能全面的数据转换工具,只需要几个简单的注解配置,即可实现各种姿势的字段转换,抛弃连表查询和累赘的转换逻辑,让开发更简单。 \ No newline at end of file diff --git a/dict-trans-core/pom.xml b/dict-trans-core/pom.xml new file mode 100644 index 0000000..5948bd3 --- /dev/null +++ b/dict-trans-core/pom.xml @@ -0,0 +1,43 @@ + + + 4.0.0 + + com.aizuda + dict-trans + ${revision} + + + com.aizuda + dict-trans-core + + + UTF-8 + + + + + + + cn.hutool + hutool-all + ${hutool.version} + true + + + + + org.projectlombok + lombok + + + + + org.slf4j + slf4j-api + + + + + \ No newline at end of file diff --git a/src/main/java/com/aizuda/trans/annotation/Dictionary.java b/dict-trans-core/src/main/java/com/aizuda/trans/annotation/Dictionary.java similarity index 90% rename from src/main/java/com/aizuda/trans/annotation/Dictionary.java rename to dict-trans-core/src/main/java/com/aizuda/trans/annotation/Dictionary.java index abeb804..592421c 100644 --- a/src/main/java/com/aizuda/trans/annotation/Dictionary.java +++ b/dict-trans-core/src/main/java/com/aizuda/trans/annotation/Dictionary.java @@ -1,7 +1,6 @@ package com.aizuda.trans.annotation; import com.aizuda.trans.service.Translatable; -import com.baomidou.mybatisplus.annotation.TableName; import java.lang.annotation.*; @@ -11,15 +10,15 @@ import java.lang.annotation.*; * @author luozhan * @date 2019-03 */ +@Documented @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) -@Documented public @interface Dictionary { /** * 字典表名 *

- * 为空时取 {@link TableName#value()},取不到则取 类名(驼峰转大写下划线) + * 为空时取 mybatis-plus 的 TableName 值,取不到则取 类名(驼峰转大写下划线) *

*/ String table() default ""; diff --git a/src/main/java/com/aizuda/trans/annotation/Translate.java b/dict-trans-core/src/main/java/com/aizuda/trans/annotation/Translate.java similarity index 100% rename from src/main/java/com/aizuda/trans/annotation/Translate.java rename to dict-trans-core/src/main/java/com/aizuda/trans/annotation/Translate.java index c8586c5..b8992e0 100644 --- a/src/main/java/com/aizuda/trans/annotation/Translate.java +++ b/dict-trans-core/src/main/java/com/aizuda/trans/annotation/Translate.java @@ -10,9 +10,9 @@ import java.lang.annotation.*; * @author luozhan * @date 2019-03 */ +@Documented @Target(ElementType.FIELD) @Retention(RetentionPolicy.RUNTIME) -@Documented public @interface Translate { /** diff --git a/src/main/java/com/aizuda/trans/annotation/Translator.java b/dict-trans-core/src/main/java/com/aizuda/trans/annotation/Translator.java similarity index 62% rename from src/main/java/com/aizuda/trans/annotation/Translator.java rename to dict-trans-core/src/main/java/com/aizuda/trans/annotation/Translator.java index 69a3f93..ebffe26 100644 --- a/src/main/java/com/aizuda/trans/annotation/Translator.java +++ b/dict-trans-core/src/main/java/com/aizuda/trans/annotation/Translator.java @@ -8,14 +8,9 @@ import java.lang.annotation.*; * @author luozhan * @date 2020-04 */ -@Target(ElementType.METHOD) -@Retention(RetentionPolicy.RUNTIME) @Documented +@Retention(RetentionPolicy.RUNTIME) +@Target({ElementType.FIELD, ElementType.METHOD, ElementType.TYPE}) public @interface Translator { - - /** - * 指定翻译配置类,可传多个,一般为实体class - */ - Class[] value() default void.class; - + } diff --git a/src/main/java/com/aizuda/trans/constants/DesensitizedTypeConstants.java b/dict-trans-core/src/main/java/com/aizuda/trans/constants/DesensitizedTypeConstants.java similarity index 100% rename from src/main/java/com/aizuda/trans/constants/DesensitizedTypeConstants.java rename to dict-trans-core/src/main/java/com/aizuda/trans/constants/DesensitizedTypeConstants.java diff --git a/src/main/java/com/aizuda/trans/desensitized/Desensitized.java b/dict-trans-core/src/main/java/com/aizuda/trans/desensitized/Desensitized.java similarity index 100% rename from src/main/java/com/aizuda/trans/desensitized/Desensitized.java rename to dict-trans-core/src/main/java/com/aizuda/trans/desensitized/Desensitized.java diff --git a/src/main/java/com/aizuda/trans/desensitized/IDesensitized.java b/dict-trans-core/src/main/java/com/aizuda/trans/desensitized/IDesensitized.java similarity index 100% rename from src/main/java/com/aizuda/trans/desensitized/IDesensitized.java rename to dict-trans-core/src/main/java/com/aizuda/trans/desensitized/IDesensitized.java diff --git a/src/main/java/com/aizuda/trans/dict/DictTranslate.java b/dict-trans-core/src/main/java/com/aizuda/trans/dict/DictTranslate.java similarity index 100% rename from src/main/java/com/aizuda/trans/dict/DictTranslate.java rename to dict-trans-core/src/main/java/com/aizuda/trans/dict/DictTranslate.java diff --git a/src/main/java/com/aizuda/trans/enums/EnumPool.java b/dict-trans-core/src/main/java/com/aizuda/trans/enums/EnumPool.java similarity index 100% rename from src/main/java/com/aizuda/trans/enums/EnumPool.java rename to dict-trans-core/src/main/java/com/aizuda/trans/enums/EnumPool.java diff --git a/src/main/java/com/aizuda/trans/enums/FormatType.java b/dict-trans-core/src/main/java/com/aizuda/trans/enums/FormatType.java similarity index 100% rename from src/main/java/com/aizuda/trans/enums/FormatType.java rename to dict-trans-core/src/main/java/com/aizuda/trans/enums/FormatType.java diff --git a/src/main/java/com/aizuda/trans/enums/IEnum.java b/dict-trans-core/src/main/java/com/aizuda/trans/enums/IEnum.java similarity index 100% rename from src/main/java/com/aizuda/trans/enums/IEnum.java rename to dict-trans-core/src/main/java/com/aizuda/trans/enums/IEnum.java diff --git a/src/main/java/com/aizuda/trans/json/IJsonConvert.java b/dict-trans-core/src/main/java/com/aizuda/trans/json/IJsonConvert.java similarity index 100% rename from src/main/java/com/aizuda/trans/json/IJsonConvert.java rename to dict-trans-core/src/main/java/com/aizuda/trans/json/IJsonConvert.java diff --git a/src/main/java/com/aizuda/trans/json/JSONConvert.java b/dict-trans-core/src/main/java/com/aizuda/trans/json/JSONConvert.java similarity index 100% rename from src/main/java/com/aizuda/trans/json/JSONConvert.java rename to dict-trans-core/src/main/java/com/aizuda/trans/json/JSONConvert.java diff --git a/src/main/java/com/aizuda/trans/service/DictTranslateService.java b/dict-trans-core/src/main/java/com/aizuda/trans/service/DictTranslateService.java similarity index 100% rename from src/main/java/com/aizuda/trans/service/DictTranslateService.java rename to dict-trans-core/src/main/java/com/aizuda/trans/service/DictTranslateService.java diff --git a/src/main/java/com/aizuda/trans/service/Translatable.java b/dict-trans-core/src/main/java/com/aizuda/trans/service/Translatable.java similarity index 100% rename from src/main/java/com/aizuda/trans/service/Translatable.java rename to dict-trans-core/src/main/java/com/aizuda/trans/service/Translatable.java diff --git a/src/main/java/com/aizuda/trans/util/LambdaUtil.java b/dict-trans-core/src/main/java/com/aizuda/trans/util/LambdaUtil.java similarity index 100% rename from src/main/java/com/aizuda/trans/util/LambdaUtil.java rename to dict-trans-core/src/main/java/com/aizuda/trans/util/LambdaUtil.java diff --git a/src/main/java/com/aizuda/trans/util/NameUtil.java b/dict-trans-core/src/main/java/com/aizuda/trans/util/NameUtil.java similarity index 79% rename from src/main/java/com/aizuda/trans/util/NameUtil.java rename to dict-trans-core/src/main/java/com/aizuda/trans/util/NameUtil.java index cc1bf15..c74dafa 100644 --- a/src/main/java/com/aizuda/trans/util/NameUtil.java +++ b/dict-trans-core/src/main/java/com/aizuda/trans/util/NameUtil.java @@ -3,6 +3,7 @@ package com.aizuda.trans.util; import com.aizuda.trans.enums.FormatType; import java.util.List; +import java.util.stream.Collectors; /** * 名字工具类 @@ -42,16 +43,13 @@ public class NameUtil { /** * 解析驼峰 * - * @param params 参数个数 - * @param type 类型 + * @param paramList 参数个数 + * @param type 类型 * @return {@link List }<{@link String }> * @author nn200433 */ - public static List parseCamelTo(List params, FormatType type) { - for (String param : params) { - param = parseCamelTo(param, type); - } - return params; + public static List parseCamelTo(List paramList, final FormatType type) { + return paramList.stream().map(s -> parseCamelTo(s, type)).collect(Collectors.toList()); } } diff --git a/dict-trans-demo/pom.xml b/dict-trans-demo/pom.xml new file mode 100644 index 0000000..3d086ec --- /dev/null +++ b/dict-trans-demo/pom.xml @@ -0,0 +1,70 @@ + + + 4.0.0 + + com.aizuda + dict-trans + ${revision} + + + com.aizuda + dict-trans-demo + + + UTF-8 + + + + + org.springframework.boot + spring-boot-starter-web + + + + + org.springframework.boot + spring-boot-starter-test + + + + junit + junit + test + + + + + com.aizuda + dict-trans-spring-boot-starter + ${revision} + + + + + org.projectlombok + lombok + + + + + cn.hutool + hutool-all + + + + + mysql + mysql-connector-java + + + + + com.baomidou + mybatis-plus-boot-starter + + + + + \ No newline at end of file diff --git a/src/main/java/com/aizuda/trans/TranslatorBootApplication.java b/dict-trans-demo/src/main/java/com/aizuda/trans/TranslatorBootApplication.java similarity index 80% rename from src/main/java/com/aizuda/trans/TranslatorBootApplication.java rename to dict-trans-demo/src/main/java/com/aizuda/trans/TranslatorBootApplication.java index fda8fd8..5766702 100644 --- a/src/main/java/com/aizuda/trans/TranslatorBootApplication.java +++ b/dict-trans-demo/src/main/java/com/aizuda/trans/TranslatorBootApplication.java @@ -2,7 +2,6 @@ package com.aizuda.trans; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.context.annotation.Import; /** @@ -12,7 +11,6 @@ import org.springframework.context.annotation.Import; * @date 2022-12-16 11:30:52 */ @SpringBootApplication -@Import(cn.hutool.extra.spring.SpringUtil.class) public class TranslatorBootApplication { public static void main(String[] args) { diff --git a/dict-trans-demo/src/main/java/com/aizuda/trans/controller/TestController.java b/dict-trans-demo/src/main/java/com/aizuda/trans/controller/TestController.java new file mode 100644 index 0000000..b812b14 --- /dev/null +++ b/dict-trans-demo/src/main/java/com/aizuda/trans/controller/TestController.java @@ -0,0 +1,28 @@ +package com.aizuda.trans.controller; + +import com.aizuda.trans.annotation.Translator; +import com.aizuda.trans.demo.DemoService; +import com.aizuda.trans.entity.Result; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.http.HttpServletResponse; + +@Slf4j +@RestController +@RequestMapping("test") +public class TestController { + + @Autowired + private DemoService demoService; + + @GetMapping("test") + @Translator + public Result test(HttpServletResponse response) { + return Result.builder().status(200).data(demoService.responseNestedMock()).build(); + } + +} \ No newline at end of file diff --git a/src/test/java/com/aizuda/trans/demo/DemoService.java b/dict-trans-demo/src/main/java/com/aizuda/trans/demo/DemoService.java similarity index 69% rename from src/test/java/com/aizuda/trans/demo/DemoService.java rename to dict-trans-demo/src/main/java/com/aizuda/trans/demo/DemoService.java index 978aea4..a508dca 100644 --- a/src/test/java/com/aizuda/trans/demo/DemoService.java +++ b/dict-trans-demo/src/main/java/com/aizuda/trans/demo/DemoService.java @@ -1,9 +1,6 @@ package com.aizuda.trans.demo; -import com.aizuda.trans.entity.Device; -import com.aizuda.trans.entity.People; -import com.aizuda.trans.entity.People2; -import com.aizuda.trans.entity.People3; +import com.aizuda.trans.entity.*; import java.util.List; @@ -46,5 +43,21 @@ public interface DemoService { * @author nn200433 */ public List jsonDemo(); - + + /** + * 响应嵌套模拟 + * + * @return {@link List }<{@link People }> + * @author nn200433 + */ + public List responseNestedMock(); + + /** + * 响应嵌套模拟 + * + * @return {@link Result } + * @author nn200433 + */ + public Result responseNestedMockTest(); + } diff --git a/src/test/java/com/aizuda/trans/demo/impl/CustomerTranslateServiceImpl.java b/dict-trans-demo/src/main/java/com/aizuda/trans/demo/impl/CustomerTranslateServiceImpl.java similarity index 100% rename from src/test/java/com/aizuda/trans/demo/impl/CustomerTranslateServiceImpl.java rename to dict-trans-demo/src/main/java/com/aizuda/trans/demo/impl/CustomerTranslateServiceImpl.java diff --git a/src/test/java/com/aizuda/trans/demo/impl/DemoServiceImpl.java b/dict-trans-demo/src/main/java/com/aizuda/trans/demo/impl/DemoServiceImpl.java similarity index 66% rename from src/test/java/com/aizuda/trans/demo/impl/DemoServiceImpl.java rename to dict-trans-demo/src/main/java/com/aizuda/trans/demo/impl/DemoServiceImpl.java index 6d50a59..992fd1c 100644 --- a/src/test/java/com/aizuda/trans/demo/impl/DemoServiceImpl.java +++ b/dict-trans-demo/src/main/java/com/aizuda/trans/demo/impl/DemoServiceImpl.java @@ -3,10 +3,7 @@ package com.aizuda.trans.demo.impl; import cn.hutool.core.collection.CollUtil; import com.aizuda.trans.annotation.Translator; import com.aizuda.trans.demo.DemoService; -import com.aizuda.trans.entity.Device; -import com.aizuda.trans.entity.People; -import com.aizuda.trans.entity.People2; -import com.aizuda.trans.entity.People3; +import com.aizuda.trans.entity.*; import org.springframework.stereotype.Component; import java.util.List; @@ -51,5 +48,24 @@ public class DemoServiceImpl implements DemoService { People3 woman = People3.builder().id("2").json("[{\"a\":\"b\",\"c\":6},{\"d\":\"f\",\"e\":{\"a\":\"6\"}}]").build(); return CollUtil.newArrayList(man, woman); } - + + @Override + public List responseNestedMock() { + // 设备 + Device man_d1 = Device.builder().status("1").build(); + Device woman_d2 = Device.builder().status("2").build(); + // 人 + People man = People.builder().sex("1").id("1").phone("18612345678").device(man_d1).build(); + People woman = People.builder().sex("2").id("2").phone("18612345678").device(woman_d2).build(); + // 丢到响应数据里头,响应的真实数据由 ResultUnWrapper 类获取到 + return CollUtil.newArrayList(man, woman); + } + + @Translator + @Override + public Result responseNestedMockTest() { + return Result.builder().status(200).data(responseNestedMock()).build(); + } + + } diff --git a/dict-trans-demo/src/main/java/com/aizuda/trans/demo/impl/ResultUnWrapper.java b/dict-trans-demo/src/main/java/com/aizuda/trans/demo/impl/ResultUnWrapper.java new file mode 100644 index 0000000..96fa934 --- /dev/null +++ b/dict-trans-demo/src/main/java/com/aizuda/trans/demo/impl/ResultUnWrapper.java @@ -0,0 +1,21 @@ +package com.aizuda.trans.demo.impl; + +import com.aizuda.trans.entity.Result; +import com.aizuda.trans.service.UnWrapper; +import org.springframework.stereotype.Component; + +/** + * 结果解包器 + * + * @author nn200433 + * @date 2023-05-25 025 14:48:43 + */ +@Component +public class ResultUnWrapper implements UnWrapper> { + + @Override + public Object unWrap(Result source) { + return source.getData(); + } + +} diff --git a/src/test/java/com/aizuda/trans/dict/CustomerDictImpl.java b/dict-trans-demo/src/main/java/com/aizuda/trans/dict/CustomerDictImpl.java similarity index 100% rename from src/test/java/com/aizuda/trans/dict/CustomerDictImpl.java rename to dict-trans-demo/src/main/java/com/aizuda/trans/dict/CustomerDictImpl.java diff --git a/src/test/java/com/aizuda/trans/entity/Device.java b/dict-trans-demo/src/main/java/com/aizuda/trans/entity/Device.java similarity index 100% rename from src/test/java/com/aizuda/trans/entity/Device.java rename to dict-trans-demo/src/main/java/com/aizuda/trans/entity/Device.java diff --git a/src/test/java/com/aizuda/trans/entity/Dict.java b/dict-trans-demo/src/main/java/com/aizuda/trans/entity/Dict.java similarity index 100% rename from src/test/java/com/aizuda/trans/entity/Dict.java rename to dict-trans-demo/src/main/java/com/aizuda/trans/entity/Dict.java diff --git a/src/test/java/com/aizuda/trans/entity/People.java b/dict-trans-demo/src/main/java/com/aizuda/trans/entity/People.java similarity index 92% rename from src/test/java/com/aizuda/trans/entity/People.java rename to dict-trans-demo/src/main/java/com/aizuda/trans/entity/People.java index 4a484c2..c2eaeaa 100644 --- a/src/test/java/com/aizuda/trans/entity/People.java +++ b/dict-trans-demo/src/main/java/com/aizuda/trans/entity/People.java @@ -2,6 +2,7 @@ package com.aizuda.trans.entity; import com.aizuda.trans.annotation.Dictionary; import com.aizuda.trans.annotation.Translate; +import com.aizuda.trans.annotation.Translator; import com.aizuda.trans.constants.DesensitizedTypeConstants; import com.aizuda.trans.demo.impl.CustomerTranslateServiceImpl; import com.aizuda.trans.desensitized.Desensitized; @@ -36,5 +37,8 @@ public class People { private String id; private String name; + + @Translator + private Device device; } diff --git a/src/test/java/com/aizuda/trans/entity/People2.java b/dict-trans-demo/src/main/java/com/aizuda/trans/entity/People2.java similarity index 98% rename from src/test/java/com/aizuda/trans/entity/People2.java rename to dict-trans-demo/src/main/java/com/aizuda/trans/entity/People2.java index 857cba4..e0e2896 100644 --- a/src/test/java/com/aizuda/trans/entity/People2.java +++ b/dict-trans-demo/src/main/java/com/aizuda/trans/entity/People2.java @@ -7,7 +7,7 @@ import lombok.Data; import lombok.NoArgsConstructor; /** - * 人 + * 人2 * * @author nn200433 * @date 2022-12-16 016 11:40:30 diff --git a/src/test/java/com/aizuda/trans/entity/People3.java b/dict-trans-demo/src/main/java/com/aizuda/trans/entity/People3.java similarity index 100% rename from src/test/java/com/aizuda/trans/entity/People3.java rename to dict-trans-demo/src/main/java/com/aizuda/trans/entity/People3.java diff --git a/dict-trans-demo/src/main/java/com/aizuda/trans/entity/Result.java b/dict-trans-demo/src/main/java/com/aizuda/trans/entity/Result.java new file mode 100644 index 0000000..1a8eb62 --- /dev/null +++ b/dict-trans-demo/src/main/java/com/aizuda/trans/entity/Result.java @@ -0,0 +1,26 @@ +package com.aizuda.trans.entity; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 响应结果 + * + * @author nn200433 + * @date 2023-05-25 025 14:47:50 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class Result { + + /** 状态 */ + private Integer status; + + /** 数据 */ + private R data; + +} diff --git a/src/test/java/com/aizuda/trans/entity/UserDB.java b/dict-trans-demo/src/main/java/com/aizuda/trans/entity/UserDB.java similarity index 100% rename from src/test/java/com/aizuda/trans/entity/UserDB.java rename to dict-trans-demo/src/main/java/com/aizuda/trans/entity/UserDB.java diff --git a/src/test/java/com/aizuda/trans/enums/DeviceStatus.java b/dict-trans-demo/src/main/java/com/aizuda/trans/enums/DeviceStatus.java similarity index 100% rename from src/test/java/com/aizuda/trans/enums/DeviceStatus.java rename to dict-trans-demo/src/main/java/com/aizuda/trans/enums/DeviceStatus.java diff --git a/src/test/resources/application.yml b/dict-trans-demo/src/main/resources/application.yml similarity index 100% rename from src/test/resources/application.yml rename to dict-trans-demo/src/main/resources/application.yml diff --git a/src/test/java/com/aizuda/trans/TranslatorTest.java b/dict-trans-demo/src/test/java/com/aizuda/trans/TranslatorTest.java similarity index 61% rename from src/test/java/com/aizuda/trans/TranslatorTest.java rename to dict-trans-demo/src/test/java/com/aizuda/trans/TranslatorTest.java index ce3cf96..0fe9982 100644 --- a/src/test/java/com/aizuda/trans/TranslatorTest.java +++ b/dict-trans-demo/src/test/java/com/aizuda/trans/TranslatorTest.java @@ -1,11 +1,9 @@ package com.aizuda.trans; import cn.hutool.core.lang.Console; +import cn.hutool.json.JSONUtil; import com.aizuda.trans.demo.DemoService; -import com.aizuda.trans.entity.Device; -import com.aizuda.trans.entity.People; -import com.aizuda.trans.entity.People2; -import com.aizuda.trans.entity.People3; +import com.aizuda.trans.entity.*; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; @@ -23,32 +21,38 @@ import java.util.List; @SpringBootTest @RunWith(SpringRunner.class) public class TranslatorTest { - + @Autowired private DemoService demoService; - + @Test public void demo1() { List peopleList = demoService.dictDemo(); - Console.log("---> 字典 & 脱敏 翻译结果:{}", peopleList); + Console.log("---> 字典 & 脱敏 翻译结果:{}", JSONUtil.toJsonStr(peopleList)); } - + @Test public void demo2() { List deviceList = demoService.enumDemo(); - Console.log("---> 枚举 翻译结果:{}", deviceList); + Console.log("---> 枚举 翻译结果:{}", JSONUtil.toJsonStr(deviceList)); } - + @Test public void demo3() { List peopleList = demoService.dbDemo(); - Console.log("---> 数据库 翻译结果:{}", peopleList); + Console.log("---> 数据库 翻译结果:{}", JSONUtil.toJsonStr(peopleList)); } - + @Test public void demo4() { List peopleList = demoService.jsonDemo(); - Console.log("---> json 翻译结果:{}", peopleList); + Console.log("---> json 翻译结果:{}", JSONUtil.toJsonStr(peopleList)); } - + + @Test + public void demo5() { + Result result = demoService.responseNestedMockTest(); + Console.log("---> 响应嵌套数据:{}", JSONUtil.toJsonStr(result)); + } + } diff --git a/dict-trans-spring-boot-starter/pom.xml b/dict-trans-spring-boot-starter/pom.xml new file mode 100644 index 0000000..3fd0780 --- /dev/null +++ b/dict-trans-spring-boot-starter/pom.xml @@ -0,0 +1,55 @@ + + + 4.0.0 + + com.aizuda + dict-trans + ${revision} + + + com.aizuda + dict-trans-spring-boot-starter + + + UTF-8 + + + + + + + com.aizuda + dict-trans-core + ${revision} + + + + + cn.hutool + hutool-all + true + + + + com.baomidou + mybatis-plus-boot-starter + true + + + + + org.springframework.boot + spring-boot-starter-aop + + + + + org.projectlombok + lombok + + + + + \ No newline at end of file diff --git a/dict-trans-spring-boot-starter/src/main/java/com/aizuda/trans/aspect/TranslateAspect.java b/dict-trans-spring-boot-starter/src/main/java/com/aizuda/trans/aspect/TranslateAspect.java new file mode 100644 index 0000000..30599e8 --- /dev/null +++ b/dict-trans-spring-boot-starter/src/main/java/com/aizuda/trans/aspect/TranslateAspect.java @@ -0,0 +1,43 @@ +package com.aizuda.trans.aspect; + +import com.aizuda.trans.handler.TranslatorHandle; +import lombok.extern.slf4j.Slf4j; +import org.aspectj.lang.JoinPoint; +import org.aspectj.lang.annotation.AfterReturning; +import org.aspectj.lang.annotation.Aspect; +import org.aspectj.lang.annotation.Pointcut; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.core.convert.support.GenericConversionService; +import org.springframework.stereotype.Component; + +/** + * 字典翻译 在方法上定义@Tanslator注解,对方法返回值进行翻译 + * + * @author nn200433 + * @date 2023-05-25 04:21:27 + */ +@Slf4j +@Aspect +@Component +public class TranslateAspect { + + @Autowired + private GenericConversionService genericConversionService; + + @Pointcut("@annotation(com.aizuda.trans.annotation.Translator)") + public void pointCut() { + } + + @AfterReturning(pointcut = "pointCut()", returning = "returnValue") + public void doAfter(JoinPoint joinPoint, Object returnValue) { + if (null == returnValue) { + return; + } + // MethodSignature signature = (MethodSignature) joinPoint.getSignature(); + // Translator config = signature.getMethod().getAnnotation(Translator.class); + + // 先从容器中获取的转换器进行返回值解包,注意此处返回结果可能是Bean也可能是集合。然后再进行翻译 + TranslatorHandle.transform(genericConversionService.convert(returnValue, Object.class)); + } + +} diff --git a/src/main/java/com/aizuda/trans/config/TranslatorConfig.java b/dict-trans-spring-boot-starter/src/main/java/com/aizuda/trans/config/TranslatorConfig.java similarity index 53% rename from src/main/java/com/aizuda/trans/config/TranslatorConfig.java rename to dict-trans-spring-boot-starter/src/main/java/com/aizuda/trans/config/TranslatorConfig.java index fda3119..42cc6bd 100644 --- a/src/main/java/com/aizuda/trans/config/TranslatorConfig.java +++ b/dict-trans-spring-boot-starter/src/main/java/com/aizuda/trans/config/TranslatorConfig.java @@ -2,9 +2,11 @@ package com.aizuda.trans.config; import com.aizuda.trans.service.DictTranslateService; import com.aizuda.trans.service.impl.DefaultDictTranslateServiceImpl; +import com.aizuda.trans.service.impl.wrapper.IPageUnWrapper; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Import; /** * 翻译配置 @@ -13,12 +15,30 @@ import org.springframework.context.annotation.Configuration; * @date 2022-08-18 018 16:37:42 */ @Configuration +@Import(cn.hutool.extra.spring.SpringUtil.class) public class TranslatorConfig { - + + /** + * 注册字典翻译服务默认实现 + * + * @return {@link DictTranslateService } + * @author nn200433 + */ @Bean @ConditionalOnMissingBean public DictTranslateService dictTranslateService() { return new DefaultDictTranslateServiceImpl(); } - + + /** + * 注册IPage解包器 + * + * @return {@link IPageUnWrapper }<{@link Object }> + * @author nn200433 + */ + @Bean + public IPageUnWrapper iPageUnWrapper() { + return new IPageUnWrapper(); + } + } diff --git a/src/main/java/com/aizuda/trans/handler/TranslatorHandle.java b/dict-trans-spring-boot-starter/src/main/java/com/aizuda/trans/handler/TranslatorHandle.java similarity index 77% rename from src/main/java/com/aizuda/trans/handler/TranslatorHandle.java rename to dict-trans-spring-boot-starter/src/main/java/com/aizuda/trans/handler/TranslatorHandle.java index b7e03a6..9a0c4db 100644 --- a/src/main/java/com/aizuda/trans/handler/TranslatorHandle.java +++ b/dict-trans-spring-boot-starter/src/main/java/com/aizuda/trans/handler/TranslatorHandle.java @@ -1,5 +1,6 @@ package com.aizuda.trans.handler; +import cn.hutool.core.annotation.AnnotationUtil; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.convert.Convert; import cn.hutool.core.lang.Assert; @@ -8,6 +9,7 @@ import cn.hutool.extra.spring.SpringUtil; import cn.hutool.json.JSONUtil; import com.aizuda.trans.annotation.Dictionary; import com.aizuda.trans.annotation.Translate; +import com.aizuda.trans.annotation.Translator; import com.aizuda.trans.desensitized.IDesensitized; import com.aizuda.trans.dict.DictTranslate; import com.aizuda.trans.enums.FormatType; @@ -16,8 +18,6 @@ import com.aizuda.trans.json.IJsonConvert; import com.aizuda.trans.service.Translatable; import com.aizuda.trans.service.impl.*; import com.aizuda.trans.util.NameUtil; -import com.baomidou.mybatisplus.core.metadata.IPage; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; import sun.reflect.annotation.AnnotationType; @@ -47,107 +47,65 @@ public class TranslatorHandle { * 翻译Map或Entity或Page * * @param origin 需要翻译的数据 - * @param clazz 指定翻译的模板class,可传多个 * @param Map或Entity * @return origin */ - public static T parse(T origin, Class... clazz) { + public static T transform(T origin) { if (origin == null) { return null; } - if (origin instanceof List) { - return (T) parse((List) origin, clazz); + if (origin instanceof Collection) { + return (T) parse((Collection) origin); } else if (origin instanceof Map) { Map m = (Map) origin; Collection values = m.values(); // 查询不为基本类型的数量 - long count = values.stream().filter(v -> !ClassUtil.isSimpleTypeOrArray(ClassUtil.getClass(v))).count(); + final long count = values.stream().filter(v -> !ClassUtil.isSimpleTypeOrArray(ClassUtil.getClass(v))).count(); if (values.size() == count) { - for (Map.Entry entry : m.entrySet()) { + for (final Map.Entry entry : m.entrySet()) { Object value = entry.getValue(); - // 跳过空对象 - if (ObjectUtil.isNull(value)) { + if (ObjUtil.isNull(value)) { continue; } - Class classType = ClassUtil.getClass(value); - value = parse(Collections.singletonList(value), classType).get(0); + value = CollUtil.getFirst(parse(Collections.singletonList(value))); } return (T) m; } - } else if (origin instanceof IPage) { - Page p = (Page) origin; - p.setRecords(parse(p.getRecords(), clazz)); - return (T) p; } - return parse(Collections.singletonList(origin), clazz).get(0); + return CollUtil.getFirst(parse(Collections.singletonList(origin))); } /** * 翻译集合 集合元素为Map或Entity - *

- * 注意: 如果不指定class,默认使用List中元素的class上配置的翻译规则进行翻译 当List集合元素不为Entity类型时,class参数至少需要指定1个 * - * @param origins 待翻译数据集合 - * @param classes 配置了翻译规则的Entity类型,可传多个 + * @param originList 待翻译数据集合 * @param 支持Entity或者Map * @return List */ - public static List parse(List origins, Class... classes) { - if (CollUtil.isEmpty(origins)) { - return origins; + public static Collection parse(Collection originList) { + if (CollUtil.isEmpty(originList)) { + return originList; } // 源数据中属性的格式(大写下划线,小写下划线,驼峰) - final FormatType fieldFormatType = getFieldType(origins); - // 获取数据类型 - classes = (classes.length != 0 && classes[0] != void.class) ? classes : new Class[]{origins.get(0).getClass()}; - // 获取类中需要翻译的属性 - final List translateFieldList = Stream.of(classes) - .map(c -> ReflectUtil.getFields(c)) - .flatMap(Stream::of) - .filter(field -> field.isAnnotationPresent(Translate.class)) - .collect(Collectors.toList()); - - for (Field field : translateFieldList) { - // 1.获取要翻译的属性名 - final String fName = field.getName(); - final String fieldName = NameUtil.parseCamelTo(fName, fieldFormatType); - // 2.获取每个待翻译属性的配置 - final Translate translateConfig = field.getAnnotation(Translate.class); - final Class dictClass = getDictClass(translateConfig); - final List writeFieldList = NameUtil.parseCamelTo(getTranslateFieldName(translateConfig, fName), - fieldFormatType); - final String groupValue = translateConfig.groupValue(); - final String conditionField = translateConfig.conditionField(); - final String desensitizedModel = translateConfig.desensitizedModel(); - final Dictionary dictionaryConfig = handle(dictClass, translateConfig); - final boolean isJsonConvert = IJsonConvert.class.isAssignableFrom(dictClass); - - for (T origin : origins) { - // 获取未翻译的原值,如果值为空则跳过 - String originValue = Convert.toStr(getProperty(origin, fieldName)); - if (originValue == null) { - continue; - } - - // 获取条件字段值 - String conditionFieldValue = null; - if (StrUtil.isNotBlank(conditionField)) { - conditionFieldValue = Convert.toStr(getProperty(origin, conditionField)); - } - - // 获取翻译结果并脱敏处理 - List translateValueList = parse(originValue, dictionaryConfig, dictClass, groupValue, conditionFieldValue); - if (!isJsonConvert) { - // 不是 JsonConvert.class 时可进行脱敏 - translateValueList = desensitizedHandle(desensitizedModel, translateValueList); - } - - // 将翻译结果填入翻译展示字段 - setProperty(origin, isJsonConvert, fieldName, writeFieldList, translateValueList); - } - } - return origins; + final FormatType fieldFormatType = getFieldType(originList); + + // 翻译数据 + originList.forEach(bean -> { + final Class beanClass = bean.getClass(); + final Field[] declaredFields = ReflectUtil.getFields(beanClass); + // 循环处理需要转换的字段,字段上的注解链上需要有@Transform,且字段类型必须为String + Arrays.stream(declaredFields) + // 只转换String类型的属性,其他类型的属性代表是嵌套情况需要过滤掉,后面处理 + .filter(field -> field.getType() == String.class && AnnotationUtil.hasAnnotation(field, Translate.class)) + .forEach(field -> transformField(bean, fieldFormatType, field)); + // 转换嵌套字段,字段上需要标注@Transform且字段类型不为String(递归转换) + Arrays.stream(declaredFields) + .filter(field -> field.getType() != String.class && field.isAnnotationPresent(Translator.class)) + .forEach(field -> transform(ReflectUtil.invoke(bean, ReflectUtil.getMethodByName(beanClass, "get" + StrUtil.upperFirst(field.getName()))))); + }); + + return originList; } /** @@ -170,7 +128,52 @@ public class TranslatorHandle { return CollUtil.defaultIfEmpty(translator.translate(groupValue, conditionValue, originValue, dictionaryConfig, dictClass), Collections.emptyList()); } - + + /** + * 翻译字段 + * + * @param origin 源 + * @param fieldFormatType 字段格式类型 + * @param field 字段 + * @author nn200433 + */ + private static void transformField(T origin, FormatType fieldFormatType, Field field) { + // 1.获取要翻译的属性名 + final String fName = field.getName(); + final String fieldName = NameUtil.parseCamelTo(fName, fieldFormatType); + // 2.获取每个待翻译属性的配置 + final Translate translateConfig = field.getAnnotation(Translate.class); + final Class dictClass = getDictClass(translateConfig); + final List writeFieldList = NameUtil.parseCamelTo(getTranslateFieldName(translateConfig, fName), fieldFormatType); + final String groupValue = translateConfig.groupValue(); + final String conditionField = translateConfig.conditionField(); + final String desensitizedModel = translateConfig.desensitizedModel(); + final Dictionary dictionaryConfig = handle(dictClass, translateConfig); + final boolean isJsonConvert = IJsonConvert.class.isAssignableFrom(dictClass); + + // 获取未翻译的原值,如果值为空则跳过 + String originValue = Convert.toStr(getProperty(origin, fieldName)); + if (originValue == null) { + return; + } + + // 获取条件字段值 + String conditionFieldValue = null; + if (StrUtil.isNotBlank(conditionField)) { + conditionFieldValue = Convert.toStr(getProperty(origin, conditionField)); + } + + // 获取翻译结果并脱敏处理 + List translateValList = parse(originValue, dictionaryConfig, dictClass, groupValue, conditionFieldValue); + if (!isJsonConvert) { + // 不是 JsonConvert.class 时可进行脱敏 + translateValList = desensitizedHandle(desensitizedModel, translateValList); + } + + // 将翻译结果填入翻译展示字段 + setProperty(origin, isJsonConvert, fieldName, writeFieldList, translateValList); + } + /** * 判断源数据中的属性格式类型 * @@ -178,8 +181,8 @@ public class TranslatorHandle { * @return {@link FormatType } * @author nn200433 */ - private static FormatType getFieldType(List origins) { - T element = origins.get(0); + private static FormatType getFieldType(Collection origins) { + final T element = CollUtil.getFirst(origins); if (Map.class.isAssignableFrom(element.getClass())) { Set keySet = ((Map) element).keySet(); for (String key : keySet) { diff --git a/dict-trans-spring-boot-starter/src/main/java/com/aizuda/trans/service/UnWrapper.java b/dict-trans-spring-boot-starter/src/main/java/com/aizuda/trans/service/UnWrapper.java new file mode 100644 index 0000000..c16973d --- /dev/null +++ b/dict-trans-spring-boot-starter/src/main/java/com/aizuda/trans/service/UnWrapper.java @@ -0,0 +1,36 @@ +package com.aizuda.trans.service; + + +import lombok.NonNull; +import org.springframework.core.convert.converter.Converter; + +/** + * 解包器 + * + * @author nn200433 + * @date 2023-05-25 025 09:48:33 + */ +public interface UnWrapper extends Converter { + + /** + * 解包 + * + * @param source 源 + * @return {@link Object } 包装类内的实际对象 + * @author nn200433 + */ + public Object unWrap(T source); + + /** + * 将类型的 T 源对象转换为目标类型 Object。 + * + * @param source 要转换的源对象,它必须是非 null T 实例 + * @return {@link Object } 转换后的对象,它是 可能为 null 的 Object + * @author nn200433 + */ + @Override + public default Object convert(@NonNull T source) { + return unWrap(source); + } + +} diff --git a/src/main/java/com/aizuda/trans/service/impl/DataBaseTranslator.java b/dict-trans-spring-boot-starter/src/main/java/com/aizuda/trans/service/impl/DataBaseTranslator.java similarity index 97% rename from src/main/java/com/aizuda/trans/service/impl/DataBaseTranslator.java rename to dict-trans-spring-boot-starter/src/main/java/com/aizuda/trans/service/impl/DataBaseTranslator.java index 6b64b41..7799fdb 100644 --- a/src/main/java/com/aizuda/trans/service/impl/DataBaseTranslator.java +++ b/dict-trans-spring-boot-starter/src/main/java/com/aizuda/trans/service/impl/DataBaseTranslator.java @@ -8,13 +8,13 @@ import cn.hutool.db.Db; import cn.hutool.db.Entity; import cn.hutool.db.handler.EntityHandler; import cn.hutool.db.handler.EntityListHandler; -import cn.hutool.extra.spring.SpringUtil; import com.aizuda.trans.annotation.Dictionary; import com.aizuda.trans.enums.FormatType; import com.aizuda.trans.service.Translatable; import com.aizuda.trans.util.NameUtil; import com.baomidou.mybatisplus.annotation.TableName; import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.springframework.util.Assert; @@ -39,7 +39,8 @@ public class DataBaseTranslator implements Translatable { /** * 获取数据源 */ - private static DataSource dataSource = SpringUtil.getBean(DataSource.class); + @Autowired(required = false) + private DataSource dataSource; @Override public List translate(String groupValue, String conditionValue, String origin, Dictionary dictConfig, diff --git a/src/main/java/com/aizuda/trans/service/impl/DefaultDictTranslateServiceImpl.java b/dict-trans-spring-boot-starter/src/main/java/com/aizuda/trans/service/impl/DefaultDictTranslateServiceImpl.java similarity index 100% rename from src/main/java/com/aizuda/trans/service/impl/DefaultDictTranslateServiceImpl.java rename to dict-trans-spring-boot-starter/src/main/java/com/aizuda/trans/service/impl/DefaultDictTranslateServiceImpl.java diff --git a/src/main/java/com/aizuda/trans/service/impl/DesensitizedTranslator.java b/dict-trans-spring-boot-starter/src/main/java/com/aizuda/trans/service/impl/DesensitizedTranslator.java similarity index 100% rename from src/main/java/com/aizuda/trans/service/impl/DesensitizedTranslator.java rename to dict-trans-spring-boot-starter/src/main/java/com/aizuda/trans/service/impl/DesensitizedTranslator.java diff --git a/src/main/java/com/aizuda/trans/service/impl/DictCacheTranslator.java b/dict-trans-spring-boot-starter/src/main/java/com/aizuda/trans/service/impl/DictCacheTranslator.java similarity index 100% rename from src/main/java/com/aizuda/trans/service/impl/DictCacheTranslator.java rename to dict-trans-spring-boot-starter/src/main/java/com/aizuda/trans/service/impl/DictCacheTranslator.java diff --git a/src/main/java/com/aizuda/trans/service/impl/EnumTranslator.java b/dict-trans-spring-boot-starter/src/main/java/com/aizuda/trans/service/impl/EnumTranslator.java similarity index 100% rename from src/main/java/com/aizuda/trans/service/impl/EnumTranslator.java rename to dict-trans-spring-boot-starter/src/main/java/com/aizuda/trans/service/impl/EnumTranslator.java diff --git a/src/main/java/com/aizuda/trans/service/impl/JsonConvertTranslator.java b/dict-trans-spring-boot-starter/src/main/java/com/aizuda/trans/service/impl/JsonConvertTranslator.java similarity index 100% rename from src/main/java/com/aizuda/trans/service/impl/JsonConvertTranslator.java rename to dict-trans-spring-boot-starter/src/main/java/com/aizuda/trans/service/impl/JsonConvertTranslator.java diff --git a/dict-trans-spring-boot-starter/src/main/java/com/aizuda/trans/service/impl/wrapper/IPageUnWrapper.java b/dict-trans-spring-boot-starter/src/main/java/com/aizuda/trans/service/impl/wrapper/IPageUnWrapper.java new file mode 100644 index 0000000..67a4659 --- /dev/null +++ b/dict-trans-spring-boot-starter/src/main/java/com/aizuda/trans/service/impl/wrapper/IPageUnWrapper.java @@ -0,0 +1,19 @@ +package com.aizuda.trans.service.impl.wrapper; + +import com.aizuda.trans.service.UnWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; + +/** + * mybatis-plus 的 IPage 解包器 + * + * @author nn200433 + * @date 2023-05-25 025 10:02:45 + */ +public class IPageUnWrapper implements UnWrapper> { + + @Override + public Object unWrap(IPage source) { + return source.getRecords(); + } + +} diff --git a/src/main/resources/META-INF/spring.factories b/dict-trans-spring-boot-starter/src/main/resources/META-INF/spring.factories similarity index 100% rename from src/main/resources/META-INF/spring.factories rename to dict-trans-spring-boot-starter/src/main/resources/META-INF/spring.factories diff --git a/doc/imgs/demo.png b/doc/imgs/demo.png index ebc100805d0317c1b7814c135b4586947a4c044c..04173df596aa87c1ccb4b826b9770de117b8b0dc 100644 GIT binary patch literal 115708 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 Qt=|Cbk2=FDjszzD3kX?0 org.springframework.boot spring-boot-starter-parent - 2.5.13 + 2.7.12 com.aizuda dict-trans - jar - 0.2 + pom + ${revision} 4.0.0 + + dict-trans-core + dict-trans-spring-boot-starter + dict-trans-demo + + + + 0.3 - 3.5.2 + 3.5.3.1 - 5.8.8 + 5.8.18 5.1.49 - 3.8.1 3.2.0 @@ -29,54 +36,35 @@ 2.9.1 1.6.7 1.5 + 1.2.7 - + - - org.springframework.boot - spring-boot-starter-test - + + + + com.baomidou + mybatis-plus-boot-starter + ${mybatis-plus.version} + - - junit - junit - test - + + + cn.hutool + hutool-all + ${hutool.version} + - - org.projectlombok - lombok - + + + mysql + mysql-connector-java + ${mysql.version} + + - - - org.springframework.boot - spring-boot-starter-aop - - - - com.baomidou - mybatis-plus-boot-starter - ${mybatis-plus.version} - true - - - - - cn.hutool - hutool-all - ${hutool.version} - true - - - - mysql - mysql-connector-java - true - - - + dict-trans @@ -145,6 +133,12 @@ spring-boot-maven-plugin ${spring-boot.version} + + + org.codehaus.mojo + flatten-maven-plugin + ${flatten-maven-plugin.version} + org.sonatype.plugins @@ -213,6 +207,31 @@ + + + org.codehaus.mojo + flatten-maven-plugin + + true + resolveCiFriendliesOnly + + + + flatten + process-resources + + flatten + + + + flatten.clean + clean + + clean + + + + org.apache.maven.plugins diff --git a/src/main/java/com/aizuda/trans/aspect/TranslateAspect.java b/src/main/java/com/aizuda/trans/aspect/TranslateAspect.java deleted file mode 100644 index 0a5b90f..0000000 --- a/src/main/java/com/aizuda/trans/aspect/TranslateAspect.java +++ /dev/null @@ -1,40 +0,0 @@ -package com.aizuda.trans.aspect; - -import com.aizuda.trans.annotation.Translator; -import com.aizuda.trans.handler.TranslatorHandle; -import lombok.extern.slf4j.Slf4j; -import org.aspectj.lang.JoinPoint; -import org.aspectj.lang.annotation.AfterReturning; -import org.aspectj.lang.annotation.Aspect; -import org.aspectj.lang.annotation.Pointcut; -import org.aspectj.lang.reflect.MethodSignature; -import org.springframework.stereotype.Component; - -/** - * 字典翻译 - * 在方法上定义@Tanslator注解,对方法返回值进行翻译 - * - * @author luozhan - * @create 2020-04 - * @see Translator - */ -@Slf4j -@Aspect -@Component -public class TranslateAspect { - - @Pointcut("@annotation(com.aizuda.trans.annotation.Translator)") - public void pointCut() { - } - - @AfterReturning(pointcut = "pointCut()", returning = "object") - public void doAfter(JoinPoint joinPoint, Object object) { - if (null == object) { - return; - } - MethodSignature signature = (MethodSignature) joinPoint.getSignature(); - Translator config = signature.getMethod().getAnnotation(Translator.class); - TranslatorHandle.parse(object, config.value()); - } - -}