格式化代码

This commit is contained in:
2026-04-21 16:49:29 +08:00
parent f9d96473da
commit 8f6a5bd3e7
2 changed files with 194 additions and 210 deletions

View File

@@ -139,22 +139,17 @@ graph LR
User[用户] --> Login[登录认证] User[用户] --> Login[登录认证]
User --> Menu[菜单访问] User --> Menu[菜单访问]
User --> Data[数据操作] User --> Data[数据操作]
Login --> Auth[认证授权] Login --> Auth[认证授权]
Auth --> Token[Token管理] Auth --> Token[Token管理]
Auth --> Redis[Redis缓存] Auth --> Redis[Redis缓存]
Menu --> Perm[权限验证] Menu --> Perm[权限验证]
Role[角色] --> Perm Role[角色] --> Perm
Data --> LogFilter[日志过滤器] Data --> LogFilter[日志过滤器]
LogFilter --> LogBus[日志总线] LogFilter --> LogBus[日志总线]
LogBus --> MQ[RabbitMQ] LogBus --> MQ[RabbitMQ]
MQ --> LogMq[日志消费者] MQ --> LogMq[日志消费者]
LogMq --> ES[Elasticsearch] LogMq --> ES[Elasticsearch]
Cache[Redis缓存] --> Data Cache[Redis缓存] --> Data
Gen[代码生成] --> DB[数据库] Gen[代码生成] --> DB[数据库]
Gen --> Velocity[Velocity模板] Gen --> Velocity[Velocity模板]
``` ```
@@ -170,7 +165,6 @@ graph TD
xtools-app --> gen[xtools-app-gen<br/>代码生成模块] xtools-app --> gen[xtools-app-gen<br/>代码生成模块]
xtools-app --> monitor[xtools-app-monitor<br/>监控模块] xtools-app --> monitor[xtools-app-monitor<br/>监控模块]
xtools-app --> standalone[xtools-app-standalone<br/>单体部署模块] xtools-app --> standalone[xtools-app-standalone<br/>单体部署模块]
common --> cache[common-cache<br/>缓存模块] common --> cache[common-cache<br/>缓存模块]
common --> call[common-call<br/>远程调用模块] common --> call[common-call<br/>远程调用模块]
common --> jar[common-jar<br/>JAR管理模块] common --> jar[common-jar<br/>JAR管理模块]
@@ -179,10 +173,8 @@ graph TD
common --> mq[common-mq<br/>消息队列模块] common --> mq[common-mq<br/>消息队列模块]
common --> sentinel[common-sentinel<br/>限流模块] common --> sentinel[common-sentinel<br/>限流模块]
common --> task[common-task<br/>异步任务模块] common --> task[common-task<br/>异步任务模块]
log --> log-bus[log-bus<br/>日志总线] log --> log-bus[log-bus<br/>日志总线]
log --> log-filter[log-filter<br/>日志过滤器] log --> log-filter[log-filter<br/>日志过滤器]
sys --> sys-api[sys-api<br/>系统API接口] sys --> sys-api[sys-api<br/>系统API接口]
sys --> sys-auth[sys-auth<br/>认证授权] sys --> sys-auth[sys-auth<br/>认证授权]
sys --> sys-biz[sys-biz<br/>系统业务逻辑] sys --> sys-biz[sys-biz<br/>系统业务逻辑]
@@ -194,10 +186,8 @@ graph TD
sys --> sys-param[sys-param<br/>系统参数] sys --> sys-param[sys-param<br/>系统参数]
sys --> sys-scheduled[sys-scheduled<br/>定时任务] sys --> sys-scheduled[sys-scheduled<br/>定时任务]
sys --> sys-risk[sys-risk<br/>风控管理] sys --> sys-risk[sys-risk<br/>风控管理]
gen --> gen-biz[gen-biz<br/>代码生成业务] gen --> gen-biz[gen-biz<br/>代码生成业务]
gen --> gen-boot[gen-boot<br/>代码生成微服务启动] gen --> gen-boot[gen-boot<br/>代码生成微服务启动]
monitor --> monitor-boot[monitor-boot<br/>监控服务端] monitor --> monitor-boot[monitor-boot<br/>监控服务端]
monitor --> monitor-client[monitor-client<br/>监控客户端] monitor --> monitor-client[monitor-client<br/>监控客户端]
``` ```
@@ -236,7 +226,6 @@ flowchart TB
A1 --> A2 --> A3 --> B1 A1 --> A2 --> A3 --> B1
B1 --> B2 --> B3 --> C1 B1 --> B2 --> B3 --> C1
C1 --> C2 --> C3 C1 --> C2 --> C3
A1 -.-> D1 A1 -.-> D1
A1 -.-> D2 A1 -.-> D2
A1 -.-> D3 A1 -.-> D3
@@ -246,7 +235,7 @@ flowchart TB
### 2.3 模块职责 ### 2.3 模块职责
| 层级 | 模块 | 职责说明 | | 层级 | 模块 | 职责说明 |
|------|------|----------| |------------------|-----------------------------------------|-------------------------------------------------|
| **Controller层** | SysUserController、SysLoginController等 | 接收HTTP请求、参数验证@Valid、调用Service层、返回统一响应Result | | **Controller层** | SysUserController、SysLoginController等 | 接收HTTP请求、参数验证@Valid、调用Service层、返回统一响应Result |
| **Service层** | SysUserServiceImpl、SysLoginServiceImpl等 | 实现业务逻辑、事务控制(@Transactional、调用Mapper层、缓存操作 | | **Service层** | SysUserServiceImpl、SysLoginServiceImpl等 | 实现业务逻辑、事务控制(@Transactional、调用Mapper层、缓存操作 |
| **BaseService层** | SysUserBaseService等 | 继承MyBatis-Plus ServiceImpl提供基础CRUD操作 | | **BaseService层** | SysUserBaseService等 | 继承MyBatis-Plus ServiceImpl提供基础CRUD操作 |
@@ -288,7 +277,7 @@ xtools.app.{module}
项目支持两种部署模式: 项目支持两种部署模式:
| 模块 | 说明 | | 模块 | 说明 |
|------|------| |-----------------------------|-----------------------------------------------------|
| **xtools-app-standalone** | 单体部署模式,包含所有模块,通过 spring-boot-maven-plugin 打包为可执行JAR | | **xtools-app-standalone** | 单体部署模式,包含所有模块,通过 spring-boot-maven-plugin 打包为可执行JAR |
| **xtools-app-sys-boot** | 微服务模式 - 系统管理服务 | | **xtools-app-sys-boot** | 微服务模式 - 系统管理服务 |
| **xtools-app-gen-boot** | 微服务模式 - 代码生成服务 | | **xtools-app-gen-boot** | 微服务模式 - 代码生成服务 |
@@ -321,6 +310,7 @@ flowchart TD
#### 验证码机制 #### 验证码机制
系统支持两种验证码模式(随机切换): 系统支持两种验证码模式(随机切换):
- **GIF动态验证码**:基于 Easy Captcha 生成动态图片验证码 - **GIF动态验证码**:基于 Easy Captcha 生成动态图片验证码
- **算术验证码**:随机生成加减法算术题图片 - **算术验证码**:随机生成加减法算术题图片
@@ -332,10 +322,8 @@ flowchart TD
graph TD graph TD
User[用户 SysUser] -->|多对多| UserRole[用户角色关联<br/>SysUserRole] User[用户 SysUser] -->|多对多| UserRole[用户角色关联<br/>SysUserRole]
UserRole -->|多对多| Role[角色 SysRole] UserRole -->|多对多| Role[角色 SysRole]
Role -->|多对多| RoleMenu[角色菜单关联<br/>SysRoleMenu] Role -->|多对多| RoleMenu[角色菜单关联<br/>SysRoleMenu]
RoleMenu -->|多对多| Menu[菜单权限 SysMenu] RoleMenu -->|多对多| Menu[菜单权限 SysMenu]
Menu --> M1[页面菜单] Menu --> M1[页面菜单]
Menu --> M2[按钮权限] Menu --> M2[按钮权限]
Menu --> M3[接口权限] Menu --> M3[接口权限]
@@ -348,13 +336,11 @@ flowchart TD
A[用户发起请求] --> B{判断请求类型} A[用户发起请求] --> B{判断请求类型}
B -->|微服务请求| C[验证Cloud Token] B -->|微服务请求| C[验证Cloud Token]
B -->|常规请求| D[获取请求URI] B -->|常规请求| D[获取请求URI]
C --> C1{Token有效?} C --> C1{Token有效?}
C1 -->|无效| C2[返回UNAUTHORIZED] C1 -->|无效| C2[返回UNAUTHORIZED]
C1 -->|有效| C3[传递头部信息] C1 -->|有效| C3[传递头部信息]
C3 --> C4[校验掩码设置] C3 --> C4[校验掩码设置]
C4 --> C5[放行请求] C4 --> C5[放行请求]
D --> D1{URI在权限白名单?} D --> D1{URI在权限白名单?}
D1 -->|是| D2[放行请求] D1 -->|是| D2[放行请求]
D1 -->|否| D3{获取UID} D1 -->|否| D3{获取UID}
@@ -373,6 +359,7 @@ flowchart TD
#### 认证模式 #### 认证模式
系统支持两种认证模式,通过请求头 `Cloud` 标识区分: 系统支持两种认证模式,通过请求头 `Cloud` 标识区分:
- **微服务认证**:验证 Cloud Token一次性令牌Redis Hash存储 - **微服务认证**:验证 Cloud Token一次性令牌Redis Hash存储
- **常规认证**:验证 UID + AccessToken + URI权限 - **常规认证**:验证 UID + AccessToken + URI权限
@@ -394,7 +381,7 @@ flowchart LR
#### 日志类型 #### 日志类型
| 类型 | 说明 | 处理方式 | | 类型 | 说明 | 处理方式 |
|------|------|----------| |------|----------|---------------------------------|
| 操作日志 | 用户操作行为记录 | LogFilter采集 -> MQ -> ES | | 操作日志 | 用户操作行为记录 | LogFilter采集 -> MQ -> ES |
| 系统日志 | 系统运行日志 | LogBus记录 -> MQ -> ES | | 系统日志 | 系统运行日志 | LogBus记录 -> MQ -> ES |
| 任务日志 | 定时任务执行日志 | BaseJob记录 -> LogBus -> MQ -> ES | | 任务日志 | 定时任务执行日志 | BaseJob记录 -> LogBus -> MQ -> ES |
@@ -416,22 +403,17 @@ flowchart TD
A[配置数据源] --> B[测试连接] A[配置数据源] --> B[测试连接]
B --> C[同步数据库] B --> C[同步数据库]
C --> D{读取表信息} C --> D{读取表信息}
D --> E[获取表列表<br/>DatabaseMetaData] D --> E[获取表列表<br/>DatabaseMetaData]
E --> F[过滤排除表] E --> F[过滤排除表]
F --> G[生成表信息<br/>GenTable] F --> G[生成表信息<br/>GenTable]
G --> H[获取字段信息<br/>DatabaseMetaData] G --> H[获取字段信息<br/>DatabaseMetaData]
H --> I[处理字段类型<br/>类型映射,表单类型] H --> I[处理字段类型<br/>类型映射,表单类型]
I --> J[生成字段信息<br/>GenTableColumn] I --> J[生成字段信息<br/>GenTableColumn]
J --> K[保存到数据库] J --> K[保存到数据库]
K --> L{用户操作} K --> L{用户操作}
L -->|预览代码| M[Velocity渲染模板] L -->|预览代码| M[Velocity渲染模板]
L -->|下载代码| N[Velocity渲染模板] L -->|下载代码| N[Velocity渲染模板]
L -->|修改配置| O[保存表和字段配置] L -->|修改配置| O[保存表和字段配置]
M --> P[返回代码列表<br/>GenCodeDto] M --> P[返回代码列表<br/>GenCodeDto]
N --> Q[打包ZIP下载] N --> Q[打包ZIP下载]
``` ```
@@ -447,7 +429,7 @@ flowchart TD
#### 代码生成特性 #### 代码生成特性
| 特性 | 说明 | | 特性 | 说明 |
|------|------| |--------|---------------------------|
| 多数据源 | 支持 MySQL 等多种数据库类型 | | 多数据源 | 支持 MySQL 等多种数据库类型 |
| 表结构同步 | 自动读取表和字段元数据 | | 表结构同步 | 自动读取表和字段元数据 |
| 智能类型映射 | 自动将数据库类型映射为 Java 类型 | | 智能类型映射 | 自动将数据库类型映射为 Java 类型 |
@@ -478,7 +460,7 @@ flowchart TD
#### 任务类型 #### 任务类型
| 类型 | 实现方式 | 说明 | | 类型 | 实现方式 | 说明 |
|------|----------|------| |----------|-------------------------------|--------------------|
| 异步任务 | `BaseJob implements Runnable` | 支持分布式锁,防止重复执行 | | 异步任务 | `BaseJob implements Runnable` | 支持分布式锁,防止重复执行 |
| XXL-JOB | `xtools-boot-job-xxl`(可选) | 分布式任务调度平台 | | XXL-JOB | `xtools-boot-job-xxl`(可选) | 分布式任务调度平台 |
| 定时任务 | `SysScheduled` | Spring Task 定时任务管理 | | 定时任务 | `SysScheduled` | Spring Task 定时任务管理 |
@@ -496,7 +478,7 @@ flowchart TD
#### 缓存策略 #### 缓存策略
| 缓存Key | 说明 | 过期时间 | | 缓存Key | 说明 | 过期时间 |
|---------|------|----------| |------------------------------------|----------|------|
| `xtools-app:uid:{uid}:sm2` | SM2公钥缓存 | 5分钟 | | `xtools-app:uid:{uid}:sm2` | SM2公钥缓存 | 5分钟 |
| `xtools-app:uid:{uid}:captcha` | 验证码缓存 | 60秒 | | `xtools-app:uid:{uid}:captcha` | 验证码缓存 | 60秒 |
| `xtools-app:auth:sys:user:{token}` | 用户认证信息 | 1小时 | | `xtools-app:auth:sys:user:{token}` | 用户认证信息 | 1小时 |
@@ -537,7 +519,7 @@ graph TD
项目支持多种文件存储方式(通过 `xtools-app-standalone` 可选配置): 项目支持多种文件存储方式(通过 `xtools-app-standalone` 可选配置):
| 存储方式 | 模块 | 说明 | | 存储方式 | 模块 | 说明 |
|---------|------|------| |------|----------------------------|--------------|
| S3存储 | `xtools-boot-storage-s3` | 兼容S3协议的对象存储 | | S3存储 | `xtools-boot-storage-s3` | 兼容S3协议的对象存储 |
| 本地文件 | `xtools-boot-storage-file` | 本地文件系统存储(可选) | | 本地文件 | `xtools-boot-storage-file` | 本地文件系统存储(可选) |
@@ -548,7 +530,7 @@ graph TD
#### 类命名 #### 类命名
| 类型 | 命名规范 | 示例 | | 类型 | 命名规范 | 示例 |
|------|----------|------| |--------------|-------------------------------|----------------------------------|
| 实体类 | `Sys` + 模块名 | `SysUser``SysRole``SysMenu` | | 实体类 | `Sys` + 模块名 | `SysUser``SysRole``SysMenu` |
| 请求DTO | 模块名 + `Req` | `SysUserAddReq``SysUserPageReq` | | 请求DTO | 模块名 + `Req` | `SysUserAddReq``SysUserPageReq` |
| 响应DTO | 模块名 + `Resp` | `GenTableInfoResp` | | 响应DTO | 模块名 + `Resp` | `GenTableInfoResp` |
@@ -565,7 +547,7 @@ graph TD
#### 方法命名 #### 方法命名
| 操作 | 命名规范 | 示例 | | 操作 | 命名规范 | 示例 |
|------|----------|------| |------|-------------------------|------------------|
| 查询单个 | `getXxx` | `getUserInfo()` | | 查询单个 | `getXxx` | `getUserInfo()` |
| 分页查询 | `pageXxx` | `pageSysUser()` | | 分页查询 | `pageXxx` | `pageSysUser()` |
| 新增 | `addXxx` / `saveXxx` | `addSysUser()` | | 新增 | `addXxx` / `saveXxx` | `addSysUser()` |
@@ -642,7 +624,7 @@ private static final String CLOUD_FLAG = String.valueOf(Boolean.TRUE);
### 5.1 核心框架依赖 ### 5.1 核心框架依赖
| 依赖 | 版本 | 用途 | | 依赖 | 版本 | 用途 |
|------|------|------| |-----------------------------|------------|-----------|
| Spring Boot | 4.0.5 | 应用框架 | | Spring Boot | 4.0.5 | 应用框架 |
| Spring Framework | 7.0.6 | 核心框架 | | Spring Framework | 7.0.6 | 核心框架 |
| Spring Cloud | 2025.1.1 | 微服务框架 | | Spring Cloud | 2025.1.1 | 微服务框架 |
@@ -654,7 +636,7 @@ private static final String CLOUD_FLAG = String.valueOf(Boolean.TRUE);
### 5.2 数据存储依赖 ### 5.2 数据存储依赖
| 依赖 | 版本 | 用途 | | 依赖 | 版本 | 用途 |
|------|------|------| |----------------------|-----------------|-------------|
| Druid | 1.2.28 | 数据库连接池 | | Druid | 1.2.28 | 数据库连接池 |
| MySQL Connector/J | 9.6.0 | MySQL数据库驱动 | | MySQL Connector/J | 9.6.0 | MySQL数据库驱动 |
| Elasticsearch Client | 9.2.6 | ES搜索引擎客户端 | | Elasticsearch Client | 9.2.6 | ES搜索引擎客户端 |
@@ -666,7 +648,7 @@ private static final String CLOUD_FLAG = String.valueOf(Boolean.TRUE);
### 5.3 微服务相关依赖 ### 5.3 微服务相关依赖
| 依赖 | 版本 | 用途 | | 依赖 | 版本 | 用途 |
|------|------|------| |--------------|-------|-----------|
| Nacos Client | 3.1.1 | 服务注册与配置中心 | | Nacos Client | 3.1.1 | 服务注册与配置中心 |
| Sentinel | 1.8.9 | 流量控制与熔断降级 | | Sentinel | 1.8.9 | 流量控制与熔断降级 |
| Seata | 2.5.0 | 分布式事务(可用) | | Seata | 2.5.0 | 分布式事务(可用) |
@@ -675,7 +657,7 @@ private static final String CLOUD_FLAG = String.valueOf(Boolean.TRUE);
### 5.4 工具库依赖 ### 5.4 工具库依赖
| 依赖 | 版本 | 用途 | | 依赖 | 版本 | 用途 |
|------|------|------| |---------------|---------|------------|
| Lombok | 1.18.44 | 代码简化 | | Lombok | 1.18.44 | 代码简化 |
| MapStruct | 1.6.3 | 对象映射 | | MapStruct | 1.6.3 | 对象映射 |
| FastJSON2 | 2.0.60 | JSON处理 | | FastJSON2 | 2.0.60 | JSON处理 |
@@ -689,7 +671,7 @@ private static final String CLOUD_FLAG = String.valueOf(Boolean.TRUE);
### 5.5 安全相关依赖 ### 5.5 安全相关依赖
| 依赖 | 版本 | 用途 | | 依赖 | 版本 | 用途 |
|------|------|------| |-------------------------------|-------|---------------|
| BouncyCastle (bcprov-jdk18on) | 1.84 | 国密算法SM2/SM3 | | BouncyCastle (bcprov-jdk18on) | 1.84 | 国密算法SM2/SM3 |
| Easy Captcha | 1.6.2 | 验证码生成 | | Easy Captcha | 1.6.2 | 验证码生成 |
| java-jwt | 4.5.1 | JWT令牌 | | java-jwt | 4.5.1 | JWT令牌 |
@@ -697,7 +679,7 @@ private static final String CLOUD_FLAG = String.valueOf(Boolean.TRUE);
### 5.6 文档相关依赖 ### 5.6 文档相关依赖
| 依赖 | 版本 | 用途 | | 依赖 | 版本 | 用途 |
|------|------|------| |---------------------|--------|-----------|
| Knife4j | 4.5.0 | API文档增强 | | Knife4j | 4.5.0 | API文档增强 |
| SpringDoc OpenAPI | 3.0.3 | OpenAPI文档 | | SpringDoc OpenAPI | 3.0.3 | OpenAPI文档 |
| Swagger Annotations | 2.2.48 | API注解 | | Swagger Annotations | 2.2.48 | API注解 |
@@ -705,7 +687,7 @@ private static final String CLOUD_FLAG = String.valueOf(Boolean.TRUE);
### 5.7 系统监控依赖 ### 5.7 系统监控依赖
| 依赖 | 版本 | 用途 | | 依赖 | 版本 | 用途 |
|------|------|------| |-------------------|--------|--------|
| Spring Boot Admin | 4.0.3 | 应用监控 | | Spring Boot Admin | 4.0.3 | 应用监控 |
| OSHI Core | 6.11.1 | 系统信息采集 | | OSHI Core | 6.11.1 | 系统信息采集 |
| Micrometer | 1.16.4 | 指标采集 | | Micrometer | 1.16.4 | 指标采集 |
@@ -713,7 +695,7 @@ private static final String CLOUD_FLAG = String.valueOf(Boolean.TRUE);
### 5.8 文件处理依赖 ### 5.8 文件处理依赖
| 依赖 | 版本 | 用途 | | 依赖 | 版本 | 用途 |
|------|------|------| |---------------|------------------|-----------|
| Fesod Sheet | 2.0.1-incubating | Excel处理 | | Fesod Sheet | 2.0.1-incubating | Excel处理 |
| PDFBox | 3.0.7 | PDF处理 | | PDFBox | 3.0.7 | PDF处理 |
| Thumbnailator | 0.4.21 | 图片压缩 | | Thumbnailator | 0.4.21 | 图片压缩 |
@@ -722,7 +704,7 @@ private static final String CLOUD_FLAG = String.valueOf(Boolean.TRUE);
### 5.9 其他工具依赖 ### 5.9 其他工具依赖
| 依赖 | 版本 | 用途 | | 依赖 | 版本 | 用途 |
|------|------|------| |----------------|--------|---------|
| XXL-Job Core | 3.4.0 | 分布式任务调度 | | XXL-Job Core | 3.4.0 | 分布式任务调度 |
| IP2Region | 3.3.7 | IP归属地查询 | | IP2Region | 3.3.7 | IP归属地查询 |
| UserAgentUtils | 1.21 | 浏览器标识解析 | | UserAgentUtils | 1.21 | 浏览器标识解析 |
@@ -734,7 +716,7 @@ private static final String CLOUD_FLAG = String.valueOf(Boolean.TRUE);
### 5.10 xtools 内部框架依赖 ### 5.10 xtools 内部框架依赖
| 依赖 | 版本 | 用途 | | 依赖 | 版本 | 用途 |
|------|------|------| |-------------------------------|-------|-----------------------|
| xtools-core | 5.0.0 | 核心工具库 | | xtools-core | 5.0.0 | 核心工具库 |
| xtools-web | 5.0.0 | Web工具库 | | xtools-web | 5.0.0 | Web工具库 |
| xtools-extend | 5.0.0 | 扩展工具库 | | xtools-extend | 5.0.0 | 扩展工具库 |
@@ -844,7 +826,7 @@ private static final String CLOUD_FLAG = String.valueOf(Boolean.TRUE);
### 6.9 其他重要依赖版本 ### 6.9 其他重要依赖版本
| 依赖 | 版本 | 用途 | | 依赖 | 版本 | 用途 |
|------|------|------| |----------------------|------------------|-----------|
| Spring Cloud Alibaba | 2025.1.0.0 | 微服务框架 | | Spring Cloud Alibaba | 2025.1.0.0 | 微服务框架 |
| Nacos | 3.1.1 | 服务注册与配置中心 | | Nacos | 3.1.1 | 服务注册与配置中心 |
| Sentinel | 1.8.9 | 流量控制与熔断 | | Sentinel | 1.8.9 | 流量控制与熔断 |

View File

@@ -8,13 +8,15 @@
REPLACE(sr.DATA, #{ip}, ''), REPLACE(sr.DATA, #{ip}, ''),
#{ip} #{ip}
) )
WHERE sr.type = #{type} AND sr.sys_type = #{sysType} WHERE sr.type = #{type}
AND sr.sys_type = #{sysType}
</update> </update>
<!-- 移除IP --> <!-- 移除IP -->
<update id="removeIp"> <update id="removeIp">
UPDATE sys_risk sr UPDATE sys_risk sr
SET sr.DATA = REPLACE(sr.DATA, #{ip}, '') SET sr.DATA = REPLACE(sr.DATA, #{ip}, '')
WHERE sr.type = #{type} AND sr.sys_type = #{sysType} WHERE sr.type = #{type}
AND sr.sys_type = #{sysType}
</update> </update>
</mapper> </mapper>