From 03b9488188adb85230b4e499279b3fdb1cd4363f Mon Sep 17 00:00:00 2001 From: jeelowcode Date: Fri, 25 Jul 2025 11:54:44 +0800 Subject: [PATCH 01/14] =?UTF-8?q?[update]=20=E5=8A=A0=E4=B8=8A=E6=94=AF?= =?UTF-8?q?=E6=8C=81jdk17+springboot3.3.1=E5=88=86=E6=94=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/README.md b/README.md index 80831bb..a4ccea5 100644 --- a/README.md +++ b/README.md @@ -32,6 +32,11 @@ [社区/文档地址:http://doc.jeelowcode.com](http://doc.jeelowcode.com/) +| 分支 | 简介 | +|--------------|----------------------------| +| master | 使用jdk8 + SpringBoot2.7.18 | +| master_jdk17 | 使用jdk17 + SpringBoot3.3.1 | + ## 3.代码架构 ``` -- Gitee From 8c71312504fa254cdb1120cdcb0693aa43c256b9 Mon Sep 17 00:00:00 2001 From: WeiXiao Date: Fri, 1 Aug 2025 10:18:38 +0800 Subject: [PATCH 02/14] =?UTF-8?q?[style]=20=E4=BF=AE=E6=94=B9README?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 103 ++++++++++++++++++++++++++++++++---------------------- 1 file changed, 61 insertions(+), 42 deletions(-) diff --git a/README.md b/README.md index a4ccea5..0b3b951 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@

-[点击前往查看:https://doc.jeelowcode.com/app/1](https://doc.jeelowcode.com/app/1) +[💦官方自研低代码流程:https://doc.jeelowcode.com/app/1](https://doc.jeelowcode.com/app/1)

logo @@ -21,16 +21,19 @@ Downloads

-## 1.项目简介 +
+

+ 💻 低代码演示:demo.jeelowcode.com | + ☕️ 资料社区:doc.jeelowcode.com | + 💦 自研流程:flow.jeelowcode.com +

+
-**JeeLowCode** 是一款专为企业打造的低代码开发框架,以低代码为核心,实现快速开发。它提供可视化界面,拖拽组件即可搭建应用,无需复杂代码编写,极大提升开发效率。企业可免费使用,灵活适配业务需求,助力高效数字化转型,是企业降本增效的利器。 +## 📱项目简介 + +**JeeLowCode** 是一款基于SpringBoot专为企业打造的低代码开发框架,以低代码为核心,实现快速开发。提供可视化界面,拖拽组件即可搭建应用,无需复杂代码编写,极大提升开发效率。企业可免费使用,灵活适配业务需求,助力高效数字化转型,是企业降本增效的利器。

Downloads -## 2.在线体验 - -[体验地址:http://demo.jeelowcode.com](http://demo.jeelowcode.com) - -[社区/文档地址:http://doc.jeelowcode.com](http://doc.jeelowcode.com/) | 分支 | 简介 | |--------------|----------------------------| @@ -38,7 +41,7 @@ | master_jdk17 | 使用jdk17 + SpringBoot3.3.1 | -## 3.代码架构 +## 💻代码架构 ``` com.jeelowcode ├── jeelowcode-admin // 启动模块 @@ -47,35 +50,28 @@ com.jeelowcode ├── jeelowcode-framework // 功能模块 │ └── jeelowcode-excel // Excel导入导出模块 │ └── jeelowcode-exception // 自定义异常模块 + │ └── jeelowcode-global // 全局配置模块 │ └── jeelowcode-plus // SQL/DDL 语构建模块 │ └── jeelowcode-tenant // 租户模块 │ └── jeelowcode-utils // 工具类模块 - ├── jeelowcode-module // 个人业务相关 + ├── jeelowcode-module // 个人业务相关(写在这个模块) │ └── jeelowcode-module-api // 个人业务模块API │ └── jeelowcode-module-biz // 个人业务业务 - ├── yudao-framework // 芋道核心模块 - ├── yudao-module // 芋道核心模块 ``` -## 4.项目关系 -**后端项目** +## 👥项目关系 | 项目 | Star | 简介 | |--|--|---------| | [JeeLowCode](https://gitcode.com/jeelowcode/jeelowcode)| [![Gitee star](https://gitee.com/jeelowecode/JeeLowCode/badge/star.svg)](https://gitee.com/jeelowecode/JeeLowCode) [![GitHub stars](https://img.shields.io/github/stars/jeelowcode/jeelowcode.svg?style=social&label=Stars)](https://github.com/jeelowcode/jeelowcode) [![star](https://gitcode.com/jeelowcode/jeelowcode/star/badge.svg)](https://gitcode.com/jeelowcode/jeelowcode) | 基于 Spring Boot 多模块架构 | - -**前端项目** - -| 项目 | Star | 简介 | -|--|--|---------------------------------------| | [jeelowcode-ui-admin-vue3](https://gitcode.com/jeelowcode/jeelowcode-ui-admin-vue3)| [![Gitee star](https://gitee.com/jeelowecode/jeelowcode-ui-admin-vue3/badge/star.svg)](https://gitee.com/jeelowecode/jeelowcode-ui-admin-vue3) [![GitHub stars](https://img.shields.io/github/stars/jeelowcode/jeelowcode-ui-admin-vue3.svg?style=social&label=Stars)](https://github.com/jeelowcode/jeelowcode-ui-admin-vue3) [![star](https://gitcode.com/jeelowcode/jeelowcode-ui-admin-vue3/star/badge.svg)](https://gitcode.com/jeelowcode/jeelowcode-ui-admin-vue3) | 基于 Vue3 + Element Plus + Avue 实现的后台管理 | -## 5.系统架构图 +## 🖼️系统架构图 -## 6.Hello World入门 +## 🐛Hello World入门 只需要**4步** 带你了解低代码JeeLowCode @@ -93,9 +89,9 @@ com.jeelowcode
-## 7.演示效果图 +## 💻演示效果图 -### 7.1 手机端效果图: +### 1 手机端效果图: @@ -109,7 +105,7 @@ com.jeelowcode
-### 7.2 电脑端效果图: +### 2 电脑端效果图: @@ -123,7 +119,7 @@ com.jeelowcode
-### 7.3 动态效果图: +### 3 动态效果图: @@ -133,9 +129,9 @@ com.jeelowcode
-## 8.框架核心亮点 +## 🌟框架核心亮点 -### 8.1 首页: +### 1 首页: @@ -143,7 +139,7 @@ com.jeelowcode
-### 8.2 在线表构建: +### 2 在线表构建: 通过图形用户界面直观地创建数据表,一旦创建完成,即刻享有增、删、改、查、数据导入和导出的全面功能,操作简便,效率倍增。 @@ -156,7 +152,7 @@ com.jeelowcode -### 8.3 在线统计报表: +### 3 在线统计报表: 只需配置简单的SQL语句,即可迅速生成包括柱状图、折线图、饼图以及卡片视图在内的多样化统计报表,直观展现数据分析结果。 @@ -169,7 +165,7 @@ com.jeelowcode -### 8.4 在线多表关联: +### 4 在线多表关联: 利用界面化的灵活配置,实现多表关联的直观展示,确保所见即所得的数据处理体验。 @@ -185,7 +181,7 @@ com.jeelowcode -### 8.5 在线格式化字段显示: +### 5 在线格式化字段显示: 为满足界面字段合并显示需求,提供三种简捷处理方法:数据库层面的SQL函数拼接,查询时的SQL字符串合并,以及应用层的Java代码处理。选择适合的方法以优化性能和灵活性。 @@ -198,7 +194,7 @@ com.jeelowcode -### 8.6 在线排序设置: +### 6 在线排序设置: 通过拖放操作,用户可以直观地设置初始化数据的排序规则。 @@ -208,7 +204,7 @@ com.jeelowcode -### 8.7 在线租户数据权限配置: +### 7 在线租户数据权限配置: 提供在线配置工具,轻松实现租户级别的数据权限设定,确保数据访问的安全性和合规性,提升**多租户**场景下的应用灵活性。**JeeLowCode**以其卓越的灵活性、高效性和易用性,成为加速数字化转型、驱动业务创新的理想选择。 @@ -218,7 +214,7 @@ com.jeelowcode -### 8.8 广泛数据库兼容: +### 8 广泛数据库兼容: @@ -243,7 +239,7 @@ com.jeelowcode
-### 8.9 在线表单设计: +### 9 在线表单设计: 提供丰富多样的控件,全面支持各类页面的开发需求。 @@ -253,7 +249,7 @@ com.jeelowcode -### 8.10 丰富完善的示例: +### 10 丰富完善的示例: 丰富完善的示例,便于用户快速学习和上手 @@ -272,7 +268,7 @@ com.jeelowcode -### 8.11 100+常用模板: +### 11 100+常用模板: 提供了丰富多样的常用页面模板,以便开发者能够迅速采纳和应用。 @@ -291,13 +287,13 @@ com.jeelowcode -## 9.启动步骤 +## 📥启动步骤 **温馨提示:** JDK、Maven、Node等可以从网盘下载
[百度网盘地址:https://pan.baidu.com/s/1ICmHRlrRYzBkx87zoRuqvQ?pwd=1234](https://pan.baidu.com/s/1ICmHRlrRYzBkx87zoRuqvQ?pwd=1234)
[阿里云盘地址:https://www.alipan.com/s/X4kF7Hshuc2](https://www.alipan.com/s/X4kF7Hshuc2)
-### 9.1 后台JAVA代码运行步骤 +### 1 后台JAVA代码运行步骤 **环境配置** @@ -331,7 +327,7 @@ com.jeelowcode -### 9.2 前端VUE代码运行步骤: +### 2 前端VUE代码运行步骤: **后台运行环境:** node18.0.0 @@ -426,7 +422,7 @@ pnpm run dev-server -## 10.微信交流群 +## 👏微信交流群/合作 @@ -437,4 +433,27 @@ pnpm run dev-server -
\ No newline at end of file + + +## 📋提交规范 + +``` +[init] 初始化 +[feat] 增加新功能 +[fix] 修复问题/BUG +[perf] 优化/性能提升 +[refactor] 重构 +[revert] 撤销修改 +[style] 代码风格相关无影响运行结果的 +[update] 其他修改 +[upgrade] 升级版本 +``` + +## 🔗文章收录 + +- [企业级低代码平台,轻松应对99.99%编程挑战](https://mp.weixin.qq.com/s/M4h9wiZ1U7Fd3E4Ze4Yq_A) +- [[开源]精心二次封装的企业级低代码开发框架,全开源低代码开发平台,在线轻松驾驭99.99%编程挑战](https://mp.weixin.qq.com/s/TZ094u7jm4wq3tacjPEExQ) +- [无需编码,JeeLowCode 助你轻松构建强大应用!-JeeLowCode](https://mp.weixin.qq.com/s/h4jVs8DBAzaeSWKpDVo0xw) +- [体验JeeLowCode,感受低代码开发的魅力与高效!](https://mp.weixin.qq.com/s/JNwFWHRPFwcEIE5JV5xT3A) +- [体验JeeLowCode,感受低代码开发的魅力与高效!](https://mp.weixin.qq.com/s/JNwFWHRPFwcEIE5JV5xT3A) + -- Gitee From 09b86f94ec744c0228d1d28d71873d7ae9e97ead Mon Sep 17 00:00:00 2001 From: WeiXiao Date: Fri, 1 Aug 2025 10:22:33 +0800 Subject: [PATCH 03/14] =?UTF-8?q?[style]=20=E6=9B=B4=E6=94=B9README?= =?UTF-8?q?=E4=BB=8B=E7=BB=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index 0b3b951..082271a 100644 --- a/README.md +++ b/README.md @@ -24,12 +24,12 @@

💻 低代码演示:demo.jeelowcode.com | - ☕️ 资料社区:doc.jeelowcode.com | + ☕️ 技术社区:doc.jeelowcode.com | 💦 自研流程:flow.jeelowcode.com

-## 📱项目简介 +## 📱 项目简介 **JeeLowCode** 是一款基于SpringBoot专为企业打造的低代码开发框架,以低代码为核心,实现快速开发。提供可视化界面,拖拽组件即可搭建应用,无需复杂代码编写,极大提升开发效率。企业可免费使用,灵活适配业务需求,助力高效数字化转型,是企业降本增效的利器。

@@ -41,7 +41,7 @@ | master_jdk17 | 使用jdk17 + SpringBoot3.3.1 | -## 💻代码架构 +## 💻 代码架构 ``` com.jeelowcode ├── jeelowcode-admin // 启动模块 @@ -59,19 +59,19 @@ com.jeelowcode │ └── jeelowcode-module-biz // 个人业务业务 ``` -## 👥项目关系 +## 👥 项目关系 | 项目 | Star | 简介 | |--|--|---------| | [JeeLowCode](https://gitcode.com/jeelowcode/jeelowcode)| [![Gitee star](https://gitee.com/jeelowecode/JeeLowCode/badge/star.svg)](https://gitee.com/jeelowecode/JeeLowCode) [![GitHub stars](https://img.shields.io/github/stars/jeelowcode/jeelowcode.svg?style=social&label=Stars)](https://github.com/jeelowcode/jeelowcode) [![star](https://gitcode.com/jeelowcode/jeelowcode/star/badge.svg)](https://gitcode.com/jeelowcode/jeelowcode) | 基于 Spring Boot 多模块架构 | | [jeelowcode-ui-admin-vue3](https://gitcode.com/jeelowcode/jeelowcode-ui-admin-vue3)| [![Gitee star](https://gitee.com/jeelowecode/jeelowcode-ui-admin-vue3/badge/star.svg)](https://gitee.com/jeelowecode/jeelowcode-ui-admin-vue3) [![GitHub stars](https://img.shields.io/github/stars/jeelowcode/jeelowcode-ui-admin-vue3.svg?style=social&label=Stars)](https://github.com/jeelowcode/jeelowcode-ui-admin-vue3) [![star](https://gitcode.com/jeelowcode/jeelowcode-ui-admin-vue3/star/badge.svg)](https://gitcode.com/jeelowcode/jeelowcode-ui-admin-vue3) | 基于 Vue3 + Element Plus + Avue 实现的后台管理 | -## 🖼️系统架构图 +## 🖼️ 系统架构图 -## 🐛Hello World入门 +## 🐛 Hello World入门 只需要**4步** 带你了解低代码JeeLowCode @@ -89,7 +89,7 @@ com.jeelowcode
-## 💻演示效果图 +## 💻 演示效果图 ### 1 手机端效果图: @@ -129,7 +129,7 @@ com.jeelowcode
-## 🌟框架核心亮点 +## 🌟 框架核心亮点 ### 1 首页: @@ -287,7 +287,7 @@ com.jeelowcode -## 📥启动步骤 +## 📥 启动步骤 **温馨提示:** JDK、Maven、Node等可以从网盘下载
[百度网盘地址:https://pan.baidu.com/s/1ICmHRlrRYzBkx87zoRuqvQ?pwd=1234](https://pan.baidu.com/s/1ICmHRlrRYzBkx87zoRuqvQ?pwd=1234)
@@ -422,7 +422,7 @@ pnpm run dev-server -## 👏微信交流群/合作 +## 👏 微信交流群/合作 @@ -435,7 +435,7 @@ pnpm run dev-server
-## 📋提交规范 +## 📋 提交规范 ``` [init] 初始化 @@ -449,7 +449,7 @@ pnpm run dev-server [upgrade] 升级版本 ``` -## 🔗文章收录 +## 🔗 文章收录 - [企业级低代码平台,轻松应对99.99%编程挑战](https://mp.weixin.qq.com/s/M4h9wiZ1U7Fd3E4Ze4Yq_A) - [[开源]精心二次封装的企业级低代码开发框架,全开源低代码开发平台,在线轻松驾驭99.99%编程挑战](https://mp.weixin.qq.com/s/TZ094u7jm4wq3tacjPEExQ) -- Gitee From f015655940654d036233b7ebb140255a751f2b71 Mon Sep 17 00:00:00 2001 From: WeiXiao Date: Fri, 1 Aug 2025 10:25:35 +0800 Subject: [PATCH 04/14] =?UTF-8?q?[style]=20=E4=BF=AE=E6=94=B9README?= =?UTF-8?q?=E4=BB=8B=E7=BB=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/README.md b/README.md index 082271a..00660d6 100644 --- a/README.md +++ b/README.md @@ -91,7 +91,7 @@ com.jeelowcode ## 💻 演示效果图 -### 1 手机端效果图: +### 1. 手机端效果图: @@ -105,7 +105,7 @@ com.jeelowcode
-### 2 电脑端效果图: +### 2. 电脑端效果图: @@ -119,7 +119,7 @@ com.jeelowcode
-### 3 动态效果图: +### 3. 动态效果图: @@ -131,7 +131,7 @@ com.jeelowcode ## 🌟 框架核心亮点 -### 1 首页: +### 1. 首页:
@@ -139,7 +139,7 @@ com.jeelowcode
-### 2 在线表构建: +### 2. 在线表构建: 通过图形用户界面直观地创建数据表,一旦创建完成,即刻享有增、删、改、查、数据导入和导出的全面功能,操作简便,效率倍增。 @@ -152,7 +152,7 @@ com.jeelowcode -### 3 在线统计报表: +### 3. 在线统计报表: 只需配置简单的SQL语句,即可迅速生成包括柱状图、折线图、饼图以及卡片视图在内的多样化统计报表,直观展现数据分析结果。 @@ -165,7 +165,7 @@ com.jeelowcode -### 4 在线多表关联: +### 4. 在线多表关联: 利用界面化的灵活配置,实现多表关联的直观展示,确保所见即所得的数据处理体验。 @@ -181,7 +181,7 @@ com.jeelowcode -### 5 在线格式化字段显示: +### 5. 在线格式化字段显示: 为满足界面字段合并显示需求,提供三种简捷处理方法:数据库层面的SQL函数拼接,查询时的SQL字符串合并,以及应用层的Java代码处理。选择适合的方法以优化性能和灵活性。 @@ -194,7 +194,7 @@ com.jeelowcode -### 6 在线排序设置: +### 6. 在线排序设置: 通过拖放操作,用户可以直观地设置初始化数据的排序规则。 @@ -204,7 +204,7 @@ com.jeelowcode -### 7 在线租户数据权限配置: +### 7. 在线租户数据权限配置: 提供在线配置工具,轻松实现租户级别的数据权限设定,确保数据访问的安全性和合规性,提升**多租户**场景下的应用灵活性。**JeeLowCode**以其卓越的灵活性、高效性和易用性,成为加速数字化转型、驱动业务创新的理想选择。 @@ -214,7 +214,7 @@ com.jeelowcode -### 8 广泛数据库兼容: +### 8. 广泛数据库兼容: @@ -239,7 +239,7 @@ com.jeelowcode
-### 9 在线表单设计: +### 9. 在线表单设计: 提供丰富多样的控件,全面支持各类页面的开发需求。 @@ -249,7 +249,7 @@ com.jeelowcode -### 10 丰富完善的示例: +### 10. 丰富完善的示例: 丰富完善的示例,便于用户快速学习和上手 @@ -268,7 +268,7 @@ com.jeelowcode -### 11 100+常用模板: +### 11. 100+常用模板: 提供了丰富多样的常用页面模板,以便开发者能够迅速采纳和应用。 @@ -293,7 +293,7 @@ com.jeelowcode
[阿里云盘地址:https://www.alipan.com/s/X4kF7Hshuc2](https://www.alipan.com/s/X4kF7Hshuc2)
-### 1 后台JAVA代码运行步骤 +### 1. 后台JAVA代码运行步骤 **环境配置** @@ -327,7 +327,7 @@ com.jeelowcode -### 2 前端VUE代码运行步骤: +### 2. 前端VUE代码运行步骤: **后台运行环境:** node18.0.0 -- Gitee From 19c2e9218c581500be7e22b7f45e0fd1e75a824c Mon Sep 17 00:00:00 2001 From: WeiXiao Date: Fri, 1 Aug 2025 10:36:39 +0800 Subject: [PATCH 05/14] =?UTF-8?q?[style]=20=E6=9B=B4=E6=94=B9README.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 00660d6..57d4264 100644 --- a/README.md +++ b/README.md @@ -455,5 +455,4 @@ pnpm run dev-server - [[开源]精心二次封装的企业级低代码开发框架,全开源低代码开发平台,在线轻松驾驭99.99%编程挑战](https://mp.weixin.qq.com/s/TZ094u7jm4wq3tacjPEExQ) - [无需编码,JeeLowCode 助你轻松构建强大应用!-JeeLowCode](https://mp.weixin.qq.com/s/h4jVs8DBAzaeSWKpDVo0xw) - [体验JeeLowCode,感受低代码开发的魅力与高效!](https://mp.weixin.qq.com/s/JNwFWHRPFwcEIE5JV5xT3A) -- [体验JeeLowCode,感受低代码开发的魅力与高效!](https://mp.weixin.qq.com/s/JNwFWHRPFwcEIE5JV5xT3A) -- Gitee From 3820ecee8e0e4e63ef645524b840d062bd3fd804 Mon Sep 17 00:00:00 2001 From: WeiXiao Date: Fri, 1 Aug 2025 11:48:20 +0800 Subject: [PATCH 06/14] =?UTF-8?q?[style]=20=E4=BF=AE=E6=94=B9README.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 57d4264..d224708 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@

-[💦官方自研低代码流程:https://doc.jeelowcode.com/app/1](https://doc.jeelowcode.com/app/1) +[💦[推荐]官方自研流程:flow.jeelowcode.com](http://flow.jeelowcode.com)

logo @@ -24,8 +24,7 @@

💻 低代码演示:demo.jeelowcode.com | - ☕️ 技术社区:doc.jeelowcode.com | - 💦 自研流程:flow.jeelowcode.com + ☕️ 技术社区:doc.jeelowcode.com

-- Gitee From 4d098673b10821558f3ebdf50d82c5691855bd04 Mon Sep 17 00:00:00 2001 From: WeiXiao Date: Sun, 28 Sep 2025 16:32:42 +0800 Subject: [PATCH 07/14] =?UTF-8?q?=E7=99=BE=E5=BA=A6=E7=BD=91=E7=9B=98?= =?UTF-8?q?=E4=B8=8B=E8=BD=BD=E5=9C=B0=E5=9D=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index d224708..11ee515 100644 --- a/README.md +++ b/README.md @@ -288,7 +288,7 @@ com.jeelowcode ## 📥 启动步骤 **温馨提示:** JDK、Maven、Node等可以从网盘下载
-[百度网盘地址:https://pan.baidu.com/s/1ICmHRlrRYzBkx87zoRuqvQ?pwd=1234](https://pan.baidu.com/s/1ICmHRlrRYzBkx87zoRuqvQ?pwd=1234) +[百度网盘地址:https://pan.baidu.com/s/158EwoXY7nvBvm_P1JKnvZQ?pwd=1234](https://pan.baidu.com/s/158EwoXY7nvBvm_P1JKnvZQ?pwd=1234)
[阿里云盘地址:https://www.alipan.com/s/X4kF7Hshuc2](https://www.alipan.com/s/X4kF7Hshuc2)
-- Gitee From d225c304591cb8a76be35633af05f76ca494838a Mon Sep 17 00:00:00 2001 From: WeiXiao Date: Sun, 28 Sep 2025 16:51:48 +0800 Subject: [PATCH 08/14] =?UTF-8?q?[perf]=20=E5=8E=BB=E9=99=A4=E4=B8=8D?= =?UTF-8?q?=E5=BF=85=E8=A6=81=E7=9A=84=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/ExcelServiceImpl.java | 31 +++------- .../service/impl/FrameServiceImpl.java | 3 - .../jeelowcode/core/framework/utils/Func.java | 58 ------------------- 3 files changed, 8 insertions(+), 84 deletions(-) diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/service/impl/ExcelServiceImpl.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/service/impl/ExcelServiceImpl.java index 6a7870e..576df62 100644 --- a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/service/impl/ExcelServiceImpl.java +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/service/impl/ExcelServiceImpl.java @@ -13,31 +13,25 @@ http://www.apache.org/licenses/ */ package com.jeelowcode.core.framework.service.impl; -import cn.hutool.core.date.DateUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.jeelowcode.core.framework.entity.*; import com.jeelowcode.core.framework.mapper.JeeLowCodeMapper; import com.jeelowcode.core.framework.mapper.ReportFieldMapper; import com.jeelowcode.core.framework.params.SaveImportDataParam; +import com.jeelowcode.core.framework.params.model.ExcelImportDataDictModel; +import com.jeelowcode.core.framework.params.model.ExcelModel; +import com.jeelowcode.core.framework.params.model.ExcelTemplateModel; import com.jeelowcode.core.framework.service.*; import com.jeelowcode.core.framework.utils.Func; import com.jeelowcode.framework.excel.model.ExcelTitleModel; -import com.jeelowcode.framework.exception.JeeLowCodeException; -import com.jeelowcode.framework.utils.component.redis.JeeLowCodeRedisUtils; import com.jeelowcode.framework.utils.enums.YNEnum; -import com.jeelowcode.framework.utils.model.ExecuteEnhanceModel; -import com.jeelowcode.framework.utils.tool.spring.SpringUtils; import com.jeelowcode.framework.utils.utils.FuncBase; import com.jeelowcode.framework.utils.utils.JeeLowCodeUtils; -import com.jeelowcode.core.framework.params.model.ExcelImportDataDictModel; -import com.jeelowcode.core.framework.params.model.ExcelModel; -import com.jeelowcode.core.framework.params.model.ExcelTemplateModel; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.map.LinkedMap; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.ServletRequestAttributes; @@ -45,8 +39,6 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; -import java.util.concurrent.TimeUnit; -import java.util.concurrent.atomic.AtomicReference; import java.util.stream.Collectors; /** @@ -68,12 +60,6 @@ public class ExcelServiceImpl implements IExcelService { @Autowired private IExcelFileDataService excelDataService; - @Autowired - private JeeLowCodeRedisUtils jeeLowCodeRedisUtils; - - @Autowired - private IExcelFileService excelFileService; - @Autowired private IReportService reportService; @@ -169,7 +155,6 @@ public class ExcelServiceImpl implements IExcelService { /** * 获取导出基本信息 - * */ @Override public ExcelModel getExcelReportModel(String reportCode) { @@ -177,8 +162,8 @@ public class ExcelServiceImpl implements IExcelService { String sheetName = reportEntity.getReportName();//表描述 - LambdaQueryWrapper wrapper=new LambdaQueryWrapper<>(); - wrapper.eq(ReportFieldEntity::getReportId,reportEntity.getId()); + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(ReportFieldEntity::getReportId, reportEntity.getId()); wrapper.eq(ReportFieldEntity::getIsExport, YNEnum.Y.getCode()); List fieldEntityList = reportFieldMapper.selectList(wrapper); @@ -222,11 +207,11 @@ public class ExcelServiceImpl implements IExcelService { //获取字典 ExcelImportDataDictModel dictModel = this.formatExcelImportDataList(dbFormId); //处理导入 - SaveImportDataParam param=new SaveImportDataParam(); + SaveImportDataParam param = new SaveImportDataParam(); param.setFieldId(fieldId); param.setEntityList(entityList); param.setDictModel(dictModel); - frameService.handleImportData(dbFormId,param); + frameService.handleImportData(dbFormId, param); } diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/service/impl/FrameServiceImpl.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/service/impl/FrameServiceImpl.java index 5054ded..bbbc1ee 100644 --- a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/service/impl/FrameServiceImpl.java +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/service/impl/FrameServiceImpl.java @@ -98,9 +98,6 @@ public class FrameServiceImpl implements IFrameService { @Autowired private IDbFormRoleService dbFormRoleService; - @Autowired - private FormRoleDataRuleMapper roleDataRuleMapper; - @Autowired private JeeLowCodeRedisUtils jeeLowCodeRedisUtils; diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/utils/Func.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/utils/Func.java index e2a8319..712e669 100644 --- a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/utils/Func.java +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/utils/Func.java @@ -76,38 +76,6 @@ import java.util.stream.Collectors; */ public class Func extends FuncBase { - - //校验数据类型 - public static Object fomatDbValue(String fieldType, Object value) { - if (FuncBase.isEmpty(value)) { - return null; - } - if (FuncBase.equals(fieldType, JeeLowCodeFieldTypeEnum.STRING.getFieldType()) - || FuncBase.equals(fieldType, JeeLowCodeFieldTypeEnum.TEXT.getFieldType()) - || FuncBase.equals(fieldType, JeeLowCodeFieldTypeEnum.LONGTEXT.getFieldType())) {//字符串 - return FuncBase.toStr(value); - } else if (FuncBase.equals(fieldType, JeeLowCodeFieldTypeEnum.INTEGER.getFieldType())) { - return FuncBase.toInt(value); - } else if (FuncBase.equals(fieldType, JeeLowCodeFieldTypeEnum.BIGINT.getFieldType())) { - return FuncBase.toLong(value); - } else if (FuncBase.equals(fieldType, JeeLowCodeFieldTypeEnum.BIGDECIMAL.getFieldType())) { - return new BigDecimal(FuncBase.toStr(value)); - } else if (FuncBase.equals(fieldType, JeeLowCodeFieldTypeEnum.DATE.getFieldType())) { - //yyyy-MM-dd - String str = FuncBase.toStr(value); - return DateUtil.parseDate(str.substring(0, 10)); - } else if (FuncBase.equals(fieldType, JeeLowCodeFieldTypeEnum.DATETIME.getFieldType())) { - //yyyy-MM-dd HH:mm:ss - String str = FuncBase.toStr(value); - return DateUtil.parseDateTime(str.substring(0, 19)); - } else if (FuncBase.equals(fieldType, JeeLowCodeFieldTypeEnum.TIME.getFieldType())) { - //HH:mm:ss - String str = FuncBase.toStr(value); - return DateUtil.parseTime(str.substring(0, 8)); - } - return FuncBase.toStr(value); - } - /** * 校验表名称是否可用 * @@ -257,33 +225,7 @@ public class Func extends FuncBase { return sql; } - /** - * 执行某一个类下的方法, - * - * @param classPath 类路径 - * @param methodName 方法名称 - * @param dataMap 参数 - * @return - */ - public static Object runByClass(String classPath, String methodName, Map dataMap) { - try { - // 1. 获取Class对象 - Class clazz = Class.forName(classPath); - - // 2. 创建DemoClass的一个实例 - Object demoClassInstance = clazz.getDeclaredConstructor().newInstance(); - - // 3. 获取getBjName方法的对象 - Method method = clazz.getMethod(methodName, Map.class); - // 4. 调用getBjName方法 - return method.invoke(demoClassInstance, dataMap); - } catch (Exception e) { - e.printStackTrace(); - throw new JeeLowCodeException(e.getMessage()); - } - - } //计算 public static String executeJavaExpress(String express, Map dataMap) { -- Gitee From 09391d6a3d33410f0d7e8749eb049d2b43f76912 Mon Sep 17 00:00:00 2001 From: WeiXiao Date: Thu, 16 Oct 2025 09:07:25 +0800 Subject: [PATCH 09/14] [update] README UPDATE --- README.md | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 11ee515..fd906ab 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,3 @@ - -

- logo -

-
- -[💦[推荐]官方自研流程:flow.jeelowcode.com](http://flow.jeelowcode.com) -

logo

@@ -24,7 +16,8 @@

💻 低代码演示:demo.jeelowcode.com | - ☕️ 技术社区:doc.jeelowcode.com + 💦️ 自研工作流:flow.jeelowcode.com | + ☕️ 技术社区:doc.jeelowcode.com

-- Gitee From 182a9a529cb043e324c2629c721afab00aeb7b95 Mon Sep 17 00:00:00 2001 From: WeiXiao Date: Mon, 27 Oct 2025 10:41:10 +0800 Subject: [PATCH 10/14] =?UTF-8?q?[update]=20=E6=9B=B4=E6=96=B0README.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index fd906ab..bf7ef91 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,6 @@ +## 年度开源项目评选 +感谢您对 JeeLowCode 开源项目的支持,诚邀您投出宝贵一票!
+投票链接:https://gitee.com/activity/2025opensource?ident=IZQSAP

logo

-- Gitee From c1c4e1e97c0e0a1622e21ca24ab1287bad7a7412 Mon Sep 17 00:00:00 2001 From: WeiXiao Date: Sat, 1 Nov 2025 16:38:23 +0800 Subject: [PATCH 11/14] =?UTF-8?q?[refactor]=20sql=E6=89=A7=E8=A1=8C?= =?UTF-8?q?=E5=89=8D=E6=8B=A6=E6=88=AA=E5=8A=A0=E4=B8=8A=E7=A7=9F=E6=88=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../component/JeelowCodePlusInterceptor.java | 226 +++++++----------- 1 file changed, 92 insertions(+), 134 deletions(-) diff --git a/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/component/JeelowCodePlusInterceptor.java b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/component/JeelowCodePlusInterceptor.java index d6ba716..4712f04 100644 --- a/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/component/JeelowCodePlusInterceptor.java +++ b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/component/JeelowCodePlusInterceptor.java @@ -1,175 +1,133 @@ -/* -Apache License -Version 2.0, January 2004 -http://www.apache.org/licenses/ -本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 - -开源协议中文释意如下: -1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,允许商用使用,不会造成侵权行为。 -2.允许基于本平台软件开展业务系统开发。 -3.在任何情况下,您不得使用本软件开发可能被认为与本软件竞争的软件。 - -最终解释权归:http://www.jeelowcode.com -*/ package com.jeelowcode.framework.plus.component; - -import com.jeelowcode.framework.global.JeeLowCodeBaseConstant; import com.jeelowcode.framework.plus.SqlHelper; import com.jeelowcode.framework.utils.utils.FuncBase; -import org.apache.ibatis.builder.StaticSqlSource; -import org.apache.ibatis.cache.CacheKey; -import org.apache.ibatis.executor.Executor; -import org.apache.ibatis.mapping.*; -import org.apache.ibatis.plugin.Interceptor; -import org.apache.ibatis.plugin.Intercepts; -import org.apache.ibatis.plugin.Invocation; -import org.apache.ibatis.plugin.Signature; -import org.apache.ibatis.session.ResultHandler; -import org.apache.ibatis.session.RowBounds; +import org.apache.ibatis.executor.statement.RoutingStatementHandler; +import org.apache.ibatis.executor.statement.StatementHandler; +import org.apache.ibatis.mapping.BoundSql; +import org.apache.ibatis.mapping.MappedStatement; +import org.apache.ibatis.plugin.*; +import org.apache.ibatis.reflection.MetaObject; +import org.apache.ibatis.reflection.SystemMetaObject; import org.springframework.stereotype.Component; +import java.lang.reflect.Field; +import java.lang.reflect.InvocationHandler; +import java.lang.reflect.Proxy; +import java.sql.Connection; import java.util.ArrayList; -import java.util.Iterator; import java.util.List; -import java.util.Map; +import java.util.Properties; import static com.jeelowcode.framework.global.JeeLowCodeBaseConstant.BASE_PACKAGES_CODE; @Component -@Intercepts({@Signature( - type = Executor.class, - method = "update", - args = {MappedStatement.class, Object.class} -), @Signature( - type = Executor.class, - method = "query", - args = {MappedStatement.class, Object.class, RowBounds.class, ResultHandler.class} -), @Signature( - type = Executor.class, - method = "query", - args = {MappedStatement.class, Object.class, RowBounds.class, ResultHandler.class, CacheKey.class, BoundSql.class} -)}) +@Intercepts({ + @Signature(type = StatementHandler.class, + method = "prepare", + args = {Connection.class, Integer.class}) +}) public class JeelowCodePlusInterceptor implements Interceptor { - private List getSkipMapperList(){//todo 后面需要优化 - String SKIP_MAPPER_CODE = BASE_PACKAGES_CODE+".framework.mapper";//不做租户拦截的mapper - - - List skipMapperList=new ArrayList<>(); - skipMapperList.add(SKIP_MAPPER_CODE); + private List getSkipMapperList() { + List skipMapperList = new ArrayList<>(); + // 不做租户拦截的mapper包路径 + skipMapperList.add(BASE_PACKAGES_CODE + ".framework.mapper"); + // 可以添加更多需要跳过的mapper路径 return skipMapperList; } @Override public Object intercept(Invocation invocation) throws Throwable { - Object target = invocation.getTarget(); - Object[] args = invocation.getArgs(); - if (!(target instanceof Executor)) { - return invocation.proceed(); - } + try { + StatementHandler statementHandler = (StatementHandler) invocation.getTarget(); + // 获取MappedStatement + MappedStatement ms = getMappedStatement(statementHandler); + if(FuncBase.isEmpty(ms)){ + return invocation.proceed(); + } + String id = ms.getId(); + List skipMapperList = getSkipMapperList(); + for(String skipMapper:skipMapperList){ + if(id.startsWith(skipMapper)){ + return invocation.proceed(); + } + } - Executor executor = (Executor) target; - Object parameter = args[1]; - boolean isUpdate = args.length == 2; - MappedStatement ms = (MappedStatement) args[0]; - String id = ms.getId(); - List skipMapperList = getSkipMapperList(); - for(String skipMapper:skipMapperList){ - if(id.startsWith(skipMapper)){ + if (!id.startsWith(BASE_PACKAGES_CODE)) {//直接跳过,如果不是低代码平台,则直接跳过 return invocation.proceed(); } + // 获取SQL并处理 + BoundSql boundSql = statementHandler.getBoundSql(); + String originalSql = boundSql.getSql(); + + // 进行SQL替换处理 + String publicSql = SqlHelper.getPublicSql(originalSql); + + // 使用反射修改SQL + Field sqlField = BoundSql.class.getDeclaredField("sql"); + sqlField.setAccessible(true); + sqlField.set(boundSql, publicSql); + } catch (Exception e) { + // 记录错误但不中断流程 + System.err.println("拦截器处理异常: " + e.getMessage()); + e.printStackTrace(); } - if (!id.startsWith(BASE_PACKAGES_CODE)) {//直接跳过,如果不是低代码平台,则直接跳过 - return invocation.proceed(); - } + return invocation.proceed(); + } - if (!isUpdate && ms.getSqlCommandType() == SqlCommandType.SELECT) {//查询相关 - RowBounds rowBounds = (RowBounds) args[2]; - ResultHandler resultHandler = (ResultHandler) args[3]; - BoundSql boundSql; - if (args.length == 4) { - boundSql = ms.getBoundSql(parameter); - } else { - boundSql = (BoundSql) args[5]; - } - String publicSql = SqlHelper.getPublicSql(boundSql.getSql()); - Object additionalParametersObj = boundSql.getAdditionalParameters(); - boundSql = new BoundSql(ms.getConfiguration(), publicSql, boundSql.getParameterMappings(), boundSql.getParameterObject()); - if (FuncBase.isNotEmpty(additionalParametersObj)) { - Map additionalParameters = (Map) additionalParametersObj; - - Iterator> iterator = additionalParameters.entrySet().iterator(); - while (iterator.hasNext()) { - Map.Entry next = iterator.next(); - String key = next.getKey(); - Object value = next.getValue(); - boundSql.setAdditionalParameter(key, value); + /** + * 通过反射获取MappedStatement + */ + /** + * 通过 MetaObject 获取 MappedStatement + */ + private MappedStatement getMappedStatement(StatementHandler handler) { + try { + // 处理代理对象 + if (Proxy.isProxyClass(handler.getClass())) { + InvocationHandler invocationHandler = Proxy.getInvocationHandler(handler); + if (invocationHandler instanceof Plugin) { + Field targetField = invocationHandler.getClass().getDeclaredField("target"); + targetField.setAccessible(true); + handler = (StatementHandler) targetField.get(invocationHandler); } } - CacheKey cacheKey = executor.createCacheKey(ms, parameter, rowBounds, boundSql); - List query = null; - try { - query = executor.query(ms, parameter, rowBounds, resultHandler, cacheKey, boundSql); - } catch (Exception e) { - e.printStackTrace(); - } - return query; + // 如果是 RoutingStatementHandler,获取其 delegate + if (handler instanceof RoutingStatementHandler) { + Field delegateField = RoutingStatementHandler.class.getDeclaredField("delegate"); + delegateField.setAccessible(true); + Object delegate = delegateField.get(handler); - } - if (isUpdate) { - SqlSource sqlSource = ms.getSqlSource(); - try { - BoundSql boundSql = sqlSource.getBoundSql(parameter); - String publicSql = SqlHelper.getPublicSql(boundSql.getSql()); - List parameterMappings = boundSql.getParameterMappings(); - SqlSource newSqlSource = new StaticSqlSource(ms.getConfiguration(), publicSql, parameterMappings); - MappedStatement.Builder builder = new MappedStatement.Builder(ms.getConfiguration(), ms.getId(), newSqlSource, ms.getSqlCommandType()); - this.copyBuilder(builder, ms); - MappedStatement build = builder.build(); - - return executor.update(build, parameter); - } catch (Exception e) { - //e.printStackTrace(); + // 从 delegate 中获取 mappedStatement + MetaObject delegateMeta = SystemMetaObject.forObject(delegate); + if (delegateMeta.hasGetter("mappedStatement")) { + return (MappedStatement) delegateMeta.getValue("mappedStatement"); + } } - } - return invocation.proceed(); + return null; + } catch (Exception e) { + System.err.println("获取 MappedStatement 失败: " + e.getMessage()); + e.printStackTrace(); + return null; + } } - //复制属性 - private void copyBuilder(MappedStatement.Builder builder, MappedStatement ms) { - builder.resource(ms.getResource()); - builder.fetchSize(ms.getFetchSize()); - builder.timeout(ms.getTimeout()); - builder.statementType(ms.getStatementType()); - builder.resultSetType(ms.getResultSetType()); - builder.cache(ms.getCache()); - builder.parameterMap(ms.getParameterMap()); - builder.resultMaps(ms.getResultMaps()); - builder.flushCacheRequired(ms.isFlushCacheRequired()); - builder.useCache(ms.isUseCache()); - builder.resultOrdered(ms.isResultOrdered()); - builder.keyGenerator(ms.getKeyGenerator()); - if (FuncBase.isNotEmpty(ms.getKeyProperties())) { - builder.keyProperty(ms.getKeyProperties()[0]); - } - if (FuncBase.isNotEmpty(ms.getKeyColumns())) { - builder.keyColumn(ms.getKeyColumns()[0]); - } - builder.databaseId(ms.getDatabaseId()); - builder.lang(ms.getLang()); - if (FuncBase.isNotEmpty(ms.getResultSets())) { - builder.resultSets(ms.getResultSets()[0]); - } + @Override + public Object plugin(Object target) { + return Interceptor.super.plugin(target); + } - builder.dirtySelect(ms.isDirtySelect()); + @Override + public void setProperties(Properties properties) { + Interceptor.super.setProperties(properties); } } \ No newline at end of file -- Gitee From ebda7680cc1b58bca3cd75168ff011de73759ed0 Mon Sep 17 00:00:00 2001 From: WeiXiao Date: Thu, 13 Nov 2025 09:20:36 +0800 Subject: [PATCH 12/14] =?UTF-8?q?=E3=80=90=E6=9B=B4=E6=96=B0=E3=80=91=20?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=96=87=E7=AB=A0=E6=94=B6=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 15 ++------------- 1 file changed, 2 insertions(+), 13 deletions(-) diff --git a/README.md b/README.md index bf7ef91..d56770a 100644 --- a/README.md +++ b/README.md @@ -430,22 +430,11 @@ pnpm run dev-server -## 📋 提交规范 -``` -[init] 初始化 -[feat] 增加新功能 -[fix] 修复问题/BUG -[perf] 优化/性能提升 -[refactor] 重构 -[revert] 撤销修改 -[style] 代码风格相关无影响运行结果的 -[update] 其他修改 -[upgrade] 升级版本 -``` ## 🔗 文章收录 - +- [一款开源低代码王炸!企业级功能全免费,小白也能快速上手!](https://mp.weixin.qq.com/s/BE5FB40uFWtItFxJ7R6Nfw) +- [零代码基础也能快速上手,JeeLowCode助力企业数字化转型](https://mp.weixin.qq.com/s/soUA7qK6xt0p6SXD9yy8Zg) - [企业级低代码平台,轻松应对99.99%编程挑战](https://mp.weixin.qq.com/s/M4h9wiZ1U7Fd3E4Ze4Yq_A) - [[开源]精心二次封装的企业级低代码开发框架,全开源低代码开发平台,在线轻松驾驭99.99%编程挑战](https://mp.weixin.qq.com/s/TZ094u7jm4wq3tacjPEExQ) - [无需编码,JeeLowCode 助你轻松构建强大应用!-JeeLowCode](https://mp.weixin.qq.com/s/h4jVs8DBAzaeSWKpDVo0xw) -- Gitee From d8392741c937b8cd445d54a9a0ca453592f3c4e7 Mon Sep 17 00:00:00 2001 From: WeiXiao Date: Thu, 13 Nov 2025 09:22:31 +0800 Subject: [PATCH 13/14] =?UTF-8?q?=E3=80=90=E6=9B=B4=E6=96=B0=E3=80=91=20?= =?UTF-8?q?=E9=85=8D=E7=BD=AE=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitattributes | 3 ++- .gitignore | 1 + lombok.config | 1 + 3 files changed, 4 insertions(+), 1 deletion(-) diff --git a/.gitattributes b/.gitattributes index 8377498..545ae0a 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1,4 +1,5 @@ *.html linguist-language=java *.css linguist-language=java *.js linguist-language=java -*.vue linguist-language=java \ No newline at end of file +*.vue linguist-language=java + diff --git a/.gitignore b/.gitignore index 09ec363..1fec123 100644 --- a/.gitignore +++ b/.gitignore @@ -51,3 +51,4 @@ rebel.xml application-my.yaml /yudao-ui-app/unpackage/ + diff --git a/lombok.config b/lombok.config index a8e8ce6..65013fd 100644 --- a/lombok.config +++ b/lombok.config @@ -2,3 +2,4 @@ config.stopBubbling = true lombok.tostring.callsuper=CALL lombok.equalsandhashcode.callsuper=CALL lombok.accessors.chain=true + -- Gitee From 70b4fc0f5f525cb8602212859b36723eacd9060f Mon Sep 17 00:00:00 2001 From: WeiXiao Date: Wed, 26 Nov 2025 09:05:06 +0800 Subject: [PATCH 14/14] =?UTF-8?q?=E3=80=90=E6=9B=B4=E6=96=B0=E3=80=91?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=96=87=E7=AB=A0=E6=94=B6=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index d56770a..808f8b0 100644 --- a/README.md +++ b/README.md @@ -433,6 +433,9 @@ pnpm run dev-server ## 🔗 文章收录 +- [开源|写代码太累?这款低代码平台,拖拖拽拽就能上线业务系统](https://mp.weixin.qq.com/s/YW5HI0sucGqLzEIUrpr1Kw) +- [Java低代码快速开发框架JeeLowCode,助你快速实现业务系统开发](https://mp.weixin.qq.com/s/vtubg0xSnxXO8vjLiY3r4w) +- [免费商用 + 全功能覆盖!JeeLowCode:企业数字化的性价比之选](https://mp.weixin.qq.com/s/XaqEaH_U_ep1c3HoOE0_uQ) - [一款开源低代码王炸!企业级功能全免费,小白也能快速上手!](https://mp.weixin.qq.com/s/BE5FB40uFWtItFxJ7R6Nfw) - [零代码基础也能快速上手,JeeLowCode助力企业数字化转型](https://mp.weixin.qq.com/s/soUA7qK6xt0p6SXD9yy8Zg) - [企业级低代码平台,轻松应对99.99%编程挑战](https://mp.weixin.qq.com/s/M4h9wiZ1U7Fd3E4Ze4Yq_A) -- Gitee