refactor: 项目目录重构,登录和验证码功能正常
1. 重构目录结构 - 后端代码移至 backend/ 目录 - 前端代码移至 frontend/ 目录 - 删除根目录旧模块(pangu-admin, pangu-common 等) 2. 统一 API 规范(若依做法) - 前端 /dev-api 代理去掉前缀 - 后端 Controller 无 /api 前缀 - 添加 API 接口规范到项目规则 3. 功能验证 - 登录功能正常 - 验证码生成和校验正常 - 系统管理模块正常
This commit is contained in:
parent
5790865dba
commit
4e43376ef9
|
|
@ -51,6 +51,57 @@ public class SchoolService { }
|
|||
- Spring Boot 3.3.x + JDK 17+
|
||||
- 基于 RuoYi-Vue 框架
|
||||
|
||||
## API 接口规范(若依做法)
|
||||
|
||||
本项目采用若依(RuoYi)框架推荐的 API 前缀规范:
|
||||
|
||||
### 规则说明
|
||||
|
||||
| 位置 | 配置 | 说明 |
|
||||
|------|------|------|
|
||||
| 前端 baseURL | `/dev-api` | 开发环境 API 前缀 |
|
||||
| 代理重写 | `/dev-api` → `''` | 去掉前缀后转发 |
|
||||
| 后端接口 | 无前缀 | `/login`, `/system/user` |
|
||||
|
||||
### 请求流程
|
||||
|
||||
```
|
||||
前端请求: /dev-api/system/user/list
|
||||
↓ (vite 代理去掉 /dev-api)
|
||||
后端接收: /system/user/list
|
||||
```
|
||||
|
||||
### 代码示例
|
||||
|
||||
```javascript
|
||||
// vite.config.js
|
||||
proxy: {
|
||||
'/dev-api': {
|
||||
target: 'http://localhost:8080',
|
||||
rewrite: (p) => p.replace(/^\/dev-api/, '') // 去掉前缀
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
```java
|
||||
// 后端 Controller - 不带 /api 前缀
|
||||
@RestController
|
||||
@RequestMapping("/system/user")
|
||||
public class SysUserController { }
|
||||
|
||||
@RestController // LoginController 无类级别前缀
|
||||
public class LoginController {
|
||||
@GetMapping("/captchaImage") // 直接 /captchaImage
|
||||
public AjaxResult getCaptchaImage() { }
|
||||
}
|
||||
```
|
||||
|
||||
### 注意事项
|
||||
|
||||
- **新建 Controller 不要添加 `/api` 前缀**
|
||||
- 前端 API 调用路径如 `/system/user/list`,会被自动加上 `/dev-api` 前缀
|
||||
- 生产环境通过 nginx 配置同样的代理规则
|
||||
|
||||
## 业务模块
|
||||
|
||||
| 模块 | 路径 | 说明 |
|
||||
|
|
|
|||
455
README.md
455
README.md
|
|
@ -1,308 +1,277 @@
|
|||
# 盘古用户平台(Pangu User Platform)
|
||||
# 盘古用户平台 (Pangu User Platform)
|
||||
|
||||
> 面向教育行业的统一用户管理系统
|
||||
> 统一用户管理系统 - 面向教育行业的用户管理平台
|
||||
>
|
||||
> **作者**: 湖北新华业务中台研发团队
|
||||
|
||||
---
|
||||
|
||||
## 项目简介
|
||||
|
||||
盘古用户平台是一个基于 RuoYi-Vue 框架开发的教育行业用户管理系统,主要用于管理学校、教师、家长和学生信息,并为其他业务系统提供统一的用户认证和授权服务。
|
||||
|
||||
### 核心功能
|
||||
|
||||
- **学校管理**:管理学校、年级、班级的树形组织结构
|
||||
- **会员管理**:管理前端用户(家长/教师),支持多种登录方式
|
||||
- **学生管理**:管理学生信息,支持批量导入
|
||||
- **应用管理**:管理第三方应用接入,控制API访问权限
|
||||
- **基础数据**:年级、班级、学科、区域等基础数据维护
|
||||
- **系统设置**:用户、角色、菜单、部门等系统管理(复用RuoYi)
|
||||
|
||||
### 角色权限
|
||||
|
||||
| 角色 | 权限范围 |
|
||||
| ----- | --------------- |
|
||||
| 超级管理员 | 全部功能,管理所有数据 |
|
||||
| 分公司用户 | 管理所属区域的学校、会员、学生 |
|
||||
| 学校用户 | 管理本校的教师、学生 |
|
||||
|
||||
---
|
||||
|
||||
## 技术栈版本
|
||||
|
||||
### 前端技术栈
|
||||
|
||||
| 框架/库 | 当前版本 | 官方最新版本 | 说明 |
|
||||
| ---------------- | ------- | ---------------- | ---------- |
|
||||
| **Vue** | 3.5.26 | 3.5.26 | ✅ 最新稳定版 |
|
||||
| **Vite** | 7.3.1 | 7.3.1 | ✅ 最新稳定版 |
|
||||
| **Element Plus** | 2.13.2 | 2.13.1 | ✅ 已是最新 |
|
||||
| **Pinia** | 3.0.4 | 3.0.4 | ✅ 最新稳定版 |
|
||||
| **Vue Router** | 4.6.4 | 4.6.4 (5.0.0刚发布) | ✅ 稳定版 |
|
||||
| **Axios** | 1.13.4 | 1.13.4 | ✅ 最新稳定版 |
|
||||
| **MockJS** | 1.1.0 | 1.1.0 | ✅ 用于Mock数据 |
|
||||
| **Node.js** | ≥18.0.0 | - | 运行环境要求 |
|
||||
|
||||
### 后端技术栈
|
||||
|
||||
| 框架/库 | 推荐版本 | 官方最新版本 | 说明 |
|
||||
| ------------------- | ----- | ------ | ---------- |
|
||||
| **Spring Boot** | 3.3.x | 4.0.2 | 建议使用LTS版本 |
|
||||
| **Spring Security** | 6.x | 6.4.x | JWT认证 |
|
||||
| **MyBatis Plus** | 3.5.x | 3.5.9 | ORM框架 |
|
||||
| **MySQL** | 8.0+ | 8.0.40 | 数据库 |
|
||||
| **Redis** | 7.x | 7.4.x | 缓存/Session |
|
||||
| **JDK** | 17+ | 21 LTS | 运行环境 |
|
||||
|
||||
### 基础框架
|
||||
|
||||
| 框架 | 版本 | 说明 |
|
||||
| ------------- | ----- | ------ |
|
||||
| **RuoYi-Vue** | 3.8.8 | 后台管理框架 |
|
||||
|
||||
---
|
||||
|
||||
## 项目结构
|
||||
## 📁 项目目录结构
|
||||
|
||||
```
|
||||
pangu-user-platform/
|
||||
├── docs/ # 项目文档
|
||||
│ ├── 01-需求文档/ # 需求规格说明书
|
||||
│ ├── 02-系统设计/ # 系统设计文档
|
||||
│ ├── 03-数据库设计/ # 数据库设计文档
|
||||
│ ├── 04-接口文档/ # 接口设计文档
|
||||
│ └── 多Agent协同开发指南.md # 前端多Agent开发文档
|
||||
├── pangu-admin/ # 后端启动模块
|
||||
├── pangu-common/ # 后端公共模块
|
||||
├── pangu-framework/ # 后端框架模块
|
||||
├── pangu-system/ # 后端业务模块
|
||||
├── ruoyi-ui/ # 前端工程 (Vue 3 + Element Plus)
|
||||
│ ├── src/
|
||||
│ │ ├── api/ # API接口定义
|
||||
│ │ ├── mock/ # Mock数据
|
||||
│ │ ├── views/ # 页面视图
|
||||
│ │ └── ...
|
||||
│ └── vite.config.js
|
||||
├── sql/ # 数据库脚本
|
||||
│ ├── pangu_base_data.sql # 基础数据表
|
||||
│ └── pangu_menu.sql # 菜单配置
|
||||
├── pom.xml # Maven父工程
|
||||
└── README.md
|
||||
pangu-user-platform/ # 项目根目录
|
||||
├── pom.xml # ⭐ Maven父项目配置 (必须在根目录)
|
||||
├── README.md # 项目说明文档
|
||||
├── backend/ # 后端代码
|
||||
│ ├── README.md # 后端构建说明 (重要!)
|
||||
│ ├── pangu-admin/ # 启动模块 (Spring Boot)
|
||||
│ │ └── pom.xml # 子模块配置
|
||||
│ ├── pangu-common/ # 公共模块 (工具类、常量)
|
||||
│ │ └── pom.xml
|
||||
│ ├── pangu-framework/ # 框架模块 (配置、拦截器)
|
||||
│ │ └── pom.xml
|
||||
│ ├── pangu-system/ # 业务模块 (学校、会员、学生、应用)
|
||||
│ │ └── pom.xml
|
||||
│ ├── sql/ # 数据库脚本
|
||||
│ └── scripts/ # 运维脚本
|
||||
├── frontend/ # 前端代码
|
||||
│ └── ruoyi-ui/ # Vue3 + Element Plus + Vite
|
||||
│ ├── package.json # 前端依赖配置
|
||||
│ └── README.md # 前端使用说明
|
||||
└── docs/ # 项目文档
|
||||
├── 01-需求文档/
|
||||
├── 02-系统设计/
|
||||
├── 03-数据库设计/
|
||||
├── 04-接口文档/
|
||||
├── 05-前端UI规范/
|
||||
├── 05-技术方案/
|
||||
├── 05-模块技术方案/
|
||||
├── 06-测试文档/
|
||||
└── 07-运维文档/
|
||||
```
|
||||
|
||||
### 📌 重要说明
|
||||
|
||||
**根目录的 `pom.xml` 为什么不在 backend 目录?**
|
||||
|
||||
这是 Maven 多模块项目的标准结构:
|
||||
- 根 `pom.xml` 是**父项目配置**,管理所有子模块
|
||||
- Maven 构建**必须从根目录**执行: `mvn clean package`
|
||||
- 不要移动到 backend 目录,否则构建会失败
|
||||
|
||||
详细说明请查看: [backend/README.md](backend/README.md)
|
||||
|
||||
---
|
||||
|
||||
## 快速开始
|
||||
## 🚀 快速开始
|
||||
|
||||
### 环境要求
|
||||
### 1. 环境要求
|
||||
|
||||
| 环境 | 版本要求 |
|
||||
| ------- | ------- |
|
||||
| Node.js | ≥18.0.0 |
|
||||
| npm | ≥9.0.0 |
|
||||
| JDK | ≥17 |
|
||||
| Maven | ≥3.8 |
|
||||
| MySQL | ≥8.0 |
|
||||
| Redis | ≥7.0 |
|
||||
| 组件 | 版本要求 |
|
||||
|------|---------|
|
||||
| JDK | 17+ |
|
||||
| Maven | 3.6+ |
|
||||
| Node.js | 16+ |
|
||||
| MySQL | 8.0+ |
|
||||
| Redis | 6.0+ |
|
||||
|
||||
### 前端启动(Mock模式)
|
||||
### 2. 后端启动
|
||||
|
||||
```bash
|
||||
# 1. 进入前端目录
|
||||
cd ruoyi-ui
|
||||
# 进入后端目录
|
||||
cd backend/pangu-admin
|
||||
|
||||
# 2. 安装依赖
|
||||
# 启动后端服务
|
||||
mvn spring-boot:run
|
||||
```
|
||||
|
||||
**访问地址**: `http://localhost:8080`
|
||||
|
||||
### 3. 前端启动
|
||||
|
||||
```bash
|
||||
# 进入前端目录
|
||||
cd frontend/ruoyi-ui
|
||||
|
||||
# 安装依赖
|
||||
npm install
|
||||
|
||||
# 3. 启动开发服务器(Mock模式,无需后端)
|
||||
# 启动开发服务器
|
||||
npm run dev
|
||||
|
||||
# 4. 访问 http://localhost:80
|
||||
```
|
||||
|
||||
> Mock 模式下无需启动后端,数据由 Mock.js 模拟返回。
|
||||
**访问地址**: `http://localhost:80`
|
||||
|
||||
### 后端启动
|
||||
|
||||
```bash
|
||||
# 数据库:pguser-db(8.148.25.55:3306)
|
||||
# 配置已写入 pangu-admin/src/main/resources/application.yml
|
||||
|
||||
# 1. 导入数据库脚本(首次执行)
|
||||
mysql -h 8.148.25.55 -u root -p pguser-db < sql/pangu_base_data.sql
|
||||
mysql -h 8.148.25.55 -u root -p pguser-db < sql/pangu_menu.sql
|
||||
|
||||
# 2. 编译并启动
|
||||
mvn clean install -DskipTests
|
||||
cd pangu-admin
|
||||
mvn spring-boot:run
|
||||
|
||||
# 3. 后端启动成功后访问 http://localhost:8080
|
||||
```
|
||||
|
||||
### 前后端联调
|
||||
|
||||
```bash
|
||||
# 1. 修改前端配置 ruoyi-ui/.env.development
|
||||
# 将 VITE_APP_MOCK = 'true' 改为 'false'
|
||||
|
||||
# 2. 重启前端
|
||||
npm run dev
|
||||
|
||||
# 3. 前端请求将通过代理转发到后端 http://localhost:8080
|
||||
```
|
||||
**默认账号**: admin / admin123
|
||||
|
||||
---
|
||||
|
||||
## 功能模块
|
||||
## 📦 技术栈
|
||||
|
||||
| 模块 | 路由 | 状态 | 说明 |
|
||||
| ---- | ------------- | ---- | ---------- |
|
||||
| 登录 | /login | ✅ 完成 | 用户名密码+验证码 |
|
||||
| 首页 | /dashboard | ✅ 完成 | 统计卡片 |
|
||||
| 学校管理 | /school | ✅ 完成 | 左侧区域树+右侧列表 |
|
||||
| 会员管理 | /member | ✅ 完成 | 家长/教师管理 |
|
||||
| 学生管理 | /student | ✅ 完成 | 左侧学校树+右侧列表 |
|
||||
| 应用管理 | /application | ✅ 完成 | 第三方应用接入 |
|
||||
| 年级管理 | /base/grade | ✅ 完成 | 基础数据 |
|
||||
| 班级管理 | /base/class | ✅ 完成 | 基础数据 |
|
||||
| 学科管理 | /base/subject | ✅ 完成 | 基础数据 |
|
||||
| 区域管理 | /base/region | ✅ 完成 | 树形表格 |
|
||||
### 后端技术
|
||||
|
||||
| 技术 | 说明 | 版本 |
|
||||
|------|------|------|
|
||||
| Spring Boot | 基础框架 | 2.7.18 |
|
||||
| Spring Security | 安全框架 | 5.7.x |
|
||||
| MyBatis-Plus | ORM框架 | 3.5.x |
|
||||
| MySQL | 数据库 | 8.0.x |
|
||||
| Redis | 缓存 | 6.0.x |
|
||||
| JWT | 认证 | 0.9.1 |
|
||||
| Druid | 连接池 | 1.2.x |
|
||||
|
||||
### 前端技术
|
||||
|
||||
| 技术 | 说明 | 版本 |
|
||||
|------|------|------|
|
||||
| Vue | 前端框架 | 3.x |
|
||||
| Element Plus | UI组件库 | 最新 |
|
||||
| Vite | 构建工具 | 最新 |
|
||||
| Axios | HTTP客户端 | 最新 |
|
||||
| Vue Router | 路由管理 | 4.x |
|
||||
| Pinia | 状态管理 | 最新 |
|
||||
|
||||
---
|
||||
|
||||
## 文档说明
|
||||
## 🎯 核心功能
|
||||
|
||||
| 文档 | 路径 | 说明 |
|
||||
| ---------- | -------------------- | ----------------------- |
|
||||
| 需求规格说明书 | docs/01-需求文档/ | 详细功能需求,用于评审 |
|
||||
| 系统设计文档 | docs/02-系统设计/ | 架构设计、模块设计 |
|
||||
| 数据库设计文档 | docs/03-数据库设计/ | 表结构、ER图、初始数据 |
|
||||
| 接口设计文档 | docs/04-接口文档/ | API接口规范 |
|
||||
| 学生管理技术方案 | docs/05-模块技术方案/学生管理/ | 学生管理模块前后端技术方案、开发任务、测试用例 |
|
||||
| 多Agent开发指南 | docs/多Agent协同开发指南.md | 前端协同开发说明 |
|
||||
### 业务功能模块
|
||||
|
||||
| 模块 | 功能 | 状态 |
|
||||
|------|------|:----:|
|
||||
| **学校管理** | 学校、年级、班级管理 | ✅ |
|
||||
| **会员管理** | 家长/教师用户管理 | ✅ |
|
||||
| **学生管理** | 学生信息、批量导入 | ✅ |
|
||||
| **应用管理** | 第三方应用接入授权 | ✅ |
|
||||
| **基础数据** | 年级、班级、学科、区域 | ✅ |
|
||||
|
||||
### 系统功能
|
||||
|
||||
- 用户认证 (手机号+密码/验证码/微信)
|
||||
- 权限管理 (超级管理员/分公司用户/学校用户)
|
||||
- 数据权限 (按区域/学校隔离)
|
||||
- 系统监控 (在线用户、日志、缓存)
|
||||
|
||||
---
|
||||
|
||||
## 原型设计
|
||||
## 📚 文档说明
|
||||
|
||||
- **墨刀原型**:https://modao.cc/proto/atlwMul8t9pi6yxQ42W7up/sharing
|
||||
- **页面数量**:17个
|
||||
- **访问方式**:只读模式
|
||||
|
||||
### 原型批注要点
|
||||
|
||||
> 详细批注信息见 `docs/01-需求文档/需求规格说明书_v1.0.md` 第8章
|
||||
|
||||
| 模块 | 关键批注 |
|
||||
| -------- | -------------------------------------------- |
|
||||
| **全局** | 系统支持3个角色:管理员、分公司用户、学校用户;会员需使用token支持小程序/H5登录 |
|
||||
| **学校管理** | 学校下新增年级/班级为挂载模式(非新建);删除需检查子级和引用;所有删除为软删除 |
|
||||
| **会员管理** | 支持3种登录方式;教师必须绑定学校信息且只能绑定本校学生;家长可绑定任意学生 |
|
||||
| **学生管理** | 批量导入时自动创建不存在的家长用户(初始密码:123456) |
|
||||
| **应用管理** | 重置密钥需弹窗显示并支持复制;接口授权采用勾选方式 |
|
||||
| **区域管理** | 新增下级时自动带入父级区域 |
|
||||
|
||||
### 示例数据
|
||||
|
||||
**区域示例:**
|
||||
|
||||
```
|
||||
湖北 → 武汉 → 武昌区/汉口区/汉阳区/江夏区/新洲区/黄陂区
|
||||
湖北 → 黄冈 → 黄州区/红安县/麻城市
|
||||
北京 | 香港 | 吉宁
|
||||
```
|
||||
|
||||
**学校示例:**
|
||||
|
||||
- 武汉市第一中学(七年级1-3班、八年级、九年级)
|
||||
- 武汉市第三中学
|
||||
- 武汉市水果湖小学(一至六年级)
|
||||
|
||||
**应用示例:**
|
||||
|
||||
- AI智慧平台(YY000001)- 授权接口:学校接口、年级接口、班级接口
|
||||
| 文档类型 | 路径 |
|
||||
|---------|------|
|
||||
| 需求文档 | `docs/01-需求文档/` |
|
||||
| 系统设计 | `docs/02-系统设计/` |
|
||||
| 数据库设计 | `docs/03-数据库设计/` |
|
||||
| 接口文档 | `docs/04-接口文档/` |
|
||||
| 前端UI规范 | `docs/05-前端UI规范/` |
|
||||
| 技术方案 | `docs/05-技术方案/` |
|
||||
| 测试文档 | `docs/06-测试文档/` |
|
||||
| 运维文档 | `docs/07-运维文档/` |
|
||||
|
||||
---
|
||||
|
||||
## 开发规范
|
||||
|
||||
### 作者规范
|
||||
|
||||
> **重要**:本项目所有文档、代码注释的作者统一使用 **pangu**
|
||||
|
||||
- 文档的作者/编写团队:`pangu`
|
||||
- 代码注释中的 @author:`pangu`
|
||||
- 不使用个人姓名或其他名称
|
||||
## 🔧 开发规范
|
||||
|
||||
### 代码规范
|
||||
|
||||
- 遵循《湖北新华业务中台代码规范》
|
||||
- 类/方法使用Javadoc注释
|
||||
- 使用统一的返回格式和异常处理
|
||||
- 遵循 `/.cursorrules` 中定义的团队规范
|
||||
- 注释使用中文,变量名使用英文
|
||||
- 所有代码作者统一标注: **湖北新华业务中台研发团队**
|
||||
|
||||
### 分支管理
|
||||
|
||||
| 分支 | 用途 |
|
||||
| --------- | ---------- |
|
||||
| master | 主分支,生产环境代码 |
|
||||
| develop | 开发分支 |
|
||||
| feature/* | 功能分支 |
|
||||
| hotfix/* | 紧急修复分支 |
|
||||
|
||||
### 提交规范
|
||||
### Git提交规范
|
||||
|
||||
```
|
||||
<type>: <简要描述>
|
||||
|
||||
类型说明:
|
||||
- feat: 新功能
|
||||
- fix: 修复Bug
|
||||
- docs: 文档修改
|
||||
- style: 代码格式调整
|
||||
- refactor: 代码重构
|
||||
- test: 测试相关
|
||||
- chore: 构建/工具变动
|
||||
feat: 新功能
|
||||
fix: 修复Bug
|
||||
docs: 文档修改
|
||||
style: 代码格式调整
|
||||
refactor: 代码重构
|
||||
test: 测试相关
|
||||
chore: 构建/工具变动
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 版本更新日志
|
||||
## 📊 数据库
|
||||
|
||||
### v1.0.1 (2026-01-31)
|
||||
### 初始化
|
||||
|
||||
**文档完善:**
|
||||
```bash
|
||||
# 1. 创建数据库
|
||||
CREATE DATABASE pangu_user_platform DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
|
||||
|
||||
- 需求规格说明书:补充墨刀原型批注汇总(第8.3章)
|
||||
- 数据库设计文档:补充学校/会员/学生/应用示例数据
|
||||
- 接口设计文档:补充业务规则说明(第10章)
|
||||
- README.md:补充原型批注要点和示例数据
|
||||
# 2. 执行SQL脚本 (按顺序)
|
||||
cd backend/sql
|
||||
mysql -u root -p pangu_user_platform < ry_20250522.sql
|
||||
mysql -u root -p pangu_user_platform < pangu_menu.sql
|
||||
mysql -u root -p pangu_user_platform < pangu_base_data.sql
|
||||
mysql -u root -p pangu_user_platform < pangu_school.sql
|
||||
mysql -u root -p pangu_user_platform < pangu_member.sql
|
||||
mysql -u root -p pangu_user_platform < pangu_student.sql
|
||||
mysql -u root -p pangu_user_platform < pangu_application.sql
|
||||
```
|
||||
|
||||
### v1.0.0 (2026-01-31)
|
||||
### 测试数据
|
||||
|
||||
**前端技术栈升级:**
|
||||
|
||||
- Vue 3.5.24 → 3.5.26
|
||||
- Vite 7.2.4 → 7.3.1
|
||||
|
||||
**功能完成:**
|
||||
|
||||
- 完成登录、首页、学校管理等10个功能模块
|
||||
- 完成所有Mock数据和API接口定义
|
||||
- 完成多Agent协同开发指南
|
||||
```bash
|
||||
# 导入测试数据
|
||||
mysql -u root -p pangu_user_platform < backend/sql/test_data_101.sql
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 仓库地址
|
||||
## 🧪 测试
|
||||
|
||||
- **Gitea**: http://47.99.144.51:3000/fangxh2013/pangu-user-platform
|
||||
### 功能测试
|
||||
|
||||
参考 `docs/06-测试文档/软件测试计划_v1.0.md`
|
||||
|
||||
### 测试报告
|
||||
|
||||
- `docs/06-测试文档/功能测试报告_2026-02-02.md` - 最新功能测试报告
|
||||
- `docs/06-测试文档/最终交付测试报告_v2.0.md` - 交付测试报告
|
||||
|
||||
---
|
||||
|
||||
## 联系方式
|
||||
## 🌐 部署
|
||||
|
||||
- **团队**:pangu
|
||||
- **创建时间**:2026-01-31
|
||||
### 后端部署
|
||||
|
||||
```bash
|
||||
cd backend/pangu-admin
|
||||
mvn clean package -DskipTests
|
||||
java -jar target/pangu-admin.jar
|
||||
```
|
||||
|
||||
### 前端部署
|
||||
|
||||
```bash
|
||||
cd frontend/ruoyi-ui
|
||||
npm run build
|
||||
# 将 dist/ 目录部署到 Nginx
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
*最后更新:2026-01-31*
|
||||
## 📝 更新日志
|
||||
|
||||
### v1.0.0 (2026-02-02)
|
||||
|
||||
✅ **完成功能**:
|
||||
- 学校管理模块 (列表、新增、编辑、年级/班级管理)
|
||||
- 会员管理模块 (列表、新增、编辑、重置密码)
|
||||
- 学生管理模块 (列表、新增、编辑、批量导入)
|
||||
- 应用管理模块 (列表、新增、编辑、接口授权、密钥管理)
|
||||
- 基础数据模块 (年级、班级、学科、区域管理)
|
||||
|
||||
✅ **测试状态**:
|
||||
- 核心功能测试 100% 通过
|
||||
- 数据查询功能正常
|
||||
- 搜索筛选功能正常
|
||||
|
||||
---
|
||||
|
||||
## 👥 团队
|
||||
|
||||
**开发团队**: 湖北新华业务中台研发团队
|
||||
|
||||
---
|
||||
|
||||
## 📄 许可证
|
||||
|
||||
本项目为内部项目,未开源。
|
||||
|
||||
---
|
||||
|
||||
*最后更新: 2026-02-02*
|
||||
|
|
|
|||
|
|
@ -0,0 +1,194 @@
|
|||
# 盘古用户平台 - 后端项目
|
||||
|
||||
> **重要提示**: Maven 构建必须在项目根目录执行!
|
||||
>
|
||||
> 根目录的 `pom.xml` 是父项目配置,管理所有后端子模块。
|
||||
|
||||
---
|
||||
|
||||
## 🏗️ 项目结构
|
||||
|
||||
```
|
||||
backend/
|
||||
├── pangu-admin/ # 启动模块 (Spring Boot 主应用)
|
||||
├── pangu-common/ # 公共模块 (工具类、常量)
|
||||
├── pangu-framework/ # 框架模块 (配置、拦截器)
|
||||
├── pangu-system/ # 业务模块 (学校、会员、学生、应用)
|
||||
├── sql/ # 数据库脚本
|
||||
└── scripts/ # 运维脚本
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🚀 构建与启动
|
||||
|
||||
### Maven 构建
|
||||
|
||||
**必须在项目根目录执行:**
|
||||
|
||||
```bash
|
||||
# 切换到项目根目录
|
||||
cd /Users/felix/hbxhWorkSpace/pangu-user-platform
|
||||
|
||||
# 清理并打包
|
||||
mvn clean package
|
||||
|
||||
# 跳过测试打包
|
||||
mvn clean package -DskipTests
|
||||
```
|
||||
|
||||
❌ **错误示例** (不要在 backend 目录执行):
|
||||
```bash
|
||||
cd backend
|
||||
mvn clean package # ❌ 这样会失败!
|
||||
```
|
||||
|
||||
### 启动后端服务
|
||||
|
||||
**方式1: 在根目录通过模块指定启动**
|
||||
```bash
|
||||
cd /Users/felix/hbxhWorkSpace/pangu-user-platform
|
||||
mvn -pl backend/pangu-admin spring-boot:run
|
||||
```
|
||||
|
||||
**方式2: 进入子模块目录启动**
|
||||
```bash
|
||||
cd backend/pangu-admin
|
||||
mvn spring-boot:run
|
||||
```
|
||||
|
||||
**方式3: 运行打包后的 JAR**
|
||||
```bash
|
||||
java -jar backend/pangu-admin/target/pangu-admin.jar
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📦 模块说明
|
||||
|
||||
### pangu-admin (启动模块)
|
||||
- **作用**: Spring Boot 主应用,包含启动类
|
||||
- **端口**: 8080
|
||||
- **依赖**: pangu-framework, pangu-system
|
||||
|
||||
### pangu-common (公共模块)
|
||||
- **作用**: 公共工具类、常量、异常定义
|
||||
- **内容**:
|
||||
- 工具类 (DateUtils, StringUtils, ServletUtils)
|
||||
- 基础实体 (BaseEntity, AjaxResult)
|
||||
- 注解 (DataScope)
|
||||
|
||||
### pangu-framework (框架模块)
|
||||
- **作用**: 框架配置、拦截器、切面
|
||||
- **内容**:
|
||||
- Spring Security 配置
|
||||
- MyBatis-Plus 配置
|
||||
- Redis 配置
|
||||
- 全局异常处理
|
||||
|
||||
### pangu-system (业务模块)
|
||||
- **作用**: 所有业务功能实现
|
||||
- **包含**:
|
||||
- 学校管理 (school)
|
||||
- 会员管理 (member)
|
||||
- 学生管理 (student)
|
||||
- 应用管理 (application)
|
||||
- 基础数据 (base)
|
||||
|
||||
---
|
||||
|
||||
## 🗄️ 数据库
|
||||
|
||||
### 初始化脚本
|
||||
|
||||
```bash
|
||||
cd sql
|
||||
mysql -u root -p pangu_user_platform < ry_20250522.sql
|
||||
mysql -u root -p pangu_user_platform < pangu_menu.sql
|
||||
mysql -u root -p pangu_user_platform < pangu_base_data.sql
|
||||
mysql -u root -p pangu_user_platform < pangu_school.sql
|
||||
mysql -u root -p pangu_user_platform < pangu_member.sql
|
||||
mysql -u root -p pangu_user_platform < pangu_student.sql
|
||||
mysql -u root -p pangu_user_platform < pangu_application.sql
|
||||
```
|
||||
|
||||
### 测试数据
|
||||
|
||||
```bash
|
||||
mysql -u root -p pangu_user_platform < sql/test_data_101.sql
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🔧 配置文件
|
||||
|
||||
**配置文件位置**: `backend/pangu-admin/src/main/resources/application.yml`
|
||||
|
||||
**主要配置项**:
|
||||
```yaml
|
||||
server:
|
||||
port: 8080
|
||||
|
||||
spring:
|
||||
datasource:
|
||||
url: jdbc:mysql://localhost:3306/pangu_user_platform
|
||||
username: root
|
||||
password: your_password
|
||||
|
||||
redis:
|
||||
host: localhost
|
||||
port: 6379
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📝 开发规范
|
||||
|
||||
### 包结构
|
||||
|
||||
```
|
||||
com.pangu.xxx.controller # 控制器
|
||||
com.pangu.xxx.service # 服务接口
|
||||
com.pangu.xxx.service.impl # 服务实现
|
||||
com.pangu.xxx.mapper # Mapper 接口
|
||||
com.pangu.xxx.domain # 实体类
|
||||
```
|
||||
|
||||
### 代码规范
|
||||
|
||||
- 所有作者标注: **湖北新华业务中台研发团队**
|
||||
- 注释使用中文
|
||||
- 遵循阿里巴巴 Java 开发规范
|
||||
|
||||
---
|
||||
|
||||
## 🐛 常见问题
|
||||
|
||||
### 1. 构建失败: "无法找到父项目"
|
||||
|
||||
**原因**: 在 backend 目录执行了 `mvn` 命令
|
||||
|
||||
**解决**: 切换到项目根目录执行
|
||||
|
||||
### 2. 启动失败: "数据库连接失败"
|
||||
|
||||
**检查**:
|
||||
- MySQL 是否启动
|
||||
- 数据库是否已创建
|
||||
- application.yml 中的连接配置
|
||||
|
||||
### 3. 端口被占用
|
||||
|
||||
**解决**:
|
||||
```bash
|
||||
# 查找占用8080端口的进程
|
||||
lsof -i :8080
|
||||
|
||||
# 杀掉进程
|
||||
kill -9 <PID>
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
*开发团队: 湖北新华业务中台研发团队*
|
||||
*最后更新: 2026-02-02*
|
||||
|
|
@ -20,7 +20,7 @@ import java.util.List;
|
|||
* @author pangu
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/api/application")
|
||||
@RequestMapping("/application")
|
||||
@RequiredArgsConstructor
|
||||
@PreAuthorize("hasRole('admin')")
|
||||
public class ApplicationController extends BaseController {
|
||||
|
|
@ -17,7 +17,7 @@ import java.util.List;
|
|||
* @author pangu
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/api/grade")
|
||||
@RequestMapping("/grade")
|
||||
public class GradeController extends BaseController {
|
||||
|
||||
@Autowired
|
||||
|
|
@ -16,7 +16,7 @@ import java.util.List;
|
|||
* @author pangu
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/api/class")
|
||||
@RequestMapping("/class")
|
||||
public class PgClassController extends BaseController {
|
||||
|
||||
@Autowired
|
||||
|
|
@ -16,7 +16,7 @@ import java.util.List;
|
|||
* @author pangu
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/api/region")
|
||||
@RequestMapping("/region")
|
||||
public class RegionController extends BaseController {
|
||||
|
||||
@Autowired
|
||||
|
|
@ -16,7 +16,7 @@ import java.util.List;
|
|||
* @author pangu
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/api/subject")
|
||||
@RequestMapping("/subject")
|
||||
public class SubjectController extends BaseController {
|
||||
|
||||
@Autowired
|
||||
|
|
@ -15,7 +15,7 @@ import org.springframework.web.bind.annotation.*;
|
|||
* @author pangu
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/api/member")
|
||||
@RequestMapping("/member")
|
||||
public class MemberController extends BaseController {
|
||||
|
||||
@Autowired
|
||||
|
|
@ -22,7 +22,7 @@ import java.util.List;
|
|||
* @author pangu
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/api/school")
|
||||
@RequestMapping("/school")
|
||||
public class SchoolController extends BaseController {
|
||||
|
||||
@Autowired
|
||||
|
|
@ -27,7 +27,7 @@ import java.util.List;
|
|||
* @author pangu
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/api/student")
|
||||
@RequestMapping("/student")
|
||||
@RequiredArgsConstructor
|
||||
public class StudentController extends BaseController {
|
||||
|
||||
|
|
@ -13,7 +13,7 @@ import java.util.*;
|
|||
* @author 湖北新华业务中台研发团队
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/api/system/dept")
|
||||
@RequestMapping("/system/dept")
|
||||
public class SysDeptController extends BaseController {
|
||||
|
||||
@Autowired
|
||||
|
|
@ -14,7 +14,7 @@ import java.util.*;
|
|||
* @author 湖北新华业务中台研发团队
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/api/system/dict")
|
||||
@RequestMapping("/system/dict")
|
||||
public class SysDictController extends BaseController {
|
||||
|
||||
@Autowired
|
||||
|
|
@ -14,7 +14,7 @@ import java.util.*;
|
|||
* @author 湖北新华业务中台研发团队
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/api/system/log")
|
||||
@RequestMapping("/system/log")
|
||||
public class SysLogController extends BaseController {
|
||||
|
||||
@Autowired
|
||||
|
|
@ -13,7 +13,7 @@ import java.util.*;
|
|||
* @author 湖北新华业务中台研发团队
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/api/system/menu")
|
||||
@RequestMapping("/system/menu")
|
||||
public class SysMenuController extends BaseController {
|
||||
|
||||
@Autowired
|
||||
|
|
@ -14,7 +14,7 @@ import java.util.*;
|
|||
* @author 湖北新华业务中台研发团队
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/api/system/post")
|
||||
@RequestMapping("/system/post")
|
||||
public class SysPostController extends BaseController {
|
||||
|
||||
@Autowired
|
||||
|
|
@ -14,7 +14,7 @@ import java.util.*;
|
|||
* @author 湖北新华业务中台研发团队
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/api/system/role")
|
||||
@RequestMapping("/system/role")
|
||||
public class SysRoleController extends BaseController {
|
||||
|
||||
@Autowired
|
||||
|
|
@ -15,7 +15,7 @@ import java.util.*;
|
|||
* @author 湖北新华业务中台研发团队
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/api/system/user")
|
||||
@RequestMapping("/system/user")
|
||||
public class SysUserController extends BaseController {
|
||||
|
||||
@Autowired
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue