# smart-admin-postgres **Repository Path**: hexiaolv03/smart-admin-postgres ## Basic Information - **Project Name**: smart-admin-postgres - **Description**: postgresql 数据库版本 - **Primary Language**: Java - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2025-12-09 - **Last Updated**: 2026-02-06 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # SmartAdmin PostgreSQL 版 [![License](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE) [![Java](https://img.shields.io/badge/Java-21-orange.svg)](https://openjdk.org/projects/jdk/21/) [![Spring Boot](https://img.shields.io/badge/Spring%20Boot-3.5.4-brightgreen.svg)](https://spring.io/projects/spring-boot) [![PostgreSQL](https://img.shields.io/badge/PostgreSQL-42.7.4-blue.svg)](https://www.postgresql.org/) SmartAdmin 是一款快速开发的企业级后台管理系统,本项目为 **PostgreSQL 版本**,基于原版 MySQL 版本迁移适配而来。 ## 📋 目录 - [项目简介](#项目简介) - [技术栈](#技术栈) - [项目结构](#项目结构) - [功能特性](#功能特性) - [快速开始](#快速开始) - [环境配置](#环境配置) - [开发规范](#开发规范) - [许可证](#许可证) --- ## 📖 项目简介 SmartAdmin PostgreSQL 版是一个功能完善的企业级后台管理系统,提供了丰富的基础功能模块,帮助开发者快速构建业务系统。 | 属性 | 描述 | | ------------- | --------------------- | | **项目名称** | SmartAdmin PostgreSQL | | **版本** | 3.0.0 | | **Java 版本** | JDK 21 | | **构建工具** | Maven | | **数据库** | PostgreSQL | | **架构类型** | 多模块 Maven 项目 | --- ## 🛠 技术栈 ### 核心框架 | 技术 | 版本 | 说明 | | ---------------------- | ------ | ------------ | | Spring Boot | 3.5.4 | 核心框架 | | MyBatis-Plus | 3.5.9 | ORM 框架 | | Sa-Token | 1.39.0 | 权限认证框架 | | Spring Security Crypto | 6.5.1 | 密码加密 | ### 数据库 & 缓存 | 技术 | 版本 | 说明 | | ---------------- | ------ | --------------- | | PostgreSQL | 42.7.4 | 主数据库 | | Druid | 1.2.23 | 数据库连接池 | | Redis + Redisson | 3.50.0 | 缓存 & 分布式锁 | | P6Spy | 3.9.1 | SQL 日志监控 | ### 工具库 | 技术 | 版本 | 说明 | | ------------- | ---------- | --------------- | | Hutool | 5.8.34 | Java 工具集 | | Guava | 33.4.0-jre | Google 工具库 | | Commons-Lang3 | 3.17.0 | Apache 工具库 | | FastJSON | 2.0.53 | JSON 解析 | | FastExcel | 1.1.0 | Excel 处理 | | Apache POI | 5.3.0 | Office 文档处理 | | Lombok | 1.18.38 | 代码简化 | ### API 文档 | 技术 | 版本 | 说明 | | ----------------- | ----- | ------------ | | SpringDoc OpenAPI | 2.7.0 | OpenAPI 3.0 | | Knife4j | 4.6.0 | API 文档增强 | ### 其他 | 技术 | 版本 | 说明 | | ---------- | ------- | ------------ | | ip2region | 2.7.0 | IP 地址解析 | | AWS S3 SDK | 2.29.52 | 对象存储 | | Tika | 3.0.0 | 文件类型检测 | --- ## 📁 项目结构 ``` smart-admin-postgres/ ├── pom.xml # 父 POM(依赖管理) ├── sa-base/ # 基础公共模块 │ └── src/main/java/com/he/sa/base/ │ ├── common/ # 通用工具类 │ │ ├── controller/ # 基础控制器 │ │ ├── domain/ # 通用实体(PageParam, ResponseDTO) │ │ ├── swagger/ # Swagger 自定义注解 │ │ ├── util/ # 工具类(Bean、Excel、String 等) │ │ └── validator/ # 自定义验证器 │ ├── config/ # 配置类(Redis、MyBatis-Plus 等) │ ├── constant/ # 常量定义 │ ├── handler/ # 全局异常处理器 │ ├── listener/ # 事件监听器 │ └── module/support/ # 公共支撑模块 ├── sa-admin/ # 后台管理业务模块 │ └── src/main/java/com/he/sa/admin/ │ ├── config/ # 应用配置 │ ├── constant/ # 常量定义 │ ├── interceptor/ # 拦截器 │ └── module/ # 业务模块 │ ├── business/ # 业务模块 │ └── system/ # 系统模块 └── 数据库SQL脚本/ # 数据库脚本 ├── mysql/ # MySQL 脚本(原版) └── postgresql/ # PostgreSQL 脚本 ``` ### 模块依赖关系 ``` ┌─────────────┐ │ sa-admin │ ← 后台管理业务模块 └──────┬──────┘ │ ▼ ┌─────────────┐ │ sa-base │ ← 基础公共模块 └──────┬──────┘ │ ▼ ┌─────────────────────────────────────┐ │ Spring Boot / MyBatis-Plus / Redis │ └─────────────────────────────────────┘ ``` --- ## ✨ 功能特性 ### 系统模块 (sa-admin/module/system) | 模块 | 说明 | | ------------ | ------------- | | **员工管理** | 员工信息管理 | | **部门管理** | 部门组织架构 | | **角色权限** | RBAC 权限控制 | | **菜单管理** | 动态菜单配置 | | **职务管理** | 职务岗位管理 | | **数据权限** | 数据范围控制 | | **登录认证** | 登录与认证 | | **消息通知** | 站内消息 | | **用户组** | 用户分组管理 | | **多租户** | 多租户管理 | ### 业务模块 (sa-admin/module/business) | 模块 | 说明 | | ------------ | ----------------------- | | **类目管理** | 业务分类管理 | | **商品管理** | 商品信息管理 | | **OA 办公** | 企业/银行/发票/通知公告 | ### 公共支撑模块 (sa-base/module/support) | 模块 | 说明 | | -------------- | ---------------- | | **API 加密** | 接口传输加密 | | **缓存服务** | 统一缓存管理 | | **验证码** | 图形/短信验证码 | | **更新日志** | 系统更新记录 | | **系统配置** | 动态配置管理 | | **数据脱敏** | 敏感数据保护 | | **数据追踪** | 数据变更记录 | | **数据字典** | 字典配置管理 | | **用户反馈** | 用户反馈收集 | | **文件上传** | 文件存储服务 | | **心跳检测** | 系统健康检查 | | **帮助文档** | 在线帮助文档 | | **定时任务** | 任务调度管理 | | **登录日志** | 登录记录审计 | | **邮件服务** | 邮件发送 | | **站内消息** | 消息推送 | | **操作日志** | 操作审计日志 | | **Redis 服务** | Redis 操作封装 | | **热更新** | 配置热加载 | | **防重复提交** | 幂等性保障 | | **安全防护** | 三级等保安全措施 | | **序列号生成** | 业务单号生成 | --- ## 🚀 快速开始 ### 环境要求 - **JDK**: 21+ - **Maven**: 3.8+ - **PostgreSQL**: 14+ - **Redis**: 6.0+ ### 数据库初始化 1. 创建数据库: ```sql CREATE DATABASE smart_admin; ``` 2. 执行数据库脚本: ```bash # 进入脚本目录 cd 数据库SQL脚本/postgresql/ # 执行结构脚本 psql -U postgres -d smart_admin -f smart_admin_v3_struct.sql # 执行数据脚本 psql -U postgres -d smart_admin -f smart_admin_v3_data.sql ``` ### 启动应用 ```bash # 克隆项目 git clone # 进入项目目录 cd smart-admin-postgres # 编译项目 mvn clean install # 开发环境启动(默认) mvn spring-boot:run -pl sa-admin # 或指定环境启动 mvn spring-boot:run -pl sa-admin -Pprod ``` ### 访问地址 - **API 文档**: http://localhost:8080/doc.html - **后台接口**: http://localhost:8080/ --- ## ⚙️ 环境配置 项目支持多环境配置,配置文件位于 `sa-admin/src/main/resources/` 目录下: | 环境 | Profile | 配置目录 | 说明 | | ------ | ------- | -------- | ---------- | | 开发 | `dev` | `dev/` | 开发环境 | | 测试 | `test` | `test/` | 测试环境 | | 预发布 | `pre` | `pre/` | 预发布环境 | | 生产 | `prod` | `prod/` | 生产环境 | ### 配置文件说明 ```yaml # application.yaml 主要配置项 # 数据库配置 spring: datasource: driver-class-name: org.postgresql.Driver url: jdbc:postgresql://localhost:5432/smart_admin username: postgres password: your_password # Redis 配置 redis: host: localhost port: 6379 database: 0 ``` --- ## 📐 开发规范 ### 分层架构 每个业务模块采用标准的分层架构: | 层级 | 目录 | 职责 | | -------------- | ------------- | ----------------------------- | | **Controller** | `controller/` | 接收请求、参数校验、返回响应 | | **Service** | `service/` | 业务逻辑处理 | | **Manager** | `manager/` | 事务管理、复杂业务编排 | | **DAO** | `dao/` | 数据库访问(继承 BaseMapper) | | **Domain** | `domain/` | 实体和数据传输对象 | | **Constant** | `constant/` | 常量和枚举定义 | ### 关键设计模式 - **统一响应封装**: `ResponseDTO` 统一 API 响应格式 - **分页封装**: `PageParam` 和 `PageResult` - **枚举校验**: `@CheckEnum` 自定义注解 - **数据脱敏**: `@DataMasking` 注解 - **操作日志**: `@OperateLog` 注解 + AOP - **防重复提交**: `@RepeatSubmit` 注解 - **数据权限**: `@DataScope` 注解 ### 数据库规范 - **命名规范**: - 表名: `t_模块_实体` 或 `模块_实体` - 字段: 下划线命名 (snake_case) - **脚本位置**: `数据库SQL脚本/postgresql/` --- ## 📄 许可证 本项目基于 [MIT 许可证](LICENSE) 开源。 --- ## 🙏 致谢 本项目基于 [Smart Admin](https://gitee.com/lab1024/smart-admin) 修改,原项目遵循 MIT 许可证。