From 84458a559fe521bd60efc0e2044d6408a855f933 Mon Sep 17 00:00:00 2001 From: Houtaroy Date: Mon, 7 Nov 2022 22:58:10 +0800 Subject: [PATCH 1/7] =?UTF-8?q?refactor(=E4=BE=9D=E8=B5=96=E9=85=8D?= =?UTF-8?q?=E7=BD=AE):=20=E9=87=8D=E6=9E=84=E9=83=A8=E5=88=86=E4=BE=9D?= =?UTF-8?q?=E8=B5=96=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../koala-system-application/pom.xml | 9 -- .../koala-dependencies/pom.xml | 115 +++++++++++++++++- koala-parent/pom.xml | 108 +--------------- pom.xml | 22 ---- 4 files changed, 114 insertions(+), 140 deletions(-) diff --git a/koala-applications/koala-system-application/pom.xml b/koala-applications/koala-system-application/pom.xml index cc44ab4e..279b2e3a 100644 --- a/koala-applications/koala-system-application/pom.xml +++ b/koala-applications/koala-system-application/pom.xml @@ -52,15 +52,6 @@ org.springframework.boot spring-boot-maven-plugin - 2.6.10 - - - - repackage - build-info - - - diff --git a/koala-infrastructures/koala-dependencies/pom.xml b/koala-infrastructures/koala-dependencies/pom.xml index fc136ce5..93a24d3f 100644 --- a/koala-infrastructures/koala-dependencies/pom.xml +++ b/koala-infrastructures/koala-dependencies/pom.xml @@ -16,7 +16,7 @@ 2.0.0 - 10.0 + 10.4 2.11.0 3.6.1 1.3.35 @@ -46,7 +46,7 @@ 0.4.17 3.0.3.1 - 3.1.2 + 3.2.0 3.16.0 2.22.2 @@ -459,13 +459,124 @@ + ${project.artifactId}-${project.version} + + org.springframework.boot + spring-boot-maven-plugin + ${spring-boot.version} + + + + repackage + build-info + + + + maven-surefire-plugin ${maven-surefire-plugin.version} + + + org.codehaus.mojo + flatten-maven-plugin + ${maven-flatten-plugin.version} + true + + + + flatten + process-resources + + flatten + + + true + bom + true + + expand + remove + remove + + + + + + + org.apache.maven.plugins + maven-checkstyle-plugin + ${maven-checkstyle-plugin.version} + + rulesets/alibaba_checks.xml + true + true + true + ./checkstyle/checkstyle-suppressions.xml + checkstyle.suppressions.file + + + + checkstyle-validation + validate + + check + + + + + + cn.koala + koala-checkstyle + ${revision} + + + + + org.apache.maven.plugins + maven-pmd-plugin + ${maven-pmd-plugin.version} + + ${project.build.sourceEncoding} + ${java.version} + true + + rulesets/java/ali-comment.xml + rulesets/java/ali-concurrent.xml + rulesets/java/ali-constant.xml + rulesets/java/ali-exception.xml + rulesets/java/ali-flowcontrol.xml + rulesets/java/ali-naming.xml + rulesets/java/ali-oop.xml + rulesets/java/ali-orm.xml + rulesets/java/ali-other.xml + rulesets/java/ali-set.xml + + + + + validate + + check + + + ${basedir}/exclude-pmd.properties + + + + + + cn.koala + koala-checkstyle + ${revision} + + + + \ No newline at end of file diff --git a/koala-parent/pom.xml b/koala-parent/pom.xml index 4ba28d5f..bf0af3d1 100644 --- a/koala-parent/pom.xml +++ b/koala-parent/pom.xml @@ -6,117 +6,11 @@ koala-parent pom Koala Parent + cn.koala koala-dependencies ${revision} ../koala-infrastructures/koala-dependencies/pom.xml - - - ${project.artifactId}-${project.version} - - - org.codehaus.mojo - flatten-maven-plugin - ${maven-flatten-plugin.version} - true - - - - flatten - process-resources - - flatten - - - true - bom - true - - expand - remove - remove - - - - - - - org.apache.maven.plugins - maven-checkstyle-plugin - ${maven-checkstyle-plugin.version} - - rulesets/alibaba_checks.xml - UTF-8 - true - true - true - ./checkstyle/checkstyle-suppressions.xml - checkstyle.suppressions.file - - - - checkstyle-validation - validate - - check - - - - - - com.puppycrawl.tools - checkstyle - ${checkstyle.version} - - - cn.koala - koala-checkstyle - ${revision} - - - - - org.apache.maven.plugins - maven-pmd-plugin - ${maven-pmd-plugin.version} - - ${project.build.sourceEncoding} - ${java.version} - true - - rulesets/java/ali-comment.xml - rulesets/java/ali-concurrent.xml - rulesets/java/ali-constant.xml - rulesets/java/ali-exception.xml - rulesets/java/ali-flowcontrol.xml - rulesets/java/ali-naming.xml - rulesets/java/ali-oop.xml - rulesets/java/ali-orm.xml - rulesets/java/ali-other.xml - rulesets/java/ali-set.xml - - - - - validate - - check - - - ${basedir}/exclude-pmd.properties - - - - - - cn.koala - koala-checkstyle - ${revision} - - - - - \ No newline at end of file diff --git a/pom.xml b/pom.xml index 6bb88bb3..0edb2e3b 100644 --- a/pom.xml +++ b/pom.xml @@ -20,28 +20,6 @@ 1.2.7 - - - spring-milestones - Spring Milestones - https://repo.spring.io/milestone - - false - - - - - - - spring-milestones - Spring Milestones - https://repo.spring.io/milestone - - false - - - - koala-projects From 3cf39c8f98a598cf3e9e102423f4cfee9a7b4931 Mon Sep 17 00:00:00 2001 From: Houtaroy Date: Tue, 8 Nov 2022 15:47:17 +0800 Subject: [PATCH 2/7] =?UTF-8?q?feat(=E4=BE=9D=E8=B5=96=E9=85=8D=E7=BD=AE):?= =?UTF-8?q?=20=E9=87=8D=E6=9E=84=E5=8D=87=E7=BA=A7=E9=83=A8=E5=88=86?= =?UTF-8?q?=E4=BE=9D=E8=B5=96=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../koala-system-application/pom.xml | 5 +-- .../koala-system-spring-boot-starter/pom.xml | 4 ++ .../koala-dependencies/pom.xml | 45 ------------------- .../koala-mybatis/exclude-pmd.properties | 1 - 4 files changed, 5 insertions(+), 50 deletions(-) delete mode 100644 koala-infrastructures/koala-mybatis/exclude-pmd.properties diff --git a/koala-applications/koala-system-application/pom.xml b/koala-applications/koala-system-application/pom.xml index 279b2e3a..d07f22d2 100644 --- a/koala-applications/koala-system-application/pom.xml +++ b/koala-applications/koala-system-application/pom.xml @@ -21,10 +21,6 @@ com.alibaba druid-spring-boot-starter - - com.github.pagehelper - pagehelper-spring-boot-starter - cn.koala @@ -35,6 +31,7 @@ mysql mysql-connector-java + org.springframework.boot spring-boot-starter-test diff --git a/koala-components/koala-system-spring-boot-starter/pom.xml b/koala-components/koala-system-spring-boot-starter/pom.xml index c0f95304..68b2cea8 100644 --- a/koala-components/koala-system-spring-boot-starter/pom.xml +++ b/koala-components/koala-system-spring-boot-starter/pom.xml @@ -16,6 +16,10 @@ org.mybatis.spring.boot mybatis-spring-boot-starter + + com.github.pagehelper + pagehelper-spring-boot-starter + cn.koala diff --git a/koala-infrastructures/koala-dependencies/pom.xml b/koala-infrastructures/koala-dependencies/pom.xml index 93a24d3f..ebb0ff2f 100644 --- a/koala-infrastructures/koala-dependencies/pom.xml +++ b/koala-infrastructures/koala-dependencies/pom.xml @@ -245,11 +245,6 @@ koala-integration-mqtt-spring-boot-starter ${revision} - - cn.koala - koala-jdbc-spring-boot-starter - ${revision} - cn.koala koala-oauth2-authorization-server-spring-boot-starter @@ -275,11 +270,6 @@ koala-setting-spring-boot-starter ${revision} - - cn.koala - koala-system-management-spring-boot-starter - ${revision} - cn.koala koala-web-spring-boot-starter @@ -311,11 +301,6 @@ koala-druid ${revision} - - cn.koala - koala-eucalyptus - ${revision} - cn.koala koala-mqtt @@ -341,26 +326,11 @@ koala-system ${revision} - - cn.koala - koala-system-management - ${revision} - cn.koala koala-system-spring-boot-starter ${revision} - - cn.koala - koala-system-management-mybatis-core - ${revision} - - - cn.koala - koala-system-management-mybatis-mapper-mysql - ${revision} - cn.koala koala-template @@ -377,16 +347,6 @@ koala-database-api ${revision} - - cn.koala - koala-eucalyptus-api - ${revision} - - - cn.koala - koala-jdbc-api - ${revision} - cn.koala koala-setting-api @@ -397,11 +357,6 @@ koala-system-api ${revision} - - cn.koala - koala-system-management-api - ${revision} - cn.koala diff --git a/koala-infrastructures/koala-mybatis/exclude-pmd.properties b/koala-infrastructures/koala-mybatis/exclude-pmd.properties deleted file mode 100644 index 2823336f..00000000 --- a/koala-infrastructures/koala-mybatis/exclude-pmd.properties +++ /dev/null @@ -1 +0,0 @@ -cn.koala.mybatis.PageEnhancedHelper=AbstractClassShouldStartWithAbstractNamingRule \ No newline at end of file From 100068eb0910aa10a6c2775524bfa673021a4479 Mon Sep 17 00:00:00 2001 From: Houtaroy Date: Wed, 9 Nov 2022 20:57:01 +0800 Subject: [PATCH 3/7] =?UTF-8?q?feat(=E5=8E=9F=E5=9E=8B):=20=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E5=8E=9F=E5=9E=8B=E6=A8=A1=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 113 +++++++++---- .../cn/koala/system/PermissionApiTest.java | 2 +- .../koala-web-archetype/README.md | 51 ++++++ koala-archetypes/koala-web-archetype/pom.xml | 26 +++ .../META-INF/maven/archetype-metadata.xml | 51 ++++++ .../archetype-resources/.editorconfig | 10 ++ .../__rootArtifactId__-application/pom.xml | 33 ++++ .../src/main/java/Application.java | 21 +++ .../src/main/java/apis/ExampleApi.java | 128 +++++++++++++++ .../src/main/java/apis/ExampleApiImpl.java | 56 +++++++ .../src/main/java/entities/ExampleEntity.java | 30 ++++ .../java/repositories/ExampleRepository.java | 15 ++ .../main/java/services/ExampleService.java | 26 +++ .../src/main/resources/application.yml | 60 +++++++ .../src/main/resources/database/data.sql | 54 +++++++ .../src/main/resources/database/schema.sql | 153 ++++++++++++++++++ .../main/resources/mappers/ExampleMapper.xml | 55 +++++++ .../__rootArtifactId__-parent/pom.xml | 149 +++++++++++++++++ .../checkstyle/checkstyle-suppressions.xml | 15 ++ .../archetype-resources/lombok.config | 6 + .../resources/archetype-resources/pom.xml | 8 + koala-archetypes/pom.xml | 20 +++ .../koala-dependencies/pom.xml | 6 + pom.xml | 3 +- 24 files changed, 1058 insertions(+), 33 deletions(-) create mode 100644 koala-archetypes/koala-web-archetype/README.md create mode 100644 koala-archetypes/koala-web-archetype/pom.xml create mode 100644 koala-archetypes/koala-web-archetype/src/main/resources/META-INF/maven/archetype-metadata.xml create mode 100644 koala-archetypes/koala-web-archetype/src/main/resources/archetype-resources/.editorconfig create mode 100644 koala-archetypes/koala-web-archetype/src/main/resources/archetype-resources/__rootArtifactId__-application/pom.xml create mode 100644 koala-archetypes/koala-web-archetype/src/main/resources/archetype-resources/__rootArtifactId__-application/src/main/java/Application.java create mode 100644 koala-archetypes/koala-web-archetype/src/main/resources/archetype-resources/__rootArtifactId__-application/src/main/java/apis/ExampleApi.java create mode 100644 koala-archetypes/koala-web-archetype/src/main/resources/archetype-resources/__rootArtifactId__-application/src/main/java/apis/ExampleApiImpl.java create mode 100644 koala-archetypes/koala-web-archetype/src/main/resources/archetype-resources/__rootArtifactId__-application/src/main/java/entities/ExampleEntity.java create mode 100644 koala-archetypes/koala-web-archetype/src/main/resources/archetype-resources/__rootArtifactId__-application/src/main/java/repositories/ExampleRepository.java create mode 100644 koala-archetypes/koala-web-archetype/src/main/resources/archetype-resources/__rootArtifactId__-application/src/main/java/services/ExampleService.java create mode 100644 koala-archetypes/koala-web-archetype/src/main/resources/archetype-resources/__rootArtifactId__-application/src/main/resources/application.yml create mode 100644 koala-archetypes/koala-web-archetype/src/main/resources/archetype-resources/__rootArtifactId__-application/src/main/resources/database/data.sql create mode 100644 koala-archetypes/koala-web-archetype/src/main/resources/archetype-resources/__rootArtifactId__-application/src/main/resources/database/schema.sql create mode 100644 koala-archetypes/koala-web-archetype/src/main/resources/archetype-resources/__rootArtifactId__-application/src/main/resources/mappers/ExampleMapper.xml create mode 100644 koala-archetypes/koala-web-archetype/src/main/resources/archetype-resources/__rootArtifactId__-parent/pom.xml create mode 100644 koala-archetypes/koala-web-archetype/src/main/resources/archetype-resources/checkstyle/checkstyle-suppressions.xml create mode 100644 koala-archetypes/koala-web-archetype/src/main/resources/archetype-resources/lombok.config create mode 100644 koala-archetypes/koala-web-archetype/src/main/resources/archetype-resources/pom.xml create mode 100644 koala-archetypes/pom.xml diff --git a/README.md b/README.md index 1231c5a6..c2c877c0 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Koala 考拉 +# Koala 考拉 :koala: [English Documentation](https://github.com/koala-projects/koala/tree/main/docs/en) @@ -37,32 +37,101 @@ ## 快速开始 -### 增加仓库 +根据实际需求, 可分为如下两种使用方式: + +- [原型构建](#原型构建): 利用原型快速生成一整套项目代码, 适合从零开始搭建的业务系统 +- [组件集成](#组件集成): 使用考拉提供的多种组件, 快速增加项目功能, 适合正在编码中或已上线的业务系统 + +### 原型构建 + +1. 选择合适的原型, 列表如下: + +| 原型名称 | 原型说明 | +| ------------------------------------------------------------ | ------------------------------------------------------------ | +| [Web项目原型](https://github.com/koala-projects/koala/tree/main/koala-archetypes/koala-web-archetype) | Web项目通用原型, 标准多模块文件结构, 内置 代码检查 / 授权服务 / 系统管理 等功能 | + +2. 在Maven配置中增加第三方原型库, 修改`settings.xml`: ```xml + + + koala + + + koala-gitee + Koala Maven Repository Gitee + https://gitee.com/koala-projects/maven-repositories/raw/snapshot/ + + true + warn + + + + + +``` + +3. 使用Maven命令生成项目: + +``` +mvn archetype:generate ^ + -DarchetypeGroupId=cn.koala ^ + -DarchetypeArtifactId=koala-web-archetype ^ + -DarchetypeVersion=2022.0.1-SNAPSHOT -X ^ + -DgroupId=cn.houtaroy ^ + -DartifactId=test ^ + -Dversion=2022.0.0-SNAPSHOT ^ + -Dpackage=ch.houtaroy.test +``` + +| 参数名称 | 参数描述 | 参数示例 | +| --------------------- | -------------- | -------------------------- | +| -DarchetypeGroupId | 原型groupId | cn.koala | +| -DarchetypeArtifactId | 原型artifactId | koala-web-archetype | +| -DgroupId | 项目groupId | cn.houtaroy | +| -DartifactId | 项目artifactId | test | +| -Dversion | 项目版本 | 2022.0.0-SNAPSHOT | +| -Dpackage | 项目包名 | cn.houtaroy.test | +| ... | 原型额外参数 | 额外参数请参照原型wen'dang | + +4. 使用开发工具打开项目, 进行业务系统编码 +### 组件集成 + +1. 选择需要的组件, 列表如下: + +| 组件名称 | 组件说明 | +| ------------------------------------------------------------ | ------------------------------------------------------------ | +| [Web基础组件](https://github.com/koala-projects/koala/tree/main/koala-components/koala-web-spring-boot-starter) | 对部分通用Web功能进行集成和拓展, 例如 OpenApi接口文档 / 通用返回值 / 异常拦截 等 | +| [授权服务组件](https://github.com/koala-projects/koala/tree/main/koala-components/koala-oauth2-authorization-server-spring-boot-starter) | 基于Spring Authorization Server实现OAuth2授权服务, 拓展了密码模式 | +| [资源服务组件](https://github.com/koala-projects/koala/tree/main/koala-components/koala-oauth2-resource-server-spring-boot-starter) | 配合授权服务组件使用 | +| [系统管理组件](https://github.com/koala-projects/koala/tree/main/koala-components/koala-system-spring-boot-starter) | 实现了部分通用中后台管理功能, 例如 字典管理 / 部门管理 / 用户管理 等 | +| [数据模型组件](https://github.com/koala-projects/koala/tree/main/koala-components/koala-data-model-spring-boot-starter) | 实现了简易数据模型功能, 例如 元数据管理 / 数据管理 等 | +| [设置组件](https://github.com/koala-projects/koala/tree/main/koala-components/koala-setting-spring-boot-starter) | 实现了简易设置功能, 适用于系统配置热更新等场景 | +| [办公组件](https://github.com/koala-projects/koala/tree/main/koala-components/koala-office-spring-boot-starter) | 提供了部分办公相关辅助工具, 例如 Excel导出 / PDF读取 等 | +| [MQTT组件](https://github.com/koala-projects/koala/tree/main/koala-components/koala-integration-mqtt-spring-boot-starter) | 通过简易配置即可快速接入MQTT消息队列 | +| [钉钉组件](https://github.com/koala-projects/koala/tree/main/koala-components/koala-dingtalk-spring-boot-starter) | 整合了新旧两版钉钉SDK | + +**强烈建议您在使用组件前仔细阅读文档** + +2. 增加考拉提供的Maven仓库和依赖清单, 修改`pom.xml`: + +```xml koala koala - - https://raw.github.com/koala-projects/maven-repositories/snapshot/ - - + + https://gitee.com/koala-projects/maven-repositories/raw/snapshot/ -``` - -### 引入依赖管理 - -```xml cn.koala koala-dependencies - 2022.0.0-SNAPSHOT + 2022.0.1-SNAPSHOT pom import @@ -70,13 +139,9 @@ ``` -### 引入组件 - -1. 查看[组件列表](#组件), 选择您需要使用的组件, 仔细阅读使用文档 -1. 引入组件依赖, 例如系统管理组件: +3. 引入组件依赖, 以系统管理为例, 修改`pom.xml`: ```xml - cn.koala @@ -85,20 +150,6 @@ ``` -## 组件 - -| 组件名称 | 组件说明 | -| ------------------------------------------------------------ | ------------------------------------------------------------ | -| [Web基础组件](https://github.com/koala-projects/koala/tree/main/koala-components/koala-web-spring-boot-starter) | 对部分通用Web功能进行集成和拓展, 例如 OpenApi接口文档 / 通用返回值 / 异常拦截 等 | -| [授权服务组件](https://github.com/koala-projects/koala/tree/main/koala-components/koala-oauth2-authorization-server-spring-boot-starter) | 基于Spring Authorization Server实现OAuth2授权服务, 拓展了密码模式 | -| [资源服务组件](https://github.com/koala-projects/koala/tree/main/koala-components/koala-oauth2-resource-server-spring-boot-starter) | 配合授权服务组件使用 | -| [系统管理组件](https://github.com/koala-projects/koala/tree/main/koala-components/koala-system-spring-boot-starter) | 实现了部分通用中后台管理功能, 例如 字典管理 / 部门管理 / 用户管理 等 | -| [数据模型组件](https://github.com/koala-projects/koala/tree/main/koala-components/koala-data-model-spring-boot-starter) | 实现了简易数据模型功能, 例如 元数据管理 / 数据管理 等 | -| [设置组件](https://github.com/koala-projects/koala/tree/main/koala-components/koala-setting-spring-boot-starter) | 实现了简易设置功能, 适用于系统配置热更新等场景 | -| [办公组件](https://github.com/koala-projects/koala/tree/main/koala-components/koala-office-spring-boot-starter) | 提供了部分办公相关辅助工具, 例如 Excel导出 / PDF读取 等 | -| [MQTT组件](https://github.com/koala-projects/koala/tree/main/koala-components/koala-integration-mqtt-spring-boot-starter) | 通过简易配置即可快速接入MQTT消息队列 | -| [钉钉组件](https://github.com/koala-projects/koala/tree/main/koala-components/koala-dingtalk-spring-boot-starter) | 整合了新旧两版钉钉SDK | - ## 联系方式 如您有任何意见建议, 可以发送邮件至`koala_projects@yeah.net` diff --git a/koala-applications/koala-system-application/src/test/java/cn/koala/system/PermissionApiTest.java b/koala-applications/koala-system-application/src/test/java/cn/koala/system/PermissionApiTest.java index 060cc900..e9cd8b28 100644 --- a/koala-applications/koala-system-application/src/test/java/cn/koala/system/PermissionApiTest.java +++ b/koala-applications/koala-system-application/src/test/java/cn/koala/system/PermissionApiTest.java @@ -44,7 +44,7 @@ public void add() throws Exception { public void list() throws Exception { mockMvc.perform(get("/api/permissions")) .andExpect(status().isOk()) - .andExpect(jsonPath("$.data.content", hasSize(12))); + .andExpect(jsonPath("$.data.content", hasSize(14))); } @Test diff --git a/koala-archetypes/koala-web-archetype/README.md b/koala-archetypes/koala-web-archetype/README.md new file mode 100644 index 00000000..fa6539f0 --- /dev/null +++ b/koala-archetypes/koala-web-archetype/README.md @@ -0,0 +1,51 @@ +# Web原型 :koala: + +## 原型代码 + +`koala-web-archetype` + +## 原型结构 + +``` +business + |--business-application + |--src.main + |--java + |--apis + |--entities + |--repositories + |--services + |--Application.java + |--resources + |--database + |--data.sql + |--schema.sql + |--mappers + |--application.yml + |--pom.xml + |--business-parent + |--checkstyle + |--checkstyle-suppressions.xml + |--.editorconfig + |--lombok.config + |--pom.xml +``` + +| 目录名称 | 目录描述 | +| --------------------------- | ---------------------------- | +| apis | 接口类包, 下级为接口类文件 | +| entities | 实体类包, 下级为实体类文件 | +| repositories | 存储库包, 下级为存储库类文件 | +| services | 服务包, 下级为服务类文件 | +| Application.java | 应用启动类 | +| data.sql | 数据库数据初始化脚本 | +| schema.sql | 数据库结构初始化脚本 | +| mappers | MyBatis XML文件目录 | +| application.yml | 应用配置文件 | +| checkstyle-suppressions.xml | 代码检查忽略规则配置文件 | +| .editorconfig | 编辑器配置文件 | +| lombok.config | Lombok配置文件 | + +## 代码生成 + +[桉树](https://eucalyptus.dxl.pink/)提供了本原型适配的模板, 选择`Koala业务模板`即可生成从接口至XML的全部代码 \ No newline at end of file diff --git a/koala-archetypes/koala-web-archetype/pom.xml b/koala-archetypes/koala-web-archetype/pom.xml new file mode 100644 index 00000000..90b713ed --- /dev/null +++ b/koala-archetypes/koala-web-archetype/pom.xml @@ -0,0 +1,26 @@ + + + 4.0.0 + koala-web-archetype + 考拉网页应用原型 + maven-archetype + + + cn.koala + koala-parent + ${revision} + ../../koala-parent + + + + + + org.apache.maven.archetype + archetype-packaging + ${maven-archetype-plugin.version} + + + + diff --git a/koala-archetypes/koala-web-archetype/src/main/resources/META-INF/maven/archetype-metadata.xml b/koala-archetypes/koala-web-archetype/src/main/resources/META-INF/maven/archetype-metadata.xml new file mode 100644 index 00000000..09a56053 --- /dev/null +++ b/koala-archetypes/koala-web-archetype/src/main/resources/META-INF/maven/archetype-metadata.xml @@ -0,0 +1,51 @@ + + + + + checkstyle + + **/*.xml + + + + + + .editorconfig + .gitignore + lombok.config + README.md + + + + + + + + src/main/java + + **/*.java + + + + src/main/resources + + **/*.xml + **/*.yml + + + + src/main/resources + + **/*.sql + + + + + + + diff --git a/koala-archetypes/koala-web-archetype/src/main/resources/archetype-resources/.editorconfig b/koala-archetypes/koala-web-archetype/src/main/resources/archetype-resources/.editorconfig new file mode 100644 index 00000000..12caa86b --- /dev/null +++ b/koala-archetypes/koala-web-archetype/src/main/resources/archetype-resources/.editorconfig @@ -0,0 +1,10 @@ +[*] +charset=utf-8 +end_of_line=crlf +insert_final_newline=false +indent_style=space +indent_size=2 +[*.{js,jsx,ts,tsx,vue}] +trim_trailing_whitespace = true +insert_final_newline = true + diff --git a/koala-archetypes/koala-web-archetype/src/main/resources/archetype-resources/__rootArtifactId__-application/pom.xml b/koala-archetypes/koala-web-archetype/src/main/resources/archetype-resources/__rootArtifactId__-application/pom.xml new file mode 100644 index 00000000..fc4126ef --- /dev/null +++ b/koala-archetypes/koala-web-archetype/src/main/resources/archetype-resources/__rootArtifactId__-application/pom.xml @@ -0,0 +1,33 @@ + + + 4.0.0 + ${artifactId} + ${version} + + ${groupId} + ${rootArtifactId}-parent + ${version} + ../${rootArtifactId}-parent + + + + mysql + mysql-connector-java + + + + com.alibaba + druid-spring-boot-starter + + + com.github.pagehelper + pagehelper-spring-boot-starter + + + + cn.koala + koala-system-spring-boot-starter + + + diff --git a/koala-archetypes/koala-web-archetype/src/main/resources/archetype-resources/__rootArtifactId__-application/src/main/java/Application.java b/koala-archetypes/koala-web-archetype/src/main/resources/archetype-resources/__rootArtifactId__-application/src/main/java/Application.java new file mode 100644 index 00000000..eec19f35 --- /dev/null +++ b/koala-archetypes/koala-web-archetype/src/main/resources/archetype-resources/__rootArtifactId__-application/src/main/java/Application.java @@ -0,0 +1,21 @@ +package ${package}; + +import org.mybatis.spring.annotation.MapperScan; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +/** + * @author Houtaroy + */ +@SpringBootApplication +@MapperScan("${package}.repositories") +public class Application { + /** + * main方法 + * + * @param args 参数 + */ + public static void main(String[] args) { + SpringApplication.run(Application.class, args); + } +} diff --git a/koala-archetypes/koala-web-archetype/src/main/resources/archetype-resources/__rootArtifactId__-application/src/main/java/apis/ExampleApi.java b/koala-archetypes/koala-web-archetype/src/main/resources/archetype-resources/__rootArtifactId__-application/src/main/java/apis/ExampleApi.java new file mode 100644 index 00000000..8eab1f7b --- /dev/null +++ b/koala-archetypes/koala-web-archetype/src/main/resources/archetype-resources/__rootArtifactId__-application/src/main/java/apis/ExampleApi.java @@ -0,0 +1,128 @@ +#set( $symbol_pound = '#' ) +#set( $symbol_dollar = '$' ) +#set( $symbol_escape = '\' ) +package ${package}.apis; + +import ${package}.entities.ExampleEntity; +import cn.koala.swagger.PageableAsQueryParam; +import cn.koala.web.DataResponse; +import cn.koala.web.Response; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.enums.ParameterIn; +import io.swagger.v3.oas.annotations.media.Content; +import io.swagger.v3.oas.annotations.media.Schema; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.security.SecurityRequirement; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import java.util.Map; + +/** + * 示例表接口 + * + * @author Eucalyptus Generator + */ +@RequestMapping("/examples") +@RestController +@SecurityRequirement(name = "spring-security") +@Tag(name = "示例表管理") +public interface ExampleApi { + + /** + * 根据条件分页查询示例表 + * + * @param parameters 查询条件 + * @param pageable 分页条件 + * @return 示例表列表 + */ + @PreAuthorize("hasAuthority('examples:read')") + @Operation(summary = "根据条件分页查询示例表") + @ApiResponse(responseCode = "200", description = "成功", + content = {@Content(mediaType = "application/json", schema = @Schema(implementation = ExamplePageResult.class))} + ) + @PageableAsQueryParam + @GetMapping + DataResponse> page(@Parameter(hidden = true) @RequestParam Map parameters, + @Parameter(hidden = true) Pageable pageable); + + /** + * 查询示例表 + * + * @param id 示例主键 + * @return 示例表 + */ + @PreAuthorize("hasAuthority('examples:read')") + @Operation(summary = "根据id查询示例表") + @ApiResponse(responseCode = "200", description = "成功", + content = {@Content(mediaType = "application/json", schema = @Schema(implementation = ExampleResult.class))} + ) + @Parameter(in = ParameterIn.PATH, name = "id", description = "示例表id", schema = @Schema(type = "string")) + @GetMapping("{id}") + DataResponse load(@PathVariable("id") String id); + + /** + * 创建示例表 + * + * @param entity 示例表数据实体 + * @return 已创建的示例表 + */ + @PreAuthorize("hasAuthority('examples:write')") + @Operation(summary = "创建示例表") + @ApiResponse(responseCode = "200", description = "成功", + content = {@Content(mediaType = "application/json", schema = @Schema(implementation = ExampleResult.class))} + ) + @PostMapping + DataResponse create(@RequestBody ExampleEntity entity); + + /** + * 更新示例表 + * + * @param id 示例主键 + * @param entity 示例表数据实体 + * @return 操作结果 + */ + @PreAuthorize("hasAuthority('examples:write')") + @Operation(summary = "更新示例表") + @ApiResponse(responseCode = "200", description = "成功", + content = {@Content(mediaType = "application/json", schema = @Schema(implementation = Response.class))} + ) + @Parameter(in = ParameterIn.PATH, name = "id", description = "示例表id", schema = @Schema(type = "string")) + @PutMapping("{id}") + Response update(@PathVariable("id") String id, ExampleEntity entity); + + /** + * 删除示例表 + * + * @param id 示例主键 + * @return 操作结果 + */ + @PreAuthorize("hasAuthority('examples:write')") + @Operation(summary = "更新示例表") + @ApiResponse(responseCode = "200", description = "成功", + content = {@Content(mediaType = "application/json", schema = @Schema(implementation = Response.class))} + ) + @Parameter(in = ParameterIn.PATH, name = "id", description = "示例表id", schema = @Schema(type = "string")) + @DeleteMapping("{id}") + Response delete(@PathVariable("id") String id); + + class ExamplePageResult extends DataResponse> { + + } + + class ExampleResult extends DataResponse { + + } +} diff --git a/koala-archetypes/koala-web-archetype/src/main/resources/archetype-resources/__rootArtifactId__-application/src/main/java/apis/ExampleApiImpl.java b/koala-archetypes/koala-web-archetype/src/main/resources/archetype-resources/__rootArtifactId__-application/src/main/java/apis/ExampleApiImpl.java new file mode 100644 index 00000000..ab8283f8 --- /dev/null +++ b/koala-archetypes/koala-web-archetype/src/main/resources/archetype-resources/__rootArtifactId__-application/src/main/java/apis/ExampleApiImpl.java @@ -0,0 +1,56 @@ +#set( $symbol_pound = '#' ) +#set( $symbol_dollar = '$' ) +#set( $symbol_escape = '\' ) +package ${package}.apis; + +import ${package}.entities.ExampleEntity; +import ${package}.services.ExampleService; +import cn.koala.web.DataResponse; +import cn.koala.web.Response; +import lombok.RequiredArgsConstructor; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; +import org.springframework.web.bind.annotation.RestController; + +import java.util.Map; + +/** + * 示例表接口实现 + * + * @author Eucalyptus Generator + */ +@RestController +@RequiredArgsConstructor +public class ExampleApiImpl implements ExampleApi { + + private final ExampleService service; + + @Override + public DataResponse> page(Map parameters, Pageable pageable) { + return DataResponse.ok(service.list(parameters, pageable)); + } + + @Override + public DataResponse load(String id) { + return DataResponse.ok(service.load(id).orElse(null)); + } + + @Override + public DataResponse create(ExampleEntity entity) { + service.add(entity); + return DataResponse.ok(entity); + } + + @Override + public Response update(String id, ExampleEntity entity) { + entity.setId(id); + service.update(entity); + return Response.SUCCESS; + } + + @Override + public Response delete(String id) { + service.delete(ExampleEntity.builder().id(id).build()); + return Response.SUCCESS; + } +} diff --git a/koala-archetypes/koala-web-archetype/src/main/resources/archetype-resources/__rootArtifactId__-application/src/main/java/entities/ExampleEntity.java b/koala-archetypes/koala-web-archetype/src/main/resources/archetype-resources/__rootArtifactId__-application/src/main/java/entities/ExampleEntity.java new file mode 100644 index 00000000..065abfe8 --- /dev/null +++ b/koala-archetypes/koala-web-archetype/src/main/resources/archetype-resources/__rootArtifactId__-application/src/main/java/entities/ExampleEntity.java @@ -0,0 +1,30 @@ +#set( $symbol_pound = '#' ) +#set( $symbol_dollar = '$' ) +#set( $symbol_escape = '\' ) +package ${package}.entities; + +import cn.koala.persistence.Idable; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +/** + * 示例表数据实体 + * + * @author Eucalyptus Generator + */ +@Data +@NoArgsConstructor +@SuperBuilder(toBuilder = true) +@Schema(description = "示例表数据实体") +public class ExampleEntity implements Idable { + @Schema(description = "示例主键") + private String id; + @Schema(description = "示例代码") + private String code; + @Schema(description = "示例名称") + private String name; + @Schema(description = "示例描述") + private String description; +} diff --git a/koala-archetypes/koala-web-archetype/src/main/resources/archetype-resources/__rootArtifactId__-application/src/main/java/repositories/ExampleRepository.java b/koala-archetypes/koala-web-archetype/src/main/resources/archetype-resources/__rootArtifactId__-application/src/main/java/repositories/ExampleRepository.java new file mode 100644 index 00000000..469f78e8 --- /dev/null +++ b/koala-archetypes/koala-web-archetype/src/main/resources/archetype-resources/__rootArtifactId__-application/src/main/java/repositories/ExampleRepository.java @@ -0,0 +1,15 @@ +#set( $symbol_pound = '#' ) +#set( $symbol_dollar = '$' ) +#set( $symbol_escape = '\' ) +package ${package}.repositories; + +import ${package}.entities.ExampleEntity; +import cn.koala.mybatis.PageRepository; + +/** + * 示例表存储库 + * + * @author Eucalyptus Generator + */ +public interface ExampleRepository extends PageRepository { +} diff --git a/koala-archetypes/koala-web-archetype/src/main/resources/archetype-resources/__rootArtifactId__-application/src/main/java/services/ExampleService.java b/koala-archetypes/koala-web-archetype/src/main/resources/archetype-resources/__rootArtifactId__-application/src/main/java/services/ExampleService.java new file mode 100644 index 00000000..cf274c78 --- /dev/null +++ b/koala-archetypes/koala-web-archetype/src/main/resources/archetype-resources/__rootArtifactId__-application/src/main/java/services/ExampleService.java @@ -0,0 +1,26 @@ +#set( $symbol_pound = '#' ) +#set( $symbol_dollar = '$' ) +#set( $symbol_escape = '\' ) +package ${package}.services; + +import ${package}.entities.ExampleEntity; +import ${package}.repositories.ExampleRepository; +import cn.koala.mybatis.AbstractCrudService; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Component; + +/** + * 示例表服务 + * + * @author Eucalyptus Generator + */ +@Component +@Data +@EqualsAndHashCode(callSuper = true) +@RequiredArgsConstructor +public class ExampleService extends AbstractCrudService { + protected final ExampleRepository repository; + +} diff --git a/koala-archetypes/koala-web-archetype/src/main/resources/archetype-resources/__rootArtifactId__-application/src/main/resources/application.yml b/koala-archetypes/koala-web-archetype/src/main/resources/archetype-resources/__rootArtifactId__-application/src/main/resources/application.yml new file mode 100644 index 00000000..7e0ad4ad --- /dev/null +++ b/koala-archetypes/koala-web-archetype/src/main/resources/archetype-resources/__rootArtifactId__-application/src/main/resources/application.yml @@ -0,0 +1,60 @@ +server: + port: 9999 + servlet: + context-path: / +spring: + main: + allow-bean-definition-overriding: true + datasource: + driver-class-name: com.mysql.cj.jdbc.Driver + url: jdbc:mysql://localhost:3306/${rootArtifactId}?useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true + username: ${rootArtifactId} + password: ${rootArtifactId} + druid: #druid连接池配置 + initial-size: 5 + min-idle: 5 + max-wait: 60000 + max-active: 20 + time-between-eviction-runs-millis: 60000 + min-evictable-idle-time-millis: 300000 + validation-query: SELECT 1 + test-while-idle: true + test-on-borrow: true + test-on-return: false + pool-prepared-statements: true + max-pool-prepared-statement-per-connection-size: 20 + stat-view-servlet: + enabled: true + allow: 127.0.0.1 + login-username: koala + login-password: koala + reset-enable: true + web-stat-filter: + enabled: true + exclusions: "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*" + aop-patterns: cn.koala* + jackson: + serialization: + write-dates-as-timestamps: true + indent_output: true + fail_on_empty_beans: false + default-property-inclusion: non_empty + deserialization: + fail_on_unknown_properties: false + data: + web: + pageable: + default-page-size: 50 + max-page-size: 2000 + +mybatis: + mapper-locations: classpath*:mappers/*Mapper.xml + type-handlers-package: cn.koala.mybatis + configuration: + map-underscore-to-camel-case: true + +logging: + level: + cn.koala: debug + file: + name: logs/${rootArtifactId}-application.log \ No newline at end of file diff --git a/koala-archetypes/koala-web-archetype/src/main/resources/archetype-resources/__rootArtifactId__-application/src/main/resources/database/data.sql b/koala-archetypes/koala-web-archetype/src/main/resources/archetype-resources/__rootArtifactId__-application/src/main/resources/database/data.sql new file mode 100644 index 00000000..d28b1b21 --- /dev/null +++ b/koala-archetypes/koala-web-archetype/src/main/resources/archetype-resources/__rootArtifactId__-application/src/main/resources/database/data.sql @@ -0,0 +1,54 @@ +insert into t_department +values ('1', '1', '考拉公司', '公司午餐暂不提供桉树叶', null); +insert into t_department +values ('101', '101', '技术部', '技术部', '1'); + +insert into t_permission +values ('0', 'personal', '个人服务', '个人服务', 1), + ('101', 'dictionary:write', '字典读取', '字典读取', 1), + ('102', 'dictionary:read', '字典写入', '字典写入', 1), + ('201', 'department:read', '部门读取', '部门读取', 1), + ('202', 'department:write', '部门写入', '部门写入', 1), + ('301', 'role:read', '角色读取', '角色读取', 1), + ('302', 'role:write', '角色写入', '角色写入', 1), + ('401', 'permission:read', '权限读取', '权限读取', 1), + ('402', 'permission:write', '权限写入', '权限写入', 1), + ('501', 'user:read', '用户读取', '用户读取', 1), + ('502', 'user:write', '用户写入', '用户写入', 1), + ('9001', 'example:write', '示例读取', '示例读取', 0), + ('9002', 'example:write', '示例写入', '示例写入', 0); + +insert into t_role +values ('1', 'admin', '系统管理员', null, 1); + +insert into t_user +values ('1', 'admin', '{bcrypt}$2a$10$hG82.yWypJvj0jjJWrwACu166QkM.uLkpk/Yr8vxtKdAyqyd5wUJi', '系统管理员', null, 1); + +insert into t_user_department +values ('1', '1'), + ('1', '101'); + +insert into t_user_role +values ('1', '1'); + +insert into t_role_permission +values ('1', '0'), + ('1', '101'), + ('1', '102'), + ('1', '201'), + ('1', '202'), + ('1', '301'), + ('1', '302'), + ('1', '401'), + ('1', '402'), + ('1', '501'), + ('1', '502'), + ('1', '9001'), + ('1', '9002'); + +insert into oauth2_registered_client +values ('vue', 'vue', null, '{bcrypt}$2a$10$t0TBFeS0FuIiHxlwb0bfzuEEjmo7EQXjJykRi8UN/MHMTEW3hsPpW', null, 'vue', + 'client_secret_post,client_secret_basic', 'refresh_token,client_credentials,password,authorization_code', + 'http://localhost:9999/login/oauth2/code/client', 'all,read,write', + '{"@class":"java.util.Collections$UnmodifiableMap","settings.client.require-proof-key":false,"settings.client.require-authorization-consent":false}', + '{"@class":"java.util.Collections$UnmodifiableMap","settings.token.reuse-refresh-tokens":true,"settings.token.id-token-signature-algorithm":["org.springframework.security.oauth2.jose.jws.SignatureAlgorithm","RS256"],"settings.token.access-token-time-to-live":["java.time.Duration",86400.000000000],"settings.token.refresh-token-time-to-live":["java.time.Duration",3600.000000000]}') diff --git a/koala-archetypes/koala-web-archetype/src/main/resources/archetype-resources/__rootArtifactId__-application/src/main/resources/database/schema.sql b/koala-archetypes/koala-web-archetype/src/main/resources/archetype-resources/__rootArtifactId__-application/src/main/resources/database/schema.sql new file mode 100644 index 00000000..5aa632cf --- /dev/null +++ b/koala-archetypes/koala-web-archetype/src/main/resources/archetype-resources/__rootArtifactId__-application/src/main/resources/database/schema.sql @@ -0,0 +1,153 @@ +DROP TABLE IF EXISTS t_dictionary; +CREATE TABLE t_dictionary +( + id VARCHAR(36) NOT NULL COMMENT '主键', + code VARCHAR(50) NOT NULL COMMENT '字典代码', + name VARCHAR(20) NOT NULL COMMENT '字典名称', + description VARCHAR(500) COMMENT '字典描述', + PRIMARY KEY (id) +) COMMENT = '字典'; + +DROP TABLE IF EXISTS t_dictionary_item; +CREATE TABLE t_dictionary_item +( + id VARCHAR(36) NOT NULL COMMENT '主键', + name VARCHAR(20) COMMENT '字典项名称', + content VARCHAR(50) COMMENT '字典项内容', + dictionary_id VARCHAR(36) COMMENT '字典id', + PRIMARY KEY (id) +) COMMENT = '字典项'; + +DROP TABLE IF EXISTS t_department; +CREATE TABLE t_department +( + id VARCHAR(36) NOT NULL COMMENT '部门ID', + code VARCHAR(50) COMMENT '部门代码', + name VARCHAR(20) COMMENT '部门名称', + description VARCHAR(500) COMMENT '部门描述', + parent_id VARCHAR(36) COMMENT '上级部门ID', + PRIMARY KEY (id) +) COMMENT = '部门'; + +DROP TABLE IF EXISTS t_permission; +CREATE TABLE t_permission +( + id VARCHAR(36) NOT NULL COMMENT '主键', + code VARCHAR(50) NOT NULL COMMENT '权限代码', + name VARCHAR(20) NOT NULL COMMENT '权限名称', + description VARCHAR(500) COMMENT '权限描述', + is_system INT NOT NULL DEFAULT 0 COMMENT '是否系统', + PRIMARY KEY (id) +) COMMENT = '权限'; + +DROP TABLE IF EXISTS t_role; +CREATE TABLE t_role +( + id VARCHAR(36) NOT NULL COMMENT '角色主键', + code VARCHAR(50) NOT NULL COMMENT '角色代码', + name VARCHAR(20) NOT NULL COMMENT '角色名称', + description VARCHAR(500) COMMENT '角色描述', + is_system INT NOT NULL DEFAULT 0 COMMENT '是否系统', + PRIMARY KEY (id) +) COMMENT = '角色'; + +DROP TABLE IF EXISTS t_user; +CREATE TABLE t_user +( + id VARCHAR(36) NOT NULL COMMENT '用户ID', + username VARCHAR(50) NOT NULL COMMENT '用户登录名', + password VARCHAR(500) NOT NULL COMMENT '用户密码', + nickname VARCHAR(20) NOT NULL COMMENT '用户昵称', + avatar VARCHAR(500) COMMENT '用户头像', + is_system INT NOT NULL DEFAULT 0 COMMENT '是否系统', + PRIMARY KEY (id) +) COMMENT = '用户'; + + +DROP TABLE IF EXISTS t_user_role; +CREATE TABLE t_user_role +( + user_id VARCHAR(36) NOT NULL COMMENT '用户id', + role_id VARCHAR(36) NOT NULL COMMENT '角色id' +) COMMENT = '用户角色关系'; + +DROP TABLE IF EXISTS t_user_department; +CREATE TABLE t_user_department +( + user_id VARCHAR(36) NOT NULL COMMENT '用户ID', + department_id VARCHAR(36) NOT NULL COMMENT '部门ID' +) COMMENT = '用户部门关系'; + +DROP TABLE IF EXISTS t_role_permission; +CREATE TABLE t_role_permission +( + role_id VARCHAR(36) NOT NULL COMMENT '角色id', + permission_id VARCHAR(36) NOT NULL COMMENT '权限id' +) COMMENT = '角色权限关系'; + +DROP TABLE IF EXISTS oauth2_registered_client; +CREATE TABLE oauth2_registered_client +( + id varchar(100) NOT NULL, + client_id varchar(100) NOT NULL, + client_id_issued_at timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + client_secret varchar(200) DEFAULT NULL, + client_secret_expires_at datetime DEFAULT NULL, + client_name varchar(200) NOT NULL, + client_authentication_methods varchar(1000) NOT NULL, + authorization_grant_types varchar(1000) NOT NULL, + redirect_uris varchar(1000) DEFAULT NULL, + scopes varchar(1000) NOT NULL, + client_settings varchar(2000) NOT NULL, + token_settings varchar(2000) NOT NULL, + PRIMARY KEY (id) +); + +DROP TABLE IF EXISTS oauth2_authorization; +CREATE TABLE oauth2_authorization +( + id varchar(100) NOT NULL, + registered_client_id varchar(100) NOT NULL, + principal_name varchar(200) NOT NULL, + authorization_grant_type varchar(100) NOT NULL, + attributes blob DEFAULT NULL, + state varchar(500) DEFAULT NULL, + authorization_code_value blob DEFAULT NULL, + authorization_code_issued_at datetime DEFAULT NULL, + authorization_code_expires_at datetime DEFAULT NULL, + authorization_code_metadata blob DEFAULT NULL, + access_token_value blob DEFAULT NULL, + access_token_issued_at datetime DEFAULT NULL, + access_token_expires_at datetime DEFAULT NULL, + access_token_metadata blob DEFAULT NULL, + access_token_type varchar(100) DEFAULT NULL, + access_token_scopes varchar(1000) DEFAULT NULL, + oidc_id_token_value blob DEFAULT NULL, + oidc_id_token_issued_at datetime DEFAULT NULL, + oidc_id_token_expires_at datetime DEFAULT NULL, + oidc_id_token_metadata blob DEFAULT NULL, + refresh_token_value blob DEFAULT NULL, + refresh_token_issued_at datetime DEFAULT NULL, + refresh_token_expires_at datetime DEFAULT NULL, + refresh_token_metadata blob DEFAULT NULL, + PRIMARY KEY (id) +); + +DROP TABLE IF EXISTS oauth2_authorization_consent; +CREATE TABLE oauth2_authorization_consent +( + registered_client_id varchar(100) NOT NULL, + principal_name varchar(200) NOT NULL, + authorities varchar(1000) NOT NULL, + PRIMARY KEY (registered_client_id, principal_name) +); + +DROP TABLE IF EXISTS t_example; +CREATE TABLE t_example +( + id VARCHAR(36) NOT NULL COMMENT '示例主键', + code VARCHAR(50) NOT NULL COMMENT '示例代码', + name VARCHAR(20) NOT NULL COMMENT '示例名称', + description VARCHAR(2000) COMMENT '示例描述', + PRIMARY KEY (id) +) COMMENT = '示例表'; diff --git a/koala-archetypes/koala-web-archetype/src/main/resources/archetype-resources/__rootArtifactId__-application/src/main/resources/mappers/ExampleMapper.xml b/koala-archetypes/koala-web-archetype/src/main/resources/archetype-resources/__rootArtifactId__-application/src/main/resources/mappers/ExampleMapper.xml new file mode 100644 index 00000000..9d2d690e --- /dev/null +++ b/koala-archetypes/koala-web-archetype/src/main/resources/archetype-resources/__rootArtifactId__-application/src/main/resources/mappers/ExampleMapper.xml @@ -0,0 +1,55 @@ +#set( $symbol_pound = '#' ) +#set( $symbol_dollar = '$' ) +#set( $symbol_escape = '\' ) + + + + + + select t.id, t.code, t.name, t.description + from t_example t + + + + + + + + insert into t_example + values (${symbol_pound}{id}, ${symbol_pound}{code}, ${symbol_pound}{name}, ${symbol_pound}{description}) + + + + update t_example + set code = ${symbol_pound}{code}, + name = ${symbol_pound}{name}, + description = ${symbol_pound}{description} + where id = ${symbol_pound}{id} + + + + delete + from t_example + where id = ${symbol_pound}{id} + + diff --git a/koala-archetypes/koala-web-archetype/src/main/resources/archetype-resources/__rootArtifactId__-parent/pom.xml b/koala-archetypes/koala-web-archetype/src/main/resources/archetype-resources/__rootArtifactId__-parent/pom.xml new file mode 100644 index 00000000..983027db --- /dev/null +++ b/koala-archetypes/koala-web-archetype/src/main/resources/archetype-resources/__rootArtifactId__-parent/pom.xml @@ -0,0 +1,149 @@ + + + 4.0.0 + ${groupId} + ${artifactId} + ${version} + pom + + + cn.koala + koala-parent + 2022.0.1-SNAPSHOT + + + + + ${version} + + + + + koala + koala + + https://gitee.com/koala-projects/maven-repositories/raw/snapshot/ + + + + + + koala + koala + + https://gitee.com/koala-projects/maven-repositories/raw/snapshot/ + + + + + + + ${groupId} + ${rootArtifactId}-application + ${version} + + + + + + ${project.artifactId}-${project.version} + + + org.codehaus.mojo + flatten-maven-plugin + ${maven-flatten-plugin.version} + true + + + + flatten + process-resources + + flatten + + + true + bom + true + + expand + remove + remove + + + + + + + org.apache.maven.plugins + maven-checkstyle-plugin + ${maven-checkstyle-plugin.version} + + rulesets/alibaba_checks.xml + true + true + true + ../checkstyle/checkstyle-suppressions.xml + checkstyle.suppressions.file + + + + checkstyle-validation + validate + + check + + + + + + cn.koala + koala-checkstyle + ${revision} + + + + + org.apache.maven.plugins + maven-pmd-plugin + ${maven-pmd-plugin.version} + + ${project.build.sourceEncoding} + ${java.version} + true + + rulesets/java/ali-comment.xml + rulesets/java/ali-concurrent.xml + rulesets/java/ali-constant.xml + rulesets/java/ali-exception.xml + rulesets/java/ali-flowcontrol.xml + rulesets/java/ali-naming.xml + rulesets/java/ali-oop.xml + rulesets/java/ali-orm.xml + rulesets/java/ali-other.xml + rulesets/java/ali-set.xml + + + + + validate + + check + + + ${basedir}/exclude-pmd.properties + + + + + + cn.koala + koala-checkstyle + ${revision} + + + + + + diff --git a/koala-archetypes/koala-web-archetype/src/main/resources/archetype-resources/checkstyle/checkstyle-suppressions.xml b/koala-archetypes/koala-web-archetype/src/main/resources/archetype-resources/checkstyle/checkstyle-suppressions.xml new file mode 100644 index 00000000..7774a546 --- /dev/null +++ b/koala-archetypes/koala-web-archetype/src/main/resources/archetype-resources/checkstyle/checkstyle-suppressions.xml @@ -0,0 +1,15 @@ +#set( $symbol_pound = '#' ) +#set( $symbol_dollar = '$' ) +#set( $symbol_escape = '\' ) + + + + + + + + + + \ No newline at end of file diff --git a/koala-archetypes/koala-web-archetype/src/main/resources/archetype-resources/lombok.config b/koala-archetypes/koala-web-archetype/src/main/resources/archetype-resources/lombok.config new file mode 100644 index 00000000..b180469f --- /dev/null +++ b/koala-archetypes/koala-web-archetype/src/main/resources/archetype-resources/lombok.config @@ -0,0 +1,6 @@ +lombok.log.fieldName=LOGGER +lombok.log.fieldIsStatic=true +lombok.toString.doNotUseGetters=true +lombok.equalsAndHashCode.doNotUseGetters=true +lombok.addLombokGeneratedAnnotation = true +config.stopBubbling=true diff --git a/koala-archetypes/koala-web-archetype/src/main/resources/archetype-resources/pom.xml b/koala-archetypes/koala-web-archetype/src/main/resources/archetype-resources/pom.xml new file mode 100644 index 00000000..efea2cae --- /dev/null +++ b/koala-archetypes/koala-web-archetype/src/main/resources/archetype-resources/pom.xml @@ -0,0 +1,8 @@ + + + 4.0.0 + ${groupId} + ${artifactId} + ${version} + pom + diff --git a/koala-archetypes/pom.xml b/koala-archetypes/pom.xml new file mode 100644 index 00000000..831d99d6 --- /dev/null +++ b/koala-archetypes/pom.xml @@ -0,0 +1,20 @@ + + + 4.0.0 + koala-archetypes + pom + ${revision} + 考拉原型 + + cn.koala + koala + ${revision} + ../pom.xml + + + + koala-web-archetype + + \ No newline at end of file diff --git a/koala-infrastructures/koala-dependencies/pom.xml b/koala-infrastructures/koala-dependencies/pom.xml index ebb0ff2f..85040d3f 100644 --- a/koala-infrastructures/koala-dependencies/pom.xml +++ b/koala-infrastructures/koala-dependencies/pom.xml @@ -49,6 +49,7 @@ 3.2.0 3.16.0 2.22.2 + 3.2.1 @@ -434,6 +435,11 @@ maven-surefire-plugin ${maven-surefire-plugin.version} + + org.apache.maven.plugins + maven-archetype-plugin + ${maven-archetype-plugin.version} + diff --git a/pom.xml b/pom.xml index 0edb2e3b..71af1ad8 100644 --- a/pom.xml +++ b/pom.xml @@ -10,7 +10,7 @@ Koala - 2022.0.0-SNAPSHOT + 2022.0.1-SNAPSHOT 17 ${java.version} ${java.version} @@ -36,6 +36,7 @@ koala-applications + koala-archetypes koala-components koala-domains koala-facades From 7610c4dcf8bea22f383516f4845eeca5f7f3f34f Mon Sep 17 00:00:00 2001 From: Houtaroy Date: Wed, 9 Nov 2022 21:58:05 +0800 Subject: [PATCH 4/7] =?UTF-8?q?docs(=E6=96=87=E6=A1=A3):=20=E6=9B=B4?= =?UTF-8?q?=E6=96=B0=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.en.md | 7 ++ README.md | 145 ++++------------------------------ docs/en/README.md | 3 - docs/guide/getting-started.md | 114 ++++++++++++++++++++++++++ 4 files changed, 138 insertions(+), 131 deletions(-) create mode 100644 README.en.md delete mode 100644 docs/en/README.md create mode 100644 docs/guide/getting-started.md diff --git a/README.en.md b/README.en.md new file mode 100644 index 00000000..d9473921 --- /dev/null +++ b/README.en.md @@ -0,0 +1,7 @@ +# Koala + +English | [Chinese](README.md) + +## Introduction + +Use Spring Boot Like A Koala \ No newline at end of file diff --git a/README.md b/README.md index c2c877c0..2e0e4c83 100644 --- a/README.md +++ b/README.md @@ -1,14 +1,18 @@ # Koala 考拉 :koala: -[English Documentation](https://github.com/koala-projects/koala/tree/main/docs/en) +中文 | [English](README.en.md) ## 介绍 -考拉(Koala)是一款免费开源的管理系统脚手架, 基于`Spring Boot`和`Vue`生态开发 +考拉(Koala)是一款免费开源的管理系统脚手架, 基于`Spring Boot`生态开发 -项目提供了多种**自动装配组件**, 只需要引入依赖即可快速进行业务代码编写, 并会持续完善集成更多的配套设施 +它提供了多种**原型**和**自动装配组件**, 可快速从零开始生成整套代码或集成高级功能 -相较于其它同类产品, 考拉的不同之处在于: +它会持续增加和完善更多的配套设施 + +## 特性 + +相较于其它产品, 考拉的不同之处在于: - 考拉致力于成为程序员的得力**助手**, 而非**替代品** - 考拉致力于成为便捷/易用/适合二次开发的**脚手架** @@ -20,135 +24,20 @@ - [考拉示例项目](https://koala.dxl.pink/): 每天定时重置数据 -## 技术栈 - -### 后端 +## 快速开始 -- Java: 17 -- Spring Boot: 2.6.10 -- MyBatis: 3.5.7 -- Swagger: v3 +开始之前, 您需要有以下技术储备 -### 前端 +- Java 17: 熟悉 Java 基本语法 +- Spring Boot 2.6.10: 熟悉 Spring Boot 基本使用 +- IDE: 至少掌握一种集成开发环境 -- TypeScript: ^4.6.3 -- Vue: ^3.2.33 -- vben-admin: 2.8.0 +请参照: [快速开始文档](docs/guide/getting-started.md) -## 快速开始 +## 关联项目 -根据实际需求, 可分为如下两种使用方式: - -- [原型构建](#原型构建): 利用原型快速生成一整套项目代码, 适合从零开始搭建的业务系统 -- [组件集成](#组件集成): 使用考拉提供的多种组件, 快速增加项目功能, 适合正在编码中或已上线的业务系统 - -### 原型构建 - -1. 选择合适的原型, 列表如下: - -| 原型名称 | 原型说明 | -| ------------------------------------------------------------ | ------------------------------------------------------------ | -| [Web项目原型](https://github.com/koala-projects/koala/tree/main/koala-archetypes/koala-web-archetype) | Web项目通用原型, 标准多模块文件结构, 内置 代码检查 / 授权服务 / 系统管理 等功能 | - -2. 在Maven配置中增加第三方原型库, 修改`settings.xml`: - -```xml - - - koala - - - koala-gitee - Koala Maven Repository Gitee - https://gitee.com/koala-projects/maven-repositories/raw/snapshot/ - - true - warn - - - - - -``` - -3. 使用Maven命令生成项目: - -``` -mvn archetype:generate ^ - -DarchetypeGroupId=cn.koala ^ - -DarchetypeArtifactId=koala-web-archetype ^ - -DarchetypeVersion=2022.0.1-SNAPSHOT -X ^ - -DgroupId=cn.houtaroy ^ - -DartifactId=test ^ - -Dversion=2022.0.0-SNAPSHOT ^ - -Dpackage=ch.houtaroy.test -``` - -| 参数名称 | 参数描述 | 参数示例 | -| --------------------- | -------------- | -------------------------- | -| -DarchetypeGroupId | 原型groupId | cn.koala | -| -DarchetypeArtifactId | 原型artifactId | koala-web-archetype | -| -DgroupId | 项目groupId | cn.houtaroy | -| -DartifactId | 项目artifactId | test | -| -Dversion | 项目版本 | 2022.0.0-SNAPSHOT | -| -Dpackage | 项目包名 | cn.houtaroy.test | -| ... | 原型额外参数 | 额外参数请参照原型wen'dang | - -4. 使用开发工具打开项目, 进行业务系统编码 - -### 组件集成 - -1. 选择需要的组件, 列表如下: - -| 组件名称 | 组件说明 | -| ------------------------------------------------------------ | ------------------------------------------------------------ | -| [Web基础组件](https://github.com/koala-projects/koala/tree/main/koala-components/koala-web-spring-boot-starter) | 对部分通用Web功能进行集成和拓展, 例如 OpenApi接口文档 / 通用返回值 / 异常拦截 等 | -| [授权服务组件](https://github.com/koala-projects/koala/tree/main/koala-components/koala-oauth2-authorization-server-spring-boot-starter) | 基于Spring Authorization Server实现OAuth2授权服务, 拓展了密码模式 | -| [资源服务组件](https://github.com/koala-projects/koala/tree/main/koala-components/koala-oauth2-resource-server-spring-boot-starter) | 配合授权服务组件使用 | -| [系统管理组件](https://github.com/koala-projects/koala/tree/main/koala-components/koala-system-spring-boot-starter) | 实现了部分通用中后台管理功能, 例如 字典管理 / 部门管理 / 用户管理 等 | -| [数据模型组件](https://github.com/koala-projects/koala/tree/main/koala-components/koala-data-model-spring-boot-starter) | 实现了简易数据模型功能, 例如 元数据管理 / 数据管理 等 | -| [设置组件](https://github.com/koala-projects/koala/tree/main/koala-components/koala-setting-spring-boot-starter) | 实现了简易设置功能, 适用于系统配置热更新等场景 | -| [办公组件](https://github.com/koala-projects/koala/tree/main/koala-components/koala-office-spring-boot-starter) | 提供了部分办公相关辅助工具, 例如 Excel导出 / PDF读取 等 | -| [MQTT组件](https://github.com/koala-projects/koala/tree/main/koala-components/koala-integration-mqtt-spring-boot-starter) | 通过简易配置即可快速接入MQTT消息队列 | -| [钉钉组件](https://github.com/koala-projects/koala/tree/main/koala-components/koala-dingtalk-spring-boot-starter) | 整合了新旧两版钉钉SDK | - -**强烈建议您在使用组件前仔细阅读文档** - -2. 增加考拉提供的Maven仓库和依赖清单, 修改`pom.xml`: - -```xml - - - koala - koala - - https://gitee.com/koala-projects/maven-repositories/raw/snapshot/ - - - - - - - cn.koala - koala-dependencies - 2022.0.1-SNAPSHOT - pom - import - - - -``` - -3. 引入组件依赖, 以系统管理为例, 修改`pom.xml`: - -```xml - - - cn.koala - koala-system-spring-boot-starter - - -``` +- [koala-admin](https://github.com/koala-projects/koala-admin): 适配考拉的前端项目 +- [eucalyptus](https://github.com/koala-projects/eucalyptus): 代码生成工具 ## 联系方式 diff --git a/docs/en/README.md b/docs/en/README.md deleted file mode 100644 index c371a660..00000000 --- a/docs/en/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# Koala - -Use Spring Boot Like A Koala \ No newline at end of file diff --git a/docs/guide/getting-started.md b/docs/guide/getting-started.md new file mode 100644 index 00000000..66b54a9a --- /dev/null +++ b/docs/guide/getting-started.md @@ -0,0 +1,114 @@ +# 快速开始 + +根据实际需求, 可分为如下两种使用方式: + +- [原型构建](#原型构建): 利用原型快速生成一整套项目代码, 适合从零开始搭建的业务系统 +- [组件集成](#组件集成): 使用考拉提供的多种组件, 快速增加项目功能, 适合正在编码中或已上线的业务系统 + +## 原型构建 + +1. 选择合适的原型, 列表如下: + +| 原型名称 | 原型说明 | +| --------------------------------------------------------- | ------------------------------------------------------------ | +| [Web项目原型](../../koala-archetypes/koala-web-archetype) | Web项目通用原型, 标准多模块文件结构, 内置 代码检查 / 授权服务 / 系统管理 等功能 | + +2. 在Maven配置中增加第三方原型库, 修改`settings.xml`: + +```xml + + + koala + + + koala-gitee + Koala Maven Repository Gitee + https://gitee.com/koala-projects/maven-repositories/raw/snapshot/ + + true + warn + + + + + +``` + +3. 使用Maven命令生成项目: + +``` +mvn archetype:generate ^ + -DarchetypeGroupId=cn.koala ^ + -DarchetypeArtifactId=koala-web-archetype ^ + -DarchetypeVersion=2022.0.1-SNAPSHOT -X ^ + -DgroupId=cn.houtaroy ^ + -DartifactId=test ^ + -Dversion=2022.0.0-SNAPSHOT ^ + -Dpackage=ch.houtaroy.test +``` + +| 参数名称 | 参数描述 | 参数示例 | +| --------------------- | -------------- | ---------------------- | +| -DarchetypeGroupId | 原型groupId | cn.koala | +| -DarchetypeArtifactId | 原型artifactId | koala-web-archetype | +| -DgroupId | 项目groupId | cn.houtaroy | +| -DartifactId | 项目artifactId | test | +| -Dversion | 项目版本 | 2022.0.0-SNAPSHOT | +| -Dpackage | 项目包名 | cn.houtaroy.test | +| ... | 原型额外参数 | 额外参数请参照原型文档 | + +4. 使用开发工具打开项目, 进行业务系统编码 + +## 组件集成 + +1. 选择需要的组件, 列表如下: + +| 组件名称 | 组件说明 | +| ------------------------------------------------------------ | ------------------------------------------------------------ | +| [Web基础组件](https://github.com/koala-projects/koala/tree/main/koala-components/koala-web-spring-boot-starter) | 对部分通用Web功能进行集成和拓展, 例如 OpenApi接口文档 / 通用返回值 / 异常拦截 等 | +| [授权服务组件](https://github.com/koala-projects/koala/tree/main/koala-components/koala-oauth2-authorization-server-spring-boot-starter) | 基于Spring Authorization Server实现OAuth2授权服务, 拓展了密码模式 | +| [资源服务组件](https://github.com/koala-projects/koala/tree/main/koala-components/koala-oauth2-resource-server-spring-boot-starter) | 配合授权服务组件使用 | +| [系统管理组件](https://github.com/koala-projects/koala/tree/main/koala-components/koala-system-spring-boot-starter) | 实现了部分通用中后台管理功能, 例如 字典管理 / 部门管理 / 用户管理 等 | +| [数据模型组件](https://github.com/koala-projects/koala/tree/main/koala-components/koala-data-model-spring-boot-starter) | 实现了简易数据模型功能, 例如 元数据管理 / 数据管理 等 | +| [设置组件](https://github.com/koala-projects/koala/tree/main/koala-components/koala-setting-spring-boot-starter) | 实现了简易设置功能, 适用于系统配置热更新等场景 | +| [办公组件](https://github.com/koala-projects/koala/tree/main/koala-components/koala-office-spring-boot-starter) | 提供了部分办公相关辅助工具, 例如 Excel导出 / PDF读取 等 | +| [MQTT组件](https://github.com/koala-projects/koala/tree/main/koala-components/koala-integration-mqtt-spring-boot-starter) | 通过简易配置即可快速接入MQTT消息队列 | +| [钉钉组件](https://github.com/koala-projects/koala/tree/main/koala-components/koala-dingtalk-spring-boot-starter) | 整合了新旧两版钉钉SDK | + +**强烈建议您在使用组件前仔细阅读文档** + +2. 增加考拉提供的Maven仓库和依赖清单, 修改`pom.xml`: + +```xml + + + koala + koala + + https://gitee.com/koala-projects/maven-repositories/raw/snapshot/ + + + + + + + cn.koala + koala-dependencies + 2022.0.1-SNAPSHOT + pom + import + + + +``` + +3. 引入组件依赖, 以系统管理为例, 修改`pom.xml`: + +```xml + + + cn.koala + koala-system-spring-boot-starter + + +``` From a5c0b07065bd1350a6af7417c33c36f681c4e66a Mon Sep 17 00:00:00 2001 From: Houtaroy Date: Wed, 9 Nov 2022 22:29:51 +0800 Subject: [PATCH 5/7] =?UTF-8?q?docs(=E6=96=87=E6=A1=A3):=20=E6=9B=B4?= =?UTF-8?q?=E6=96=B0=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.en.md | 2 +- docs/guide/getting-started.md | 28 ++++++++++++++-------------- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/README.en.md b/README.en.md index d9473921..e9eaa289 100644 --- a/README.en.md +++ b/README.en.md @@ -1,6 +1,6 @@ # Koala -English | [Chinese](README.md) +English | [Chinese](./) ## Introduction diff --git a/docs/guide/getting-started.md b/docs/guide/getting-started.md index 66b54a9a..d6423233 100644 --- a/docs/guide/getting-started.md +++ b/docs/guide/getting-started.md @@ -9,9 +9,9 @@ 1. 选择合适的原型, 列表如下: -| 原型名称 | 原型说明 | -| --------------------------------------------------------- | ------------------------------------------------------------ | -| [Web项目原型](../../koala-archetypes/koala-web-archetype) | Web项目通用原型, 标准多模块文件结构, 内置 代码检查 / 授权服务 / 系统管理 等功能 | +| 原型代码 | 原型说明 | +| ------------------------------------------------------------ | ------------------------------------------------------------ | +| [koala-web-archetype](../../koala-archetypes/koala-web-archetype) | Web项目通用原型, 标准多模块文件结构, 内置 代码检查 / 授权服务 / 系统管理 等功能 | 2. 在Maven配置中增加第三方原型库, 修改`settings.xml`: @@ -63,17 +63,17 @@ mvn archetype:generate ^ 1. 选择需要的组件, 列表如下: -| 组件名称 | 组件说明 | -| ------------------------------------------------------------ | ------------------------------------------------------------ | -| [Web基础组件](https://github.com/koala-projects/koala/tree/main/koala-components/koala-web-spring-boot-starter) | 对部分通用Web功能进行集成和拓展, 例如 OpenApi接口文档 / 通用返回值 / 异常拦截 等 | -| [授权服务组件](https://github.com/koala-projects/koala/tree/main/koala-components/koala-oauth2-authorization-server-spring-boot-starter) | 基于Spring Authorization Server实现OAuth2授权服务, 拓展了密码模式 | -| [资源服务组件](https://github.com/koala-projects/koala/tree/main/koala-components/koala-oauth2-resource-server-spring-boot-starter) | 配合授权服务组件使用 | -| [系统管理组件](https://github.com/koala-projects/koala/tree/main/koala-components/koala-system-spring-boot-starter) | 实现了部分通用中后台管理功能, 例如 字典管理 / 部门管理 / 用户管理 等 | -| [数据模型组件](https://github.com/koala-projects/koala/tree/main/koala-components/koala-data-model-spring-boot-starter) | 实现了简易数据模型功能, 例如 元数据管理 / 数据管理 等 | -| [设置组件](https://github.com/koala-projects/koala/tree/main/koala-components/koala-setting-spring-boot-starter) | 实现了简易设置功能, 适用于系统配置热更新等场景 | -| [办公组件](https://github.com/koala-projects/koala/tree/main/koala-components/koala-office-spring-boot-starter) | 提供了部分办公相关辅助工具, 例如 Excel导出 / PDF读取 等 | -| [MQTT组件](https://github.com/koala-projects/koala/tree/main/koala-components/koala-integration-mqtt-spring-boot-starter) | 通过简易配置即可快速接入MQTT消息队列 | -| [钉钉组件](https://github.com/koala-projects/koala/tree/main/koala-components/koala-dingtalk-spring-boot-starter) | 整合了新旧两版钉钉SDK | +| 组件代码 | 组件名称 | 组件说明 | +| ------------------------------------------------------------ | ------------ | ------------------------------------------------------------ | +| [koala-web](../../koala-components/koala-web-spring-boot-starter) | Web基础组件 | 对部分通用Web功能进行集成和拓展, 例如 OpenApi接口文档 / 通用返回值 / 异常拦截 等 | +| [koala-oauth2-authorization-server](../../koala-components/koala-oauth2-authorization-server-spring-boot-starter) | 授权服务组件 | 基于Spring Authorization Server实现OAuth2授权服务, 拓展了密码模式 | +| [koala-oauth2-resource-server](../../koala-components/koala-oauth2-resource-server-spring-boot-starter) | 资源服务组件 | 配合授权服务组件使用 | +| [koala-system](../../koala-components/koala-system-spring-boot-starter) | 系统管理组件 | 实现了部分通用中后台管理功能, 例如 字典管理 / 部门管理 / 用户管理 等 | +| [koala-data-model](../../koala-components/koala-data-model-spring-boot-starter) | 数据模型组件 | 实现了简易数据模型功能, 例如 元数据管理 / 数据管理 等 | +| [koala-setting](../../koala-components/koala-setting-spring-boot-starter) | 设置组件 | 实现了简易设置功能, 适用于系统配置热更新等场景 | +| [koala-office](../../koala-components/koala-office-spring-boot-starter) | 办公组件 | 提供了部分办公相关辅助工具, 例如 Excel导出 / PDF读取 等 | +| [koala-integration-mqtt](../../koala-components/koala-integration-mqtt-spring-boot-starter) | MQTT组件 | 通过简易配置即可快速接入MQTT消息队列 | +| [koala-dingtalk](../../koala-components/koala-dingtalk-spring-boot-starter) | 钉钉组件 | 整合了新旧两版钉钉SDK | **强烈建议您在使用组件前仔细阅读文档** From 9b9f4843b37c80e07aaa157ed701d2feaedb08ec Mon Sep 17 00:00:00 2001 From: Houtaroy Date: Wed, 9 Nov 2022 23:09:45 +0800 Subject: [PATCH 6/7] =?UTF-8?q?docs(=E6=96=87=E6=A1=A3):=20=E6=9B=B4?= =?UTF-8?q?=E6=96=B0=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.en.md | 2 +- docs/guide/getting-started.md | 22 ++++----- .../koala-web-archetype/README.md | 6 +-- .../README.md | 19 ++------ .../README.md | 21 ++------- .../README.md | 17 +------ .../README.md | 17 +------ .../README.md | 22 ++------- .../README.md | 20 ++------ .../README.md | 34 ++++++-------- .../koala-web-spring-boot-starter/README.md | 46 +++++++++++++++++++ 11 files changed, 92 insertions(+), 134 deletions(-) create mode 100644 koala-components/koala-web-spring-boot-starter/README.md diff --git a/README.en.md b/README.en.md index e9eaa289..d9473921 100644 --- a/README.en.md +++ b/README.en.md @@ -1,6 +1,6 @@ # Koala -English | [Chinese](./) +English | [Chinese](README.md) ## Introduction diff --git a/docs/guide/getting-started.md b/docs/guide/getting-started.md index d6423233..b97151c6 100644 --- a/docs/guide/getting-started.md +++ b/docs/guide/getting-started.md @@ -63,17 +63,17 @@ mvn archetype:generate ^ 1. 选择需要的组件, 列表如下: -| 组件代码 | 组件名称 | 组件说明 | -| ------------------------------------------------------------ | ------------ | ------------------------------------------------------------ | -| [koala-web](../../koala-components/koala-web-spring-boot-starter) | Web基础组件 | 对部分通用Web功能进行集成和拓展, 例如 OpenApi接口文档 / 通用返回值 / 异常拦截 等 | -| [koala-oauth2-authorization-server](../../koala-components/koala-oauth2-authorization-server-spring-boot-starter) | 授权服务组件 | 基于Spring Authorization Server实现OAuth2授权服务, 拓展了密码模式 | -| [koala-oauth2-resource-server](../../koala-components/koala-oauth2-resource-server-spring-boot-starter) | 资源服务组件 | 配合授权服务组件使用 | -| [koala-system](../../koala-components/koala-system-spring-boot-starter) | 系统管理组件 | 实现了部分通用中后台管理功能, 例如 字典管理 / 部门管理 / 用户管理 等 | -| [koala-data-model](../../koala-components/koala-data-model-spring-boot-starter) | 数据模型组件 | 实现了简易数据模型功能, 例如 元数据管理 / 数据管理 等 | -| [koala-setting](../../koala-components/koala-setting-spring-boot-starter) | 设置组件 | 实现了简易设置功能, 适用于系统配置热更新等场景 | -| [koala-office](../../koala-components/koala-office-spring-boot-starter) | 办公组件 | 提供了部分办公相关辅助工具, 例如 Excel导出 / PDF读取 等 | -| [koala-integration-mqtt](../../koala-components/koala-integration-mqtt-spring-boot-starter) | MQTT组件 | 通过简易配置即可快速接入MQTT消息队列 | -| [koala-dingtalk](../../koala-components/koala-dingtalk-spring-boot-starter) | 钉钉组件 | 整合了新旧两版钉钉SDK | +| 组件代码 | 组件说明 | +| ------------------------------------------------------------ | ------------------------------------------------------------ | +| [koala-web](../../koala-components/koala-web-spring-boot-starter) | 对部分通用Web功能进行集成和拓展, 例如 OpenApi接口文档 / 通用返回值 / 异常拦截 等 | +| [koala-oauth2-authorization-server](../../koala-components/koala-oauth2-authorization-server-spring-boot-starter) | 基于Spring Authorization Server实现OAuth2授权服务, 拓展了密码模式 | +| [koala-oauth2-resource-server](../../koala-components/koala-oauth2-resource-server-spring-boot-starter) | 配合授权服务组件使用 | +| [koala-system](../../koala-components/koala-system-spring-boot-starter) | 实现了部分通用中后台管理功能, 例如 字典管理 / 部门管理 / 用户管理 等 | +| [koala-data-model](../../koala-components/koala-data-model-spring-boot-starter) | 实现了简易数据模型功能, 例如 元数据管理 / 数据管理 等 | +| [koala-setting](../../koala-components/koala-setting-spring-boot-starter) | 实现了简易设置功能, 适用于系统配置热更新等场景 | +| [koala-office](../../koala-components/koala-office-spring-boot-starter) | 提供了部分办公相关辅助工具, 例如 Excel导出 / PDF读取 等 | +| [koala-integration-mqtt](../../koala-components/koala-integration-mqtt-spring-boot-starter) | 通过简易配置即可快速接入MQTT消息队列 | +| [koala-dingtalk](../../koala-components/koala-dingtalk-spring-boot-starter) | 整合了新旧两版钉钉SDK | **强烈建议您在使用组件前仔细阅读文档** diff --git a/koala-archetypes/koala-web-archetype/README.md b/koala-archetypes/koala-web-archetype/README.md index fa6539f0..38f24e11 100644 --- a/koala-archetypes/koala-web-archetype/README.md +++ b/koala-archetypes/koala-web-archetype/README.md @@ -1,8 +1,4 @@ -# Web原型 :koala: - -## 原型代码 - -`koala-web-archetype` +# Web原型 ## 原型结构 diff --git a/koala-components/koala-data-model-spring-boot-starter/README.md b/koala-components/koala-data-model-spring-boot-starter/README.md index 9be9c05d..bbdf2e02 100644 --- a/koala-components/koala-data-model-spring-boot-starter/README.md +++ b/koala-components/koala-data-model-spring-boot-starter/README.md @@ -1,6 +1,6 @@ # 数据模型组件 -简易的数据模型功能, 自动装配了基于MyBatis的实现, 提供REST接口 +实现了简易数据模型功能 ## 概念 @@ -9,25 +9,12 @@ - 数据元(Data Element): 单个数据项 - 数据(Data): 数据内容 -## 引入依赖 - -```xml - - - - cn.koala - koala-data-model-spring-boot-starter - 2022.0.0-SNAPSHOT - - -``` - ## 初始化数据库 当前仅支持MySQL数据库, 推荐版本为8.0.X -使用脚本`koala-data-model-core/schema-mysql.sql`初始化数据库 +1. 执行[数据库结构脚本](../../koala-domains/koala-data-model/koala-data-model-core/src/main/resources/schema-mysql.sql) ## 接口文档 -组件集成了`springdoc-openapi-ui`, 通过请求`swagger-ui/index.html`访问接口文档 \ No newline at end of file +组件集成了`springdoc-openapi-ui`, 通过访问`swagger-ui/index.html`阅读接口文档 \ No newline at end of file diff --git a/koala-components/koala-dingtalk-spring-boot-starter/README.md b/koala-components/koala-dingtalk-spring-boot-starter/README.md index c52dfe8b..3174361a 100644 --- a/koala-components/koala-dingtalk-spring-boot-starter/README.md +++ b/koala-components/koala-dingtalk-spring-boot-starter/README.md @@ -1,19 +1,6 @@ -# koala-dingtalk-spring-boot-starter +# 钉钉组件 -基于Druid拓展启动类, 提供查询语句解析和SQL检查功能 - -## 引入依赖 - -```xml - - - - cn.koala - koala-dingtalk-spring-boot-starter - 2022.0.0-SNAPSHOT - - -``` +整合了新旧两版钉钉SDK ## 书写配置 @@ -24,7 +11,7 @@ ding-talk: app-secret: secret ``` -## 使用旧版SDK +## 旧版SDK 自动装配了`DingtalkService`的实现`InMemoryDingtalkService` @@ -55,7 +42,7 @@ public class MyService { 旧版SDK自动处理了用户token -## 使用新版SDK +## 新版SDK 新版SDK调用时与旧版有所不同, 故提供`client`方法用于获取新版请求客户端, 之后请自行请求: diff --git a/koala-components/koala-integration-mqtt-spring-boot-starter/README.md b/koala-components/koala-integration-mqtt-spring-boot-starter/README.md index 959ef677..519c63e3 100644 --- a/koala-components/koala-integration-mqtt-spring-boot-starter/README.md +++ b/koala-components/koala-integration-mqtt-spring-boot-starter/README.md @@ -1,19 +1,6 @@ -# koala-integration-mqtt-spring-boot-starter +# MQTT组件 -结合Spring Integration实现的MQTT启动类 - -## 引入依赖 - -```xml - - - - cn.koala - koala-integration-mqtt-spring-boot-starter - 2022.0.0-SNAPSHOT - - -``` +通过简易配置即可快速接入MQTT消息队列 ## 书写配置 diff --git a/koala-components/koala-oauth2-authorization-server-spring-boot-starter/README.md b/koala-components/koala-oauth2-authorization-server-spring-boot-starter/README.md index d7d277c1..d3186dd4 100644 --- a/koala-components/koala-oauth2-authorization-server-spring-boot-starter/README.md +++ b/koala-components/koala-oauth2-authorization-server-spring-boot-starter/README.md @@ -1,19 +1,6 @@ -# 考拉授权服务 +# 授权服务组件 -基于Spring Security 5, 提供OAuth2密码模式授权 - -## 引入依赖 - -```xml - - - - cn.koala - koala-oauth2-authorization-server-spring-boot-starter - 2022.0.0-SNAPSHOT - - -``` +基于Spring Authorization Server实现OAuth2授权服务, 拓展了密码模式 ## 配置 diff --git a/koala-components/koala-office-spring-boot-starter/README.md b/koala-components/koala-office-spring-boot-starter/README.md index e25af4ec..d8189e44 100644 --- a/koala-components/koala-office-spring-boot-starter/README.md +++ b/koala-components/koala-office-spring-boot-starter/README.md @@ -1,26 +1,14 @@ # 办公组件 -提供办公文档部分操作 - -## 引入依赖 - -```xml - - - cn.koala - koala-office-spring-boot-starter - 2022.0.0-SNAPSHOT - - -``` +提供了部分办公相关辅助工具 ## Excel -组件内置了[EasyExcel](https://github.com/alibaba/easyexcel) +组件内置了[EasyExcel](https://github.com/alibaba/easyexcel)和`ExcelHelper` ### 下载 -组件提供了`ExcelHelper`, 用于将文件直接推送至前端下载: +直接推送至前端下载: ```java public class DownloadTest { @@ -39,8 +27,7 @@ public class DownloadTest { ## 文档转换 -当前文档转换使用[JODConverte](https://github.com/sbraconnier/jodconverter)实现, -需要在服务器安装[LibreOffice](https://zh-cn.libreoffice.org/)或[Apache OpenOffice](https://www.openoffice.org/zh-cn/) +使用[JODConverte](https://github.com/sbraconnier/jodconverter)实现, 需在运行服务器安装[LibreOffice](https://zh-cn.libreoffice.org/)或[Apache OpenOffice](https://www.openoffice.org/zh-cn/) ### 配置 @@ -60,7 +47,6 @@ jodconverter: ### 转换 ```java - @Component @RequiredArgsConstructor public class Service { diff --git a/koala-components/koala-setting-spring-boot-starter/README.md b/koala-components/koala-setting-spring-boot-starter/README.md index 64ed6578..6a0ae13a 100644 --- a/koala-components/koala-setting-spring-boot-starter/README.md +++ b/koala-components/koala-setting-spring-boot-starter/README.md @@ -1,30 +1,16 @@ # 设置组件 -简易的设置功能, 基于[数据模型组件](https://github.com/Houtaroy/koala/tree/main/koala-components/koala-data-model-spring-boot-starter) - -提供例如系统配置热更新等能力 - -## 引入依赖 - -```xml - - - cn.koala - koala-setting-spring-boot-starter - 2022.0.0-SNAPSHOT - - -``` +基于[数据模型组件](../koala-data-model-spring-boot-starter), 实现了简易设置功能, 适用于系统配置热更新等场景 ## 初始化数据库 当前仅支持MySQL数据库, 推荐版本为8.0.X -使用脚本`koala-data-model-core/schema-mysql.sql`初始化数据库 +1. 执行[数据库结构脚本](../../koala-domains/koala-data-model/koala-data-model-core/src/main/resources/schema-mysql.sql) ## 接口文档 -组件集成了`springdoc-openapi-ui`, 通过请求`swagger-ui/index.html`访问接口文档 +组件集成了`springdoc-openapi-ui`, 通过访问`swagger-ui/index.html`阅读接口文档 ## 快速获取设置内容 diff --git a/koala-components/koala-system-spring-boot-starter/README.md b/koala-components/koala-system-spring-boot-starter/README.md index 0ba9c0b9..503ebae3 100644 --- a/koala-components/koala-system-spring-boot-starter/README.md +++ b/koala-components/koala-system-spring-boot-starter/README.md @@ -1,30 +1,26 @@ # 系统管理组件 -实现了部分通用中后台管理功能, 包含: 字典管理 / 部门管理 / 角色管理 / 用户管理 / 个人服务 - -## 引入依赖 - -```xml - - - - cn.koala - koala-system-spring-boot-starter - 2022.0.0-SNAPSHOT - - -``` +实现了部分通用中后台管理功能 ## 初始化数据库 当前仅支持MySQL数据库, 推荐版本为8.0.X -使用脚本[schema-mysql.sql](https://github.com/koala-projects/koala/blob/main/koala-domains/koala-system/src/main/resources/schema-mysql.sql) -初始化数据库结构 +1. 执行[数据库结构脚本](../../koala-domains/koala-system/src/main/resources/schema-mysql.sql) +2. 执行[数据库数据脚本](../../koala-domains/koala-system/src/main/resources/data-mysql.sql) + +## 配置 + +```yaml +koala: + system: + default-password: "koala-projects" +``` -使用脚本[data-mysql.sql](https://github.com/koala-projects/koala/blob/main/koala-domains/koala-system/src/main/resources/data-mysql.sql) -增加演示数据 +| 配置代码 | 配置名称 | 配置类型 | 配置默认值 | +| ------------------------------- | -------------- | -------- | ---------------- | +| `koala.system.default-password` | 新用户默认密码 | 字符串 | "koala-projects" | ## 接口文档 -组件集成了`springdoc-openapi-ui`, 通过请求`swagger-ui/index.html`访问接口文档 \ No newline at end of file +组件集成了`springdoc-openapi-ui`, 通过访问`swagger-ui/index.html`阅读接口文档 \ No newline at end of file diff --git a/koala-components/koala-web-spring-boot-starter/README.md b/koala-components/koala-web-spring-boot-starter/README.md new file mode 100644 index 00000000..4a27c866 --- /dev/null +++ b/koala-components/koala-web-spring-boot-starter/README.md @@ -0,0 +1,46 @@ +# Web组件 + +对部分通用Web功能进行集成和拓展 + +## 通用返回值 + +```java +public class TestApi { + + public Response res() { + return Response.SUCCESS; + } + + public DataResponse data() { + return DataResponse.ok("data"); + } +} +``` + +## 统一异常拦截 + +所有异常会被捕获, 并返回以下结构错误信息: + +```json +{ + "code": 500, + "message": "xxx" +} +``` + +## JSON 拓展 + +增加 LocalDateTime 和时间戳的相互转换 + +```java +public class TestEntity { + private LocalDateTime date; +} +``` + +```json +{ + "date": 1668005229000 +} +``` + From 194a7cbdc54d4a81acb151f764d06345c49c9da0 Mon Sep 17 00:00:00 2001 From: Houtaroy Date: Wed, 9 Nov 2022 23:27:25 +0800 Subject: [PATCH 7/7] =?UTF-8?q?docs(=E6=96=87=E6=A1=A3):=20=E6=9B=B4?= =?UTF-8?q?=E6=96=B0=E7=89=88=E6=9C=AC=E5=8F=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- koala-components/koala-druid-spring-boot-starter/README.md | 2 +- .../koala-sensitive-word-spring-boot-starter/README.md | 2 +- koala-infrastructures/koala-utils/README.md | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/koala-components/koala-druid-spring-boot-starter/README.md b/koala-components/koala-druid-spring-boot-starter/README.md index a86afd09..2539bee7 100644 --- a/koala-components/koala-druid-spring-boot-starter/README.md +++ b/koala-components/koala-druid-spring-boot-starter/README.md @@ -10,7 +10,7 @@ cn.koala koala-druid-spring-boot-starter - 2022.0.0-SNAPSHOT + 2022.0.1-SNAPSHOT ``` diff --git a/koala-components/koala-sensitive-word-spring-boot-starter/README.md b/koala-components/koala-sensitive-word-spring-boot-starter/README.md index f16c674c..915ebd17 100644 --- a/koala-components/koala-sensitive-word-spring-boot-starter/README.md +++ b/koala-components/koala-sensitive-word-spring-boot-starter/README.md @@ -16,7 +16,7 @@ cn.koala koala-sensitive-word-spring-boot-starter - 2022.0.0-SNAPSHOT + 2022.0.1-SNAPSHOT ``` diff --git a/koala-infrastructures/koala-utils/README.md b/koala-infrastructures/koala-utils/README.md index 113d4fb1..cbd7f180 100644 --- a/koala-infrastructures/koala-utils/README.md +++ b/koala-infrastructures/koala-utils/README.md @@ -9,7 +9,7 @@ cn.koala koala-utils - 2022.0.0-SNAPSHOT + 2022.0.1-SNAPSHOT ```