diff --git a/.editorconfig b/.editorconfig deleted file mode 100644 index fd230fd6..00000000 --- a/.editorconfig +++ /dev/null @@ -1,35 +0,0 @@ -# EditorConfig is awesome: https://EditorConfig.org - -# top-most EditorConfig file -root = true - -# Unix-style newlines with a newline ending every file -[*] -charset = utf-8 -end_of_line = lf -insert_final_newline = true -trim_trailing_whitespace = true - -# Java files -[*.java] -indent_style = space -indent_size = 4 - -# XML files -[*.xml] -indent_style = space -indent_size = 4 - -# YAML files -[*.{yml,yaml}] -indent_style = space -indent_size = 2 - -# Properties files -[*.properties] -indent_style = space -indent_size = 4 - -# Markdown files -[*.md] -trim_trailing_whitespace = false diff --git a/.gitattributes b/.gitattributes deleted file mode 100644 index a3fd9cca..00000000 --- a/.gitattributes +++ /dev/null @@ -1,14 +0,0 @@ -# Auto detect text files and perform LF normalization -* text=auto eol=lf - -# Java files -*.java text eol=lf -*.xml text eol=lf - -# Config files -*.yml text eol=lf -*.yaml text eol=lf -*.properties text eol=lf - -# Shell scripts -*.sh text eol=lf diff --git a/Dockerfile b/Dockerfile index 3ebb3846..2a54fa23 100644 --- a/Dockerfile +++ b/Dockerfile @@ -11,7 +11,7 @@ ENV TZ=Asia/Shanghai VOLUME /tmp # 添加应用 -ADD target/youlai-boot.jar app.jar +ADD youlai-app/target/youlai-app.jar app.jar # 启动命令 CMD java \ diff --git a/README.md b/README.md index 6c07bafd..44d79b3c 100644 --- a/README.md +++ b/README.md @@ -1,172 +1,154 @@ -

- youlai-boot -

+
-

youlai-boot

+youlai-boot -

- Spring Boot 4 企业级权限管理系统后端 -

+# youlai-boot-multi -

- Documentation - Demo - -

+**Spring Boot 4 多模块企业级权限管理系统后端** -

- - -

+[![Spring Boot](https://img.shields.io/badge/Spring%20Boot-4.0.5-6DB33F?logo=spring-boot)](https://spring.io/projects/spring-boot) +[![JDK](https://img.shields.io/badge/JDK-17%2B-007396?logo=openjdk)](https://openjdk.org/) +[![License](https://img.shields.io/badge/License-Apache%202.0-blue?logo=apache)](LICENSE) ---- +[![文档](https://img.shields.io/badge/📖%20文档-youlai.tech-blue)](https://www.youlai.tech/docs/admin/backend/java/) +[![在线预览](https://img.shields.io/badge/🖥️%20在线预览-vue.youlai.tech-10B981)](https://vue.youlai.tech) +[![Gitee Star](https://gitee.com/youlaiorg/youlai-boot/badge/star.svg)](https://gitee.com/youlaiorg/youlai-boot/stargazers) -> [English](#) | 简体中文 +
---- +## 简介 -## 🎯 项目定位 +**youlai-boot-multi** 是 [youlai-boot](https://gitee.com/youlaiorg/youlai-boot) 的多模块版本,基于 Spring Boot 4,将原单体项目拆分为独立模块,实现业务解耦与按需引用。配套前端 [vue3-element-admin](https://gitee.com/youlaiorg/vue3-element-admin),共享同一套 API 规范与数据库结构。 -一套 **Spring Boot 4 后端权限管理系统**,配套前端 [vue3-element-admin](https://gitee.com/youlaiorg/vue3-element-admin),并提供 **6 种语言实现**(Java / Node.js / Go / Python / PHP / C#),共享同一套 API 规范与数据库结构。 +> 📌 本项目为 [youlai-boot](https://gitee.com/youlaiorg/youlai-boot) 的 `multi-module` 分支,克隆时请切换分支。 -**适合场景**:企业中后台管理系统的后端学习参考、二次开发基础脚手架。 +## 核心特性 ---- +- 🔐 **安全体系** — Spring Security + JWT/Redis Token 双会话模式、令牌续期、多端互斥 +- 🛡️ **细粒度权限** — RBAC 五级:数据 → 菜单 → 按钮 → 接口 → 字段 +- ⚡ **代码生成器** — 一键生成前后端 CRUD 代码 +- 📦 **模块齐全** — 用户、角色、菜单、部门、字典、文件、定时任务、消息中心、操作日志 +- 🔌 **实时通信** — SSE 推送:在线用户数、字典同步、通知广播 +- 🧩 **模块解耦** — 事件驱动通信,模块间零循环依赖 -## ✨ 核心能力 +## 快速开始 -| 能力 | 说明 | -|------|------| -| 🔐 **安全体系** | Spring Security + JWT + Redis 多端互斥、令牌续期、验证码防刷 | -| 🛡️ **细粒度权限** | RBAC 五级:数据权限 → 菜单 → 按钮 → 接口 → 字段级 | -| ⚡ **代码生成器** | 可视化配置表单,一键生成 Entity/VO/Controller/Service/CRUD 前后端代码 | -| 📦 **模块齐全** | 用户、角色、菜单、部门、字典、文件、定时任务、消息中心、操作日志 | -| 🌐 **多租户 SaaS** | 数据隔离 + 租户配置,独立 [youlai-boot-tenant](https://gitee.com/youlaiorg/youlai-boot-tenant) 版本 | -| 🔌 **实时通信** | 内置 SSE 推送服务(在线用户数、字典同步、通知广播) | -| 📱 **生态完整** | 配套移动端 [youlai-app](https://gitee.com/youlaiorg/youlai-app)(UniApp)+ 完整[技术文档](https://www.youlai.tech/docs/admin/) | +**环境要求**:JDK 17+ · MySQL 8.0+ · Redis 6.0+ -## 📸 系统预览 - - - - - - - -
系统预览1系统预览2
- - -## 🚀 快速开始 - -### 环境要求 - -| 组件 | 版本 | -|------|------| -| JDK | 17+ | -| MySQL | 8.0+ / 5.7+ | -| Redis | 6.0+ | - -### 本地启动 - -```bash -# 1. 克隆项目 -git clone https://gitee.com/youlaiorg/youlai-boot.git - -# 2. 导入数据库脚本 sql/mysql/youlai_admin.sql - -# 3. 修改 application-dev.yml 配置 MySQL 和 Redis 连接信息 -# 💡 默认已配置线上只读数据源,可直接启动体验 - -# 4. 运行 YouLaiBootApplication.java,访问 http://localhost:8000/doc.html -``` +1. 克隆项目:`git clone -b multi-module https://gitee.com/youlaiorg/youlai-boot.git` +2. 导入数据库:`sql/youlai_admin.sql` +3. 修改配置(可选,默认已配置线上只读数据源):`youlai-application/src/main/resources/application-dev.yml` +4. 启动服务(运行 `youlai-application` 模块的 `YouLaiBootApplication`),访问 http://localhost:8000/doc.html 默认账号:`admin` / `123456` -### Docker 部署 - -```bash -cd docker && docker-compose up -d -``` +**Docker 部署**:`cd docker && docker-compose up -d` 详细指南:[部署文档](https://www.youlai.tech/docs/admin/backends/java/deploy) · [开发规范](https://www.youlai.tech/docs/admin/backends/java/dev-standards) -## 📁 目录结构 +## 技术栈 + +| 技术 | 版本 | 说明 | +|:-----|:-----|:-----| +| Spring Boot | 4.0.5 | 核心框架 | +| Spring Security | 6.x | 认证授权 | +| MyBatis-Plus | 3.5.15 | ORM 框架 | +| Druid | 1.2.24 | 数据库连接池 | +| Redis + Redisson | 6.0+ / 4.1.0 | 缓存 · 会话 · 分布式锁 | +| Caffeine | 2.9.3 | 本地缓存 | +| XXL-Job | 3.2.0 | 分布式定时任务 | +| Knife4j | 4.5.0 | API 文档 | +| MapStruct | 1.6.3 | 对象映射 | +| MinIO | 8.5.10 | 对象存储 | + +## 目录结构 ``` -youlai-boot/ -├── docker/ # Docker 部署编排 -├── sql/ # 数据库初始化脚本 -├── src/main/java/com/youlai/boot/ -│ ├── YouLaiBootApplication # 启动类 -│ ├── auth/ # 认证授权(登录/登出/令牌) -│ ├── codegen/ # 代码生成器 -│ ├── common/ # 公共模块(常量/枚举/统一响应) -│ ├── file/ # 文件服务(MinIO/本地存储) -│ ├── framework/ # 技术基座 -│ │ ├── apidoc/ # OpenAPI/Swagger -│ │ ├── cache/ # Redis/Caffeine 缓存 -│ │ ├── captcha/ # 图形验证码 -│ │ ├── integration/ # 短信/邮件/微信 -│ │ ├── job/ # XXL-Job 定时任务 -│ │ ├── mybatis/ # MyBatis Plus 配置 -│ │ ├── security/ # 安全过滤器/Token机制 -│ │ └── web/ # 全局异常/跨域/限流 -│ ├── message/ # SSE 消息推送 -│ └── system/ # 业务模块(用户/角色/菜单/部门) -└── pom.xml # Maven 依赖 +youlai-boot-multi/ +├── youlai-application/ # 启动模块(入口) +├── youlai-common/ # 公共模块(常量/枚举/事件/统一响应) +├── youlai-framework/ # 技术框架层 +│ ├── apidoc/ # OpenAPI / Knife4j +│ ├── cache/ # Redis / Caffeine 缓存 +│ ├── captcha/ # 图形验证码 +│ ├── integration/ # 短信 / 邮件 / 微信 +│ ├── job/ # XXL-Job 定时任务 +│ ├── mybatis/ # MyBatis-Plus 配置 +│ ├── security/ # Security / JWT / Token +│ └── web/ # 全局异常 / 跨域 / 限流 +├── youlai-system/ # 系统业务(用户/角色/菜单/部门) +├── youlai-auth/ # 认证授权(登录/登出/令牌) +├── youlai-file/ # 文件服务(MinIO/本地/OSS) +├── youlai-message/ # SSE 消息推送 +├── youlai-codegen/ # 代码生成器 +├── docker/ # Docker 部署编排 +├── sql/ # 数据库初始化脚本 +└── pom.xml # Maven 依赖管理 ``` -## 🌐 相关生态 +## 模块依赖关系 -| 项目 | 技术栈 | 定位 | -|------|--------|------| -| [**vue3-element-admin**](https://gitee.com/youlaiorg/vue3-element-admin) | Vue 3 + Element Plus | **PC 管理前端**(主推) | -| [**youlai-app**](https://gitee.com/youlaiorg/youlai-app) | Vue 3 + UniApp | **移动端 App** | -| [**youlai-boot-tenant**](https://gitee.com/youlaiorg/youlai-boot-tenant) | Spring Boot 4 | **SaaS 多租户版本** | -| [**youlai-boot-flex**](https://gitee.com/youlaiorg/youlai-boot-flex) | Spring Boot 3 + MyBatis-Flex | MyBatis-Flex 版 | -| [**youlai-nest**](https://gitee.com/youlaiorg/youlai-nest) | NestJS + TypeORM | **Node.js 后端** | -| [**youlai-gin**](https://gitee.com/youlaiorg/youlai-gin) | Go + Gorm | **Go 后端** | -| [**youlai-django**](https://gitee.com/youlaiorg/youlai-django) | Django + DRF | **Python 后端** | -| [**youlai-thinkphp**](https://gitee.com/youlaiorg/youlai-thinkphp) | ThinkPHP 8 | **PHP 后端** | -| [**youlai-aspnet**](https://gitee.com/youlaiorg/youlai-aspnet) | ASP.NET Core | **C# 后端** | +``` +youlai-application ──→ youlai-system ──→ youlai-framework ──→ youlai-common + ──→ youlai-auth ──→ youlai-framework + ──→ youlai-file ──→ youlai-framework + ──→ youlai-message──→ youlai-framework + ──→ youlai-codegen──→ youlai-framework +``` +## 生态矩阵 + +**前端** + +| 项目 | 技术栈 | 说明 | +|:-----|:-------|:-----| +| [vue3-element-admin](https://gitee.com/youlaiorg/vue3-element-admin) | Vue 3 + Element Plus | PC 管理前端(主推) | +| [youlai-app](https://gitee.com/youlaiorg/youlai-app) | Vue 3 + UniApp | 移动端 App | + +**后端** + +| 项目 | 技术栈 | 说明 | +|:-----|:-------|:-----| +| [youlai-nest](https://gitee.com/youlaiorg/youlai-nest) | NestJS + TypeORM | Node.js | +| [youlai-gin](https://gitee.com/youlaiorg/youlai-gin) | Go + Gorm | Go | +| [youlai-django](https://gitee.com/youlaiorg/youlai-django) | Django + DRF | Python | +| [youlai-thinkphp](https://gitee.com/youlaiorg/youlai-thinkphp) | ThinkPHP 8 | PHP | +| [youlai-aspnet](https://gitee.com/youlaiorg/youlai-aspnet) | ASP.NET Core | C# | + +> **youlai-boot** 还提供以下变种和分支版本:[多租户](https://gitee.com/youlaiorg/youlai-boot-tenant)(Spring Boot 4)· [MyBatis-Flex](https://gitee.com/youlaiorg/youlai-boot-flex)(Spring Boot 4)· [Spring Boot 3](https://gitee.com/youlaiorg/youlai-boot/tree/spring-boot-3) · [PostgreSQL](https://gitee.com/youlaiorg/youlai-boot/tree/db-pg) · [多模块](https://gitee.com/youlaiorg/youlai-boot/tree/multi-module) +> > 六种后端共享同一套 **RESTful API 规范** 和 **数据库结构**,前端可无缝切换。 -## 📘 文档资源 +## 文档资源 | 资源 | 地址 | -|------|------| -| **📖 完整文档站** | [docs.youlai.tech](https://www.youlai.tech/docs/admin/) | -| **🖥️ 在线预览(前端)** | [vue.youlai.tech](https://vue.youlai.tech) | -| **📱 在线预览(移动端)** | [app.youlai.tech](https://app.youlai.tech) | -| **🔗 接口文档** | 启动后访问 [http://localhost:8000/doc.html](http://localhost:8000/doc.html) | +|:-----|:-----| +| 📖 完整文档站 | [www.youlai.tech/docs/admin](https://www.youlai.tech/docs/admin/) | +| 🖥️ PC 端在线预览 | [vue.youlai.tech](https://vue.youlai.tech) | +| 📱 移动端在线预览 | [app.youlai.tech](https://app.youlai.tech) | +| 🔗 Apifox 接口文档 | [apifox.com](https://www.apifox.cn/apidoc/shared-195e783f-4d85-4235-a038-eec696de4ea5) | +| 🔗 本地接口文档 | [localhost:8000/doc.html](http://localhost:8000/doc.html) | -## 📊 项目统计 +## 参与贡献 -![Repobeats](https://repobeats.axiom.co/api/embed/544c5c0b5b3611a6c4d5ef0faa243a9066b89659.svg) - -## 🤝 参与贡献 - -欢迎 Issue、PR 和 Star!详见 [贡献指南](https://www.youlai.tech/docs/admin/faq/help)。 +欢迎提交 Issue 和 Pull Request!详见 [贡献指南](https://www.youlai.tech/docs/admin/faq/help)。 [![Contributors](https://contrib.rocks/image?repo=haoxianrui/youlai-boot)](https://github.com/haoxianrui/youlai-boot/graphs/contributors) -## 📄 开源协议 +## 开源协议 本项目基于 [Apache License 2.0](LICENSE) 开源,可免费用于商业项目。 --- -
- -**关注「有来技术」,获取最新动态与技术分享** - -
- - - -
- -*微信搜索「有来技术」或扫码关注* - -
+

+ 有来技术公众号 +      + 个人微信 +

+

+ 公众号「有来技术」 +              + 添加作者微信 +

+

技术交流 · 问题反馈 · 商务合作

diff --git a/docs/README.md b/docs/README.md new file mode 100644 index 00000000..e69de29b diff --git a/docs/images/architecture/architecture.png b/docs/images/architecture/architecture.png new file mode 100644 index 00000000..fbd6a09f Binary files /dev/null and b/docs/images/architecture/architecture.png differ diff --git a/docs/images/logo/logo.png b/docs/images/logo/logo.png new file mode 100644 index 00000000..fc8b31ef Binary files /dev/null and b/docs/images/logo/logo.png differ diff --git a/docs/images/preview/app-01.png b/docs/images/preview/app-01.png new file mode 100644 index 00000000..bfb8b98a Binary files /dev/null and b/docs/images/preview/app-01.png differ diff --git a/docs/images/preview/app-02.png b/docs/images/preview/app-02.png new file mode 100644 index 00000000..f781ee5e Binary files /dev/null and b/docs/images/preview/app-02.png differ diff --git a/docs/images/preview/app-03.png b/docs/images/preview/app-03.png new file mode 100644 index 00000000..ba0a9f3d Binary files /dev/null and b/docs/images/preview/app-03.png differ diff --git a/docs/images/preview/app-04.png b/docs/images/preview/app-04.png new file mode 100644 index 00000000..49dfebc1 Binary files /dev/null and b/docs/images/preview/app-04.png differ diff --git a/docs/images/preview/pc-01.png b/docs/images/preview/pc-01.png new file mode 100644 index 00000000..9a55511b Binary files /dev/null and b/docs/images/preview/pc-01.png differ diff --git a/docs/images/preview/pc-02.png b/docs/images/preview/pc-02.png new file mode 100644 index 00000000..396b6b99 Binary files /dev/null and b/docs/images/preview/pc-02.png differ diff --git a/docs/images/preview/pc-03.png b/docs/images/preview/pc-03.png new file mode 100644 index 00000000..8e36c3ec Binary files /dev/null and b/docs/images/preview/pc-03.png differ diff --git a/docs/images/preview/pc-04.png b/docs/images/preview/pc-04.png new file mode 100644 index 00000000..99e65803 Binary files /dev/null and b/docs/images/preview/pc-04.png differ diff --git a/docs/images/preview/pc-05.png b/docs/images/preview/pc-05.png new file mode 100644 index 00000000..acade2d2 Binary files /dev/null and b/docs/images/preview/pc-05.png differ diff --git a/docs/images/preview/pc-06.png b/docs/images/preview/pc-06.png new file mode 100644 index 00000000..9a479f36 Binary files /dev/null and b/docs/images/preview/pc-06.png differ diff --git a/docs/images/qr/wechat-offical.png b/docs/images/qr/wechat-offical.png new file mode 100644 index 00000000..406447c8 Binary files /dev/null and b/docs/images/qr/wechat-offical.png differ diff --git a/docs/images/qr/wechat-personal.png b/docs/images/qr/wechat-personal.png new file mode 100644 index 00000000..4539e721 Binary files /dev/null and b/docs/images/qr/wechat-personal.png differ diff --git a/pom.xml b/pom.xml index 7a6fd2fc..c844789d 100644 --- a/pom.xml +++ b/pom.xml @@ -7,292 +7,125 @@ com.youlai youlai-boot 4.3.0 - 基于 Java 17 + SpringBoot 4 + Spring Security 构建的权限管理系统。 + pom + 有来 Boot - 基于 Spring Boot 4 的多模块权限管理系统 org.springframework.boot spring-boot-starter-parent - 4.0.1 + 4.0.5 + + youlai-common + youlai-framework + youlai-system + youlai-auth + youlai-file + youlai-message + youlai-codegen + youlai-application + + + 17 17 17 + UTF-8 5.8.41 - 9.1.0 1.2.24 - 3.5.15 - 4.3.1 - - 4.5.0 - - 1.6.3 - 0.2.0 - - 3.2.0 - - 1.3.0 - - - 8.5.10 - 4.8.1 - - 3.16.3 - - - 4.1.0 - - 3.5.6 2.3 - - + 4.5.0 + 1.6.3 + 0.2.0 + 3.2.0 + 1.3.0 + 8.5.10 + 3.16.3 + 4.1.0 2.7.0 - - 4.7.6 2.2.1 - 2.9.3 - - 2.14.5 - 4.8.1.B - - + + + + + com.youlai + youlai-common + ${project.version} + + + com.youlai + youlai-framework + ${project.version} + + + com.youlai + youlai-system + ${project.version} + + + com.youlai + youlai-auth + ${project.version} + + + com.youlai + youlai-file + ${project.version} + + + com.youlai + youlai-message + ${project.version} + + + com.youlai + youlai-codegen + ${project.version} + + + + + org.projectlombok lombok - provided - cn.hutool hutool-all ${hutool.version} - - - - com.alibaba - transmittable-thread-local - ${transmittable-thread-local.version} - - - org.projectlombok lombok-mapstruct-binding ${lombok-mapstruct-binding.version} provided - - - org.springframework.boot - spring-boot-starter-web - - - - org.springframework.boot - spring-boot-starter-test - test - - - - org.springframework.boot - spring-boot-starter-security - - - - org.springframework.boot - spring-boot-starter-data-redis - - - - org.springframework.boot - spring-boot-starter-cache - - - - - org.springframework.boot - spring-boot-starter-aspectj - - - - org.springframework.boot - spring-boot-starter-validation - - - - org.springframework.boot - spring-boot-starter-mail - - - - com.mysql - mysql-connector-j - ${mysql-connector-j.version} - runtime - - - - com.alibaba - druid-spring-boot-starter - ${druid.version} - - - - - com.baomidou - mybatis-plus-spring-boot4-starter - ${mybatis-plus.version} - - - com.baomidou - mybatis-plus-jsqlparser - ${mybatis-plus.version} - - - - - com.github.xiaoymin - knife4j-openapi3-jakarta-spring-boot-starter - ${knife4j.version} - - - org.springdoc - springdoc-openapi-starter-webmvc-ui - - - - - org.springdoc - springdoc-openapi-starter-webmvc-ui - 2.8.9 - - - - - org.mapstruct - mapstruct - ${mapstruct.version} - - - - org.mapstruct - mapstruct-processor - ${mapstruct.version} - - - - - com.xuxueli - xxl-job-core - ${xxl-job.version} - - - - - cn.idev.excel - fastexcel - ${fastexcel.version} - - - - - io.minio - minio - ${minio.version} - - - - - com.aliyun.oss - aliyun-sdk-oss - ${aliyun-sdk-oss.version} - - - - - org.redisson - redisson-spring-boot-starter - ${redisson.version} - - - - - com.baomidou - mybatis-plus-generator - ${mybatis-plus-generator.version} - - - - - org.apache.velocity - velocity-engine-core - ${velocity.version} - - - - - org.lionsoul - ip2region - ${ip2region.version} - - - - com.aliyun - aliyun-java-sdk-core - ${aliyun.java.sdk.core.version} - - - - com.aliyun - aliyun-java-sdk-dysmsapi - ${aliyun.java.sdk.dysmsapi.version} - - - - - com.github.ben-manes.caffeine - caffeine - ${caffeine.version} - - - - - com.github.binarywang - weixin-java-miniapp - ${weixin-java-miniapp.version} - - - - - - ${project.artifactId} - - - org.springframework.boot - spring-boot-maven-plugin - - + + + + org.springframework.boot + spring-boot-maven-plugin + + + diff --git a/sql/mysql/youlai_admin_template.sql b/sql/mysql/youlai_admin_template.sql deleted file mode 100644 index 48db9455..00000000 --- a/sql/mysql/youlai_admin_template.sql +++ /dev/null @@ -1,524 +0,0 @@ -# YouLai_Admin 数据库(MySQL 5.7 ~ MySQL 8.x) -# Copyright (c) 2021-present, youlai.tech - - --- ---------------------------- --- 1. 创建数据库 --- ---------------------------- -CREATE DATABASE IF NOT EXISTS youlai_admin_template CHARACTER SET utf8mb4 DEFAULT COLLATE utf8mb4_unicode_ci; - - --- ---------------------------- --- 2. 创建表 && 数据初始化 --- ---------------------------- -USE youlai_admin_template; - -SET NAMES utf8mb4; # 设置字符集 -SET FOREIGN_KEY_CHECKS = 0; # 关闭外键检查,加快导入速度 - --- ---------------------------- --- Table structure for sys_dept --- ---------------------------- -DROP TABLE IF EXISTS `sys_dept`; -CREATE TABLE `sys_dept` ( - `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键', - `name` varchar(100) NOT NULL COMMENT '部门名称', - `code` varchar(100) NOT NULL COMMENT '部门编号', - `parent_id` bigint DEFAULT 0 COMMENT '父节点id', - `tree_path` varchar(255) NOT NULL COMMENT '父节点id路径', - `sort` smallint DEFAULT 0 COMMENT '显示顺序', - `status` tinyint DEFAULT 1 COMMENT '状态(1-正常 0-禁用)', - `create_by` bigint NULL COMMENT '创建人ID', - `create_time` datetime NULL COMMENT '创建时间', - `update_by` bigint NULL COMMENT '修改人ID', - `update_time` datetime NULL COMMENT '更新时间', - `is_deleted` tinyint DEFAULT 0 COMMENT '逻辑删除标识(1-已删除 0-未删除)', - PRIMARY KEY (`id`) USING BTREE, - UNIQUE INDEX `uk_code`(`code` ASC) USING BTREE COMMENT '部门编号唯一索引' -) ENGINE = InnoDB CHARACTER SET = utf8mb4 COMMENT = '部门管理表'; - --- ---------------------------- --- Records of sys_dept --- ---------------------------- -INSERT INTO `sys_dept` VALUES (1, '有来技术', 'YOULAI', 0, '0', 1, 1, 1, NULL, 1, now(), 0); -INSERT INTO `sys_dept` VALUES (2, '研发部门', 'RD001', 1, '0,1', 1, 1, 2, NULL, 2, now(), 0); -INSERT INTO `sys_dept` VALUES (3, '测试部门', 'QA001', 1, '0,1', 1, 1, 2, NULL, 2, now(), 0); - --- ---------------------------- --- Table structure for sys_dict --- ---------------------------- -DROP TABLE IF EXISTS `sys_dict`; -CREATE TABLE `sys_dict` ( - `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键 ', - `dict_code` varchar(50) COMMENT '类型编码', - `name` varchar(50) COMMENT '类型名称', - `status` tinyint(1) DEFAULT '0' COMMENT '状态(0:正常;1:禁用)', - `remark` varchar(255) COMMENT '备注', - `create_time` datetime COMMENT '创建时间', - `create_by` bigint COMMENT '创建人ID', - `update_time` datetime COMMENT '更新时间', - `update_by` bigint COMMENT '修改人ID', - `is_deleted` tinyint DEFAULT '0' COMMENT '是否删除(1-删除,0-未删除)', - PRIMARY KEY (`id`) USING BTREE, - KEY `idx_dict_code` (`dict_code`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='数据字典类型表'; --- ---------------------------- --- Records of sys_dict --- ---------------------------- -INSERT INTO `sys_dict` VALUES (1, 'gender', '性别', 1, NULL, now() , 1,now(), 1,0); -INSERT INTO `sys_dict` VALUES (2, 'notice_type', '通知类型', 1, NULL, now(), 1,now(), 1,0); -INSERT INTO `sys_dict` VALUES (3, 'notice_level', '通知级别', 1, NULL, now(), 1,now(), 1,0); - - --- ---------------------------- --- Table structure for sys_dict_item --- ---------------------------- -DROP TABLE IF EXISTS `sys_dict_item`; -CREATE TABLE `sys_dict_item` ( - `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键', - `dict_code` varchar(50) COMMENT '关联字典编码,与sys_dict表中的dict_code对应', - `value` varchar(50) COMMENT '字典项值', - `label` varchar(100) COMMENT '字典项标签', - `tag_type` varchar(50) COMMENT '标签类型,用于前端样式展示(如success、warning等)', - `status` tinyint DEFAULT '0' COMMENT '状态(1-正常,0-禁用)', - `sort` int DEFAULT '0' COMMENT '排序', - `remark` varchar(255) COMMENT '备注', - `create_time` datetime COMMENT '创建时间', - `create_by` bigint COMMENT '创建人ID', - `update_time` datetime COMMENT '更新时间', - `update_by` bigint COMMENT '修改人ID', - PRIMARY KEY (`id`) USING BTREE -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='数据字典项表'; - --- ---------------------------- --- Records of sys_dict_item --- ---------------------------- -INSERT INTO `sys_dict_item` VALUES (1, 'gender', '1', '男', 'primary', 1, 1, NULL, now(), 1,now(),1); -INSERT INTO `sys_dict_item` VALUES (2, 'gender', '2', '女', 'danger', 1, 2, NULL, now(), 1,now(),1); -INSERT INTO `sys_dict_item` VALUES (3, 'gender', '0', '保密', 'info', 1, 3, NULL, now(), 1,now(),1); -INSERT INTO `sys_dict_item` VALUES (4, 'notice_type', '1', '系统升级', 'success', 1, 1, '', now(), 1,now(),1); -INSERT INTO `sys_dict_item` VALUES (5, 'notice_type', '2', '系统维护', 'primary', 1, 2, '', now(), 1,now(),1); -INSERT INTO `sys_dict_item` VALUES (6, 'notice_type', '3', '安全警告', 'danger', 1, 3, '', now(), 1,now(),1); -INSERT INTO `sys_dict_item` VALUES (7, 'notice_type', '4', '假期通知', 'success', 1, 4, '', now(), 1,now(),1); -INSERT INTO `sys_dict_item` VALUES (8, 'notice_type', '5', '公司新闻', 'primary', 1, 5, '', now(), 1,now(),1); -INSERT INTO `sys_dict_item` VALUES (9, 'notice_type', '99', '其他', 'info', 1, 99, '', now(), 1,now(),1); -INSERT INTO `sys_dict_item` VALUES (10, 'notice_level', 'L', '低', 'info', 1, 1, '', now(), 1,now(),1); -INSERT INTO `sys_dict_item` VALUES (11, 'notice_level', 'M', '中', 'warning', 1, 2, '', now(), 1,now(),1); -INSERT INTO `sys_dict_item` VALUES (12, 'notice_level', 'H', '高', 'danger', 1, 3, '', now(), 1,now(),1); - --- ---------------------------- --- Table structure for sys_menu --- ---------------------------- -DROP TABLE IF EXISTS `sys_menu`; -CREATE TABLE `sys_menu` ( - `id` bigint NOT NULL AUTO_INCREMENT COMMENT 'ID', - `parent_id` bigint NOT NULL COMMENT '父菜单ID', - `tree_path` varchar(255) COMMENT '父节点ID路径', - `name` varchar(64) NOT NULL COMMENT '菜单名称', - `type` char(1) NOT NULL COMMENT '菜单类型(C-目录 M-菜单 B-按钮)', - `route_name` varchar(255) COMMENT '路由名称(Vue Router 中用于命名路由)', - `route_path` varchar(128) COMMENT '路由路径(Vue Router 中定义的 URL 路径)', - `component` varchar(128) COMMENT '组件路径(组件页面完整路径,相对于 src/views/,缺省后缀 .vue)', - `perm` varchar(128) COMMENT '【按钮】权限标识', - `always_show` tinyint DEFAULT 0 COMMENT '【目录】只有一个子路由是否始终显示(1-是 0-否)', - `keep_alive` tinyint DEFAULT 0 COMMENT '【菜单】是否开启页面缓存(1-是 0-否)', - `visible` tinyint(1) DEFAULT 1 COMMENT '显示状态(1-显示 0-隐藏)', - `sort` int DEFAULT 0 COMMENT '排序', - `icon` varchar(64) COMMENT '菜单图标', - `redirect` varchar(128) COMMENT '跳转路径', - `create_time` datetime NULL COMMENT '创建时间', - `update_time` datetime NULL COMMENT '更新时间', - `params` varchar(255) NULL COMMENT '路由参数', - PRIMARY KEY (`id`) USING BTREE -) ENGINE = InnoDB CHARACTER SET = utf8mb4 COMMENT = '系统菜单表'; - --- ---------------------------- --- Records of sys_menu --- ---------------------------- --- 顶级目录:系统管理/代码生成/平台文档/接口文档 -INSERT INTO `sys_menu` VALUES (1, 0, '0', '系统管理', 'C', '', '/system', 'Layout', NULL, NULL, NULL, 1, 1, 'system', '/system/user', now(), now(), NULL); -INSERT INTO `sys_menu` VALUES (2, 0, '0', '代码生成', 'C', '', '/codegen', 'Layout', NULL, NULL, NULL, 1, 2, 'code', '/codegen/index', now(), now(), NULL); -INSERT INTO `sys_menu` VALUES (4, 0, '0', '平台文档', 'C', '', '/doc', 'Layout', NULL, NULL, NULL, 1, 4, 'document', '', now(), now(), NULL); -INSERT INTO `sys_menu` VALUES (5, 0, '0', '接口文档', 'C', '', '/api', 'Layout', NULL, NULL, NULL, 1, 5, 'api', '', now(), now(), NULL); - --- 系统管理 -INSERT INTO `sys_menu` VALUES (210, 1, '0,1', '用户管理', 'M', 'User', 'user', 'system/user/index', NULL, NULL, 1, 1, 1, 'el-icon-User', NULL, now(), now(), NULL); -INSERT INTO `sys_menu` VALUES (2101, 210, '0,1,210', '用户查询', 'B', NULL, '', NULL, 'sys:user:list', NULL, NULL, 1, 1, '', NULL, now(), now(), NULL); -INSERT INTO `sys_menu` VALUES (2102, 210, '0,1,210', '用户新增', 'B', NULL, '', NULL, 'sys:user:create', NULL, NULL, 1, 2, '', NULL, now(), now(), NULL); -INSERT INTO `sys_menu` VALUES (2103, 210, '0,1,210', '用户编辑', 'B', NULL, '', NULL, 'sys:user:update', NULL, NULL, 1, 3, '', NULL, now(), now(), NULL); -INSERT INTO `sys_menu` VALUES (2104, 210, '0,1,210', '用户删除', 'B', NULL, '', NULL, 'sys:user:delete', NULL, NULL, 1, 4, '', NULL, now(), now(), NULL); -INSERT INTO `sys_menu` VALUES (2105, 210, '0,1,210', '重置密码', 'B', NULL, '', NULL, 'sys:user:reset-password', NULL, NULL, 1, 5, '', NULL, now(), now(), NULL); -INSERT INTO `sys_menu` VALUES (2106, 210, '0,1,210', '用户导入', 'B', NULL, '', NULL, 'sys:user:import', NULL, NULL, 1, 6, '', NULL, now(), now(), NULL); -INSERT INTO `sys_menu` VALUES (2107, 210, '0,1,210', '用户导出', 'B', NULL, '', NULL, 'sys:user:export', NULL, NULL, 1, 7, '', NULL, now(), now(), NULL); - -INSERT INTO `sys_menu` VALUES (220, 1, '0,1', '角色管理', 'M', 'Role', 'role', 'system/role/index', NULL, NULL, 1, 1, 2, 'role', NULL, now(), now(), NULL); -INSERT INTO `sys_menu` VALUES (2201, 220, '0,1,220', '角色查询', 'B', NULL, '', NULL, 'sys:role:list', NULL, NULL, 1, 1, '', NULL, now(), now(), NULL); -INSERT INTO `sys_menu` VALUES (2202, 220, '0,1,220', '角色新增', 'B', NULL, '', NULL, 'sys:role:create', NULL, NULL, 1, 2, '', NULL, now(), now(), NULL); -INSERT INTO `sys_menu` VALUES (2203, 220, '0,1,220', '角色编辑', 'B', NULL, '', NULL, 'sys:role:update', NULL, NULL, 1, 3, '', NULL, now(), now(), NULL); -INSERT INTO `sys_menu` VALUES (2204, 220, '0,1,220', '角色删除', 'B', NULL, '', NULL, 'sys:role:delete', NULL, NULL, 1, 4, '', NULL, now(), now(), NULL); -INSERT INTO `sys_menu` VALUES (2205, 220, '0,1,220', '角色分配权限', 'B', NULL, '', NULL, 'sys:role:assign', NULL, NULL, 1, 5, '', NULL, now(), now(), NULL); - -INSERT INTO `sys_menu` VALUES (230, 1, '0,1', '菜单管理', 'M', 'SysMenu', 'menu', 'system/menu/index', NULL, NULL, 1, 1, 3, 'menu', NULL, now(), now(), NULL); -INSERT INTO `sys_menu` VALUES (2301, 230, '0,1,230', '菜单查询', 'B', NULL, '', NULL, 'sys:menu:list', NULL, NULL, 1, 1, '', NULL, now(), now(), NULL); -INSERT INTO `sys_menu` VALUES (2302, 230, '0,1,230', '菜单新增', 'B', NULL, '', NULL, 'sys:menu:create', NULL, NULL, 1, 2, '', NULL, now(), now(), NULL); -INSERT INTO `sys_menu` VALUES (2303, 230, '0,1,230', '菜单编辑', 'B', NULL, '', NULL, 'sys:menu:update', NULL, NULL, 1, 3, '', NULL, now(), now(), NULL); -INSERT INTO `sys_menu` VALUES (2304, 230, '0,1,230', '菜单删除', 'B', NULL, '', NULL, 'sys:menu:delete', NULL, NULL, 1, 4, '', NULL, now(), now(), NULL); - -INSERT INTO `sys_menu` VALUES (240, 1, '0,1', '部门管理', 'M', 'Dept', 'dept', 'system/dept/index', NULL, NULL, 1, 1, 4, 'tree', NULL, now(), now(), NULL); -INSERT INTO `sys_menu` VALUES (2401, 240, '0,1,240', '部门查询', 'B', NULL, '', NULL, 'sys:dept:list', NULL, NULL, 1, 1, '', NULL, now(), now(), NULL); -INSERT INTO `sys_menu` VALUES (2402, 240, '0,1,240', '部门新增', 'B', NULL, '', NULL, 'sys:dept:create', NULL, NULL, 1, 2, '', NULL, now(), now(), NULL); -INSERT INTO `sys_menu` VALUES (2403, 240, '0,1,240', '部门编辑', 'B', NULL, '', NULL, 'sys:dept:update', NULL, NULL, 1, 3, '', NULL, now(), now(), NULL); -INSERT INTO `sys_menu` VALUES (2404, 240, '0,1,240', '部门删除', 'B', NULL, '', NULL, 'sys:dept:delete', NULL, NULL, 1, 4, '', NULL, now(), now(), NULL); - -INSERT INTO `sys_menu` VALUES (250, 1, '0,1', '字典管理', 'M', 'Dict', 'dict', 'system/dict/index', NULL, NULL, 1, 1, 5, 'dict', NULL, now(), now(), NULL); -INSERT INTO `sys_menu` VALUES (2501, 250, '0,1,250', '字典查询', 'B', NULL, '', NULL, 'sys:dict:list', NULL, NULL, 1, 1, '', NULL, now(), now(), NULL); -INSERT INTO `sys_menu` VALUES (2502, 250, '0,1,250', '字典新增', 'B', NULL, '', NULL, 'sys:dict:create', NULL, NULL, 1, 2, '', NULL, now(), now(), NULL); -INSERT INTO `sys_menu` VALUES (2503, 250, '0,1,250', '字典编辑', 'B', NULL, '', NULL, 'sys:dict:update', NULL, NULL, 1, 3, '', NULL, now(), now(), NULL); -INSERT INTO `sys_menu` VALUES (2504, 250, '0,1,250', '字典删除', 'B', NULL, '', NULL, 'sys:dict:delete', NULL, NULL, 1, 4, '', NULL, now(), now(), NULL); - -INSERT INTO `sys_menu` VALUES (251, 1, '0,1', '字典项', 'M', 'DictItem', 'dict-item', 'system/dict/dict-item', NULL, 0, 1, 0, 6, '', NULL, now(), now(), NULL); -INSERT INTO `sys_menu` VALUES (2511, 251, '0,1,251', '字典项查询', 'B', NULL, '', NULL, 'sys:dict-item:list', NULL, NULL, 1, 1, '', NULL, now(), now(), NULL); -INSERT INTO `sys_menu` VALUES (2512, 251, '0,1,251', '字典项新增', 'B', NULL, '', NULL, 'sys:dict-item:create', NULL, NULL, 1, 2, '', NULL, now(), now(), NULL); -INSERT INTO `sys_menu` VALUES (2513, 251, '0,1,251', '字典项编辑', 'B', NULL, '', NULL, 'sys:dict-item:update', NULL, NULL, 1, 3, '', NULL, now(), now(), NULL); -INSERT INTO `sys_menu` VALUES (2514, 251, '0,1,251', '字典项删除', 'B', NULL, '', NULL, 'sys:dict-item:delete', NULL, NULL, 1, 4, '', NULL, now(), now(), NULL); - -INSERT INTO `sys_menu` VALUES (260, 1, '0,1', '系统日志', 'M', 'Log', 'log', 'system/log/index', NULL, 0, 1, 1, 7, 'document', NULL, now(), now(), NULL); - -INSERT INTO `sys_menu` VALUES (270, 1, '0,1', '系统配置', 'M', 'Config', 'config', 'system/config/index', NULL, 0, 1, 1, 8, 'setting', NULL, now(), now(), NULL); -INSERT INTO `sys_menu` VALUES (2701, 270, '0,1,270', '系统配置查询', 'B', NULL, '', NULL, 'sys:config:list', 0, 1, 1, 1, '', NULL, now(), now(), NULL); -INSERT INTO `sys_menu` VALUES (2702, 270, '0,1,270', '系统配置新增', 'B', NULL, '', NULL, 'sys:config:create', 0, 1, 1, 2, '', NULL, now(), now(), NULL); -INSERT INTO `sys_menu` VALUES (2703, 270, '0,1,270', '系统配置修改', 'B', NULL, '', NULL, 'sys:config:update', 0, 1, 1, 3, '', NULL, now(), now(), NULL); -INSERT INTO `sys_menu` VALUES (2704, 270, '0,1,270', '系统配置删除', 'B', NULL, '', NULL, 'sys:config:delete', 0, 1, 1, 4, '', NULL, now(), now(), NULL); -INSERT INTO `sys_menu` VALUES (2705, 270, '0,1,270', '系统配置刷新', 'B', NULL, '', NULL, 'sys:config:refresh', 0, 1, 1, 5, '', NULL, now(), now(), NULL); - -INSERT INTO `sys_menu` VALUES (280, 1, '0,1', '通知公告', 'M', 'Notice', 'notice', 'system/notice/index', NULL, NULL, NULL, 1, 9, '', NULL, now(), now(), NULL); -INSERT INTO `sys_menu` VALUES (2801, 280, '0,1,280', '通知查询', 'B', NULL, '', NULL, 'sys:notice:list', NULL, NULL, 1, 1, '', NULL, now(), now(), NULL); -INSERT INTO `sys_menu` VALUES (2802, 280, '0,1,280', '通知新增', 'B', NULL, '', NULL, 'sys:notice:create', NULL, NULL, 1, 2, '', NULL, now(), now(), NULL); -INSERT INTO `sys_menu` VALUES (2803, 280, '0,1,280', '通知编辑', 'B', NULL, '', NULL, 'sys:notice:update', NULL, NULL, 1, 3, '', NULL, now(), now(), NULL); -INSERT INTO `sys_menu` VALUES (2804, 280, '0,1,280', '通知删除', 'B', NULL, '', NULL, 'sys:notice:delete', NULL, NULL, 1, 4, '', NULL, now(), now(), NULL); -INSERT INTO `sys_menu` VALUES (2805, 280, '0,1,280', '通知发布', 'B', NULL, '', NULL, 'sys:notice:publish', 0, 1, 1, 5, '', NULL, now(), now(), NULL); -INSERT INTO `sys_menu` VALUES (2806, 280, '0,1,280', '通知撤回', 'B', NULL, '', NULL, 'sys:notice:revoke', 0, 1, 1, 6, '', NULL, now(), now(), NULL); - --- 代码生成 -INSERT INTO `sys_menu` VALUES (310, 2, '0,2', '代码生成', 'M', 'Codegen', 'codegen', 'codegen/index', NULL, NULL, 1, 1, 1, 'code', NULL, now(), now(), NULL); - --- 平台文档(外链通过 route_path 识别) -INSERT INTO `sys_menu` VALUES (501, 4, '0,4', '平台文档(外链)', 'M', NULL, 'https://juejin.cn/post/7228990409909108793', '', NULL, NULL, NULL, 1, 1, 'document', '', now(), now(), NULL); -INSERT INTO `sys_menu` VALUES (502, 4, '0,4', '后端文档', 'M', NULL, 'https://youlai.blog.csdn.net/article/details/145178880', '', NULL, NULL, NULL, 1, 2, 'document', '', now(), now(), NULL); -INSERT INTO `sys_menu` VALUES (503, 4, '0,4', '移动端文档', 'M', NULL, 'https://youlai.blog.csdn.net/article/details/143222890', '', NULL, NULL, NULL, 1, 3, 'document', '', now(), now(), NULL); -INSERT INTO `sys_menu` VALUES (504, 4, '0,4', '内部文档', 'M', NULL, 'internal-doc', 'demo/internal-doc', NULL, NULL, NULL, 1, 4, 'document', '', now(), now(), NULL); - --- 接口文档 -INSERT INTO `sys_menu` VALUES (601, 5, '0,5', 'Apifox', 'M', 'Apifox', 'apifox', 'demo/api/apifox', NULL, NULL, 1, 1, 1, 'api', '', now(), now(), NULL); - --- ---------------------------- --- Table structure for sys_role --- ---------------------------- -DROP TABLE IF EXISTS `sys_role`; -CREATE TABLE `sys_role` ( - `id` bigint NOT NULL AUTO_INCREMENT, - `name` varchar(64) NOT NULL COMMENT '角色名称', - `code` varchar(32) NOT NULL COMMENT '角色编码', - `sort` int NULL COMMENT '显示顺序', - `status` tinyint(1) DEFAULT 1 COMMENT '角色状态(1-正常 0-停用)', - `data_scope` tinyint NULL COMMENT '数据权限(1-所有数据 2-部门及子部门数据 3-本部门数据 4-本人数据 5-自定义部门数据)', - `create_by` bigint NULL COMMENT '创建人 ID', - `create_time` datetime NULL COMMENT '创建时间', - `update_by` bigint NULL COMMENT '更新人ID', - `update_time` datetime NULL COMMENT '更新时间', - `is_deleted` tinyint(1) DEFAULT 0 COMMENT '逻辑删除标识(0-未删除 1-已删除)', - PRIMARY KEY (`id`) USING BTREE, - UNIQUE INDEX `uk_name`(`name` ASC) USING BTREE COMMENT '角色名称唯一索引', - UNIQUE INDEX `uk_code`(`code` ASC) USING BTREE COMMENT '角色编码唯一索引' -) ENGINE = InnoDB CHARACTER SET = utf8mb4 COMMENT = '系统角色表'; - --- ---------------------------- --- Records of sys_role --- ---------------------------- -INSERT INTO `sys_role` VALUES (1, '超级管理员', 'ROOT', 1, 1, 1, NULL, now(), NULL, now(), 0); -INSERT INTO `sys_role` VALUES (2, '系统管理员', 'ADMIN', 2, 1, 1, NULL, now(), NULL, NULL, 0); -INSERT INTO `sys_role` VALUES (3, '访问游客', 'GUEST', 3, 1, 3, NULL, now(), NULL, now(), 0); -INSERT INTO `sys_role` VALUES (4, '部门主管', 'DEPT_MANAGER', 4, 1, 2, NULL, now(), NULL, now(), 0); -INSERT INTO `sys_role` VALUES (5, '部门成员', 'DEPT_MEMBER', 5, 1, 3, NULL, now(), NULL, now(), 0); -INSERT INTO `sys_role` VALUES (6, '普通员工', 'EMPLOYEE', 6, 1, 4, NULL, now(), NULL, now(), 0); -INSERT INTO `sys_role` VALUES (7, '自定义权限用户', 'CUSTOM_USER', 7, 1, 5, NULL, now(), NULL, now(), 0); - --- ---------------------------- --- Table structure for sys_role_menu --- ---------------------------- -DROP TABLE IF EXISTS `sys_role_menu`; -CREATE TABLE `sys_role_menu` ( - `role_id` bigint NOT NULL COMMENT '角色ID', - `menu_id` bigint NOT NULL COMMENT '菜单ID', - UNIQUE INDEX `uk_roleid_menuid`(`role_id` ASC, `menu_id` ASC) USING BTREE COMMENT '角色菜单唯一索引' -) ENGINE = InnoDB CHARACTER SET = utf8mb4 COMMENT = '角色菜单关联表'; - --- ---------------------------- --- Table structure for sys_role_dept --- ---------------------------- -DROP TABLE IF EXISTS `sys_role_dept`; -CREATE TABLE `sys_role_dept` ( - `role_id` bigint NOT NULL COMMENT '角色ID', - `dept_id` bigint NOT NULL COMMENT '部门ID', - UNIQUE INDEX `uk_roleid_deptid`(`role_id` ASC, `dept_id` ASC) USING BTREE COMMENT '角色部门唯一索引' -) ENGINE = InnoDB CHARACTER SET = utf8mb4 COMMENT = '角色部门关联表'; - --- ---------------------------- --- Records of sys_role_dept --- ---------------------------- -INSERT IGNORE INTO `sys_role_dept` VALUES (7, 1); -INSERT IGNORE INTO `sys_role_dept` VALUES (7, 2); - --- ============================================ --- 系统管理员角色菜单权限(role_id=2) --- 顶级目录 -INSERT INTO `sys_role_menu` VALUES (2, 1), (2, 2), (2, 4), (2, 5); --- 系统管理 -INSERT INTO `sys_role_menu` VALUES (2, 210), (2, 2101), (2, 2102), (2, 2103), (2, 2104), (2, 2105), (2, 2106), (2, 2107); -INSERT INTO `sys_role_menu` VALUES (2, 220), (2, 2201), (2, 2202), (2, 2203), (2, 2204), (2, 2205); -INSERT INTO `sys_role_menu` VALUES (2, 230), (2, 2301), (2, 2302), (2, 2303), (2, 2304); -INSERT INTO `sys_role_menu` VALUES (2, 240), (2, 2401), (2, 2402), (2, 2403), (2, 2404); -INSERT INTO `sys_role_menu` VALUES (2, 250), (2, 2501), (2, 2502), (2, 2503), (2, 2504); -INSERT INTO `sys_role_menu` VALUES (2, 251), (2, 2511), (2, 2512), (2, 2513), (2, 2514); -INSERT INTO `sys_role_menu` VALUES (2, 260), (2, 2601); -INSERT INTO `sys_role_menu` VALUES (2, 270), (2, 2701), (2, 2702), (2, 2703), (2, 2704), (2, 2705); -INSERT INTO `sys_role_menu` VALUES (2, 280), (2, 2801), (2, 2802), (2, 2803), (2, 2804), (2, 2805), (2, 2806); - -INSERT IGNORE INTO `sys_role_menu` VALUES (4, 1); -INSERT IGNORE INTO `sys_role_menu` VALUES (4, 210), (4, 2101), (4, 2102), (4, 2103), (4, 2104), (4, 2105), (4, 2106), (4, 2107); -INSERT IGNORE INTO `sys_role_menu` VALUES (4, 220), (4, 2201), (4, 2202), (4, 2203), (4, 2204), (4, 2205); - -INSERT IGNORE INTO `sys_role_menu` VALUES (5, 1); -INSERT IGNORE INTO `sys_role_menu` VALUES (5, 210), (5, 2101), (5, 2102), (5, 2103), (5, 2104), (5, 2105), (5, 2106), (5, 2107); -INSERT IGNORE INTO `sys_role_menu` VALUES (5, 220), (5, 2201), (5, 2202), (5, 2203), (5, 2204), (5, 2205); - -INSERT IGNORE INTO `sys_role_menu` VALUES (6, 1); -INSERT IGNORE INTO `sys_role_menu` VALUES (6, 210), (6, 2101), (6, 2102), (6, 2103), (6, 2104), (6, 2105), (6, 2106), (6, 2107); -INSERT IGNORE INTO `sys_role_menu` VALUES (6, 220), (6, 2201), (6, 2202), (6, 2203), (6, 2204), (6, 2205); - -INSERT IGNORE INTO `sys_role_menu` VALUES (7, 1); -INSERT IGNORE INTO `sys_role_menu` VALUES (7, 210), (7, 2101), (7, 2102), (7, 2103), (7, 2104), (7, 2105), (7, 2106), (7, 2107); -INSERT IGNORE INTO `sys_role_menu` VALUES (7, 220), (7, 2201), (7, 2202), (7, 2203), (7, 2204), (7, 2205); --- 代码生成 -INSERT INTO `sys_role_menu` VALUES (2, 310); --- 平台文档 -INSERT INTO `sys_role_menu` VALUES (2, 501), (2, 502), (2, 503), (2, 504); --- 接口文档 -INSERT INTO `sys_role_menu` VALUES (2, 601); - --- ---------------------------- --- Table structure for sys_user --- ---------------------------- -DROP TABLE IF EXISTS `sys_user`; -CREATE TABLE `sys_user` ( - `id` bigint NOT NULL AUTO_INCREMENT, - `username` varchar(64) COMMENT '用户名', - `nickname` varchar(64) COMMENT '昵称', - `gender` tinyint(1) DEFAULT 1 COMMENT '性别((1-男 2-女 0-保密)', - `password` varchar(100) COMMENT '密码', - `dept_id` int COMMENT '部门ID', - `avatar` varchar(255) COMMENT '用户头像', - `mobile` varchar(20) COMMENT '联系方式', - `status` tinyint(1) DEFAULT 1 COMMENT '状态(1-正常 0-禁用)', - `email` varchar(128) COMMENT '用户邮箱', - `create_time` datetime COMMENT '创建时间', - `create_by` bigint COMMENT '创建人ID', - `update_time` datetime COMMENT '更新时间', - `update_by` bigint COMMENT '修改人ID', - `is_deleted` tinyint(1) DEFAULT 0 COMMENT '逻辑删除标识(0-未删除 1-已删除)', - PRIMARY KEY (`id`) USING BTREE -) ENGINE = InnoDB CHARACTER SET = utf8mb4 COMMENT = '系统用户表'; - --- ---------------------------- --- Records of sys_user --- ---------------------------- -INSERT INTO `sys_user` VALUES (1, 'root', '有来技术', 0, '$2a$10$xVWsNOhHrCxh5UbpCE7/HuJ.PAOKcYAqRxD2CO2nVnJS.IAXkr5aq', NULL, 'https://foruda.gitee.com/images/1723603502796844527/03cdca2a_716974.gif', '18812345677', 1, 'youlaitech@163.com', now(), NULL, now(), NULL, 0); -INSERT INTO `sys_user` VALUES (2, 'admin', '系统管理员', 1, '$2a$10$xVWsNOhHrCxh5UbpCE7/HuJ.PAOKcYAqRxD2CO2nVnJS.IAXkr5aq', 1, 'https://foruda.gitee.com/images/1723603502796844527/03cdca2a_716974.gif', '18888888888', 1, 'youlaitech@163.com', now(), NULL, now(), NULL, 0); -INSERT INTO `sys_user` VALUES (3, 'test', '测试小用户', 1, '$2a$10$xVWsNOhHrCxh5UbpCE7/HuJ.PAOKcYAqRxD2CO2nVnJS.IAXkr5aq', 3, 'https://foruda.gitee.com/images/1723603502796844527/03cdca2a_716974.gif', '18812345679', 1, 'youlaitech@163.com', now(), NULL, now(), NULL, 0); -INSERT INTO `sys_user` VALUES (4, 'dept_manager', '部门主管', 1, '$2a$10$xVWsNOhHrCxh5UbpCE7/HuJ.PAOKcYAqRxD2CO2nVnJS.IAXkr5aq', 1, 'https://foruda.gitee.com/images/1723603502796844527/03cdca2a_716974.gif', '18812345680', 1, 'manager@youlaitech.com', now(), NULL, now(), NULL, 0); -INSERT INTO `sys_user` VALUES (5, 'dept_member', '部门成员', 1, '$2a$10$xVWsNOhHrCxh5UbpCE7/HuJ.PAOKcYAqRxD2CO2nVnJS.IAXkr5aq', 1, 'https://foruda.gitee.com/images/1723603502796844527/03cdca2a_716974.gif', '18812345681', 1, 'member@youlaitech.com', now(), NULL, now(), NULL, 0); -INSERT INTO `sys_user` VALUES (6, 'employee', '普通员工', 1, '$2a$10$xVWsNOhHrCxh5UbpCE7/HuJ.PAOKcYAqRxD2CO2nVnJS.IAXkr5aq', 2, 'https://foruda.gitee.com/images/1723603502796844527/03cdca2a_716974.gif', '18812345682', 1, 'employee@youlaitech.com', now(), NULL, now(), NULL, 0); -INSERT INTO `sys_user` VALUES (7, 'custom_user', '自定义权限用户', 1, '$2a$10$xVWsNOhHrCxh5UbpCE7/HuJ.PAOKcYAqRxD2CO2nVnJS.IAXkr5aq', 3, 'https://foruda.gitee.com/images/1723603502796844527/03cdca2a_716974.gif', '18812345683', 1, 'custom@youlaitech.com', now(), NULL, now(), NULL, 0); - --- ---------------------------- --- Table structure for sys_user_role --- ---------------------------- -DROP TABLE IF EXISTS `sys_user_role`; -CREATE TABLE `sys_user_role` ( - `user_id` bigint NOT NULL COMMENT '用户ID', - `role_id` bigint NOT NULL COMMENT '角色ID', - PRIMARY KEY (`user_id`, `role_id`) USING BTREE -) ENGINE = InnoDB CHARACTER SET = utf8mb4 COMMENT = '用户角色关联表'; - --- ---------------------------- --- Records of sys_user_role --- ---------------------------- -INSERT INTO `sys_user_role` VALUES (1, 1); -INSERT INTO `sys_user_role` VALUES (2, 2); -INSERT INTO `sys_user_role` VALUES (3, 3); -INSERT IGNORE INTO `sys_user_role` VALUES (4, 4); -INSERT IGNORE INTO `sys_user_role` VALUES (5, 5); -INSERT IGNORE INTO `sys_user_role` VALUES (6, 6); -INSERT IGNORE INTO `sys_user_role` VALUES (7, 7); - --- ---------------------------- --- Table structure for sys_log --- ---------------------------- -DROP TABLE IF EXISTS `sys_log`; -CREATE TABLE `sys_log` ( - `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键', - `module` TINYINT NOT NULL COMMENT '模块,数字枚举,参考 LogModule 枚举', - `action_type` TINYINT NOT NULL COMMENT '操作类型,数字枚举,参考 ActionType 枚举', - `title` VARCHAR(100) NOT NULL COMMENT '前端显示标题', - `content` TEXT COMMENT '自定义日志内容', - `operator_id` BIGINT COMMENT '操作人ID', - `operator_name` VARCHAR(50) COMMENT '操作人名称', - `request_uri` VARCHAR(255) COMMENT '请求路径', - `request_method` VARCHAR(10) COMMENT '请求方法', - `ip` VARCHAR(45) COMMENT 'IP地址', - `province` VARCHAR(100) COMMENT '省份', - `city` VARCHAR(100) COMMENT '城市', - `device` VARCHAR(100) COMMENT '设备', - `os` VARCHAR(100) COMMENT '操作系统', - `browser` VARCHAR(100) COMMENT '浏览器', - `status` TINYINT DEFAULT 1 COMMENT '0失败 1成功', - `error_msg` VARCHAR(255) COMMENT '错误信息', - `execution_time` INT COMMENT '执行时间(ms)', - `create_time` DATETIME COMMENT '操作时间', - PRIMARY KEY (`id`) USING BTREE, - KEY `idx_module_action_time` (`module`, `action_type`, `create_time`), - KEY `idx_operator_time` (`operator_id`, `create_time`), - KEY `idx_time` (`create_time`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='系统操作日志表'; - --- ---------------------------- --- Table structure for gen_table --- ---------------------------- -DROP TABLE IF EXISTS `gen_table`; -CREATE TABLE `gen_table` ( - `id` bigint NOT NULL AUTO_INCREMENT, - `table_name` varchar(100) NOT NULL COMMENT '表名', - `module_name` varchar(100) COMMENT '模块名', - `package_name` varchar(255) NOT NULL COMMENT '包名', - `business_name` varchar(100) NOT NULL COMMENT '业务名', - `entity_name` varchar(100) NOT NULL COMMENT '实体类名', - `author` varchar(50) NOT NULL COMMENT '作者', - `parent_menu_id` bigint COMMENT '上级菜单ID,对应sys_menu的id ', - `remove_table_prefix` varchar(20) COMMENT '要移除的表前缀,如: sys_', - `page_type` varchar(20) COMMENT '页面类型(classic|curd)', - `create_time` datetime COMMENT '创建时间', - `update_time` datetime COMMENT '更新时间', - `is_deleted` tinyint(4) DEFAULT 0 COMMENT '是否删除', - PRIMARY KEY (`id`), - UNIQUE KEY `uk_tablename` (`table_name`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='代码生成配置表'; - --- ---------------------------- --- Table structure for gen_table_column --- ---------------------------- -DROP TABLE IF EXISTS `gen_table_column`; -CREATE TABLE `gen_table_column` ( - `id` bigint NOT NULL AUTO_INCREMENT, - `table_id` bigint NOT NULL COMMENT '关联的表配置ID', - `column_name` varchar(100) , - `column_type` varchar(50) , - `column_length` int , - `field_name` varchar(100) NOT NULL COMMENT '字段名称', - `field_type` varchar(100) COMMENT '字段类型', - `field_sort` int COMMENT '字段排序', - `field_comment` varchar(255) COMMENT '字段描述', - `max_length` int , - `is_required` tinyint(1) COMMENT '是否必填', - `is_show_in_list` tinyint(1) DEFAULT '0' COMMENT '是否在列表显示', - `is_show_in_form` tinyint(1) DEFAULT '0' COMMENT '是否在表单显示', - `is_show_in_query` tinyint(1) DEFAULT '0' COMMENT '是否在查询条件显示', - `query_type` tinyint COMMENT '查询方式', - `form_type` tinyint COMMENT '表单类型', - `dict_type` varchar(50) COMMENT '字典类型', - `create_time` datetime COMMENT '创建时间', - `update_time` datetime COMMENT '更新时间', - PRIMARY KEY (`id`), - KEY `idx_table_id` (`table_id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='代码生成字段配置表'; - --- ---------------------------- --- 系统配置表 --- ---------------------------- -DROP TABLE IF EXISTS `sys_config`; -CREATE TABLE `sys_config` ( - `id` bigint NOT NULL AUTO_INCREMENT, - `config_name` varchar(50) NOT NULL COMMENT '配置名称', - `config_key` varchar(50) NOT NULL COMMENT '配置key', - `config_value` varchar(100) NOT NULL COMMENT '配置值', - `remark` varchar(255) COMMENT '备注', - `create_time` datetime COMMENT '创建时间', - `create_by` bigint COMMENT '创建人ID', - `update_time` datetime COMMENT '更新时间', - `update_by` bigint COMMENT '更新人ID', - `is_deleted` tinyint(4) DEFAULT '0' NOT NULL COMMENT '逻辑删除标识(0-未删除 1-已删除)', - PRIMARY KEY (`id`) -) ENGINE=InnoDB COMMENT='系统配置表'; - -INSERT INTO `sys_config` VALUES (1, '系统限流QPS', 'IP_QPS_THRESHOLD_LIMIT', '10', '单个IP请求的最大每秒查询数(QPS)阈值Key', now(), 1, NULL, NULL, 0); - --- ---------------------------- --- 通知公告表 --- ---------------------------- -DROP TABLE IF EXISTS `sys_notice`; -CREATE TABLE `sys_notice` ( - `id` bigint NOT NULL AUTO_INCREMENT, - `title` varchar(50) COMMENT '通知标题', - `content` text COMMENT '通知内容', - `type` tinyint NOT NULL COMMENT '通知类型(关联字典编码:notice_type)', - `level` varchar(5) NOT NULL COMMENT '通知等级(字典code:notice_level)', - `target_type` tinyint NOT NULL COMMENT '目标类型(1: 全体, 2: 指定)', - `target_user_ids` varchar(255) COMMENT '目标人ID集合(多个使用英文逗号,分割)', - `publisher_id` bigint COMMENT '发布人ID', - `publish_status` tinyint DEFAULT '0' COMMENT '发布状态(0: 未发布, 1: 已发布, -1: 已撤回)', - `publish_time` datetime COMMENT '发布时间', - `revoke_time` datetime COMMENT '撤回时间', - `create_by` bigint NOT NULL COMMENT '创建人ID', - `create_time` datetime NOT NULL COMMENT '创建时间', - `update_by` bigint COMMENT '更新人ID', - `update_time` datetime COMMENT '更新时间', - `is_deleted` tinyint(1) DEFAULT '0' COMMENT '是否删除(0: 未删除, 1: 已删除)', - PRIMARY KEY (`id`) USING BTREE -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='系统通知公告表'; - -INSERT INTO `sys_notice` VALUES (1, 'v3.0.0 版本发布 - 多租户功能上线', '

🎉 新版本发布,主要更新内容:

1. 新增多租户功能,支持租户隔离和数据管理

2. 优化系统性能,提升响应速度

3. 完善权限管理,增强安全性

4. 修复已知问题,提升系统稳定性

', 1, 'H', 1, NULL, 1, 1, '2024-12-15 10:00:00', NULL, 1, '2024-12-15 10:00:00', 1, '2024-12-15 10:00:00', 0); -INSERT INTO `sys_notice` VALUES (2, '系统维护通知 - 2024年12月20日', '

⏰ 系统维护通知

系统将于 2024年12月20日(本周五)凌晨 2:00-4:00 进行例行维护升级。

维护期间系统将暂停服务,请提前做好数据备份工作。

给您带来的不便,敬请谅解!

', 2, 'H', 1, NULL, 1, 1, '2024-12-18 14:30:00', NULL, 1, '2024-12-18 14:30:00', 1, '2024-12-18 14:30:00', 0); -INSERT INTO `sys_notice` VALUES (3, '安全提醒 - 防范钓鱼邮件', '

⚠️ 安全提醒

近期发现有不法分子通过钓鱼邮件进行网络攻击,请大家提高警惕:

1. 不要点击来源不明的邮件链接

2. 不要下载可疑附件

3. 遇到可疑邮件请及时联系IT部门

4. 定期修改密码,使用强密码策略

', 3, 'H', 1, NULL, 1, 1, '2024-12-10 09:00:00', NULL, 1, '2024-12-10 09:00:00', 1, '2024-12-10 09:00:00', 0); -INSERT INTO `sys_notice` VALUES (4, '元旦假期安排通知', '

📅 元旦假期安排

根据国家法定节假日安排,公司元旦假期时间为:

2024年12月30日(周一)至 2025年1月1日(周三),共3天。

2024年12月29日(周日)正常上班。

祝大家元旦快乐,假期愉快!

', 4, 'M', 1, NULL, 1, 1, '2024-12-25 16:00:00', NULL, 1, '2024-12-25 16:00:00', 1, '2024-12-25 16:00:00', 0); -INSERT INTO `sys_notice` VALUES (5, '新产品发布会邀请', '

🎊 新产品发布会邀请

公司将于 2025年1月15日下午14:00 在总部会议室举办新产品发布会。

届时将展示最新研发的产品和技术成果,欢迎全体员工参加。

请各部门提前安排好工作,准时参加。

', 5, 'M', 1, NULL, 1, 1, '2024-12-28 11:00:00', NULL, 1, '2024-12-28 11:00:00', 1, '2024-12-28 11:00:00', 0); -INSERT INTO `sys_notice` VALUES (6, 'v2.16.1 版本更新', '

✨ 版本更新

v2.16.1 版本已发布,主要修复内容:

1. 修复 WebSocket 重复连接导致的后台线程阻塞问题

2. 优化通知公告功能,提升用户体验

3. 修复部分已知bug

建议尽快更新到最新版本。

', 1, 'M', 1, NULL, 1, 1, '2024-12-05 15:30:00', NULL, 1, '2024-12-05 15:30:00', 1, '2024-12-05 15:30:00', 0); -INSERT INTO `sys_notice` VALUES (7, '年终总结会议通知', '

📋 年终总结会议通知

各部门年终总结会议将于 2024年12月30日上午9:00 召开。

请各部门负责人提前准备好年度工作总结和下年度工作计划。

会议地点:总部大会议室

', 5, 'M', 2, '1,2', 1, 1, '2024-12-22 10:00:00', NULL, 1, '2024-12-22 10:00:00', 1, '2024-12-22 10:00:00', 0); -INSERT INTO `sys_notice` VALUES (8, '系统功能优化完成', '

✅ 系统功能优化

已完成以下功能优化:

1. 优化用户管理界面,提升操作体验

2. 增强数据导出功能,支持更多格式

3. 优化搜索功能,提升查询效率

4. 修复部分界面显示问题

', 1, 'L', 1, NULL, 1, 1, '2024-12-12 14:20:00', NULL, 1, '2024-12-12 14:20:00', 1, '2024-12-12 14:20:00', 0); -INSERT INTO `sys_notice` VALUES (9, '员工培训计划', '

📚 员工培训计划

为提升员工专业技能,公司将于 2025年1月8日-10日 组织技术培训。

培训内容:

1. 新技术框架应用

2. 代码规范与最佳实践

3. 系统架构设计

请各部门合理安排工作,确保培训顺利进行。

', 5, 'M', 1, NULL, 1, 1, '2024-12-20 09:30:00', NULL, 1, '2024-12-20 09:30:00', 1, '2024-12-20 09:30:00', 0); -INSERT INTO `sys_notice` VALUES (10, '数据备份提醒', '

💾 数据备份提醒

请各部门注意定期备份重要数据,建议每周至少备份一次。

备份方式:

1. 使用系统自带备份功能

2. 手动导出重要数据

3. 联系IT部门协助备份

数据安全,人人有责!

', 3, 'L', 1, NULL, 1, 1, '2024-12-08 08:00:00', NULL, 1, '2024-12-08 08:00:00', 1, '2024-12-08 08:00:00', 0); - --- ---------------------------- --- 用户通知公告表 --- ---------------------------- -DROP TABLE IF EXISTS `sys_user_notice`; -CREATE TABLE `sys_user_notice` ( - `id` bigint NOT NULL AUTO_INCREMENT COMMENT 'id', - `notice_id` bigint NOT NULL COMMENT '公共通知id', - `user_id` bigint NOT NULL COMMENT '用户id', - `is_read` bigint DEFAULT '0' COMMENT '读取状态(0: 未读, 1: 已读)', - `read_time` datetime COMMENT '阅读时间', - `create_time` datetime NOT NULL COMMENT '创建时间', - `update_time` datetime COMMENT '更新时间', - `is_deleted` tinyint DEFAULT '0' COMMENT '逻辑删除(0: 未删除, 1: 已删除)', - PRIMARY KEY (`id`) USING BTREE -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户通知公告关联表'; - -INSERT INTO `sys_user_notice` VALUES (1, 1, 2, 1, NULL, now(), now(), 0); -INSERT INTO `sys_user_notice` VALUES (2, 2, 2, 1, NULL, now(), now(), 0); -INSERT INTO `sys_user_notice` VALUES (3, 3, 2, 1, NULL, now(), now(), 0); -INSERT INTO `sys_user_notice` VALUES (4, 4, 2, 1, NULL, now(), now(), 0); -INSERT INTO `sys_user_notice` VALUES (5, 5, 2, 1, NULL, now(), now(), 0); -INSERT INTO `sys_user_notice` VALUES (6, 6, 2, 1, NULL, now(), now(), 0); -INSERT INTO `sys_user_notice` VALUES (7, 7, 2, 1, NULL, now(), now(), 0); -INSERT INTO `sys_user_notice` VALUES (8, 8, 2, 1, NULL, now(), now(), 0); -INSERT INTO `sys_user_notice` VALUES (9, 9, 2, 1, NULL, now(), now(), 0); -INSERT INTO `sys_user_notice` VALUES (10, 10, 2, 1, NULL, now(), now(), 0); diff --git a/sql/mysql/youlai_admin.sql b/sql/youlai_admin.sql similarity index 100% rename from sql/mysql/youlai_admin.sql rename to sql/youlai_admin.sql diff --git a/youlai-application/pom.xml b/youlai-application/pom.xml new file mode 100644 index 00000000..ca4b043f --- /dev/null +++ b/youlai-application/pom.xml @@ -0,0 +1,61 @@ + + + 4.0.0 + + + com.youlai + youlai-boot + 4.3.0 + + + youlai-application + 启动打包模块 - 唯一包含启动类 + + + + com.youlai + youlai-system + + + com.youlai + youlai-auth + + + com.youlai + youlai-file + + + com.youlai + youlai-message + + + com.youlai + youlai-codegen + + + + org.springframework.boot + spring-boot-starter-test + test + + + + + ${project.artifactId} + + + src/main/resources + true + + + + + org.springframework.boot + spring-boot-maven-plugin + + + + + diff --git a/src/main/java/com/youlai/boot/YouLaiBootApplication.java b/youlai-application/src/main/java/com/youlai/boot/YouLaiBootApplication.java similarity index 82% rename from src/main/java/com/youlai/boot/YouLaiBootApplication.java rename to youlai-application/src/main/java/com/youlai/boot/YouLaiBootApplication.java index 6c44e203..a40fcaaa 100644 --- a/src/main/java/com/youlai/boot/YouLaiBootApplication.java +++ b/youlai-application/src/main/java/com/youlai/boot/YouLaiBootApplication.java @@ -2,6 +2,7 @@ package com.youlai.boot; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.scheduling.annotation.EnableScheduling; /** * 应用启动类 @@ -9,6 +10,7 @@ import org.springframework.boot.autoconfigure.SpringBootApplication; * @author Ray.Hao * @since 0.0.1 */ +@EnableScheduling @SpringBootApplication public class YouLaiBootApplication { diff --git a/src/main/resources/application-dev.yml b/youlai-application/src/main/resources/application-dev.yml similarity index 99% rename from src/main/resources/application-dev.yml rename to youlai-application/src/main/resources/application-dev.yml index a8ddba0c..f4e55e74 100644 --- a/src/main/resources/application-dev.yml +++ b/youlai-application/src/main/resources/application-dev.yml @@ -94,6 +94,7 @@ security: - /v3/api-docs/** - /webjars/** - /favicon.ico + - /error # 文件存储配置 oss: diff --git a/src/main/resources/application-prod.yml b/youlai-application/src/main/resources/application-prod.yml similarity index 99% rename from src/main/resources/application-prod.yml rename to youlai-application/src/main/resources/application-prod.yml index d3d3fa06..d1bc7ff1 100644 --- a/src/main/resources/application-prod.yml +++ b/youlai-application/src/main/resources/application-prod.yml @@ -93,6 +93,7 @@ security: - /v3/api-docs/** - /webjars/** - /favicon.ico + - /error # 文件存储配置 oss: diff --git a/src/main/resources/application.yml b/youlai-application/src/main/resources/application.yml similarity index 100% rename from src/main/resources/application.yml rename to youlai-application/src/main/resources/application.yml diff --git a/src/main/resources/banner.txt b/youlai-application/src/main/resources/banner.txt similarity index 100% rename from src/main/resources/banner.txt rename to youlai-application/src/main/resources/banner.txt diff --git a/src/main/resources/data/ip2region.xdb b/youlai-application/src/main/resources/data/ip2region.xdb similarity index 100% rename from src/main/resources/data/ip2region.xdb rename to youlai-application/src/main/resources/data/ip2region.xdb diff --git a/src/main/resources/logback-spring.xml b/youlai-application/src/main/resources/logback-spring.xml similarity index 100% rename from src/main/resources/logback-spring.xml rename to youlai-application/src/main/resources/logback-spring.xml diff --git a/src/test/java/com/youlai/boot/generator/SystemCodeGenerator.java b/youlai-application/src/test/java/com/youlai/boot/generator/SystemCodeGenerator.java similarity index 100% rename from src/test/java/com/youlai/boot/generator/SystemCodeGenerator.java rename to youlai-application/src/test/java/com/youlai/boot/generator/SystemCodeGenerator.java diff --git a/src/test/java/com/youlai/boot/security/token/JwtTokenManagerTest.java b/youlai-application/src/test/java/com/youlai/boot/security/token/JwtTokenManagerTest.java similarity index 100% rename from src/test/java/com/youlai/boot/security/token/JwtTokenManagerTest.java rename to youlai-application/src/test/java/com/youlai/boot/security/token/JwtTokenManagerTest.java diff --git a/src/test/resources/templates/bo.java.vm b/youlai-application/src/test/resources/templates/bo.java.vm similarity index 100% rename from src/test/resources/templates/bo.java.vm rename to youlai-application/src/test/resources/templates/bo.java.vm diff --git a/src/test/resources/templates/controller.java.vm b/youlai-application/src/test/resources/templates/controller.java.vm similarity index 100% rename from src/test/resources/templates/controller.java.vm rename to youlai-application/src/test/resources/templates/controller.java.vm diff --git a/src/test/resources/templates/converter.java.vm b/youlai-application/src/test/resources/templates/converter.java.vm similarity index 100% rename from src/test/resources/templates/converter.java.vm rename to youlai-application/src/test/resources/templates/converter.java.vm diff --git a/src/test/resources/templates/dto.java.vm b/youlai-application/src/test/resources/templates/dto.java.vm similarity index 100% rename from src/test/resources/templates/dto.java.vm rename to youlai-application/src/test/resources/templates/dto.java.vm diff --git a/src/test/resources/templates/entity.java.vm b/youlai-application/src/test/resources/templates/entity.java.vm similarity index 100% rename from src/test/resources/templates/entity.java.vm rename to youlai-application/src/test/resources/templates/entity.java.vm diff --git a/src/test/resources/templates/form.java.vm b/youlai-application/src/test/resources/templates/form.java.vm similarity index 100% rename from src/test/resources/templates/form.java.vm rename to youlai-application/src/test/resources/templates/form.java.vm diff --git a/src/test/resources/templates/mapper.java.vm b/youlai-application/src/test/resources/templates/mapper.java.vm similarity index 100% rename from src/test/resources/templates/mapper.java.vm rename to youlai-application/src/test/resources/templates/mapper.java.vm diff --git a/src/test/resources/templates/mapper.xml.vm b/youlai-application/src/test/resources/templates/mapper.xml.vm similarity index 100% rename from src/test/resources/templates/mapper.xml.vm rename to youlai-application/src/test/resources/templates/mapper.xml.vm diff --git a/src/test/resources/templates/pageQuery.java.vm b/youlai-application/src/test/resources/templates/pageQuery.java.vm similarity index 100% rename from src/test/resources/templates/pageQuery.java.vm rename to youlai-application/src/test/resources/templates/pageQuery.java.vm diff --git a/src/test/resources/templates/pageVo.java.vm b/youlai-application/src/test/resources/templates/pageVo.java.vm similarity index 100% rename from src/test/resources/templates/pageVo.java.vm rename to youlai-application/src/test/resources/templates/pageVo.java.vm diff --git a/src/test/resources/templates/service.java.vm b/youlai-application/src/test/resources/templates/service.java.vm similarity index 100% rename from src/test/resources/templates/service.java.vm rename to youlai-application/src/test/resources/templates/service.java.vm diff --git a/src/test/resources/templates/serviceImpl.java.vm b/youlai-application/src/test/resources/templates/serviceImpl.java.vm similarity index 100% rename from src/test/resources/templates/serviceImpl.java.vm rename to youlai-application/src/test/resources/templates/serviceImpl.java.vm diff --git a/src/test/resources/templates/vo.java.vm b/youlai-application/src/test/resources/templates/vo.java.vm similarity index 100% rename from src/test/resources/templates/vo.java.vm rename to youlai-application/src/test/resources/templates/vo.java.vm diff --git a/youlai-auth/pom.xml b/youlai-auth/pom.xml new file mode 100644 index 00000000..ea3179d8 --- /dev/null +++ b/youlai-auth/pom.xml @@ -0,0 +1,38 @@ + + + 4.0.0 + + + com.youlai + youlai-boot + 4.3.0 + + + youlai-auth + 认证授权模块 - 登录、登出、令牌管理、第三方登录 + + + + com.youlai + youlai-common + + + com.youlai + youlai-framework + + + com.youlai + youlai-system + + + + + com.github.binarywang + weixin-java-miniapp + ${weixin-java-miniapp.version} + + + + diff --git a/src/main/java/com/youlai/boot/auth/controller/AuthController.java b/youlai-auth/src/main/java/com/youlai/boot/auth/controller/AuthController.java similarity index 100% rename from src/main/java/com/youlai/boot/auth/controller/AuthController.java rename to youlai-auth/src/main/java/com/youlai/boot/auth/controller/AuthController.java diff --git a/src/main/java/com/youlai/boot/auth/controller/WxMaAuthController.java b/youlai-auth/src/main/java/com/youlai/boot/auth/controller/WxMaAuthController.java similarity index 100% rename from src/main/java/com/youlai/boot/auth/controller/WxMaAuthController.java rename to youlai-auth/src/main/java/com/youlai/boot/auth/controller/WxMaAuthController.java diff --git a/src/main/java/com/youlai/boot/auth/model/LoginReq.java b/youlai-auth/src/main/java/com/youlai/boot/auth/model/LoginReq.java similarity index 100% rename from src/main/java/com/youlai/boot/auth/model/LoginReq.java rename to youlai-auth/src/main/java/com/youlai/boot/auth/model/LoginReq.java diff --git a/src/main/java/com/youlai/boot/auth/model/WxMaBindMobileReq.java b/youlai-auth/src/main/java/com/youlai/boot/auth/model/WxMaBindMobileReq.java similarity index 100% rename from src/main/java/com/youlai/boot/auth/model/WxMaBindMobileReq.java rename to youlai-auth/src/main/java/com/youlai/boot/auth/model/WxMaBindMobileReq.java diff --git a/src/main/java/com/youlai/boot/auth/model/WxMaLoginResp.java b/youlai-auth/src/main/java/com/youlai/boot/auth/model/WxMaLoginResp.java similarity index 100% rename from src/main/java/com/youlai/boot/auth/model/WxMaLoginResp.java rename to youlai-auth/src/main/java/com/youlai/boot/auth/model/WxMaLoginResp.java diff --git a/src/main/java/com/youlai/boot/auth/model/WxMaPhoneLoginReq.java b/youlai-auth/src/main/java/com/youlai/boot/auth/model/WxMaPhoneLoginReq.java similarity index 100% rename from src/main/java/com/youlai/boot/auth/model/WxMaPhoneLoginReq.java rename to youlai-auth/src/main/java/com/youlai/boot/auth/model/WxMaPhoneLoginReq.java diff --git a/src/main/java/com/youlai/boot/auth/service/AuthService.java b/youlai-auth/src/main/java/com/youlai/boot/auth/service/AuthService.java similarity index 100% rename from src/main/java/com/youlai/boot/auth/service/AuthService.java rename to youlai-auth/src/main/java/com/youlai/boot/auth/service/AuthService.java diff --git a/src/main/java/com/youlai/boot/auth/service/WxMaAuthService.java b/youlai-auth/src/main/java/com/youlai/boot/auth/service/WxMaAuthService.java similarity index 100% rename from src/main/java/com/youlai/boot/auth/service/WxMaAuthService.java rename to youlai-auth/src/main/java/com/youlai/boot/auth/service/WxMaAuthService.java diff --git a/src/main/java/com/youlai/boot/auth/service/impl/AuthServiceImpl.java b/youlai-auth/src/main/java/com/youlai/boot/auth/service/impl/AuthServiceImpl.java similarity index 100% rename from src/main/java/com/youlai/boot/auth/service/impl/AuthServiceImpl.java rename to youlai-auth/src/main/java/com/youlai/boot/auth/service/impl/AuthServiceImpl.java diff --git a/src/main/java/com/youlai/boot/auth/service/impl/WxMaAuthServiceImpl.java b/youlai-auth/src/main/java/com/youlai/boot/auth/service/impl/WxMaAuthServiceImpl.java similarity index 100% rename from src/main/java/com/youlai/boot/auth/service/impl/WxMaAuthServiceImpl.java rename to youlai-auth/src/main/java/com/youlai/boot/auth/service/impl/WxMaAuthServiceImpl.java diff --git a/youlai-codegen/pom.xml b/youlai-codegen/pom.xml new file mode 100644 index 00000000..c9046f37 --- /dev/null +++ b/youlai-codegen/pom.xml @@ -0,0 +1,41 @@ + + + 4.0.0 + + + com.youlai + youlai-boot + 4.3.0 + + + youlai-codegen + 代码生成器模块 - 可视化配置的前后端代码生成 + + + + com.youlai + youlai-common + + + com.youlai + youlai-framework + + + + + org.apache.velocity + velocity-engine-core + ${velocity.version} + + + + + com.baomidou + mybatis-plus-generator + ${mybatis-plus-generator.version} + + + + diff --git a/src/main/java/com/youlai/boot/codegen/config/CodegenProperties.java b/youlai-codegen/src/main/java/com/youlai/boot/codegen/config/CodegenProperties.java similarity index 93% rename from src/main/java/com/youlai/boot/codegen/config/CodegenProperties.java rename to youlai-codegen/src/main/java/com/youlai/boot/codegen/config/CodegenProperties.java index 5f327996..0490f559 100644 --- a/src/main/java/com/youlai/boot/codegen/config/CodegenProperties.java +++ b/youlai-codegen/src/main/java/com/youlai/boot/codegen/config/CodegenProperties.java @@ -92,6 +92,11 @@ public class CodegenProperties { */ private String moduleName; + /** + * 基础包名 (e.g. com.youlai.boot) + */ + private String packageName = "com.youlai.boot"; + } diff --git a/src/main/java/com/youlai/boot/codegen/controller/CodegenController.java b/youlai-codegen/src/main/java/com/youlai/boot/codegen/controller/CodegenController.java similarity index 100% rename from src/main/java/com/youlai/boot/codegen/controller/CodegenController.java rename to youlai-codegen/src/main/java/com/youlai/boot/codegen/controller/CodegenController.java diff --git a/src/main/java/com/youlai/boot/codegen/converter/CodegenConverter.java b/youlai-codegen/src/main/java/com/youlai/boot/codegen/converter/CodegenConverter.java similarity index 100% rename from src/main/java/com/youlai/boot/codegen/converter/CodegenConverter.java rename to youlai-codegen/src/main/java/com/youlai/boot/codegen/converter/CodegenConverter.java diff --git a/src/main/java/com/youlai/boot/codegen/enums/FormTypeEnum.java b/youlai-codegen/src/main/java/com/youlai/boot/codegen/enums/FormTypeEnum.java similarity index 100% rename from src/main/java/com/youlai/boot/codegen/enums/FormTypeEnum.java rename to youlai-codegen/src/main/java/com/youlai/boot/codegen/enums/FormTypeEnum.java diff --git a/src/main/java/com/youlai/boot/codegen/enums/JavaTypeEnum.java b/youlai-codegen/src/main/java/com/youlai/boot/codegen/enums/JavaTypeEnum.java similarity index 100% rename from src/main/java/com/youlai/boot/codegen/enums/JavaTypeEnum.java rename to youlai-codegen/src/main/java/com/youlai/boot/codegen/enums/JavaTypeEnum.java diff --git a/src/main/java/com/youlai/boot/codegen/enums/QueryTypeEnum.java b/youlai-codegen/src/main/java/com/youlai/boot/codegen/enums/QueryTypeEnum.java similarity index 100% rename from src/main/java/com/youlai/boot/codegen/enums/QueryTypeEnum.java rename to youlai-codegen/src/main/java/com/youlai/boot/codegen/enums/QueryTypeEnum.java diff --git a/src/main/java/com/youlai/boot/codegen/mapper/DatabaseMapper.java b/youlai-codegen/src/main/java/com/youlai/boot/codegen/mapper/DatabaseMapper.java similarity index 100% rename from src/main/java/com/youlai/boot/codegen/mapper/DatabaseMapper.java rename to youlai-codegen/src/main/java/com/youlai/boot/codegen/mapper/DatabaseMapper.java diff --git a/src/main/java/com/youlai/boot/codegen/mapper/GenTableColumnMapper.java b/youlai-codegen/src/main/java/com/youlai/boot/codegen/mapper/GenTableColumnMapper.java similarity index 100% rename from src/main/java/com/youlai/boot/codegen/mapper/GenTableColumnMapper.java rename to youlai-codegen/src/main/java/com/youlai/boot/codegen/mapper/GenTableColumnMapper.java diff --git a/src/main/java/com/youlai/boot/codegen/mapper/GenTableMapper.java b/youlai-codegen/src/main/java/com/youlai/boot/codegen/mapper/GenTableMapper.java similarity index 100% rename from src/main/java/com/youlai/boot/codegen/mapper/GenTableMapper.java rename to youlai-codegen/src/main/java/com/youlai/boot/codegen/mapper/GenTableMapper.java diff --git a/src/main/java/com/youlai/boot/codegen/model/entity/GenTable.java b/youlai-codegen/src/main/java/com/youlai/boot/codegen/model/entity/GenTable.java similarity index 100% rename from src/main/java/com/youlai/boot/codegen/model/entity/GenTable.java rename to youlai-codegen/src/main/java/com/youlai/boot/codegen/model/entity/GenTable.java diff --git a/src/main/java/com/youlai/boot/codegen/model/entity/GenTableColumn.java b/youlai-codegen/src/main/java/com/youlai/boot/codegen/model/entity/GenTableColumn.java similarity index 100% rename from src/main/java/com/youlai/boot/codegen/model/entity/GenTableColumn.java rename to youlai-codegen/src/main/java/com/youlai/boot/codegen/model/entity/GenTableColumn.java diff --git a/src/main/java/com/youlai/boot/codegen/model/form/GenConfigForm.java b/youlai-codegen/src/main/java/com/youlai/boot/codegen/model/form/GenConfigForm.java similarity index 100% rename from src/main/java/com/youlai/boot/codegen/model/form/GenConfigForm.java rename to youlai-codegen/src/main/java/com/youlai/boot/codegen/model/form/GenConfigForm.java diff --git a/src/main/java/com/youlai/boot/codegen/model/query/TablePageQuery.java b/youlai-codegen/src/main/java/com/youlai/boot/codegen/model/query/TablePageQuery.java similarity index 100% rename from src/main/java/com/youlai/boot/codegen/model/query/TablePageQuery.java rename to youlai-codegen/src/main/java/com/youlai/boot/codegen/model/query/TablePageQuery.java diff --git a/src/main/java/com/youlai/boot/codegen/model/query/TableQuery.java b/youlai-codegen/src/main/java/com/youlai/boot/codegen/model/query/TableQuery.java similarity index 100% rename from src/main/java/com/youlai/boot/codegen/model/query/TableQuery.java rename to youlai-codegen/src/main/java/com/youlai/boot/codegen/model/query/TableQuery.java diff --git a/src/main/java/com/youlai/boot/codegen/model/vo/CodegenPreviewVO.java b/youlai-codegen/src/main/java/com/youlai/boot/codegen/model/vo/CodegenPreviewVO.java similarity index 100% rename from src/main/java/com/youlai/boot/codegen/model/vo/CodegenPreviewVO.java rename to youlai-codegen/src/main/java/com/youlai/boot/codegen/model/vo/CodegenPreviewVO.java diff --git a/src/main/java/com/youlai/boot/codegen/model/vo/ColumnMetaVO.java b/youlai-codegen/src/main/java/com/youlai/boot/codegen/model/vo/ColumnMetaVO.java similarity index 100% rename from src/main/java/com/youlai/boot/codegen/model/vo/ColumnMetaVO.java rename to youlai-codegen/src/main/java/com/youlai/boot/codegen/model/vo/ColumnMetaVO.java diff --git a/src/main/java/com/youlai/boot/codegen/model/vo/TableMetaVO.java b/youlai-codegen/src/main/java/com/youlai/boot/codegen/model/vo/TableMetaVO.java similarity index 100% rename from src/main/java/com/youlai/boot/codegen/model/vo/TableMetaVO.java rename to youlai-codegen/src/main/java/com/youlai/boot/codegen/model/vo/TableMetaVO.java diff --git a/src/main/java/com/youlai/boot/codegen/model/vo/TablePageVO.java b/youlai-codegen/src/main/java/com/youlai/boot/codegen/model/vo/TablePageVO.java similarity index 100% rename from src/main/java/com/youlai/boot/codegen/model/vo/TablePageVO.java rename to youlai-codegen/src/main/java/com/youlai/boot/codegen/model/vo/TablePageVO.java diff --git a/src/main/java/com/youlai/boot/codegen/service/CodegenService.java b/youlai-codegen/src/main/java/com/youlai/boot/codegen/service/CodegenService.java similarity index 100% rename from src/main/java/com/youlai/boot/codegen/service/CodegenService.java rename to youlai-codegen/src/main/java/com/youlai/boot/codegen/service/CodegenService.java diff --git a/src/main/java/com/youlai/boot/codegen/service/GenTableColumnService.java b/youlai-codegen/src/main/java/com/youlai/boot/codegen/service/GenTableColumnService.java similarity index 100% rename from src/main/java/com/youlai/boot/codegen/service/GenTableColumnService.java rename to youlai-codegen/src/main/java/com/youlai/boot/codegen/service/GenTableColumnService.java diff --git a/src/main/java/com/youlai/boot/codegen/service/GenTableService.java b/youlai-codegen/src/main/java/com/youlai/boot/codegen/service/GenTableService.java similarity index 100% rename from src/main/java/com/youlai/boot/codegen/service/GenTableService.java rename to youlai-codegen/src/main/java/com/youlai/boot/codegen/service/GenTableService.java diff --git a/src/main/java/com/youlai/boot/codegen/service/impl/CodegenServiceImpl.java b/youlai-codegen/src/main/java/com/youlai/boot/codegen/service/impl/CodegenServiceImpl.java similarity index 100% rename from src/main/java/com/youlai/boot/codegen/service/impl/CodegenServiceImpl.java rename to youlai-codegen/src/main/java/com/youlai/boot/codegen/service/impl/CodegenServiceImpl.java diff --git a/src/main/java/com/youlai/boot/codegen/service/impl/GenTableColumnServiceImpl.java b/youlai-codegen/src/main/java/com/youlai/boot/codegen/service/impl/GenTableColumnServiceImpl.java similarity index 100% rename from src/main/java/com/youlai/boot/codegen/service/impl/GenTableColumnServiceImpl.java rename to youlai-codegen/src/main/java/com/youlai/boot/codegen/service/impl/GenTableColumnServiceImpl.java diff --git a/src/main/java/com/youlai/boot/codegen/service/impl/GenTableServiceImpl.java b/youlai-codegen/src/main/java/com/youlai/boot/codegen/service/impl/GenTableServiceImpl.java similarity index 95% rename from src/main/java/com/youlai/boot/codegen/service/impl/GenTableServiceImpl.java rename to youlai-codegen/src/main/java/com/youlai/boot/codegen/service/impl/GenTableServiceImpl.java index 6df5b3d5..e914c7c2 100644 --- a/src/main/java/com/youlai/boot/codegen/service/impl/GenTableServiceImpl.java +++ b/youlai-codegen/src/main/java/com/youlai/boot/codegen/service/impl/GenTableServiceImpl.java @@ -5,7 +5,6 @@ import cn.hutool.core.lang.Assert; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.youlai.boot.YouLaiBootApplication; import com.youlai.boot.common.enums.EnvEnum; import com.youlai.boot.codegen.enums.FormTypeEnum; import com.youlai.boot.codegen.enums.JavaTypeEnum; @@ -22,9 +21,10 @@ import com.youlai.boot.codegen.model.entity.GenTableColumn; import com.youlai.boot.codegen.model.form.GenConfigForm; import com.youlai.boot.codegen.service.GenTableService; import com.youlai.boot.codegen.service.GenTableColumnService; -import com.youlai.boot.system.service.MenuService; +import com.youlai.boot.common.event.CodegenMenuEvent; import lombok.RequiredArgsConstructor; import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.ApplicationEventPublisher; import org.springframework.stereotype.Service; import java.util.ArrayList; @@ -50,7 +50,7 @@ public class GenTableServiceImpl extends ServiceImpl i @Value("${spring.profiles.active}") private String springProfilesActive; - private final MenuService menuService; + private final ApplicationEventPublisher eventPublisher; /** * 获取代码生成配置 @@ -91,7 +91,7 @@ public class GenTableServiceImpl extends ServiceImpl i } genTable.setEntityName(StrUtil.toCamelCase(StrUtil.upperFirst(StrUtil.toCamelCase(processedTable)))); - genTable.setPackageName(YouLaiBootApplication.class.getPackageName()); + genTable.setPackageName(codegenProperties.getDefaultConfig().getPackageName()); genTable.setModuleName(codegenProperties.getDefaultConfig().getModuleName()); // 默认模块名 genTable.setAuthor(codegenProperties.getDefaultConfig().getAuthor()); } @@ -185,10 +185,11 @@ public class GenTableServiceImpl extends ServiceImpl i GenTable genTable = codegenConverter.toGenTable(formData); this.saveOrUpdate(genTable); - // 如果选择上级菜单且当前环境不是生产环境,则保存菜单 + // 如果选择上级菜单且当前环境不是生产环境,发布菜单创建事件 Long parentMenuId = formData.getParentMenuId(); if (parentMenuId != null && !EnvEnum.PROD.getValue().equals(springProfilesActive)) { - menuService.addMenuForCodegen(parentMenuId, genTable); + eventPublisher.publishEvent(new CodegenMenuEvent(this, parentMenuId, + genTable.getBusinessName(), genTable.getModuleName(), genTable.getPackageName())); } List genTableColumns = codegenConverter.toGenTableColumn(formData.getFieldConfigs()); diff --git a/src/main/resources/codegen.yml b/youlai-codegen/src/main/resources/codegen.yml similarity index 100% rename from src/main/resources/codegen.yml rename to youlai-codegen/src/main/resources/codegen.yml diff --git a/src/main/resources/mapper/codegen/DatabaseMapper.xml b/youlai-codegen/src/main/resources/mapper/codegen/DatabaseMapper.xml similarity index 100% rename from src/main/resources/mapper/codegen/DatabaseMapper.xml rename to youlai-codegen/src/main/resources/mapper/codegen/DatabaseMapper.xml diff --git a/src/main/resources/mapper/codegen/GenConfigMapper.xml b/youlai-codegen/src/main/resources/mapper/codegen/GenConfigMapper.xml similarity index 100% rename from src/main/resources/mapper/codegen/GenConfigMapper.xml rename to youlai-codegen/src/main/resources/mapper/codegen/GenConfigMapper.xml diff --git a/src/main/resources/mapper/codegen/GenFieldConfigMapper.xml b/youlai-codegen/src/main/resources/mapper/codegen/GenFieldConfigMapper.xml similarity index 100% rename from src/main/resources/mapper/codegen/GenFieldConfigMapper.xml rename to youlai-codegen/src/main/resources/mapper/codegen/GenFieldConfigMapper.xml diff --git a/src/main/resources/mapper/codegen/GenTableColumnMapper.xml b/youlai-codegen/src/main/resources/mapper/codegen/GenTableColumnMapper.xml similarity index 100% rename from src/main/resources/mapper/codegen/GenTableColumnMapper.xml rename to youlai-codegen/src/main/resources/mapper/codegen/GenTableColumnMapper.xml diff --git a/src/main/resources/mapper/codegen/GenTableMapper.xml b/youlai-codegen/src/main/resources/mapper/codegen/GenTableMapper.xml similarity index 100% rename from src/main/resources/mapper/codegen/GenTableMapper.xml rename to youlai-codegen/src/main/resources/mapper/codegen/GenTableMapper.xml diff --git a/src/main/resources/templates/codegen/backend/controller.java.vm b/youlai-codegen/src/main/resources/templates/codegen/backend/controller.java.vm similarity index 100% rename from src/main/resources/templates/codegen/backend/controller.java.vm rename to youlai-codegen/src/main/resources/templates/codegen/backend/controller.java.vm diff --git a/src/main/resources/templates/codegen/backend/converter.java.vm b/youlai-codegen/src/main/resources/templates/codegen/backend/converter.java.vm similarity index 87% rename from src/main/resources/templates/codegen/backend/converter.java.vm rename to youlai-codegen/src/main/resources/templates/codegen/backend/converter.java.vm index ed1dd163..63648c17 100644 --- a/src/main/resources/templates/codegen/backend/converter.java.vm +++ b/youlai-codegen/src/main/resources/templates/codegen/backend/converter.java.vm @@ -1,7 +1,6 @@ package ${packageName}.${moduleName}.${subpackageName}; import org.mapstruct.Mapper; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import ${packageName}.${moduleName}.model.entity.${entityName}; import ${packageName}.${moduleName}.model.form.${entityName}Form; diff --git a/src/main/resources/templates/codegen/backend/entity.java.vm b/youlai-codegen/src/main/resources/templates/codegen/backend/entity.java.vm similarity index 100% rename from src/main/resources/templates/codegen/backend/entity.java.vm rename to youlai-codegen/src/main/resources/templates/codegen/backend/entity.java.vm diff --git a/src/main/resources/templates/codegen/backend/form.java.vm b/youlai-codegen/src/main/resources/templates/codegen/backend/form.java.vm similarity index 96% rename from src/main/resources/templates/codegen/backend/form.java.vm rename to youlai-codegen/src/main/resources/templates/codegen/backend/form.java.vm index f05ce6b8..e157c2aa 100644 --- a/src/main/resources/templates/codegen/backend/form.java.vm +++ b/youlai-codegen/src/main/resources/templates/codegen/backend/form.java.vm @@ -30,6 +30,9 @@ public class ${entityName}Form implements Serializable { @Serial private static final long serialVersionUID = 1L; + @Schema(description = "${businessName}ID") + private Long id; + ## ---------- BEGIN 字段循环遍历 ---------- #if($fieldConfigs) #foreach($fieldConfig in ${fieldConfigs}) diff --git a/src/main/resources/templates/codegen/backend/mapper.java.vm b/youlai-codegen/src/main/resources/templates/codegen/backend/mapper.java.vm similarity index 100% rename from src/main/resources/templates/codegen/backend/mapper.java.vm rename to youlai-codegen/src/main/resources/templates/codegen/backend/mapper.java.vm diff --git a/src/main/resources/templates/codegen/backend/mapper.xml.vm b/youlai-codegen/src/main/resources/templates/codegen/backend/mapper.xml.vm similarity index 100% rename from src/main/resources/templates/codegen/backend/mapper.xml.vm rename to youlai-codegen/src/main/resources/templates/codegen/backend/mapper.xml.vm diff --git a/src/main/resources/templates/codegen/backend/query.java.vm b/youlai-codegen/src/main/resources/templates/codegen/backend/query.java.vm similarity index 100% rename from src/main/resources/templates/codegen/backend/query.java.vm rename to youlai-codegen/src/main/resources/templates/codegen/backend/query.java.vm diff --git a/src/main/resources/templates/codegen/backend/service.java.vm b/youlai-codegen/src/main/resources/templates/codegen/backend/service.java.vm similarity index 100% rename from src/main/resources/templates/codegen/backend/service.java.vm rename to youlai-codegen/src/main/resources/templates/codegen/backend/service.java.vm diff --git a/src/main/resources/templates/codegen/backend/serviceImpl.java.vm b/youlai-codegen/src/main/resources/templates/codegen/backend/serviceImpl.java.vm similarity index 98% rename from src/main/resources/templates/codegen/backend/serviceImpl.java.vm rename to youlai-codegen/src/main/resources/templates/codegen/backend/serviceImpl.java.vm index a1b8d55b..6e8db040 100644 --- a/src/main/resources/templates/codegen/backend/serviceImpl.java.vm +++ b/youlai-codegen/src/main/resources/templates/codegen/backend/serviceImpl.java.vm @@ -15,7 +15,6 @@ import ${packageName}.${moduleName}.converter.${entityName}Converter; import java.util.Arrays; import java.util.List; -import java.util.stream.Collectors; import cn.hutool.core.lang.Assert; import cn.hutool.core.util.StrUtil; diff --git a/src/main/resources/templates/codegen/backend/vo.java.vm b/youlai-codegen/src/main/resources/templates/codegen/backend/vo.java.vm similarity index 100% rename from src/main/resources/templates/codegen/backend/vo.java.vm rename to youlai-codegen/src/main/resources/templates/codegen/backend/vo.java.vm diff --git a/src/main/resources/templates/codegen/frontend/js/api.js.vm b/youlai-codegen/src/main/resources/templates/codegen/frontend/js/api.js.vm similarity index 100% rename from src/main/resources/templates/codegen/frontend/js/api.js.vm rename to youlai-codegen/src/main/resources/templates/codegen/frontend/js/api.js.vm diff --git a/src/main/resources/templates/codegen/frontend/js/index.curd.js.vue.vm b/youlai-codegen/src/main/resources/templates/codegen/frontend/js/index.curd.js.vue.vm similarity index 100% rename from src/main/resources/templates/codegen/frontend/js/index.curd.js.vue.vm rename to youlai-codegen/src/main/resources/templates/codegen/frontend/js/index.curd.js.vue.vm diff --git a/src/main/resources/templates/codegen/frontend/js/index.js.vue.vm b/youlai-codegen/src/main/resources/templates/codegen/frontend/js/index.js.vue.vm similarity index 100% rename from src/main/resources/templates/codegen/frontend/js/index.js.vue.vm rename to youlai-codegen/src/main/resources/templates/codegen/frontend/js/index.js.vue.vm diff --git a/src/main/resources/templates/codegen/frontend/ts/api-types.ts.vm b/youlai-codegen/src/main/resources/templates/codegen/frontend/ts/api-types.ts.vm similarity index 98% rename from src/main/resources/templates/codegen/frontend/ts/api-types.ts.vm rename to youlai-codegen/src/main/resources/templates/codegen/frontend/ts/api-types.ts.vm index 7b100b31..fe1bb1c4 100644 --- a/src/main/resources/templates/codegen/frontend/ts/api-types.ts.vm +++ b/youlai-codegen/src/main/resources/templates/codegen/frontend/ts/api-types.ts.vm @@ -26,6 +26,7 @@ export interface ${entityName}QueryParams extends BaseQueryParams { /** $!{businessName}表单对象 */ export interface ${entityName}Form { + id?: number; #foreach($fieldConfig in $fieldConfigs) #if($fieldConfig.isShowInForm) #if("$!fieldConfig.fieldComment" != "") diff --git a/src/main/resources/templates/codegen/frontend/ts/api.ts.vm b/youlai-codegen/src/main/resources/templates/codegen/frontend/ts/api.ts.vm similarity index 100% rename from src/main/resources/templates/codegen/frontend/ts/api.ts.vm rename to youlai-codegen/src/main/resources/templates/codegen/frontend/ts/api.ts.vm diff --git a/src/main/resources/templates/codegen/frontend/ts/index.curd.vue.vm b/youlai-codegen/src/main/resources/templates/codegen/frontend/ts/index.curd.vue.vm similarity index 100% rename from src/main/resources/templates/codegen/frontend/ts/index.curd.vue.vm rename to youlai-codegen/src/main/resources/templates/codegen/frontend/ts/index.curd.vue.vm diff --git a/src/main/resources/templates/codegen/frontend/ts/index.vue.vm b/youlai-codegen/src/main/resources/templates/codegen/frontend/ts/index.vue.vm similarity index 100% rename from src/main/resources/templates/codegen/frontend/ts/index.vue.vm rename to youlai-codegen/src/main/resources/templates/codegen/frontend/ts/index.vue.vm diff --git a/src/main/resources/templates/excel/用户导入模板.xlsx b/youlai-codegen/src/main/resources/templates/excel/用户导入模板.xlsx similarity index 100% rename from src/main/resources/templates/excel/用户导入模板.xlsx rename to youlai-codegen/src/main/resources/templates/excel/用户导入模板.xlsx diff --git a/youlai-common/pom.xml b/youlai-common/pom.xml new file mode 100644 index 00000000..5a6e4f5f --- /dev/null +++ b/youlai-common/pom.xml @@ -0,0 +1,70 @@ + + + 4.0.0 + + + com.youlai + youlai-boot + 4.3.0 + + + youlai-common + 公共基础模块 - 常量、枚举、异常、工具、基础模型 + + + + org.springframework.boot + spring-boot-starter-web + provided + + + org.springframework.boot + spring-boot-starter-aspectj + provided + + + org.springframework.boot + spring-boot-starter-validation + provided + + + com.baomidou + mybatis-plus-spring-boot4-starter + ${mybatis-plus.version} + provided + + + io.swagger.core.v3 + swagger-annotations-jakarta + 2.2.29 + provided + + + cn.idev.excel + fastexcel + ${fastexcel.version} + provided + + + org.lionsoul + ip2region + ${ip2region.version} + provided + + + org.redisson + redisson-spring-boot-starter + ${redisson.version} + provided + + + org.projectlombok + lombok-mapstruct-binding + ${lombok-mapstruct-binding.version} + provided + + + + diff --git a/src/main/java/com/youlai/boot/common/annotation/DataPermission.java b/youlai-common/src/main/java/com/youlai/boot/common/annotation/DataPermission.java similarity index 100% rename from src/main/java/com/youlai/boot/common/annotation/DataPermission.java rename to youlai-common/src/main/java/com/youlai/boot/common/annotation/DataPermission.java diff --git a/src/main/java/com/youlai/boot/common/annotation/Log.java b/youlai-common/src/main/java/com/youlai/boot/common/annotation/Log.java similarity index 100% rename from src/main/java/com/youlai/boot/common/annotation/Log.java rename to youlai-common/src/main/java/com/youlai/boot/common/annotation/Log.java diff --git a/src/main/java/com/youlai/boot/common/annotation/RepeatSubmit.java b/youlai-common/src/main/java/com/youlai/boot/common/annotation/RepeatSubmit.java similarity index 100% rename from src/main/java/com/youlai/boot/common/annotation/RepeatSubmit.java rename to youlai-common/src/main/java/com/youlai/boot/common/annotation/RepeatSubmit.java diff --git a/src/main/java/com/youlai/boot/common/annotation/ValidField.java b/youlai-common/src/main/java/com/youlai/boot/common/annotation/ValidField.java similarity index 100% rename from src/main/java/com/youlai/boot/common/annotation/ValidField.java rename to youlai-common/src/main/java/com/youlai/boot/common/annotation/ValidField.java diff --git a/src/main/java/com/youlai/boot/common/base/BaseEntity.java b/youlai-common/src/main/java/com/youlai/boot/common/base/BaseEntity.java similarity index 100% rename from src/main/java/com/youlai/boot/common/base/BaseEntity.java rename to youlai-common/src/main/java/com/youlai/boot/common/base/BaseEntity.java diff --git a/src/main/java/com/youlai/boot/common/base/BaseQuery.java b/youlai-common/src/main/java/com/youlai/boot/common/base/BaseQuery.java similarity index 100% rename from src/main/java/com/youlai/boot/common/base/BaseQuery.java rename to youlai-common/src/main/java/com/youlai/boot/common/base/BaseQuery.java diff --git a/src/main/java/com/youlai/boot/common/base/IBaseEnum.java b/youlai-common/src/main/java/com/youlai/boot/common/base/IBaseEnum.java similarity index 100% rename from src/main/java/com/youlai/boot/common/base/IBaseEnum.java rename to youlai-common/src/main/java/com/youlai/boot/common/base/IBaseEnum.java diff --git a/src/main/java/com/youlai/boot/common/constant/JwtClaimConstants.java b/youlai-common/src/main/java/com/youlai/boot/common/constant/JwtClaimConstants.java similarity index 100% rename from src/main/java/com/youlai/boot/common/constant/JwtClaimConstants.java rename to youlai-common/src/main/java/com/youlai/boot/common/constant/JwtClaimConstants.java diff --git a/src/main/java/com/youlai/boot/common/constant/RedisConstants.java b/youlai-common/src/main/java/com/youlai/boot/common/constant/RedisConstants.java similarity index 100% rename from src/main/java/com/youlai/boot/common/constant/RedisConstants.java rename to youlai-common/src/main/java/com/youlai/boot/common/constant/RedisConstants.java diff --git a/src/main/java/com/youlai/boot/common/constant/SecurityConstants.java b/youlai-common/src/main/java/com/youlai/boot/common/constant/SecurityConstants.java similarity index 100% rename from src/main/java/com/youlai/boot/common/constant/SecurityConstants.java rename to youlai-common/src/main/java/com/youlai/boot/common/constant/SecurityConstants.java diff --git a/src/main/java/com/youlai/boot/common/constant/SystemConstants.java b/youlai-common/src/main/java/com/youlai/boot/common/constant/SystemConstants.java similarity index 100% rename from src/main/java/com/youlai/boot/common/constant/SystemConstants.java rename to youlai-common/src/main/java/com/youlai/boot/common/constant/SystemConstants.java diff --git a/src/main/java/com/youlai/boot/common/enums/ActionTypeEnum.java b/youlai-common/src/main/java/com/youlai/boot/common/enums/ActionTypeEnum.java similarity index 100% rename from src/main/java/com/youlai/boot/common/enums/ActionTypeEnum.java rename to youlai-common/src/main/java/com/youlai/boot/common/enums/ActionTypeEnum.java diff --git a/src/main/java/com/youlai/boot/common/enums/CaptchaTypeEnum.java b/youlai-common/src/main/java/com/youlai/boot/common/enums/CaptchaTypeEnum.java similarity index 100% rename from src/main/java/com/youlai/boot/common/enums/CaptchaTypeEnum.java rename to youlai-common/src/main/java/com/youlai/boot/common/enums/CaptchaTypeEnum.java diff --git a/src/main/java/com/youlai/boot/common/enums/DataScopeEnum.java b/youlai-common/src/main/java/com/youlai/boot/common/enums/DataScopeEnum.java similarity index 100% rename from src/main/java/com/youlai/boot/common/enums/DataScopeEnum.java rename to youlai-common/src/main/java/com/youlai/boot/common/enums/DataScopeEnum.java diff --git a/src/main/java/com/youlai/boot/common/enums/EnvEnum.java b/youlai-common/src/main/java/com/youlai/boot/common/enums/EnvEnum.java similarity index 100% rename from src/main/java/com/youlai/boot/common/enums/EnvEnum.java rename to youlai-common/src/main/java/com/youlai/boot/common/enums/EnvEnum.java diff --git a/src/main/java/com/youlai/boot/common/enums/LogModuleEnum.java b/youlai-common/src/main/java/com/youlai/boot/common/enums/LogModuleEnum.java similarity index 100% rename from src/main/java/com/youlai/boot/common/enums/LogModuleEnum.java rename to youlai-common/src/main/java/com/youlai/boot/common/enums/LogModuleEnum.java diff --git a/src/main/java/com/youlai/boot/common/enums/StatusEnum.java b/youlai-common/src/main/java/com/youlai/boot/common/enums/StatusEnum.java similarity index 100% rename from src/main/java/com/youlai/boot/common/enums/StatusEnum.java rename to youlai-common/src/main/java/com/youlai/boot/common/enums/StatusEnum.java diff --git a/youlai-common/src/main/java/com/youlai/boot/common/event/CodegenMenuEvent.java b/youlai-common/src/main/java/com/youlai/boot/common/event/CodegenMenuEvent.java new file mode 100644 index 00000000..9e1341b0 --- /dev/null +++ b/youlai-common/src/main/java/com/youlai/boot/common/event/CodegenMenuEvent.java @@ -0,0 +1,24 @@ +package com.youlai.boot.common.event; + +import lombok.Getter; +import org.springframework.context.ApplicationEvent; + +/** + * 代码生成菜单创建事件 + */ +@Getter +public class CodegenMenuEvent extends ApplicationEvent { + + private final Long parentMenuId; + private final String businessName; + private final String moduleName; + private final String packageName; + + public CodegenMenuEvent(Object source, Long parentMenuId, String businessName, String moduleName, String packageName) { + super(source); + this.parentMenuId = parentMenuId; + this.businessName = businessName; + this.moduleName = moduleName; + this.packageName = packageName; + } +} diff --git a/youlai-common/src/main/java/com/youlai/boot/common/event/DictChangeEvent.java b/youlai-common/src/main/java/com/youlai/boot/common/event/DictChangeEvent.java new file mode 100644 index 00000000..f598d594 --- /dev/null +++ b/youlai-common/src/main/java/com/youlai/boot/common/event/DictChangeEvent.java @@ -0,0 +1,16 @@ +package com.youlai.boot.common.event; + +import org.springframework.context.ApplicationEvent; + +public class DictChangeEvent extends ApplicationEvent { + private final Long dictId; + + public DictChangeEvent(Object source, Long dictId) { + super(source); + this.dictId = dictId; + } + + public Long getDictId() { + return dictId; + } +} diff --git a/youlai-common/src/main/java/com/youlai/boot/common/event/NoticePublishEvent.java b/youlai-common/src/main/java/com/youlai/boot/common/event/NoticePublishEvent.java new file mode 100644 index 00000000..83c5d912 --- /dev/null +++ b/youlai-common/src/main/java/com/youlai/boot/common/event/NoticePublishEvent.java @@ -0,0 +1,23 @@ +package com.youlai.boot.common.event; + +import java.util.List; +import org.springframework.context.ApplicationEvent; + +public class NoticePublishEvent extends ApplicationEvent { + private final Long noticeId; + private final List userIds; + + public NoticePublishEvent(Object source, Long noticeId, List userIds) { + super(source); + this.noticeId = noticeId; + this.userIds = userIds; + } + + public Long getNoticeId() { + return noticeId; + } + + public List getUserIds() { + return userIds; + } +} diff --git a/src/main/java/com/youlai/boot/common/exception/BusinessException.java b/youlai-common/src/main/java/com/youlai/boot/common/exception/BusinessException.java similarity index 100% rename from src/main/java/com/youlai/boot/common/exception/BusinessException.java rename to youlai-common/src/main/java/com/youlai/boot/common/exception/BusinessException.java diff --git a/src/main/java/com/youlai/boot/common/model/KeyValue.java b/youlai-common/src/main/java/com/youlai/boot/common/model/KeyValue.java similarity index 100% rename from src/main/java/com/youlai/boot/common/model/KeyValue.java rename to youlai-common/src/main/java/com/youlai/boot/common/model/KeyValue.java diff --git a/src/main/java/com/youlai/boot/common/model/Option.java b/youlai-common/src/main/java/com/youlai/boot/common/model/Option.java similarity index 100% rename from src/main/java/com/youlai/boot/common/model/Option.java rename to youlai-common/src/main/java/com/youlai/boot/common/model/Option.java diff --git a/src/main/java/com/youlai/boot/common/result/ExcelResult.java b/youlai-common/src/main/java/com/youlai/boot/common/result/ExcelResult.java similarity index 100% rename from src/main/java/com/youlai/boot/common/result/ExcelResult.java rename to youlai-common/src/main/java/com/youlai/boot/common/result/ExcelResult.java diff --git a/src/main/java/com/youlai/boot/common/result/IResultCode.java b/youlai-common/src/main/java/com/youlai/boot/common/result/IResultCode.java similarity index 100% rename from src/main/java/com/youlai/boot/common/result/IResultCode.java rename to youlai-common/src/main/java/com/youlai/boot/common/result/IResultCode.java diff --git a/src/main/java/com/youlai/boot/common/result/PageResult.java b/youlai-common/src/main/java/com/youlai/boot/common/result/PageResult.java similarity index 100% rename from src/main/java/com/youlai/boot/common/result/PageResult.java rename to youlai-common/src/main/java/com/youlai/boot/common/result/PageResult.java diff --git a/src/main/java/com/youlai/boot/common/result/ResponseWriter.java b/youlai-common/src/main/java/com/youlai/boot/common/result/ResponseWriter.java similarity index 100% rename from src/main/java/com/youlai/boot/common/result/ResponseWriter.java rename to youlai-common/src/main/java/com/youlai/boot/common/result/ResponseWriter.java diff --git a/src/main/java/com/youlai/boot/common/result/Result.java b/youlai-common/src/main/java/com/youlai/boot/common/result/Result.java similarity index 100% rename from src/main/java/com/youlai/boot/common/result/Result.java rename to youlai-common/src/main/java/com/youlai/boot/common/result/Result.java diff --git a/src/main/java/com/youlai/boot/common/result/ResultCode.java b/youlai-common/src/main/java/com/youlai/boot/common/result/ResultCode.java similarity index 100% rename from src/main/java/com/youlai/boot/common/result/ResultCode.java rename to youlai-common/src/main/java/com/youlai/boot/common/result/ResultCode.java diff --git a/src/main/java/com/youlai/boot/common/util/ExcelUtils.java b/youlai-common/src/main/java/com/youlai/boot/common/util/ExcelUtils.java similarity index 100% rename from src/main/java/com/youlai/boot/common/util/ExcelUtils.java rename to youlai-common/src/main/java/com/youlai/boot/common/util/ExcelUtils.java diff --git a/src/main/java/com/youlai/boot/common/util/IPUtils.java b/youlai-common/src/main/java/com/youlai/boot/common/util/IPUtils.java similarity index 100% rename from src/main/java/com/youlai/boot/common/util/IPUtils.java rename to youlai-common/src/main/java/com/youlai/boot/common/util/IPUtils.java diff --git a/src/main/java/com/youlai/boot/common/validator/FieldValidator.java b/youlai-common/src/main/java/com/youlai/boot/common/validator/FieldValidator.java similarity index 100% rename from src/main/java/com/youlai/boot/common/validator/FieldValidator.java rename to youlai-common/src/main/java/com/youlai/boot/common/validator/FieldValidator.java diff --git a/youlai-file/pom.xml b/youlai-file/pom.xml new file mode 100644 index 00000000..79eb976c --- /dev/null +++ b/youlai-file/pom.xml @@ -0,0 +1,39 @@ + + + 4.0.0 + + + com.youlai + youlai-boot + 4.3.0 + + + youlai-file + 文件服务模块 - 多存储后端文件上传下载 + + + + com.youlai + youlai-common + + + com.youlai + youlai-framework + + + + + io.minio + minio + ${minio.version} + + + com.aliyun.oss + aliyun-sdk-oss + ${aliyun-sdk-oss.version} + + + + diff --git a/src/main/java/com/youlai/boot/file/controller/FileController.java b/youlai-file/src/main/java/com/youlai/boot/file/controller/FileController.java similarity index 100% rename from src/main/java/com/youlai/boot/file/controller/FileController.java rename to youlai-file/src/main/java/com/youlai/boot/file/controller/FileController.java diff --git a/src/main/java/com/youlai/boot/file/model/FileInfo.java b/youlai-file/src/main/java/com/youlai/boot/file/model/FileInfo.java similarity index 100% rename from src/main/java/com/youlai/boot/file/model/FileInfo.java rename to youlai-file/src/main/java/com/youlai/boot/file/model/FileInfo.java diff --git a/src/main/java/com/youlai/boot/file/service/FileService.java b/youlai-file/src/main/java/com/youlai/boot/file/service/FileService.java similarity index 100% rename from src/main/java/com/youlai/boot/file/service/FileService.java rename to youlai-file/src/main/java/com/youlai/boot/file/service/FileService.java diff --git a/src/main/java/com/youlai/boot/file/service/impl/AliyunFileService.java b/youlai-file/src/main/java/com/youlai/boot/file/service/impl/AliyunFileService.java similarity index 100% rename from src/main/java/com/youlai/boot/file/service/impl/AliyunFileService.java rename to youlai-file/src/main/java/com/youlai/boot/file/service/impl/AliyunFileService.java diff --git a/src/main/java/com/youlai/boot/file/service/impl/LocalFileService.java b/youlai-file/src/main/java/com/youlai/boot/file/service/impl/LocalFileService.java similarity index 100% rename from src/main/java/com/youlai/boot/file/service/impl/LocalFileService.java rename to youlai-file/src/main/java/com/youlai/boot/file/service/impl/LocalFileService.java diff --git a/src/main/java/com/youlai/boot/file/service/impl/MinioFileService.java b/youlai-file/src/main/java/com/youlai/boot/file/service/impl/MinioFileService.java similarity index 100% rename from src/main/java/com/youlai/boot/file/service/impl/MinioFileService.java rename to youlai-file/src/main/java/com/youlai/boot/file/service/impl/MinioFileService.java diff --git a/youlai-framework/pom.xml b/youlai-framework/pom.xml new file mode 100644 index 00000000..a05fdb61 --- /dev/null +++ b/youlai-framework/pom.xml @@ -0,0 +1,175 @@ + + + 4.0.0 + + + com.youlai + youlai-boot + 4.3.0 + + + youlai-framework + 技术框架模块 - Security基础设施、缓存、MyBatis、验证码、集成 + + + + com.youlai + youlai-common + + + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-security + + + org.springframework.boot + spring-boot-starter-data-redis + + + org.springframework.boot + spring-boot-starter-cache + + + org.springframework.boot + spring-boot-starter-aspectj + + + org.springframework.boot + spring-boot-starter-validation + + + org.springframework.boot + spring-boot-starter-mail + + + + + com.mysql + mysql-connector-j + runtime + + + com.alibaba + druid-spring-boot-starter + ${druid.version} + + + com.baomidou + mybatis-plus-spring-boot4-starter + ${mybatis-plus.version} + + + com.baomidou + mybatis-plus-jsqlparser + ${mybatis-plus.version} + + + + + com.github.xiaoymin + knife4j-openapi3-jakarta-spring-boot-starter + ${knife4j.version} + + + org.springdoc + springdoc-openapi-starter-webmvc-ui + + + + + org.springdoc + springdoc-openapi-starter-webmvc-ui + 2.8.9 + + + + + org.mapstruct + mapstruct + ${mapstruct.version} + + + org.mapstruct + mapstruct-processor + ${mapstruct.version} + + + + + com.github.ben-manes.caffeine + caffeine + ${caffeine.version} + + + org.redisson + redisson-spring-boot-starter + ${redisson.version} + + + + + com.xuxueli + xxl-job-core + ${xxl-job.version} + + + + + cn.idev.excel + fastexcel + ${fastexcel.version} + + + + + io.minio + minio + ${minio.version} + true + + + com.aliyun.oss + aliyun-sdk-oss + ${aliyun-sdk-oss.version} + true + + + com.github.binarywang + weixin-java-miniapp + ${weixin-java-miniapp.version} + true + + + com.aliyun + aliyun-java-sdk-core + ${aliyun.java.sdk.core.version} + true + + + com.aliyun + aliyun-java-sdk-dysmsapi + ${aliyun.java.sdk.dysmsapi.version} + true + + + + + org.lionsoul + ip2region + ${ip2region.version} + + + com.alibaba + transmittable-thread-local + ${transmittable-thread-local.version} + + + + diff --git a/src/main/java/com/youlai/boot/framework/apidoc/Knife4jOpenApiCustomizer.java b/youlai-framework/src/main/java/com/youlai/boot/framework/apidoc/Knife4jOpenApiCustomizer.java similarity index 100% rename from src/main/java/com/youlai/boot/framework/apidoc/Knife4jOpenApiCustomizer.java rename to youlai-framework/src/main/java/com/youlai/boot/framework/apidoc/Knife4jOpenApiCustomizer.java diff --git a/src/main/java/com/youlai/boot/framework/apidoc/OpenApiConfig.java b/youlai-framework/src/main/java/com/youlai/boot/framework/apidoc/OpenApiConfig.java similarity index 100% rename from src/main/java/com/youlai/boot/framework/apidoc/OpenApiConfig.java rename to youlai-framework/src/main/java/com/youlai/boot/framework/apidoc/OpenApiConfig.java diff --git a/src/main/java/com/youlai/boot/common/aspect/RepeatSubmitAspect.java b/youlai-framework/src/main/java/com/youlai/boot/framework/aspect/RepeatSubmitAspect.java similarity index 98% rename from src/main/java/com/youlai/boot/common/aspect/RepeatSubmitAspect.java rename to youlai-framework/src/main/java/com/youlai/boot/framework/aspect/RepeatSubmitAspect.java index 97011be1..2a45c737 100644 --- a/src/main/java/com/youlai/boot/common/aspect/RepeatSubmitAspect.java +++ b/youlai-framework/src/main/java/com/youlai/boot/framework/aspect/RepeatSubmitAspect.java @@ -1,4 +1,4 @@ -package com.youlai.boot.common.aspect; +package com.youlai.boot.framework.aspect; import cn.hutool.core.util.StrUtil; import cn.hutool.crypto.digest.DigestUtil; diff --git a/src/main/java/com/youlai/boot/framework/cache/CaffeineConfig.java b/youlai-framework/src/main/java/com/youlai/boot/framework/cache/CaffeineConfig.java similarity index 100% rename from src/main/java/com/youlai/boot/framework/cache/CaffeineConfig.java rename to youlai-framework/src/main/java/com/youlai/boot/framework/cache/CaffeineConfig.java diff --git a/src/main/java/com/youlai/boot/framework/cache/RedisCacheConfig.java b/youlai-framework/src/main/java/com/youlai/boot/framework/cache/RedisCacheConfig.java similarity index 100% rename from src/main/java/com/youlai/boot/framework/cache/RedisCacheConfig.java rename to youlai-framework/src/main/java/com/youlai/boot/framework/cache/RedisCacheConfig.java diff --git a/src/main/java/com/youlai/boot/framework/cache/RedisConfig.java b/youlai-framework/src/main/java/com/youlai/boot/framework/cache/RedisConfig.java similarity index 100% rename from src/main/java/com/youlai/boot/framework/cache/RedisConfig.java rename to youlai-framework/src/main/java/com/youlai/boot/framework/cache/RedisConfig.java diff --git a/src/main/java/com/youlai/boot/framework/captcha/config/CaptchaConfig.java b/youlai-framework/src/main/java/com/youlai/boot/framework/captcha/config/CaptchaConfig.java similarity index 100% rename from src/main/java/com/youlai/boot/framework/captcha/config/CaptchaConfig.java rename to youlai-framework/src/main/java/com/youlai/boot/framework/captcha/config/CaptchaConfig.java diff --git a/src/main/java/com/youlai/boot/framework/captcha/config/CaptchaProperties.java b/youlai-framework/src/main/java/com/youlai/boot/framework/captcha/config/CaptchaProperties.java similarity index 100% rename from src/main/java/com/youlai/boot/framework/captcha/config/CaptchaProperties.java rename to youlai-framework/src/main/java/com/youlai/boot/framework/captcha/config/CaptchaProperties.java diff --git a/src/main/java/com/youlai/boot/framework/captcha/exception/CaptchaException.java b/youlai-framework/src/main/java/com/youlai/boot/framework/captcha/exception/CaptchaException.java similarity index 100% rename from src/main/java/com/youlai/boot/framework/captcha/exception/CaptchaException.java rename to youlai-framework/src/main/java/com/youlai/boot/framework/captcha/exception/CaptchaException.java diff --git a/src/main/java/com/youlai/boot/framework/captcha/model/CaptchaInfo.java b/youlai-framework/src/main/java/com/youlai/boot/framework/captcha/model/CaptchaInfo.java similarity index 100% rename from src/main/java/com/youlai/boot/framework/captcha/model/CaptchaInfo.java rename to youlai-framework/src/main/java/com/youlai/boot/framework/captcha/model/CaptchaInfo.java diff --git a/src/main/java/com/youlai/boot/framework/captcha/service/CaptchaService.java b/youlai-framework/src/main/java/com/youlai/boot/framework/captcha/service/CaptchaService.java similarity index 100% rename from src/main/java/com/youlai/boot/framework/captcha/service/CaptchaService.java rename to youlai-framework/src/main/java/com/youlai/boot/framework/captcha/service/CaptchaService.java diff --git a/src/main/java/com/youlai/boot/framework/integration/mail/config/MailConfig.java b/youlai-framework/src/main/java/com/youlai/boot/framework/integration/mail/config/MailConfig.java similarity index 100% rename from src/main/java/com/youlai/boot/framework/integration/mail/config/MailConfig.java rename to youlai-framework/src/main/java/com/youlai/boot/framework/integration/mail/config/MailConfig.java diff --git a/src/main/java/com/youlai/boot/framework/integration/mail/config/MailProperties.java b/youlai-framework/src/main/java/com/youlai/boot/framework/integration/mail/config/MailProperties.java similarity index 100% rename from src/main/java/com/youlai/boot/framework/integration/mail/config/MailProperties.java rename to youlai-framework/src/main/java/com/youlai/boot/framework/integration/mail/config/MailProperties.java diff --git a/src/main/java/com/youlai/boot/framework/integration/mail/service/MailService.java b/youlai-framework/src/main/java/com/youlai/boot/framework/integration/mail/service/MailService.java similarity index 100% rename from src/main/java/com/youlai/boot/framework/integration/mail/service/MailService.java rename to youlai-framework/src/main/java/com/youlai/boot/framework/integration/mail/service/MailService.java diff --git a/src/main/java/com/youlai/boot/framework/integration/sms/config/AliyunSmsProperties.java b/youlai-framework/src/main/java/com/youlai/boot/framework/integration/sms/config/AliyunSmsProperties.java similarity index 100% rename from src/main/java/com/youlai/boot/framework/integration/sms/config/AliyunSmsProperties.java rename to youlai-framework/src/main/java/com/youlai/boot/framework/integration/sms/config/AliyunSmsProperties.java diff --git a/src/main/java/com/youlai/boot/framework/integration/sms/enums/SmsTypeEnum.java b/youlai-framework/src/main/java/com/youlai/boot/framework/integration/sms/enums/SmsTypeEnum.java similarity index 100% rename from src/main/java/com/youlai/boot/framework/integration/sms/enums/SmsTypeEnum.java rename to youlai-framework/src/main/java/com/youlai/boot/framework/integration/sms/enums/SmsTypeEnum.java diff --git a/src/main/java/com/youlai/boot/framework/integration/sms/service/SmsService.java b/youlai-framework/src/main/java/com/youlai/boot/framework/integration/sms/service/SmsService.java similarity index 100% rename from src/main/java/com/youlai/boot/framework/integration/sms/service/SmsService.java rename to youlai-framework/src/main/java/com/youlai/boot/framework/integration/sms/service/SmsService.java diff --git a/src/main/java/com/youlai/boot/framework/integration/sms/service/impl/AliyunSmsService.java b/youlai-framework/src/main/java/com/youlai/boot/framework/integration/sms/service/impl/AliyunSmsService.java similarity index 100% rename from src/main/java/com/youlai/boot/framework/integration/sms/service/impl/AliyunSmsService.java rename to youlai-framework/src/main/java/com/youlai/boot/framework/integration/sms/service/impl/AliyunSmsService.java diff --git a/src/main/java/com/youlai/boot/framework/integration/wxma/WxMaConfig.java b/youlai-framework/src/main/java/com/youlai/boot/framework/integration/wxma/WxMaConfig.java similarity index 100% rename from src/main/java/com/youlai/boot/framework/integration/wxma/WxMaConfig.java rename to youlai-framework/src/main/java/com/youlai/boot/framework/integration/wxma/WxMaConfig.java diff --git a/src/main/java/com/youlai/boot/framework/integration/wxma/WxMaProperties.java b/youlai-framework/src/main/java/com/youlai/boot/framework/integration/wxma/WxMaProperties.java similarity index 100% rename from src/main/java/com/youlai/boot/framework/integration/wxma/WxMaProperties.java rename to youlai-framework/src/main/java/com/youlai/boot/framework/integration/wxma/WxMaProperties.java diff --git a/src/main/java/com/youlai/boot/framework/job/XxlJobConfig.java b/youlai-framework/src/main/java/com/youlai/boot/framework/job/XxlJobConfig.java similarity index 100% rename from src/main/java/com/youlai/boot/framework/job/XxlJobConfig.java rename to youlai-framework/src/main/java/com/youlai/boot/framework/job/XxlJobConfig.java diff --git a/src/main/java/com/youlai/boot/framework/mybatis/config/MybatisConfig.java b/youlai-framework/src/main/java/com/youlai/boot/framework/mybatis/config/MybatisConfig.java similarity index 100% rename from src/main/java/com/youlai/boot/framework/mybatis/config/MybatisConfig.java rename to youlai-framework/src/main/java/com/youlai/boot/framework/mybatis/config/MybatisConfig.java diff --git a/src/main/java/com/youlai/boot/framework/mybatis/handler/MyMetaObjectHandler.java b/youlai-framework/src/main/java/com/youlai/boot/framework/mybatis/handler/MyMetaObjectHandler.java similarity index 100% rename from src/main/java/com/youlai/boot/framework/mybatis/handler/MyMetaObjectHandler.java rename to youlai-framework/src/main/java/com/youlai/boot/framework/mybatis/handler/MyMetaObjectHandler.java diff --git a/src/main/java/com/youlai/boot/framework/mybatis/interceptor/MyDataPermissionHandler.java b/youlai-framework/src/main/java/com/youlai/boot/framework/mybatis/interceptor/MyDataPermissionHandler.java similarity index 100% rename from src/main/java/com/youlai/boot/framework/mybatis/interceptor/MyDataPermissionHandler.java rename to youlai-framework/src/main/java/com/youlai/boot/framework/mybatis/interceptor/MyDataPermissionHandler.java diff --git a/src/main/java/com/youlai/boot/framework/security/config/PasswordEncoderConfig.java b/youlai-framework/src/main/java/com/youlai/boot/framework/security/config/PasswordEncoderConfig.java similarity index 100% rename from src/main/java/com/youlai/boot/framework/security/config/PasswordEncoderConfig.java rename to youlai-framework/src/main/java/com/youlai/boot/framework/security/config/PasswordEncoderConfig.java diff --git a/src/main/java/com/youlai/boot/framework/security/config/SecurityProperties.java b/youlai-framework/src/main/java/com/youlai/boot/framework/security/config/SecurityProperties.java similarity index 100% rename from src/main/java/com/youlai/boot/framework/security/config/SecurityProperties.java rename to youlai-framework/src/main/java/com/youlai/boot/framework/security/config/SecurityProperties.java diff --git a/src/main/java/com/youlai/boot/framework/security/exception/CaptchaValidationException.java b/youlai-framework/src/main/java/com/youlai/boot/framework/security/exception/CaptchaValidationException.java similarity index 100% rename from src/main/java/com/youlai/boot/framework/security/exception/CaptchaValidationException.java rename to youlai-framework/src/main/java/com/youlai/boot/framework/security/exception/CaptchaValidationException.java diff --git a/src/main/java/com/youlai/boot/framework/security/exception/NeedBindMobileException.java b/youlai-framework/src/main/java/com/youlai/boot/framework/security/exception/NeedBindMobileException.java similarity index 100% rename from src/main/java/com/youlai/boot/framework/security/exception/NeedBindMobileException.java rename to youlai-framework/src/main/java/com/youlai/boot/framework/security/exception/NeedBindMobileException.java diff --git a/src/main/java/com/youlai/boot/framework/security/filter/CaptchaValidationFilter.java b/youlai-framework/src/main/java/com/youlai/boot/framework/security/filter/CaptchaValidationFilter.java similarity index 100% rename from src/main/java/com/youlai/boot/framework/security/filter/CaptchaValidationFilter.java rename to youlai-framework/src/main/java/com/youlai/boot/framework/security/filter/CaptchaValidationFilter.java diff --git a/src/main/java/com/youlai/boot/framework/security/filter/TokenAuthenticationFilter.java b/youlai-framework/src/main/java/com/youlai/boot/framework/security/filter/TokenAuthenticationFilter.java similarity index 100% rename from src/main/java/com/youlai/boot/framework/security/filter/TokenAuthenticationFilter.java rename to youlai-framework/src/main/java/com/youlai/boot/framework/security/filter/TokenAuthenticationFilter.java diff --git a/src/main/java/com/youlai/boot/framework/security/handler/MyAccessDeniedHandler.java b/youlai-framework/src/main/java/com/youlai/boot/framework/security/handler/MyAccessDeniedHandler.java similarity index 100% rename from src/main/java/com/youlai/boot/framework/security/handler/MyAccessDeniedHandler.java rename to youlai-framework/src/main/java/com/youlai/boot/framework/security/handler/MyAccessDeniedHandler.java diff --git a/src/main/java/com/youlai/boot/framework/security/handler/MyAuthenticationEntryPoint.java b/youlai-framework/src/main/java/com/youlai/boot/framework/security/handler/MyAuthenticationEntryPoint.java similarity index 100% rename from src/main/java/com/youlai/boot/framework/security/handler/MyAuthenticationEntryPoint.java rename to youlai-framework/src/main/java/com/youlai/boot/framework/security/handler/MyAuthenticationEntryPoint.java diff --git a/src/main/java/com/youlai/boot/framework/security/model/AuthenticationToken.java b/youlai-framework/src/main/java/com/youlai/boot/framework/security/model/AuthenticationToken.java similarity index 100% rename from src/main/java/com/youlai/boot/framework/security/model/AuthenticationToken.java rename to youlai-framework/src/main/java/com/youlai/boot/framework/security/model/AuthenticationToken.java diff --git a/src/main/java/com/youlai/boot/framework/security/model/RoleDataScope.java b/youlai-framework/src/main/java/com/youlai/boot/framework/security/model/RoleDataScope.java similarity index 100% rename from src/main/java/com/youlai/boot/framework/security/model/RoleDataScope.java rename to youlai-framework/src/main/java/com/youlai/boot/framework/security/model/RoleDataScope.java diff --git a/src/main/java/com/youlai/boot/framework/security/model/SmsAuthenticationToken.java b/youlai-framework/src/main/java/com/youlai/boot/framework/security/model/SmsAuthenticationToken.java similarity index 100% rename from src/main/java/com/youlai/boot/framework/security/model/SmsAuthenticationToken.java rename to youlai-framework/src/main/java/com/youlai/boot/framework/security/model/SmsAuthenticationToken.java diff --git a/src/main/java/com/youlai/boot/framework/security/model/SysUserDetails.java b/youlai-framework/src/main/java/com/youlai/boot/framework/security/model/SysUserDetails.java similarity index 100% rename from src/main/java/com/youlai/boot/framework/security/model/SysUserDetails.java rename to youlai-framework/src/main/java/com/youlai/boot/framework/security/model/SysUserDetails.java diff --git a/src/main/java/com/youlai/boot/framework/security/model/UserAuthInfo.java b/youlai-framework/src/main/java/com/youlai/boot/framework/security/model/UserAuthInfo.java similarity index 100% rename from src/main/java/com/youlai/boot/framework/security/model/UserAuthInfo.java rename to youlai-framework/src/main/java/com/youlai/boot/framework/security/model/UserAuthInfo.java diff --git a/src/main/java/com/youlai/boot/framework/security/model/UserSession.java b/youlai-framework/src/main/java/com/youlai/boot/framework/security/model/UserSession.java similarity index 100% rename from src/main/java/com/youlai/boot/framework/security/model/UserSession.java rename to youlai-framework/src/main/java/com/youlai/boot/framework/security/model/UserSession.java diff --git a/src/main/java/com/youlai/boot/framework/security/model/WxMaAuthenticationToken.java b/youlai-framework/src/main/java/com/youlai/boot/framework/security/model/WxMaAuthenticationToken.java similarity index 100% rename from src/main/java/com/youlai/boot/framework/security/model/WxMaAuthenticationToken.java rename to youlai-framework/src/main/java/com/youlai/boot/framework/security/model/WxMaAuthenticationToken.java diff --git a/src/main/java/com/youlai/boot/framework/security/token/JwtTokenManager.java b/youlai-framework/src/main/java/com/youlai/boot/framework/security/token/JwtTokenManager.java similarity index 100% rename from src/main/java/com/youlai/boot/framework/security/token/JwtTokenManager.java rename to youlai-framework/src/main/java/com/youlai/boot/framework/security/token/JwtTokenManager.java diff --git a/src/main/java/com/youlai/boot/framework/security/token/RedisTokenManager.java b/youlai-framework/src/main/java/com/youlai/boot/framework/security/token/RedisTokenManager.java similarity index 100% rename from src/main/java/com/youlai/boot/framework/security/token/RedisTokenManager.java rename to youlai-framework/src/main/java/com/youlai/boot/framework/security/token/RedisTokenManager.java diff --git a/src/main/java/com/youlai/boot/framework/security/token/TokenManager.java b/youlai-framework/src/main/java/com/youlai/boot/framework/security/token/TokenManager.java similarity index 100% rename from src/main/java/com/youlai/boot/framework/security/token/TokenManager.java rename to youlai-framework/src/main/java/com/youlai/boot/framework/security/token/TokenManager.java diff --git a/src/main/java/com/youlai/boot/framework/security/util/SecurityUtils.java b/youlai-framework/src/main/java/com/youlai/boot/framework/security/util/SecurityUtils.java similarity index 100% rename from src/main/java/com/youlai/boot/framework/security/util/SecurityUtils.java rename to youlai-framework/src/main/java/com/youlai/boot/framework/security/util/SecurityUtils.java diff --git a/src/main/java/com/youlai/boot/framework/web/advice/GlobalExceptionHandler.java b/youlai-framework/src/main/java/com/youlai/boot/framework/web/advice/GlobalExceptionHandler.java similarity index 100% rename from src/main/java/com/youlai/boot/framework/web/advice/GlobalExceptionHandler.java rename to youlai-framework/src/main/java/com/youlai/boot/framework/web/advice/GlobalExceptionHandler.java diff --git a/src/main/java/com/youlai/boot/framework/web/config/CorsConfig.java b/youlai-framework/src/main/java/com/youlai/boot/framework/web/config/CorsConfig.java similarity index 100% rename from src/main/java/com/youlai/boot/framework/web/config/CorsConfig.java rename to youlai-framework/src/main/java/com/youlai/boot/framework/web/config/CorsConfig.java diff --git a/src/main/java/com/youlai/boot/framework/web/config/JacksonConfig.java b/youlai-framework/src/main/java/com/youlai/boot/framework/web/config/JacksonConfig.java similarity index 100% rename from src/main/java/com/youlai/boot/framework/web/config/JacksonConfig.java rename to youlai-framework/src/main/java/com/youlai/boot/framework/web/config/JacksonConfig.java diff --git a/src/main/java/com/youlai/boot/framework/web/filter/RequestLogFilter.java b/youlai-framework/src/main/java/com/youlai/boot/framework/web/filter/RequestLogFilter.java similarity index 100% rename from src/main/java/com/youlai/boot/framework/web/filter/RequestLogFilter.java rename to youlai-framework/src/main/java/com/youlai/boot/framework/web/filter/RequestLogFilter.java diff --git a/src/main/resources/META-INF/additional-spring-configuration-metadata.json b/youlai-framework/src/main/resources/META-INF/additional-spring-configuration-metadata.json similarity index 100% rename from src/main/resources/META-INF/additional-spring-configuration-metadata.json rename to youlai-framework/src/main/resources/META-INF/additional-spring-configuration-metadata.json diff --git a/youlai-message/pom.xml b/youlai-message/pom.xml new file mode 100644 index 00000000..f97c2687 --- /dev/null +++ b/youlai-message/pom.xml @@ -0,0 +1,27 @@ + + + 4.0.0 + + + com.youlai + youlai-boot + 4.3.0 + + + youlai-message + 消息推送模块 - SSE 服务端推送、在线用户统计 + + + + com.youlai + youlai-common + + + com.youlai + youlai-framework + + + + diff --git a/src/main/java/com/youlai/boot/message/controller/SseController.java b/youlai-message/src/main/java/com/youlai/boot/message/controller/SseController.java similarity index 100% rename from src/main/java/com/youlai/boot/message/controller/SseController.java rename to youlai-message/src/main/java/com/youlai/boot/message/controller/SseController.java diff --git a/src/main/java/com/youlai/boot/message/dto/DictChangeEvent.java b/youlai-message/src/main/java/com/youlai/boot/message/dto/DictChangeEvent.java similarity index 100% rename from src/main/java/com/youlai/boot/message/dto/DictChangeEvent.java rename to youlai-message/src/main/java/com/youlai/boot/message/dto/DictChangeEvent.java diff --git a/src/main/java/com/youlai/boot/message/dto/OnlineUserDTO.java b/youlai-message/src/main/java/com/youlai/boot/message/dto/OnlineUserDTO.java similarity index 100% rename from src/main/java/com/youlai/boot/message/dto/OnlineUserDTO.java rename to youlai-message/src/main/java/com/youlai/boot/message/dto/OnlineUserDTO.java diff --git a/src/main/java/com/youlai/boot/message/job/OnlineUserCountJob.java b/youlai-message/src/main/java/com/youlai/boot/message/job/OnlineUserCountJob.java similarity index 100% rename from src/main/java/com/youlai/boot/message/job/OnlineUserCountJob.java rename to youlai-message/src/main/java/com/youlai/boot/message/job/OnlineUserCountJob.java diff --git a/youlai-message/src/main/java/com/youlai/boot/message/listener/SseEventListener.java b/youlai-message/src/main/java/com/youlai/boot/message/listener/SseEventListener.java new file mode 100644 index 00000000..0239cff2 --- /dev/null +++ b/youlai-message/src/main/java/com/youlai/boot/message/listener/SseEventListener.java @@ -0,0 +1,26 @@ +package com.youlai.boot.message.listener; + +import com.youlai.boot.common.event.DictChangeEvent; +import com.youlai.boot.common.event.NoticePublishEvent; +import com.youlai.boot.message.service.SseService; +import com.youlai.boot.message.topic.SseTopics; +import lombok.RequiredArgsConstructor; +import org.springframework.context.event.EventListener; +import org.springframework.stereotype.Component; + +@Component +@RequiredArgsConstructor +public class SseEventListener { + + private final SseService sseService; + + @EventListener + public void onDictChange(DictChangeEvent event) { + sseService.broadcast(SseTopics.DICT_CHANGE, event.getDictId()); + } + + @EventListener + public void onNoticePublish(NoticePublishEvent event) { + sseService.send(event.getUserIds(), SseTopics.NOTICE, event.getNoticeId()); + } +} diff --git a/src/main/java/com/youlai/boot/message/registry/SseSessionRegistry.java b/youlai-message/src/main/java/com/youlai/boot/message/registry/SseSessionRegistry.java similarity index 88% rename from src/main/java/com/youlai/boot/message/registry/SseSessionRegistry.java rename to youlai-message/src/main/java/com/youlai/boot/message/registry/SseSessionRegistry.java index 502ec3a4..f6923b41 100644 --- a/src/main/java/com/youlai/boot/message/registry/SseSessionRegistry.java +++ b/youlai-message/src/main/java/com/youlai/boot/message/registry/SseSessionRegistry.java @@ -6,10 +6,12 @@ import org.springframework.context.event.ContextClosedEvent; import org.springframework.context.event.EventListener; import org.springframework.core.Ordered; import org.springframework.core.annotation.Order; +import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; import org.springframework.web.servlet.mvc.method.annotation.SseEmitter; import java.io.IOException; +import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.Set; @@ -198,6 +200,28 @@ public class SseSessionRegistry { } } + /** + * 心跳检测:每30秒向所有连接发送ping事件,及时清理已断开的僵尸连接 + */ + @Scheduled(fixedRate = 30000) + public void heartbeat() { + if (emitterUserMap.isEmpty()) { + return; + } + List failedEmitters = new ArrayList<>(); + for (SseEmitter emitter : emitterUserMap.keySet()) { + try { + emitter.send(SseEmitter.event().name("ping").data("heartbeat")); + } catch (Exception e) { + failedEmitters.add(emitter); + } + } + if (!failedEmitters.isEmpty()) { + log.debug("心跳检测清理{}个失效SSE连接", failedEmitters.size()); + failedEmitters.forEach(this::removeEmitter); + } + } + /** * 容器关闭时主动断开所有 SSE 连接,避免阻塞应用停止 */ diff --git a/src/main/java/com/youlai/boot/message/service/SseService.java b/youlai-message/src/main/java/com/youlai/boot/message/service/SseService.java similarity index 82% rename from src/main/java/com/youlai/boot/message/service/SseService.java rename to youlai-message/src/main/java/com/youlai/boot/message/service/SseService.java index d4b59f26..289c9d76 100644 --- a/src/main/java/com/youlai/boot/message/service/SseService.java +++ b/youlai-message/src/main/java/com/youlai/boot/message/service/SseService.java @@ -120,6 +120,35 @@ public class SseService { return sessionRegistry.getOnlineUserCount(); } + /** + * 广播消息给所有在线用户 + * + * @param topic 主题 + * @param data 数据 + */ + public void broadcast(String topic, Object data) { + sessionRegistry.broadcast(topic, data); + log.info("已广播消息: topic={}", topic); + } + + /** + * 发送消息给指定用户ID列表 + * + * @param userIds 用户ID列表 + * @param topic 主题 + * @param data 数据 + */ + public void send(List userIds, String topic, Object data) { + if (userIds == null || userIds.isEmpty()) { + return; + } + for (Long userId : userIds) { + String username = String.valueOf(userId); + sessionRegistry.sendToUser(username, topic, data); + } + log.info("已向{}个用户发送消息: topic={}", userIds.size(), topic); + } + /** * 发送系统消息 * diff --git a/src/main/java/com/youlai/boot/message/topic/SseTopics.java b/youlai-message/src/main/java/com/youlai/boot/message/topic/SseTopics.java similarity index 69% rename from src/main/java/com/youlai/boot/message/topic/SseTopics.java rename to youlai-message/src/main/java/com/youlai/boot/message/topic/SseTopics.java index 0b48b51d..f1ce335b 100644 --- a/src/main/java/com/youlai/boot/message/topic/SseTopics.java +++ b/youlai-message/src/main/java/com/youlai/boot/message/topic/SseTopics.java @@ -11,9 +11,15 @@ public final class SseTopics { /** 字典变更事件 */ public static final String DICT = "dict"; + /** 字典变更通知 */ + public static final String DICT_CHANGE = "dict-change"; + /** 在线用户数事件 */ public static final String ONLINE_COUNT = "online-count"; + /** 通知公告事件 */ + public static final String NOTICE = "notice"; + /** 系统消息事件 */ public static final String SYSTEM = "system"; } diff --git a/youlai-system/pom.xml b/youlai-system/pom.xml new file mode 100644 index 00000000..a85d0502 --- /dev/null +++ b/youlai-system/pom.xml @@ -0,0 +1,32 @@ + + + 4.0.0 + + + com.youlai + youlai-boot + 4.3.0 + + + youlai-system + 系统管理模块 - 用户、角色、菜单、部门、字典、日志、通知、配置 + + + + com.youlai + youlai-common + + + com.youlai + youlai-framework + + + com.github.binarywang + weixin-java-miniapp + ${weixin-java-miniapp.version} + + + + diff --git a/src/main/java/com/youlai/boot/common/aspect/LogAspect.java b/youlai-system/src/main/java/com/youlai/boot/system/aspect/LogAspect.java similarity index 99% rename from src/main/java/com/youlai/boot/common/aspect/LogAspect.java rename to youlai-system/src/main/java/com/youlai/boot/system/aspect/LogAspect.java index 145341c9..22424788 100644 --- a/src/main/java/com/youlai/boot/common/aspect/LogAspect.java +++ b/youlai-system/src/main/java/com/youlai/boot/system/aspect/LogAspect.java @@ -1,4 +1,4 @@ -package com.youlai.boot.common.aspect; +package com.youlai.boot.system.aspect; import cn.hutool.core.util.StrUtil; import cn.hutool.http.useragent.UserAgent; diff --git a/src/main/java/com/youlai/boot/system/controller/ConfigController.java b/youlai-system/src/main/java/com/youlai/boot/system/controller/ConfigController.java similarity index 100% rename from src/main/java/com/youlai/boot/system/controller/ConfigController.java rename to youlai-system/src/main/java/com/youlai/boot/system/controller/ConfigController.java diff --git a/src/main/java/com/youlai/boot/system/controller/DeptController.java b/youlai-system/src/main/java/com/youlai/boot/system/controller/DeptController.java similarity index 100% rename from src/main/java/com/youlai/boot/system/controller/DeptController.java rename to youlai-system/src/main/java/com/youlai/boot/system/controller/DeptController.java diff --git a/src/main/java/com/youlai/boot/system/controller/DictController.java b/youlai-system/src/main/java/com/youlai/boot/system/controller/DictController.java similarity index 88% rename from src/main/java/com/youlai/boot/system/controller/DictController.java rename to youlai-system/src/main/java/com/youlai/boot/system/controller/DictController.java index ef55538d..64d6f2c2 100644 --- a/src/main/java/com/youlai/boot/system/controller/DictController.java +++ b/youlai-system/src/main/java/com/youlai/boot/system/controller/DictController.java @@ -17,7 +17,6 @@ import com.youlai.boot.system.model.form.DictForm; import com.youlai.boot.common.annotation.Log; import com.youlai.boot.system.service.DictItemService; import com.youlai.boot.system.service.DictService; -import com.youlai.boot.message.service.SseService; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.Operation; @@ -28,6 +27,8 @@ import org.springframework.web.bind.annotation.*; import java.util.Arrays; import java.util.List; +import com.youlai.boot.common.event.DictChangeEvent; +import org.springframework.context.ApplicationEventPublisher; /** * 字典控制层 @@ -41,9 +42,9 @@ import java.util.List; @RequiredArgsConstructor public class DictController { + private final ApplicationEventPublisher applicationEventPublisher; private final DictService dictService; private final DictItemService dictItemService; - private final SseService sseService; //--------------------------------------------------- // 字典相关接口 @@ -82,9 +83,9 @@ public class DictController { @Log(module = LogModuleEnum.DICT, value = ActionTypeEnum.INSERT) public Result saveDict(@Valid @RequestBody DictForm formData) { boolean result = dictService.saveDict(formData); - // 发送字典更新通知 + // 发布字典变更事件 if (result) { - sseService.sendDictChange(formData.getDictCode()); + applicationEventPublisher.publishEvent(new DictChangeEvent(this, formData.getId())); } return Result.judge(result); } @@ -98,9 +99,9 @@ public class DictController { @RequestBody DictForm dictForm ) { boolean status = dictService.updateDict(id, dictForm); - // 发送字典更新通知 + // 发布字典变更事件 if (status && dictForm.getDictCode() != null) { - sseService.sendDictChange(dictForm.getDictCode()); + applicationEventPublisher.publishEvent(new DictChangeEvent(this, id)); } return Result.judge(status); } @@ -117,9 +118,9 @@ public class DictController { dictService.deleteDictByIds(Arrays.stream(ids.split(",")).toList()); - // 发送字典删除通知 + // 发布字典删除事件 for (String dictCode : dictCodes) { - sseService.sendDictChange(dictCode); + applicationEventPublisher.publishEvent(new DictChangeEvent(this, null)); } return Result.success(); @@ -161,9 +162,9 @@ public class DictController { formData.setDictCode(dictCode); boolean result = dictItemService.saveDictItem(formData); - // 发送字典更新通知 + // 发布字典变更事件 if (result) { - sseService.sendDictChange(dictCode); + applicationEventPublisher.publishEvent(new DictChangeEvent(this, null)); } return Result.judge(result); @@ -193,9 +194,9 @@ public class DictController { formData.setDictCode(dictCode); boolean status = dictItemService.updateDictItem(formData); - // 发送字典更新通知 + // 发布字典变更事件 if (status) { - sseService.sendDictChange(dictCode); + applicationEventPublisher.publishEvent(new DictChangeEvent(this, null)); } return Result.judge(status); @@ -211,8 +212,8 @@ public class DictController { ) { dictItemService.deleteDictItemByIds(itemIds); - // 发送字典更新通知 - sseService.sendDictChange(dictCode); + // 发布字典变更事件 + applicationEventPublisher.publishEvent(new DictChangeEvent(this, null)); return Result.success(); } diff --git a/src/main/java/com/youlai/boot/system/controller/LogController.java b/youlai-system/src/main/java/com/youlai/boot/system/controller/LogController.java similarity index 100% rename from src/main/java/com/youlai/boot/system/controller/LogController.java rename to youlai-system/src/main/java/com/youlai/boot/system/controller/LogController.java diff --git a/src/main/java/com/youlai/boot/system/controller/MenuController.java b/youlai-system/src/main/java/com/youlai/boot/system/controller/MenuController.java similarity index 100% rename from src/main/java/com/youlai/boot/system/controller/MenuController.java rename to youlai-system/src/main/java/com/youlai/boot/system/controller/MenuController.java diff --git a/src/main/java/com/youlai/boot/system/controller/NoticeController.java b/youlai-system/src/main/java/com/youlai/boot/system/controller/NoticeController.java similarity index 100% rename from src/main/java/com/youlai/boot/system/controller/NoticeController.java rename to youlai-system/src/main/java/com/youlai/boot/system/controller/NoticeController.java diff --git a/src/main/java/com/youlai/boot/system/controller/RoleController.java b/youlai-system/src/main/java/com/youlai/boot/system/controller/RoleController.java similarity index 100% rename from src/main/java/com/youlai/boot/system/controller/RoleController.java rename to youlai-system/src/main/java/com/youlai/boot/system/controller/RoleController.java diff --git a/src/main/java/com/youlai/boot/system/controller/UserController.java b/youlai-system/src/main/java/com/youlai/boot/system/controller/UserController.java similarity index 100% rename from src/main/java/com/youlai/boot/system/controller/UserController.java rename to youlai-system/src/main/java/com/youlai/boot/system/controller/UserController.java diff --git a/src/main/java/com/youlai/boot/system/converter/ConfigConverter.java b/youlai-system/src/main/java/com/youlai/boot/system/converter/ConfigConverter.java similarity index 100% rename from src/main/java/com/youlai/boot/system/converter/ConfigConverter.java rename to youlai-system/src/main/java/com/youlai/boot/system/converter/ConfigConverter.java diff --git a/src/main/java/com/youlai/boot/system/converter/DeptConverter.java b/youlai-system/src/main/java/com/youlai/boot/system/converter/DeptConverter.java similarity index 100% rename from src/main/java/com/youlai/boot/system/converter/DeptConverter.java rename to youlai-system/src/main/java/com/youlai/boot/system/converter/DeptConverter.java diff --git a/src/main/java/com/youlai/boot/system/converter/DictConverter.java b/youlai-system/src/main/java/com/youlai/boot/system/converter/DictConverter.java similarity index 100% rename from src/main/java/com/youlai/boot/system/converter/DictConverter.java rename to youlai-system/src/main/java/com/youlai/boot/system/converter/DictConverter.java diff --git a/src/main/java/com/youlai/boot/system/converter/DictItemConverter.java b/youlai-system/src/main/java/com/youlai/boot/system/converter/DictItemConverter.java similarity index 100% rename from src/main/java/com/youlai/boot/system/converter/DictItemConverter.java rename to youlai-system/src/main/java/com/youlai/boot/system/converter/DictItemConverter.java diff --git a/src/main/java/com/youlai/boot/system/converter/MenuConverter.java b/youlai-system/src/main/java/com/youlai/boot/system/converter/MenuConverter.java similarity index 100% rename from src/main/java/com/youlai/boot/system/converter/MenuConverter.java rename to youlai-system/src/main/java/com/youlai/boot/system/converter/MenuConverter.java diff --git a/src/main/java/com/youlai/boot/system/converter/NoticeConverter.java b/youlai-system/src/main/java/com/youlai/boot/system/converter/NoticeConverter.java similarity index 100% rename from src/main/java/com/youlai/boot/system/converter/NoticeConverter.java rename to youlai-system/src/main/java/com/youlai/boot/system/converter/NoticeConverter.java diff --git a/src/main/java/com/youlai/boot/system/converter/RoleConverter.java b/youlai-system/src/main/java/com/youlai/boot/system/converter/RoleConverter.java similarity index 100% rename from src/main/java/com/youlai/boot/system/converter/RoleConverter.java rename to youlai-system/src/main/java/com/youlai/boot/system/converter/RoleConverter.java diff --git a/src/main/java/com/youlai/boot/system/converter/UserConverter.java b/youlai-system/src/main/java/com/youlai/boot/system/converter/UserConverter.java similarity index 100% rename from src/main/java/com/youlai/boot/system/converter/UserConverter.java rename to youlai-system/src/main/java/com/youlai/boot/system/converter/UserConverter.java diff --git a/src/main/java/com/youlai/boot/system/enums/DictCodeEnum.java b/youlai-system/src/main/java/com/youlai/boot/system/enums/DictCodeEnum.java similarity index 100% rename from src/main/java/com/youlai/boot/system/enums/DictCodeEnum.java rename to youlai-system/src/main/java/com/youlai/boot/system/enums/DictCodeEnum.java diff --git a/src/main/java/com/youlai/boot/system/enums/MenuTypeEnum.java b/youlai-system/src/main/java/com/youlai/boot/system/enums/MenuTypeEnum.java similarity index 100% rename from src/main/java/com/youlai/boot/system/enums/MenuTypeEnum.java rename to youlai-system/src/main/java/com/youlai/boot/system/enums/MenuTypeEnum.java diff --git a/src/main/java/com/youlai/boot/system/enums/NoticePublishStatusEnum.java b/youlai-system/src/main/java/com/youlai/boot/system/enums/NoticePublishStatusEnum.java similarity index 100% rename from src/main/java/com/youlai/boot/system/enums/NoticePublishStatusEnum.java rename to youlai-system/src/main/java/com/youlai/boot/system/enums/NoticePublishStatusEnum.java diff --git a/src/main/java/com/youlai/boot/system/enums/NoticeTargetEnum.java b/youlai-system/src/main/java/com/youlai/boot/system/enums/NoticeTargetEnum.java similarity index 100% rename from src/main/java/com/youlai/boot/system/enums/NoticeTargetEnum.java rename to youlai-system/src/main/java/com/youlai/boot/system/enums/NoticeTargetEnum.java diff --git a/src/main/java/com/youlai/boot/system/enums/SocialPlatformEnum.java b/youlai-system/src/main/java/com/youlai/boot/system/enums/SocialPlatformEnum.java similarity index 100% rename from src/main/java/com/youlai/boot/system/enums/SocialPlatformEnum.java rename to youlai-system/src/main/java/com/youlai/boot/system/enums/SocialPlatformEnum.java diff --git a/src/main/java/com/youlai/boot/system/handler/XxlJobSampleHandler.java b/youlai-system/src/main/java/com/youlai/boot/system/handler/XxlJobSampleHandler.java similarity index 100% rename from src/main/java/com/youlai/boot/system/handler/XxlJobSampleHandler.java rename to youlai-system/src/main/java/com/youlai/boot/system/handler/XxlJobSampleHandler.java diff --git a/youlai-system/src/main/java/com/youlai/boot/system/listener/CodegenMenuEventListener.java b/youlai-system/src/main/java/com/youlai/boot/system/listener/CodegenMenuEventListener.java new file mode 100644 index 00000000..2f1b0b8e --- /dev/null +++ b/youlai-system/src/main/java/com/youlai/boot/system/listener/CodegenMenuEventListener.java @@ -0,0 +1,36 @@ +package com.youlai.boot.system.listener; + +import com.youlai.boot.common.event.CodegenMenuEvent; +import com.youlai.boot.system.model.form.MenuForm; +import com.youlai.boot.system.service.MenuService; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.context.event.EventListener; +import org.springframework.stereotype.Component; + +/** + * 代码生成菜单事件监听 + */ +@Slf4j +@Component +@RequiredArgsConstructor +public class CodegenMenuEventListener { + + private final MenuService menuService; + + @EventListener + public void onCodegenMenu(CodegenMenuEvent event) { + log.info("收到代码生成菜单事件: parentMenuId={}, businessName={}", event.getParentMenuId(), event.getBusinessName()); + + MenuForm dirMenu = new MenuForm(); + dirMenu.setParentId(event.getParentMenuId()); + dirMenu.setName(event.getBusinessName()); + dirMenu.setType("M"); + dirMenu.setRouteName(event.getBusinessName()); + dirMenu.setRoutePath(event.getModuleName() + "/" + event.getBusinessName()); + dirMenu.setComponent(event.getPackageName() + "." + event.getModuleName() + ".controller." + event.getBusinessName() + "Controller"); + dirMenu.setVisible(1); + dirMenu.setSort(0); + menuService.saveMenu(dirMenu); + } +} diff --git a/youlai-system/src/main/java/com/youlai/boot/system/listener/DictChangeEvent.java b/youlai-system/src/main/java/com/youlai/boot/system/listener/DictChangeEvent.java new file mode 100644 index 00000000..a1675cd1 --- /dev/null +++ b/youlai-system/src/main/java/com/youlai/boot/system/listener/DictChangeEvent.java @@ -0,0 +1,16 @@ +package com.youlai.boot.system.listener; + +import org.springframework.context.ApplicationEvent; + +public class DictChangeEvent extends ApplicationEvent { + private final Long dictId; + + public DictChangeEvent(Object source, Long dictId) { + super(source); + this.dictId = dictId; + } + + public Long getDictId() { + return dictId; + } +} diff --git a/youlai-system/src/main/java/com/youlai/boot/system/listener/NoticePublishEvent.java b/youlai-system/src/main/java/com/youlai/boot/system/listener/NoticePublishEvent.java new file mode 100644 index 00000000..e4e282b6 --- /dev/null +++ b/youlai-system/src/main/java/com/youlai/boot/system/listener/NoticePublishEvent.java @@ -0,0 +1,23 @@ +package com.youlai.boot.system.listener; + +import java.util.List; +import org.springframework.context.ApplicationEvent; + +public class NoticePublishEvent extends ApplicationEvent { + private final Long noticeId; + private final List userIds; + + public NoticePublishEvent(Object source, Long noticeId, List userIds) { + super(source); + this.noticeId = noticeId; + this.userIds = userIds; + } + + public Long getNoticeId() { + return noticeId; + } + + public List getUserIds() { + return userIds; + } +} diff --git a/src/main/java/com/youlai/boot/system/listener/UserImportListener.java b/youlai-system/src/main/java/com/youlai/boot/system/listener/UserImportListener.java similarity index 100% rename from src/main/java/com/youlai/boot/system/listener/UserImportListener.java rename to youlai-system/src/main/java/com/youlai/boot/system/listener/UserImportListener.java diff --git a/src/main/java/com/youlai/boot/system/mapper/ConfigMapper.java b/youlai-system/src/main/java/com/youlai/boot/system/mapper/ConfigMapper.java similarity index 100% rename from src/main/java/com/youlai/boot/system/mapper/ConfigMapper.java rename to youlai-system/src/main/java/com/youlai/boot/system/mapper/ConfigMapper.java diff --git a/src/main/java/com/youlai/boot/system/mapper/DeptMapper.java b/youlai-system/src/main/java/com/youlai/boot/system/mapper/DeptMapper.java similarity index 100% rename from src/main/java/com/youlai/boot/system/mapper/DeptMapper.java rename to youlai-system/src/main/java/com/youlai/boot/system/mapper/DeptMapper.java diff --git a/src/main/java/com/youlai/boot/system/mapper/DictItemMapper.java b/youlai-system/src/main/java/com/youlai/boot/system/mapper/DictItemMapper.java similarity index 100% rename from src/main/java/com/youlai/boot/system/mapper/DictItemMapper.java rename to youlai-system/src/main/java/com/youlai/boot/system/mapper/DictItemMapper.java diff --git a/src/main/java/com/youlai/boot/system/mapper/DictMapper.java b/youlai-system/src/main/java/com/youlai/boot/system/mapper/DictMapper.java similarity index 100% rename from src/main/java/com/youlai/boot/system/mapper/DictMapper.java rename to youlai-system/src/main/java/com/youlai/boot/system/mapper/DictMapper.java diff --git a/src/main/java/com/youlai/boot/system/mapper/LogMapper.java b/youlai-system/src/main/java/com/youlai/boot/system/mapper/LogMapper.java similarity index 100% rename from src/main/java/com/youlai/boot/system/mapper/LogMapper.java rename to youlai-system/src/main/java/com/youlai/boot/system/mapper/LogMapper.java diff --git a/src/main/java/com/youlai/boot/system/mapper/MenuMapper.java b/youlai-system/src/main/java/com/youlai/boot/system/mapper/MenuMapper.java similarity index 100% rename from src/main/java/com/youlai/boot/system/mapper/MenuMapper.java rename to youlai-system/src/main/java/com/youlai/boot/system/mapper/MenuMapper.java diff --git a/src/main/java/com/youlai/boot/system/mapper/NoticeMapper.java b/youlai-system/src/main/java/com/youlai/boot/system/mapper/NoticeMapper.java similarity index 100% rename from src/main/java/com/youlai/boot/system/mapper/NoticeMapper.java rename to youlai-system/src/main/java/com/youlai/boot/system/mapper/NoticeMapper.java diff --git a/src/main/java/com/youlai/boot/system/mapper/RoleDeptMapper.java b/youlai-system/src/main/java/com/youlai/boot/system/mapper/RoleDeptMapper.java similarity index 100% rename from src/main/java/com/youlai/boot/system/mapper/RoleDeptMapper.java rename to youlai-system/src/main/java/com/youlai/boot/system/mapper/RoleDeptMapper.java diff --git a/src/main/java/com/youlai/boot/system/mapper/RoleMapper.java b/youlai-system/src/main/java/com/youlai/boot/system/mapper/RoleMapper.java similarity index 100% rename from src/main/java/com/youlai/boot/system/mapper/RoleMapper.java rename to youlai-system/src/main/java/com/youlai/boot/system/mapper/RoleMapper.java diff --git a/src/main/java/com/youlai/boot/system/mapper/RoleMenuMapper.java b/youlai-system/src/main/java/com/youlai/boot/system/mapper/RoleMenuMapper.java similarity index 100% rename from src/main/java/com/youlai/boot/system/mapper/RoleMenuMapper.java rename to youlai-system/src/main/java/com/youlai/boot/system/mapper/RoleMenuMapper.java diff --git a/src/main/java/com/youlai/boot/system/mapper/UserMapper.java b/youlai-system/src/main/java/com/youlai/boot/system/mapper/UserMapper.java similarity index 100% rename from src/main/java/com/youlai/boot/system/mapper/UserMapper.java rename to youlai-system/src/main/java/com/youlai/boot/system/mapper/UserMapper.java diff --git a/src/main/java/com/youlai/boot/system/mapper/UserNoticeMapper.java b/youlai-system/src/main/java/com/youlai/boot/system/mapper/UserNoticeMapper.java similarity index 100% rename from src/main/java/com/youlai/boot/system/mapper/UserNoticeMapper.java rename to youlai-system/src/main/java/com/youlai/boot/system/mapper/UserNoticeMapper.java diff --git a/src/main/java/com/youlai/boot/system/mapper/UserRoleMapper.java b/youlai-system/src/main/java/com/youlai/boot/system/mapper/UserRoleMapper.java similarity index 100% rename from src/main/java/com/youlai/boot/system/mapper/UserRoleMapper.java rename to youlai-system/src/main/java/com/youlai/boot/system/mapper/UserRoleMapper.java diff --git a/src/main/java/com/youlai/boot/system/mapper/UserSocialMapper.java b/youlai-system/src/main/java/com/youlai/boot/system/mapper/UserSocialMapper.java similarity index 100% rename from src/main/java/com/youlai/boot/system/mapper/UserSocialMapper.java rename to youlai-system/src/main/java/com/youlai/boot/system/mapper/UserSocialMapper.java diff --git a/src/main/java/com/youlai/boot/system/model/dto/RolePermsDTO.java b/youlai-system/src/main/java/com/youlai/boot/system/model/dto/RolePermsDTO.java similarity index 100% rename from src/main/java/com/youlai/boot/system/model/dto/RolePermsDTO.java rename to youlai-system/src/main/java/com/youlai/boot/system/model/dto/RolePermsDTO.java diff --git a/src/main/java/com/youlai/boot/system/model/dto/VisitCountDTO.java b/youlai-system/src/main/java/com/youlai/boot/system/model/dto/VisitCountDTO.java similarity index 100% rename from src/main/java/com/youlai/boot/system/model/dto/VisitCountDTO.java rename to youlai-system/src/main/java/com/youlai/boot/system/model/dto/VisitCountDTO.java diff --git a/src/main/java/com/youlai/boot/system/model/entity/Config.java b/youlai-system/src/main/java/com/youlai/boot/system/model/entity/Config.java similarity index 100% rename from src/main/java/com/youlai/boot/system/model/entity/Config.java rename to youlai-system/src/main/java/com/youlai/boot/system/model/entity/Config.java diff --git a/src/main/java/com/youlai/boot/system/model/entity/Dept.java b/youlai-system/src/main/java/com/youlai/boot/system/model/entity/Dept.java similarity index 100% rename from src/main/java/com/youlai/boot/system/model/entity/Dept.java rename to youlai-system/src/main/java/com/youlai/boot/system/model/entity/Dept.java diff --git a/src/main/java/com/youlai/boot/system/model/entity/Dict.java b/youlai-system/src/main/java/com/youlai/boot/system/model/entity/Dict.java similarity index 100% rename from src/main/java/com/youlai/boot/system/model/entity/Dict.java rename to youlai-system/src/main/java/com/youlai/boot/system/model/entity/Dict.java diff --git a/src/main/java/com/youlai/boot/system/model/entity/DictItem.java b/youlai-system/src/main/java/com/youlai/boot/system/model/entity/DictItem.java similarity index 100% rename from src/main/java/com/youlai/boot/system/model/entity/DictItem.java rename to youlai-system/src/main/java/com/youlai/boot/system/model/entity/DictItem.java diff --git a/src/main/java/com/youlai/boot/system/model/entity/Menu.java b/youlai-system/src/main/java/com/youlai/boot/system/model/entity/Menu.java similarity index 100% rename from src/main/java/com/youlai/boot/system/model/entity/Menu.java rename to youlai-system/src/main/java/com/youlai/boot/system/model/entity/Menu.java diff --git a/src/main/java/com/youlai/boot/system/model/entity/Notice.java b/youlai-system/src/main/java/com/youlai/boot/system/model/entity/Notice.java similarity index 100% rename from src/main/java/com/youlai/boot/system/model/entity/Notice.java rename to youlai-system/src/main/java/com/youlai/boot/system/model/entity/Notice.java diff --git a/src/main/java/com/youlai/boot/system/model/entity/Role.java b/youlai-system/src/main/java/com/youlai/boot/system/model/entity/Role.java similarity index 100% rename from src/main/java/com/youlai/boot/system/model/entity/Role.java rename to youlai-system/src/main/java/com/youlai/boot/system/model/entity/Role.java diff --git a/src/main/java/com/youlai/boot/system/model/entity/RoleDept.java b/youlai-system/src/main/java/com/youlai/boot/system/model/entity/RoleDept.java similarity index 100% rename from src/main/java/com/youlai/boot/system/model/entity/RoleDept.java rename to youlai-system/src/main/java/com/youlai/boot/system/model/entity/RoleDept.java diff --git a/src/main/java/com/youlai/boot/system/model/entity/RoleMenu.java b/youlai-system/src/main/java/com/youlai/boot/system/model/entity/RoleMenu.java similarity index 100% rename from src/main/java/com/youlai/boot/system/model/entity/RoleMenu.java rename to youlai-system/src/main/java/com/youlai/boot/system/model/entity/RoleMenu.java diff --git a/src/main/java/com/youlai/boot/system/model/entity/SysLog.java b/youlai-system/src/main/java/com/youlai/boot/system/model/entity/SysLog.java similarity index 100% rename from src/main/java/com/youlai/boot/system/model/entity/SysLog.java rename to youlai-system/src/main/java/com/youlai/boot/system/model/entity/SysLog.java diff --git a/src/main/java/com/youlai/boot/system/model/entity/SysUser.java b/youlai-system/src/main/java/com/youlai/boot/system/model/entity/SysUser.java similarity index 100% rename from src/main/java/com/youlai/boot/system/model/entity/SysUser.java rename to youlai-system/src/main/java/com/youlai/boot/system/model/entity/SysUser.java diff --git a/src/main/java/com/youlai/boot/system/model/entity/UserNotice.java b/youlai-system/src/main/java/com/youlai/boot/system/model/entity/UserNotice.java similarity index 100% rename from src/main/java/com/youlai/boot/system/model/entity/UserNotice.java rename to youlai-system/src/main/java/com/youlai/boot/system/model/entity/UserNotice.java diff --git a/src/main/java/com/youlai/boot/system/model/entity/UserRole.java b/youlai-system/src/main/java/com/youlai/boot/system/model/entity/UserRole.java similarity index 100% rename from src/main/java/com/youlai/boot/system/model/entity/UserRole.java rename to youlai-system/src/main/java/com/youlai/boot/system/model/entity/UserRole.java diff --git a/src/main/java/com/youlai/boot/system/model/entity/UserSocial.java b/youlai-system/src/main/java/com/youlai/boot/system/model/entity/UserSocial.java similarity index 100% rename from src/main/java/com/youlai/boot/system/model/entity/UserSocial.java rename to youlai-system/src/main/java/com/youlai/boot/system/model/entity/UserSocial.java diff --git a/src/main/java/com/youlai/boot/system/model/form/ConfigForm.java b/youlai-system/src/main/java/com/youlai/boot/system/model/form/ConfigForm.java similarity index 100% rename from src/main/java/com/youlai/boot/system/model/form/ConfigForm.java rename to youlai-system/src/main/java/com/youlai/boot/system/model/form/ConfigForm.java diff --git a/src/main/java/com/youlai/boot/system/model/form/DeptForm.java b/youlai-system/src/main/java/com/youlai/boot/system/model/form/DeptForm.java similarity index 100% rename from src/main/java/com/youlai/boot/system/model/form/DeptForm.java rename to youlai-system/src/main/java/com/youlai/boot/system/model/form/DeptForm.java diff --git a/src/main/java/com/youlai/boot/system/model/form/DictForm.java b/youlai-system/src/main/java/com/youlai/boot/system/model/form/DictForm.java similarity index 100% rename from src/main/java/com/youlai/boot/system/model/form/DictForm.java rename to youlai-system/src/main/java/com/youlai/boot/system/model/form/DictForm.java diff --git a/src/main/java/com/youlai/boot/system/model/form/DictItemForm.java b/youlai-system/src/main/java/com/youlai/boot/system/model/form/DictItemForm.java similarity index 100% rename from src/main/java/com/youlai/boot/system/model/form/DictItemForm.java rename to youlai-system/src/main/java/com/youlai/boot/system/model/form/DictItemForm.java diff --git a/src/main/java/com/youlai/boot/system/model/form/EmailUpdateForm.java b/youlai-system/src/main/java/com/youlai/boot/system/model/form/EmailUpdateForm.java similarity index 100% rename from src/main/java/com/youlai/boot/system/model/form/EmailUpdateForm.java rename to youlai-system/src/main/java/com/youlai/boot/system/model/form/EmailUpdateForm.java diff --git a/src/main/java/com/youlai/boot/system/model/form/MenuForm.java b/youlai-system/src/main/java/com/youlai/boot/system/model/form/MenuForm.java similarity index 100% rename from src/main/java/com/youlai/boot/system/model/form/MenuForm.java rename to youlai-system/src/main/java/com/youlai/boot/system/model/form/MenuForm.java diff --git a/src/main/java/com/youlai/boot/system/model/form/MobileUpdateForm.java b/youlai-system/src/main/java/com/youlai/boot/system/model/form/MobileUpdateForm.java similarity index 100% rename from src/main/java/com/youlai/boot/system/model/form/MobileUpdateForm.java rename to youlai-system/src/main/java/com/youlai/boot/system/model/form/MobileUpdateForm.java diff --git a/src/main/java/com/youlai/boot/system/model/form/NoticeForm.java b/youlai-system/src/main/java/com/youlai/boot/system/model/form/NoticeForm.java similarity index 100% rename from src/main/java/com/youlai/boot/system/model/form/NoticeForm.java rename to youlai-system/src/main/java/com/youlai/boot/system/model/form/NoticeForm.java diff --git a/src/main/java/com/youlai/boot/system/model/form/PasswordUpdateForm.java b/youlai-system/src/main/java/com/youlai/boot/system/model/form/PasswordUpdateForm.java similarity index 100% rename from src/main/java/com/youlai/boot/system/model/form/PasswordUpdateForm.java rename to youlai-system/src/main/java/com/youlai/boot/system/model/form/PasswordUpdateForm.java diff --git a/src/main/java/com/youlai/boot/system/model/form/PasswordVerifyForm.java b/youlai-system/src/main/java/com/youlai/boot/system/model/form/PasswordVerifyForm.java similarity index 100% rename from src/main/java/com/youlai/boot/system/model/form/PasswordVerifyForm.java rename to youlai-system/src/main/java/com/youlai/boot/system/model/form/PasswordVerifyForm.java diff --git a/src/main/java/com/youlai/boot/system/model/form/RoleForm.java b/youlai-system/src/main/java/com/youlai/boot/system/model/form/RoleForm.java similarity index 100% rename from src/main/java/com/youlai/boot/system/model/form/RoleForm.java rename to youlai-system/src/main/java/com/youlai/boot/system/model/form/RoleForm.java diff --git a/src/main/java/com/youlai/boot/system/model/form/UserForm.java b/youlai-system/src/main/java/com/youlai/boot/system/model/form/UserForm.java similarity index 100% rename from src/main/java/com/youlai/boot/system/model/form/UserForm.java rename to youlai-system/src/main/java/com/youlai/boot/system/model/form/UserForm.java diff --git a/src/main/java/com/youlai/boot/system/model/form/UserImportForm.java b/youlai-system/src/main/java/com/youlai/boot/system/model/form/UserImportForm.java similarity index 100% rename from src/main/java/com/youlai/boot/system/model/form/UserImportForm.java rename to youlai-system/src/main/java/com/youlai/boot/system/model/form/UserImportForm.java diff --git a/src/main/java/com/youlai/boot/system/model/form/UserProfileForm.java b/youlai-system/src/main/java/com/youlai/boot/system/model/form/UserProfileForm.java similarity index 100% rename from src/main/java/com/youlai/boot/system/model/form/UserProfileForm.java rename to youlai-system/src/main/java/com/youlai/boot/system/model/form/UserProfileForm.java diff --git a/src/main/java/com/youlai/boot/system/model/query/ConfigQuery.java b/youlai-system/src/main/java/com/youlai/boot/system/model/query/ConfigQuery.java similarity index 100% rename from src/main/java/com/youlai/boot/system/model/query/ConfigQuery.java rename to youlai-system/src/main/java/com/youlai/boot/system/model/query/ConfigQuery.java diff --git a/src/main/java/com/youlai/boot/system/model/query/DeptQuery.java b/youlai-system/src/main/java/com/youlai/boot/system/model/query/DeptQuery.java similarity index 100% rename from src/main/java/com/youlai/boot/system/model/query/DeptQuery.java rename to youlai-system/src/main/java/com/youlai/boot/system/model/query/DeptQuery.java diff --git a/src/main/java/com/youlai/boot/system/model/query/DictItemQuery.java b/youlai-system/src/main/java/com/youlai/boot/system/model/query/DictItemQuery.java similarity index 100% rename from src/main/java/com/youlai/boot/system/model/query/DictItemQuery.java rename to youlai-system/src/main/java/com/youlai/boot/system/model/query/DictItemQuery.java diff --git a/src/main/java/com/youlai/boot/system/model/query/DictQuery.java b/youlai-system/src/main/java/com/youlai/boot/system/model/query/DictQuery.java similarity index 100% rename from src/main/java/com/youlai/boot/system/model/query/DictQuery.java rename to youlai-system/src/main/java/com/youlai/boot/system/model/query/DictQuery.java diff --git a/src/main/java/com/youlai/boot/system/model/query/LogQuery.java b/youlai-system/src/main/java/com/youlai/boot/system/model/query/LogQuery.java similarity index 100% rename from src/main/java/com/youlai/boot/system/model/query/LogQuery.java rename to youlai-system/src/main/java/com/youlai/boot/system/model/query/LogQuery.java diff --git a/src/main/java/com/youlai/boot/system/model/query/MenuQuery.java b/youlai-system/src/main/java/com/youlai/boot/system/model/query/MenuQuery.java similarity index 100% rename from src/main/java/com/youlai/boot/system/model/query/MenuQuery.java rename to youlai-system/src/main/java/com/youlai/boot/system/model/query/MenuQuery.java diff --git a/src/main/java/com/youlai/boot/system/model/query/NoticeQuery.java b/youlai-system/src/main/java/com/youlai/boot/system/model/query/NoticeQuery.java similarity index 100% rename from src/main/java/com/youlai/boot/system/model/query/NoticeQuery.java rename to youlai-system/src/main/java/com/youlai/boot/system/model/query/NoticeQuery.java diff --git a/src/main/java/com/youlai/boot/system/model/query/RoleQuery.java b/youlai-system/src/main/java/com/youlai/boot/system/model/query/RoleQuery.java similarity index 100% rename from src/main/java/com/youlai/boot/system/model/query/RoleQuery.java rename to youlai-system/src/main/java/com/youlai/boot/system/model/query/RoleQuery.java diff --git a/src/main/java/com/youlai/boot/system/model/query/UserQuery.java b/youlai-system/src/main/java/com/youlai/boot/system/model/query/UserQuery.java similarity index 100% rename from src/main/java/com/youlai/boot/system/model/query/UserQuery.java rename to youlai-system/src/main/java/com/youlai/boot/system/model/query/UserQuery.java diff --git a/src/main/java/com/youlai/boot/system/model/vo/ConfigVO.java b/youlai-system/src/main/java/com/youlai/boot/system/model/vo/ConfigVO.java similarity index 100% rename from src/main/java/com/youlai/boot/system/model/vo/ConfigVO.java rename to youlai-system/src/main/java/com/youlai/boot/system/model/vo/ConfigVO.java diff --git a/src/main/java/com/youlai/boot/system/model/vo/CurrentUserVO.java b/youlai-system/src/main/java/com/youlai/boot/system/model/vo/CurrentUserVO.java similarity index 100% rename from src/main/java/com/youlai/boot/system/model/vo/CurrentUserVO.java rename to youlai-system/src/main/java/com/youlai/boot/system/model/vo/CurrentUserVO.java diff --git a/src/main/java/com/youlai/boot/system/model/vo/DeptVO.java b/youlai-system/src/main/java/com/youlai/boot/system/model/vo/DeptVO.java similarity index 100% rename from src/main/java/com/youlai/boot/system/model/vo/DeptVO.java rename to youlai-system/src/main/java/com/youlai/boot/system/model/vo/DeptVO.java diff --git a/src/main/java/com/youlai/boot/system/model/vo/DictItemOptionVO.java b/youlai-system/src/main/java/com/youlai/boot/system/model/vo/DictItemOptionVO.java similarity index 100% rename from src/main/java/com/youlai/boot/system/model/vo/DictItemOptionVO.java rename to youlai-system/src/main/java/com/youlai/boot/system/model/vo/DictItemOptionVO.java diff --git a/src/main/java/com/youlai/boot/system/model/vo/DictItemPageVO.java b/youlai-system/src/main/java/com/youlai/boot/system/model/vo/DictItemPageVO.java similarity index 100% rename from src/main/java/com/youlai/boot/system/model/vo/DictItemPageVO.java rename to youlai-system/src/main/java/com/youlai/boot/system/model/vo/DictItemPageVO.java diff --git a/src/main/java/com/youlai/boot/system/model/vo/DictPageVO.java b/youlai-system/src/main/java/com/youlai/boot/system/model/vo/DictPageVO.java similarity index 100% rename from src/main/java/com/youlai/boot/system/model/vo/DictPageVO.java rename to youlai-system/src/main/java/com/youlai/boot/system/model/vo/DictPageVO.java diff --git a/src/main/java/com/youlai/boot/system/model/vo/LogPageVO.java b/youlai-system/src/main/java/com/youlai/boot/system/model/vo/LogPageVO.java similarity index 100% rename from src/main/java/com/youlai/boot/system/model/vo/LogPageVO.java rename to youlai-system/src/main/java/com/youlai/boot/system/model/vo/LogPageVO.java diff --git a/src/main/java/com/youlai/boot/system/model/vo/MenuVO.java b/youlai-system/src/main/java/com/youlai/boot/system/model/vo/MenuVO.java similarity index 100% rename from src/main/java/com/youlai/boot/system/model/vo/MenuVO.java rename to youlai-system/src/main/java/com/youlai/boot/system/model/vo/MenuVO.java diff --git a/src/main/java/com/youlai/boot/system/model/vo/NoticeDetailVO.java b/youlai-system/src/main/java/com/youlai/boot/system/model/vo/NoticeDetailVO.java similarity index 100% rename from src/main/java/com/youlai/boot/system/model/vo/NoticeDetailVO.java rename to youlai-system/src/main/java/com/youlai/boot/system/model/vo/NoticeDetailVO.java diff --git a/src/main/java/com/youlai/boot/system/model/vo/NoticePageVO.java b/youlai-system/src/main/java/com/youlai/boot/system/model/vo/NoticePageVO.java similarity index 100% rename from src/main/java/com/youlai/boot/system/model/vo/NoticePageVO.java rename to youlai-system/src/main/java/com/youlai/boot/system/model/vo/NoticePageVO.java diff --git a/src/main/java/com/youlai/boot/system/model/vo/NoticeVO.java b/youlai-system/src/main/java/com/youlai/boot/system/model/vo/NoticeVO.java similarity index 100% rename from src/main/java/com/youlai/boot/system/model/vo/NoticeVO.java rename to youlai-system/src/main/java/com/youlai/boot/system/model/vo/NoticeVO.java diff --git a/src/main/java/com/youlai/boot/system/model/vo/RolePageVO.java b/youlai-system/src/main/java/com/youlai/boot/system/model/vo/RolePageVO.java similarity index 100% rename from src/main/java/com/youlai/boot/system/model/vo/RolePageVO.java rename to youlai-system/src/main/java/com/youlai/boot/system/model/vo/RolePageVO.java diff --git a/src/main/java/com/youlai/boot/system/model/vo/RouteVO.java b/youlai-system/src/main/java/com/youlai/boot/system/model/vo/RouteVO.java similarity index 100% rename from src/main/java/com/youlai/boot/system/model/vo/RouteVO.java rename to youlai-system/src/main/java/com/youlai/boot/system/model/vo/RouteVO.java diff --git a/src/main/java/com/youlai/boot/system/model/vo/UserExportVO.java b/youlai-system/src/main/java/com/youlai/boot/system/model/vo/UserExportVO.java similarity index 100% rename from src/main/java/com/youlai/boot/system/model/vo/UserExportVO.java rename to youlai-system/src/main/java/com/youlai/boot/system/model/vo/UserExportVO.java diff --git a/src/main/java/com/youlai/boot/system/model/vo/UserNoticePageVO.java b/youlai-system/src/main/java/com/youlai/boot/system/model/vo/UserNoticePageVO.java similarity index 100% rename from src/main/java/com/youlai/boot/system/model/vo/UserNoticePageVO.java rename to youlai-system/src/main/java/com/youlai/boot/system/model/vo/UserNoticePageVO.java diff --git a/src/main/java/com/youlai/boot/system/model/vo/UserPageVO.java b/youlai-system/src/main/java/com/youlai/boot/system/model/vo/UserPageVO.java similarity index 100% rename from src/main/java/com/youlai/boot/system/model/vo/UserPageVO.java rename to youlai-system/src/main/java/com/youlai/boot/system/model/vo/UserPageVO.java diff --git a/src/main/java/com/youlai/boot/system/model/vo/UserProfileVO.java b/youlai-system/src/main/java/com/youlai/boot/system/model/vo/UserProfileVO.java similarity index 100% rename from src/main/java/com/youlai/boot/system/model/vo/UserProfileVO.java rename to youlai-system/src/main/java/com/youlai/boot/system/model/vo/UserProfileVO.java diff --git a/src/main/java/com/youlai/boot/system/model/vo/VisitOverviewVO.java b/youlai-system/src/main/java/com/youlai/boot/system/model/vo/VisitOverviewVO.java similarity index 100% rename from src/main/java/com/youlai/boot/system/model/vo/VisitOverviewVO.java rename to youlai-system/src/main/java/com/youlai/boot/system/model/vo/VisitOverviewVO.java diff --git a/src/main/java/com/youlai/boot/system/model/vo/VisitTrendVO.java b/youlai-system/src/main/java/com/youlai/boot/system/model/vo/VisitTrendVO.java similarity index 100% rename from src/main/java/com/youlai/boot/system/model/vo/VisitTrendVO.java rename to youlai-system/src/main/java/com/youlai/boot/system/model/vo/VisitTrendVO.java diff --git a/src/main/java/com/youlai/boot/framework/security/config/SecurityConfig.java b/youlai-system/src/main/java/com/youlai/boot/system/security/config/SecurityConfig.java similarity index 94% rename from src/main/java/com/youlai/boot/framework/security/config/SecurityConfig.java rename to youlai-system/src/main/java/com/youlai/boot/system/security/config/SecurityConfig.java index 190175e6..731fa3f4 100644 --- a/src/main/java/com/youlai/boot/framework/security/config/SecurityConfig.java +++ b/youlai-system/src/main/java/com/youlai/boot/system/security/config/SecurityConfig.java @@ -1,17 +1,17 @@ -package com.youlai.boot.framework.security.config; +package com.youlai.boot.system.security.config; import cn.binarywang.wx.miniapp.api.WxMaService; import com.youlai.boot.framework.captcha.service.CaptchaService; import cn.hutool.core.util.ArrayUtil; -import com.youlai.boot.framework.web.filter.RateLimiterFilter; +import com.youlai.boot.system.security.filter.RateLimiterFilter; import com.youlai.boot.framework.security.filter.CaptchaValidationFilter; import com.youlai.boot.framework.security.filter.TokenAuthenticationFilter; import com.youlai.boot.framework.security.handler.MyAccessDeniedHandler; import com.youlai.boot.framework.security.handler.MyAuthenticationEntryPoint; -import com.youlai.boot.framework.security.provider.SmsAuthenticationProvider; -import com.youlai.boot.framework.security.provider.WxMaAuthenticationProvider; +import com.youlai.boot.system.security.provider.SmsAuthenticationProvider; +import com.youlai.boot.system.security.provider.WxMaAuthenticationProvider; import com.youlai.boot.framework.security.token.TokenManager; -import com.youlai.boot.framework.security.service.SysUserDetailsService; +import com.youlai.boot.system.security.service.SysUserDetailsService; import com.youlai.boot.system.service.ConfigService; import com.youlai.boot.system.service.UserService; import lombok.RequiredArgsConstructor; @@ -53,7 +53,7 @@ public class SecurityConfig { private final CaptchaService captchaService; private final ConfigService configService; - private final SecurityProperties securityProperties; + private final com.youlai.boot.framework.security.config.SecurityProperties securityProperties; /** * 配置安全过滤链 SecurityFilterChain diff --git a/src/main/java/com/youlai/boot/framework/web/filter/RateLimiterFilter.java b/youlai-system/src/main/java/com/youlai/boot/system/security/filter/RateLimiterFilter.java similarity index 97% rename from src/main/java/com/youlai/boot/framework/web/filter/RateLimiterFilter.java rename to youlai-system/src/main/java/com/youlai/boot/system/security/filter/RateLimiterFilter.java index 5b860442..4621214b 100644 --- a/src/main/java/com/youlai/boot/framework/web/filter/RateLimiterFilter.java +++ b/youlai-system/src/main/java/com/youlai/boot/system/security/filter/RateLimiterFilter.java @@ -1,4 +1,4 @@ -package com.youlai.boot.framework.web.filter; +package com.youlai.boot.system.security.filter; import cn.hutool.core.convert.Convert; import cn.hutool.core.util.StrUtil; @@ -13,7 +13,7 @@ import jakarta.servlet.ServletException; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; import lombok.extern.slf4j.Slf4j; -import org.jetbrains.annotations.NotNull; +import jakarta.validation.constraints.NotNull; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.web.filter.OncePerRequestFilter; diff --git a/src/main/java/com/youlai/boot/framework/security/provider/SmsAuthenticationProvider.java b/youlai-system/src/main/java/com/youlai/boot/system/security/provider/SmsAuthenticationProvider.java similarity index 98% rename from src/main/java/com/youlai/boot/framework/security/provider/SmsAuthenticationProvider.java rename to youlai-system/src/main/java/com/youlai/boot/system/security/provider/SmsAuthenticationProvider.java index ec5c63f1..2efba359 100644 --- a/src/main/java/com/youlai/boot/framework/security/provider/SmsAuthenticationProvider.java +++ b/youlai-system/src/main/java/com/youlai/boot/system/security/provider/SmsAuthenticationProvider.java @@ -1,4 +1,4 @@ -package com.youlai.boot.framework.security.provider; +package com.youlai.boot.system.security.provider; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; diff --git a/src/main/java/com/youlai/boot/framework/security/provider/WxMaAuthenticationProvider.java b/youlai-system/src/main/java/com/youlai/boot/system/security/provider/WxMaAuthenticationProvider.java similarity index 96% rename from src/main/java/com/youlai/boot/framework/security/provider/WxMaAuthenticationProvider.java rename to youlai-system/src/main/java/com/youlai/boot/system/security/provider/WxMaAuthenticationProvider.java index d30bfd60..d652d52d 100644 --- a/src/main/java/com/youlai/boot/framework/security/provider/WxMaAuthenticationProvider.java +++ b/youlai-system/src/main/java/com/youlai/boot/system/security/provider/WxMaAuthenticationProvider.java @@ -1,4 +1,4 @@ -package com.youlai.boot.framework.security.provider; +package com.youlai.boot.system.security.provider; import cn.binarywang.wx.miniapp.api.WxMaService; import cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult; @@ -7,7 +7,7 @@ import com.youlai.boot.framework.security.exception.NeedBindMobileException; import com.youlai.boot.framework.security.model.SysUserDetails; import com.youlai.boot.framework.security.model.UserAuthInfo; import com.youlai.boot.framework.security.model.WxMaAuthenticationToken; -import com.youlai.boot.framework.security.service.SysUserDetailsService; +import com.youlai.boot.system.security.service.SysUserDetailsService; import com.youlai.boot.system.model.entity.UserSocial; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; diff --git a/src/main/java/com/youlai/boot/framework/security/service/PermissionService.java b/youlai-system/src/main/java/com/youlai/boot/system/security/service/PermissionService.java similarity index 97% rename from src/main/java/com/youlai/boot/framework/security/service/PermissionService.java rename to youlai-system/src/main/java/com/youlai/boot/system/security/service/PermissionService.java index 46516f3c..893ed1ba 100644 --- a/src/main/java/com/youlai/boot/framework/security/service/PermissionService.java +++ b/youlai-system/src/main/java/com/youlai/boot/system/security/service/PermissionService.java @@ -1,4 +1,4 @@ -package com.youlai.boot.framework.security.service; +package com.youlai.boot.system.security.service; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.util.StrUtil; diff --git a/src/main/java/com/youlai/boot/framework/security/service/SysUserDetailsService.java b/youlai-system/src/main/java/com/youlai/boot/system/security/service/SysUserDetailsService.java similarity index 98% rename from src/main/java/com/youlai/boot/framework/security/service/SysUserDetailsService.java rename to youlai-system/src/main/java/com/youlai/boot/system/security/service/SysUserDetailsService.java index 2bbe035b..e13b4a54 100644 --- a/src/main/java/com/youlai/boot/framework/security/service/SysUserDetailsService.java +++ b/youlai-system/src/main/java/com/youlai/boot/system/security/service/SysUserDetailsService.java @@ -1,4 +1,4 @@ -package com.youlai.boot.framework.security.service; +package com.youlai.boot.system.security.service; import com.youlai.boot.framework.security.model.SysUserDetails; import com.youlai.boot.framework.security.model.UserAuthInfo; diff --git a/src/main/java/com/youlai/boot/system/service/ConfigService.java b/youlai-system/src/main/java/com/youlai/boot/system/service/ConfigService.java similarity index 100% rename from src/main/java/com/youlai/boot/system/service/ConfigService.java rename to youlai-system/src/main/java/com/youlai/boot/system/service/ConfigService.java diff --git a/src/main/java/com/youlai/boot/system/service/DeptService.java b/youlai-system/src/main/java/com/youlai/boot/system/service/DeptService.java similarity index 100% rename from src/main/java/com/youlai/boot/system/service/DeptService.java rename to youlai-system/src/main/java/com/youlai/boot/system/service/DeptService.java diff --git a/src/main/java/com/youlai/boot/system/service/DictItemService.java b/youlai-system/src/main/java/com/youlai/boot/system/service/DictItemService.java similarity index 100% rename from src/main/java/com/youlai/boot/system/service/DictItemService.java rename to youlai-system/src/main/java/com/youlai/boot/system/service/DictItemService.java diff --git a/src/main/java/com/youlai/boot/system/service/DictService.java b/youlai-system/src/main/java/com/youlai/boot/system/service/DictService.java similarity index 100% rename from src/main/java/com/youlai/boot/system/service/DictService.java rename to youlai-system/src/main/java/com/youlai/boot/system/service/DictService.java diff --git a/src/main/java/com/youlai/boot/system/service/LogService.java b/youlai-system/src/main/java/com/youlai/boot/system/service/LogService.java similarity index 100% rename from src/main/java/com/youlai/boot/system/service/LogService.java rename to youlai-system/src/main/java/com/youlai/boot/system/service/LogService.java diff --git a/src/main/java/com/youlai/boot/system/service/MenuService.java b/youlai-system/src/main/java/com/youlai/boot/system/service/MenuService.java similarity index 93% rename from src/main/java/com/youlai/boot/system/service/MenuService.java rename to youlai-system/src/main/java/com/youlai/boot/system/service/MenuService.java index 1429226c..d6c80b26 100644 --- a/src/main/java/com/youlai/boot/system/service/MenuService.java +++ b/youlai-system/src/main/java/com/youlai/boot/system/service/MenuService.java @@ -1,7 +1,6 @@ package com.youlai.boot.system.service; import com.baomidou.mybatisplus.extension.service.IService; -import com.youlai.boot.codegen.model.entity.GenTable; import com.youlai.boot.system.model.form.MenuForm; import com.youlai.boot.common.model.Option; import com.youlai.boot.system.model.entity.Menu; @@ -78,5 +77,4 @@ public interface MenuService extends IService { * @param parentMenuId 父菜单ID * @param genConfig 实体名 */ - void addMenuForCodegen(Long parentMenuId, GenTable genTable); } diff --git a/src/main/java/com/youlai/boot/system/service/NoticeService.java b/youlai-system/src/main/java/com/youlai/boot/system/service/NoticeService.java similarity index 100% rename from src/main/java/com/youlai/boot/system/service/NoticeService.java rename to youlai-system/src/main/java/com/youlai/boot/system/service/NoticeService.java diff --git a/src/main/java/com/youlai/boot/system/service/RoleDeptService.java b/youlai-system/src/main/java/com/youlai/boot/system/service/RoleDeptService.java similarity index 100% rename from src/main/java/com/youlai/boot/system/service/RoleDeptService.java rename to youlai-system/src/main/java/com/youlai/boot/system/service/RoleDeptService.java diff --git a/src/main/java/com/youlai/boot/system/service/RoleMenuService.java b/youlai-system/src/main/java/com/youlai/boot/system/service/RoleMenuService.java similarity index 100% rename from src/main/java/com/youlai/boot/system/service/RoleMenuService.java rename to youlai-system/src/main/java/com/youlai/boot/system/service/RoleMenuService.java diff --git a/src/main/java/com/youlai/boot/system/service/RoleService.java b/youlai-system/src/main/java/com/youlai/boot/system/service/RoleService.java similarity index 100% rename from src/main/java/com/youlai/boot/system/service/RoleService.java rename to youlai-system/src/main/java/com/youlai/boot/system/service/RoleService.java diff --git a/src/main/java/com/youlai/boot/system/service/UserNoticeService.java b/youlai-system/src/main/java/com/youlai/boot/system/service/UserNoticeService.java similarity index 100% rename from src/main/java/com/youlai/boot/system/service/UserNoticeService.java rename to youlai-system/src/main/java/com/youlai/boot/system/service/UserNoticeService.java diff --git a/src/main/java/com/youlai/boot/system/service/UserRoleService.java b/youlai-system/src/main/java/com/youlai/boot/system/service/UserRoleService.java similarity index 100% rename from src/main/java/com/youlai/boot/system/service/UserRoleService.java rename to youlai-system/src/main/java/com/youlai/boot/system/service/UserRoleService.java diff --git a/src/main/java/com/youlai/boot/system/service/UserService.java b/youlai-system/src/main/java/com/youlai/boot/system/service/UserService.java similarity index 100% rename from src/main/java/com/youlai/boot/system/service/UserService.java rename to youlai-system/src/main/java/com/youlai/boot/system/service/UserService.java diff --git a/src/main/java/com/youlai/boot/system/service/UserSocialService.java b/youlai-system/src/main/java/com/youlai/boot/system/service/UserSocialService.java similarity index 100% rename from src/main/java/com/youlai/boot/system/service/UserSocialService.java rename to youlai-system/src/main/java/com/youlai/boot/system/service/UserSocialService.java diff --git a/src/main/java/com/youlai/boot/system/service/impl/ConfigServiceImpl.java b/youlai-system/src/main/java/com/youlai/boot/system/service/impl/ConfigServiceImpl.java similarity index 100% rename from src/main/java/com/youlai/boot/system/service/impl/ConfigServiceImpl.java rename to youlai-system/src/main/java/com/youlai/boot/system/service/impl/ConfigServiceImpl.java diff --git a/src/main/java/com/youlai/boot/system/service/impl/DeptServiceImpl.java b/youlai-system/src/main/java/com/youlai/boot/system/service/impl/DeptServiceImpl.java similarity index 100% rename from src/main/java/com/youlai/boot/system/service/impl/DeptServiceImpl.java rename to youlai-system/src/main/java/com/youlai/boot/system/service/impl/DeptServiceImpl.java diff --git a/src/main/java/com/youlai/boot/system/service/impl/DictItemServiceImpl.java b/youlai-system/src/main/java/com/youlai/boot/system/service/impl/DictItemServiceImpl.java similarity index 100% rename from src/main/java/com/youlai/boot/system/service/impl/DictItemServiceImpl.java rename to youlai-system/src/main/java/com/youlai/boot/system/service/impl/DictItemServiceImpl.java diff --git a/src/main/java/com/youlai/boot/system/service/impl/DictServiceImpl.java b/youlai-system/src/main/java/com/youlai/boot/system/service/impl/DictServiceImpl.java similarity index 100% rename from src/main/java/com/youlai/boot/system/service/impl/DictServiceImpl.java rename to youlai-system/src/main/java/com/youlai/boot/system/service/impl/DictServiceImpl.java diff --git a/src/main/java/com/youlai/boot/system/service/impl/LogServiceImpl.java b/youlai-system/src/main/java/com/youlai/boot/system/service/impl/LogServiceImpl.java similarity index 100% rename from src/main/java/com/youlai/boot/system/service/impl/LogServiceImpl.java rename to youlai-system/src/main/java/com/youlai/boot/system/service/impl/LogServiceImpl.java diff --git a/src/main/java/com/youlai/boot/system/service/impl/MenuServiceImpl.java b/youlai-system/src/main/java/com/youlai/boot/system/service/impl/MenuServiceImpl.java similarity index 86% rename from src/main/java/com/youlai/boot/system/service/impl/MenuServiceImpl.java rename to youlai-system/src/main/java/com/youlai/boot/system/service/impl/MenuServiceImpl.java index 088ae04a..213de0cb 100644 --- a/src/main/java/com/youlai/boot/system/service/impl/MenuServiceImpl.java +++ b/youlai-system/src/main/java/com/youlai/boot/system/service/impl/MenuServiceImpl.java @@ -7,7 +7,6 @@ import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.youlai.boot.codegen.model.entity.GenTable; import com.youlai.boot.framework.security.util.SecurityUtils; import com.youlai.boot.system.converter.MenuConverter; import com.youlai.boot.system.mapper.MenuMapper; @@ -424,71 +423,4 @@ public class MenuServiceImpl extends ServiceImpl implements Me } - /** - * 代码生成时添加菜单 - * - * @param parentMenuId 父菜单ID - * @param genTable 实体名称 - */ - @Override - public void addMenuForCodegen(Long parentMenuId, GenTable genTable) { - Menu parentMenu = this.getById(parentMenuId); - Assert.notNull(parentMenu, "上级菜单不存在"); - - String entityName = genTable.getEntityName(); - - long count = this.count(new LambdaQueryWrapper().eq(Menu::getRouteName, entityName)); - if (count > 0) { - return; - } - - // 获取父级菜单子菜单最带的排序 - Menu maxSortMenu = this.getOne(new LambdaQueryWrapper().eq(Menu::getParentId, parentMenuId) - .orderByDesc(Menu::getSort) - .last("limit 1") - ); - int sort = 1; - if (maxSortMenu != null) { - sort = maxSortMenu.getSort() + 1; - } - - Menu menu = new Menu(); - menu.setParentId(parentMenuId); - menu.setName(genTable.getBusinessName()); - - menu.setRouteName(entityName); - menu.setRoutePath(StrUtil.toSymbolCase(entityName, '-')); - menu.setComponent(genTable.getModuleName() + "/" + StrUtil.toSymbolCase(entityName, '-') + "/index"); - menu.setType(MenuTypeEnum.MENU.getValue()); - menu.setSort(sort); - menu.setVisible(1); - boolean result = this.save(menu); - - if (result) { - // 生成treePath - String treePath = generateMenuTreePath(parentMenuId); - menu.setTreePath(treePath); - this.updateById(menu); - - // 生成CURD按钮权限 - String permPrefix = genTable.getModuleName() + ":" + genTable.getTableName().replace("_", "-") + ":"; - String[] actions = {"查询", "新增", "修改", "删除"}; - String[] perms = {"list", "create", "update", "delete"}; - - for (int i = 0; i < actions.length; i++) { - Menu button = new Menu(); - button.setParentId(menu.getId()); - button.setType(MenuTypeEnum.BUTTON.getValue()); - button.setName(actions[i]); - button.setPerm(permPrefix + perms[i]); - button.setSort(i + 1); - this.save(button); - - // 生成treePath - button.setTreePath(treePath + "," + button.getId()); - this.updateById(button); - } - } - } - } diff --git a/src/main/java/com/youlai/boot/system/service/impl/NoticeServiceImpl.java b/youlai-system/src/main/java/com/youlai/boot/system/service/impl/NoticeServiceImpl.java similarity index 85% rename from src/main/java/com/youlai/boot/system/service/impl/NoticeServiceImpl.java rename to youlai-system/src/main/java/com/youlai/boot/system/service/impl/NoticeServiceImpl.java index 5052c03c..462d6815 100644 --- a/src/main/java/com/youlai/boot/system/service/impl/NoticeServiceImpl.java +++ b/youlai-system/src/main/java/com/youlai/boot/system/service/impl/NoticeServiceImpl.java @@ -8,7 +8,6 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.youlai.boot.common.exception.BusinessException; -import com.youlai.boot.message.dto.OnlineUserDTO; import com.youlai.boot.framework.security.util.SecurityUtils; import com.youlai.boot.system.converter.NoticeConverter; import com.youlai.boot.system.enums.NoticePublishStatusEnum; @@ -26,17 +25,16 @@ import com.youlai.boot.system.model.query.NoticeQuery; import com.youlai.boot.system.service.NoticeService; import com.youlai.boot.system.service.UserNoticeService; import com.youlai.boot.system.service.UserService; -import com.youlai.boot.message.service.SseService; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.time.LocalDateTime; import java.util.Arrays; -import java.util.HashSet; import java.util.List; import java.util.Set; -import java.util.stream.Collectors; +import com.youlai.boot.common.event.NoticePublishEvent; +import org.springframework.context.ApplicationEventPublisher; /** * 通知公告服务实现类 @@ -51,7 +49,7 @@ public class NoticeServiceImpl extends ServiceImpl impleme private final NoticeConverter noticeConverter; private final UserNoticeService userNoticeService; private final UserService userService; - private final SseService sseService; + private final ApplicationEventPublisher applicationEventPublisher; /** * 获取通知公告分页列表 @@ -208,24 +206,10 @@ public class NoticeServiceImpl extends ServiceImpl impleme userNoticeService.saveBatch(userNoticeList); } - Set receivers = targetUserList.stream().map(SysUser::getUsername).collect(Collectors.toSet()); + List receiverUserIds = targetUserList.stream().map(SysUser::getId).toList(); - // 获取在线用户名集合 - Set allOnlineUsers = sseService.getOnlineUsers().stream() - .map(OnlineUserDTO::getUsername) - .collect(Collectors.toSet()); - - // 找出在线用户的通知接收者 - Set onlineReceivers = new HashSet<>(CollectionUtil.intersection(receivers, allOnlineUsers)); - - NoticeVO noticeVo = new NoticeVO(); - noticeVo.setId(id); - noticeVo.setTitle(notice.getTitle()); - noticeVo.setType(notice.getType()); - noticeVo.setPublishTime(notice.getPublishTime()); - - // 向在线接收者推送通知 - onlineReceivers.forEach(receiver -> sseService.sendToUser(receiver, "notice", noticeVo)); + // 发布通知事件,由 message 模块的 SseEventListener 处理 SSE 推送 + applicationEventPublisher.publishEvent(new NoticePublishEvent(this, id, receiverUserIds)); } return publishResult; } @@ -260,18 +244,8 @@ public class NoticeServiceImpl extends ServiceImpl impleme .eq(UserNotice::getNoticeId, id) ); - // 通知前端移除该通知 - NoticeVO noticeVo = new NoticeVO(); - noticeVo.setId(id); - - // 获取所有在线用户 - Set allOnlineUsers = sseService.getOnlineUsers().stream() - .map(OnlineUserDTO::getUsername) - .collect(Collectors.toSet()); - - // 向所有在线用户推送撤回通知 - allOnlineUsers.forEach(username -> - sseService.sendToUser(username, "notice-revoke", noticeVo)); + // 发布通知撤回事件 + applicationEventPublisher.publishEvent(new NoticePublishEvent(this, id, List.of())); } return revokeResult; } diff --git a/src/main/java/com/youlai/boot/system/service/impl/RoleDeptServiceImpl.java b/youlai-system/src/main/java/com/youlai/boot/system/service/impl/RoleDeptServiceImpl.java similarity index 100% rename from src/main/java/com/youlai/boot/system/service/impl/RoleDeptServiceImpl.java rename to youlai-system/src/main/java/com/youlai/boot/system/service/impl/RoleDeptServiceImpl.java diff --git a/src/main/java/com/youlai/boot/system/service/impl/RoleMenuServiceImpl.java b/youlai-system/src/main/java/com/youlai/boot/system/service/impl/RoleMenuServiceImpl.java similarity index 100% rename from src/main/java/com/youlai/boot/system/service/impl/RoleMenuServiceImpl.java rename to youlai-system/src/main/java/com/youlai/boot/system/service/impl/RoleMenuServiceImpl.java diff --git a/src/main/java/com/youlai/boot/system/service/impl/RoleServiceImpl.java b/youlai-system/src/main/java/com/youlai/boot/system/service/impl/RoleServiceImpl.java similarity index 100% rename from src/main/java/com/youlai/boot/system/service/impl/RoleServiceImpl.java rename to youlai-system/src/main/java/com/youlai/boot/system/service/impl/RoleServiceImpl.java diff --git a/src/main/java/com/youlai/boot/system/service/impl/UserNoticeServiceImpl.java b/youlai-system/src/main/java/com/youlai/boot/system/service/impl/UserNoticeServiceImpl.java similarity index 100% rename from src/main/java/com/youlai/boot/system/service/impl/UserNoticeServiceImpl.java rename to youlai-system/src/main/java/com/youlai/boot/system/service/impl/UserNoticeServiceImpl.java diff --git a/src/main/java/com/youlai/boot/system/service/impl/UserRoleServiceImpl.java b/youlai-system/src/main/java/com/youlai/boot/system/service/impl/UserRoleServiceImpl.java similarity index 100% rename from src/main/java/com/youlai/boot/system/service/impl/UserRoleServiceImpl.java rename to youlai-system/src/main/java/com/youlai/boot/system/service/impl/UserRoleServiceImpl.java diff --git a/src/main/java/com/youlai/boot/system/service/impl/UserServiceImpl.java b/youlai-system/src/main/java/com/youlai/boot/system/service/impl/UserServiceImpl.java similarity index 100% rename from src/main/java/com/youlai/boot/system/service/impl/UserServiceImpl.java rename to youlai-system/src/main/java/com/youlai/boot/system/service/impl/UserServiceImpl.java diff --git a/src/main/java/com/youlai/boot/system/service/impl/UserSocialServiceImpl.java b/youlai-system/src/main/java/com/youlai/boot/system/service/impl/UserSocialServiceImpl.java similarity index 100% rename from src/main/java/com/youlai/boot/system/service/impl/UserSocialServiceImpl.java rename to youlai-system/src/main/java/com/youlai/boot/system/service/impl/UserSocialServiceImpl.java diff --git a/src/main/resources/mapper/system/ConfigMapper.xml b/youlai-system/src/main/resources/mapper/system/ConfigMapper.xml similarity index 100% rename from src/main/resources/mapper/system/ConfigMapper.xml rename to youlai-system/src/main/resources/mapper/system/ConfigMapper.xml diff --git a/src/main/resources/mapper/system/DeptMapper.xml b/youlai-system/src/main/resources/mapper/system/DeptMapper.xml similarity index 100% rename from src/main/resources/mapper/system/DeptMapper.xml rename to youlai-system/src/main/resources/mapper/system/DeptMapper.xml diff --git a/src/main/resources/mapper/system/DictItemMapper.xml b/youlai-system/src/main/resources/mapper/system/DictItemMapper.xml similarity index 100% rename from src/main/resources/mapper/system/DictItemMapper.xml rename to youlai-system/src/main/resources/mapper/system/DictItemMapper.xml diff --git a/src/main/resources/mapper/system/DictMapper.xml b/youlai-system/src/main/resources/mapper/system/DictMapper.xml similarity index 100% rename from src/main/resources/mapper/system/DictMapper.xml rename to youlai-system/src/main/resources/mapper/system/DictMapper.xml diff --git a/src/main/resources/mapper/system/LogMapper.xml b/youlai-system/src/main/resources/mapper/system/LogMapper.xml similarity index 100% rename from src/main/resources/mapper/system/LogMapper.xml rename to youlai-system/src/main/resources/mapper/system/LogMapper.xml diff --git a/src/main/resources/mapper/system/MenuMapper.xml b/youlai-system/src/main/resources/mapper/system/MenuMapper.xml similarity index 100% rename from src/main/resources/mapper/system/MenuMapper.xml rename to youlai-system/src/main/resources/mapper/system/MenuMapper.xml diff --git a/src/main/resources/mapper/system/NoticeMapper.xml b/youlai-system/src/main/resources/mapper/system/NoticeMapper.xml similarity index 100% rename from src/main/resources/mapper/system/NoticeMapper.xml rename to youlai-system/src/main/resources/mapper/system/NoticeMapper.xml diff --git a/src/main/resources/mapper/system/RoleDeptMapper.xml b/youlai-system/src/main/resources/mapper/system/RoleDeptMapper.xml similarity index 100% rename from src/main/resources/mapper/system/RoleDeptMapper.xml rename to youlai-system/src/main/resources/mapper/system/RoleDeptMapper.xml diff --git a/src/main/resources/mapper/system/RoleMapper.xml b/youlai-system/src/main/resources/mapper/system/RoleMapper.xml similarity index 100% rename from src/main/resources/mapper/system/RoleMapper.xml rename to youlai-system/src/main/resources/mapper/system/RoleMapper.xml diff --git a/src/main/resources/mapper/system/RoleMenuMapper.xml b/youlai-system/src/main/resources/mapper/system/RoleMenuMapper.xml similarity index 100% rename from src/main/resources/mapper/system/RoleMenuMapper.xml rename to youlai-system/src/main/resources/mapper/system/RoleMenuMapper.xml diff --git a/src/main/resources/mapper/system/UserMapper.xml b/youlai-system/src/main/resources/mapper/system/UserMapper.xml similarity index 100% rename from src/main/resources/mapper/system/UserMapper.xml rename to youlai-system/src/main/resources/mapper/system/UserMapper.xml diff --git a/src/main/resources/mapper/system/UserNoticeMapper.xml b/youlai-system/src/main/resources/mapper/system/UserNoticeMapper.xml similarity index 100% rename from src/main/resources/mapper/system/UserNoticeMapper.xml rename to youlai-system/src/main/resources/mapper/system/UserNoticeMapper.xml diff --git a/src/main/resources/mapper/system/UserRoleMapper.xml b/youlai-system/src/main/resources/mapper/system/UserRoleMapper.xml similarity index 100% rename from src/main/resources/mapper/system/UserRoleMapper.xml rename to youlai-system/src/main/resources/mapper/system/UserRoleMapper.xml diff --git a/src/main/resources/mapper/system/UserSocialMapper.xml b/youlai-system/src/main/resources/mapper/system/UserSocialMapper.xml similarity index 100% rename from src/main/resources/mapper/system/UserSocialMapper.xml rename to youlai-system/src/main/resources/mapper/system/UserSocialMapper.xml