# ZDXT 执法码管理系统 > 基于 [zdxt-Vue-Plus](https://gitee.com/dromara/zdxt-Vue-Plus) v5.6.0 二次开发的多租户执法码管理平台,前后端分离架构。 --- ## 技术栈 | 层级 | 技术 | 版本 | |------|------|------| | **后端框架** | Spring Boot | 3.5.12 | | **服务网关** | Spring Cloud Gateway | 2025.0.0 | | **ORM** | MyBatis-Plus | 3.5.16 | | **权限认证** | Sa-Token + JWT | 1.44.0 | | **缓存** | Redis + Redisson | 3.52.0 | | **数据库** | MySQL | — | | **定时任务** | Quartz | — | | **接口文档** | SpringDoc OpenAPI | 2.8.15 | | **工具库** | Hutool | 5.8.43 | | **对象映射** | MapStruct Plus | 1.5.0 | | **前端管理端** | Vue 3 + Element Plus + Vite | Vue 3.5 / Vite 6.4 | | **前端移动端** | Vue 3 + Vant 4 + Vite | Vue 3.4 / Vite 6.2 | | **编译要求** | JDK | ≥ 17 | --- ## 工程结构 ``` zdxt-Vue-Plus/ ├── zdxt-common/ # 通用模块(24 个子模块) │ ├── zdxt-common-bom # 依赖清单 BOM │ ├── zdxt-common-core # 核心工具 │ ├── zdxt-common-mybatis # MyBatis-Plus 封装 │ ├── zdxt-common-redis # Redis & Redisson 封装 │ ├── zdxt-common-satoken # Sa-Token 集成 │ ├── zdxt-common-security # 安全模块 │ ├── zdxt-common-web # Web 通用配置 │ ├── zdxt-common-oss # 对象存储 │ ├── zdxt-common-excel # Excel 导入导出 │ ├── zdxt-common-doc # 接口文档 │ ├── zdxt-common-log # 操作日志 │ ├── zdxt-common-tenant # 多租户 │ ├── zdxt-common-encrypt # 数据加密 │ ├── zdxt-common-idempotent # 幂等控制 │ ├── zdxt-common-ratelimiter # 限流 │ ├── zdxt-common-sensitive # 数据脱敏 │ ├── zdxt-common-translation # 翻译模块 │ ├── zdxt-common-mail # 邮件 │ ├── zdxt-common-sms # 短信 │ ├── zdxt-common-social # 第三方登录 │ ├── zdxt-common-sse # SSE 推送 │ ├── zdxt-common-websocket # WebSocket │ ├── zdxt-common-json # JSON 处理 │ └── zdxt-common-quartz # Quartz 定时任务 │ ├── zdxt-modules/ # 业务模块 │ ├── zdxt-system # 系统管理(用户/角色/菜单/部门等) │ ├── zdxt-generator # 代码生成器 │ ├── zdxt-demo # 演示模块 │ └── zdxt-enforcement-code # ★ 执法码核心业务模块 │ └── com.zdxt.enforcementcode │ ├── controller/ # 控制器 │ ├── domain/ # 实体 & DTO & VO │ ├── mapper/ # 数据访问层 │ ├── service/ # 业务逻辑层 │ ├── util/ # 工具类(二维码生成、文件处理等) │ ├── quartz/ # 定时任务 │ └── runner/ # 启动执行器 │ ├── zdxt-extend/ # 扩展模块 │ └── zdxt-monitor-admin # Spring Boot Admin 监控中心 │ ├── zdxt-web-server/ # 服务端入口 │ ├── zdxt-admin-web-server # 主应用服务(端口 8080) │ └── zdxt-gateway-web-server # API 网关(Spring Cloud Gateway) │ ├── zdxt-web-client/ # 前端工程 │ ├── zdxt-admin-plus-ui # 管理后台(Vue3 + Element Plus) │ └── zdxt-enforcement-code-app # 移动端 H5(Vue3 + Vant4) │ ├── enterprise-dev / enterprise-prod # 企业端(双环境) │ └── enforcement-dev / enforcement-prod # 执法端(双环境) │ ├── cmd/ # 打包脚本 │ ├── all-package.bat # 一键全量打包(前后端) │ ├── ep-package.bat / ep-package.ps1 # 后端打包 │ └── client-package.bat / client-package.ps1 # 前端打包 │ ├── script/ # 脚本 & 配置 │ ├── sql/ # 数据库脚本 │ │ ├── ry_vue_5.X.sql # 基础表结构 │ │ ├── ry_job.sql # 定时任务表 │ │ └── zfjd-refactoring-v1/ # 执法码业务迁移脚本 │ ├── docker/ # Docker 部署配置 │ └── bin/ # 启停脚本 │ └── dist/ # 打包产物输出目录 ``` --- ## 环境要求 | 依赖 | 最低版本 | |------|---------| | JDK | 17 | | Node.js | 20.15.0 | | npm | 8.19.0 | | MySQL | 8.x | | Redis | 6.x | --- ## 多环境配置 项目支持三套环境,通过 Maven Profile 切换: | Profile | 用途 | 日志级别 | 默认激活 | |---------|------|---------|---------| | `local` | 本地开发 | info | — | | `dev` | 开发/测试环境 | info | ✅ | | `prod` | 生产环境 | warn | — | 后端配置文件位于 `zdxt-web-server/zdxt-admin-web-server/src/main/resources/`: - `application.yml` — 通用配置 - `application-dev.yml` — 开发环境 - `application-prod.yml` — 生产环境 - `application-{env}-{endpoint}-ep.yml` — 多端点差异化配置(sup / ent / enf) 前端移动端支持 4 种构建模式: - `enterprise-dev` / `enterprise-prod` — 企业端 - `enforcement-dev` / `enforcement-prod` — 执法端 --- ## 快速开始 ### 1. 后端启动 ```bash # 1) 初始化数据库 # 创建 MySQL 数据库,执行 script/sql/ 下的 SQL 脚本 # 2) 修改配置 # 编辑 application-dev.yml 中的数据库连接、Redis 地址 # 3) 启动主应用 # IDEA 运行 zdxt-admin-web-server 下的 SpringBoot 启动类 # 默认端口: 8080 ``` ### 2. 前端启动 ```bash # 管理后台 cd zdxt-web-client/zdxt-admin-plus-ui npm install npm run web-vite-supervision-dev # 移动端 H5(企业端/开发环境为例) cd zdxt-web-client/zdxt-enforcement-code-app npm install npm run app-vite:enterprise-dev ``` ### 3. 一键打包 ```bash # 全量打包(前后端) cmd/all-package.bat dev # 仅后端打包 cmd/ep-package.bat dev # 仅前端打包 cmd/client-package.bat dev ``` 打包产物输出至 `dist/{时间戳}_{环境}/` 目录,包含: - `zdxt-sup-web/` — 管理后台前端 - `zdxt-ent-app/` — 企业端 H5 - `zdxt-enf-app/` — 执法端 H5 - `zdxt-admin-web-server.jar` — 后端服务 --- ## 核心功能 ### 基础平台(继承自 zdxt-Vue-Plus) - 多租户管理(基于 SaaS 模式) - 用户 / 角色 / 菜单 / 部门权限管理 - Sa-Token + JWT 认证授权 - 操作日志 / 登录日志 - 数据字典 / 参数配置 - 代码生成器 - 接口文档(SpringDoc OpenAPI) - 分布式锁(Lock4j + Redisson) - 文件存储(OSS) - SSE 实时推送 - XSS 防御 / 接口加密 / 幂等控制 / 限流 ### 执法码业务(zdxt-enforcement-code 模块) - 执法码核心业务管理 - 二维码生成(基于 ZXing) - 本地文件上传与管理 - 企业端 / 执法端双端 H5 应用 - 定时任务调度(Quartz) --- ## 常见问题 ### IDEA 运行测试报 "Command line is too long" 项目依赖多,Windows 下 classpath 超过 8191 字符限制。 **解决方法**:`Run → Edit Configurations → Shorten command line → JAR manifest` 建议修改 JUnit 配置模板(Edit configuration templates → JUnit),一劳永逸。