You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
3 weeks ago | |
|---|---|---|
| .run | 5 months ago | |
| cmd | 3 months ago | |
| doc | 1 month ago | |
| ng | 4 weeks ago | |
| script | 4 weeks ago | |
| zdxt-common | 4 weeks ago | |
| zdxt-extend | 5 months ago | |
| zdxt-modules | 3 weeks ago | |
| zdxt-web-client | 3 weeks ago | |
| zdxt-web-server | 3 weeks ago | |
| .editorconfig | 5 months ago | |
| .gitignore | 2 months ago | |
| LICENSE | 5 months ago | |
| README.md | 5 months ago | |
| pom.xml | 3 weeks ago | |
README.md
ZDXT 执法码管理系统
基于 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. 后端启动
# 1) 初始化数据库
# 创建 MySQL 数据库,执行 script/sql/ 下的 SQL 脚本
# 2) 修改配置
# 编辑 application-dev.yml 中的数据库连接、Redis 地址
# 3) 启动主应用
# IDEA 运行 zdxt-admin-web-server 下的 SpringBoot 启动类
# 默认端口: 8080
2. 前端启动
# 管理后台
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. 一键打包
# 全量打包(前后端)
cmd/all-package.bat dev
# 仅后端打包
cmd/ep-package.bat dev
# 仅前端打包
cmd/client-package.bat dev
打包产物输出至 dist/{时间戳}_{环境}/ 目录,包含:
zdxt-sup-web/— 管理后台前端zdxt-ent-app/— 企业端 H5zdxt-enf-app/— 执法端 H5zdxt-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),一劳永逸。