# 应用管理模块 - 开发计划（Plan 模式）

---

| 文档信息 | 内容 |
|---------|------|
| **文档版本** | V1.0 |
| **模块名称** | 应用管理 |
| **编写团队** | pangu |
| **创建日期** | 2026-01-31 |

---

## 一、当前完成情况结论

**应用管理菜单中的全部页面目前并非前后端一起完成。**

| 端 | 状态 | 说明 |
|----|:----:|------|
| **前端** | ✅ 已完成 | 列表页、新增/编辑弹窗、密钥弹窗、API 封装、Mock 数据均已实现，可与 Mock 联调使用 |
| **后端** | ❌ 未开发 | 无 ApplicationController、无应用相关 Service/Mapper/实体，需从零开发 |

---

## 二、Plan 模式开发计划总览

```
┌─────────────────────────────────────────────────────────────────────────┐
│                    应用管理模块 - 开发计划（Plan）                          │
├─────────────────────────────────────────────────────────────────────────┤
│                                                                         │
│  [阶段一] 技术方案与文档     ✅ 已完成                                      │
│  [阶段二] 前端开发           ✅ 已完成                                      │
│  [阶段三] 后端开发           ⬜ 待开始  ← 当前缺口                           │
│  [阶段四] 联调与测试         ⬜ 待开始                                      │
│  [阶段五] 验收上线           ⬜ 待开始                                      │
│                                                                         │
└─────────────────────────────────────────────────────────────────────────┘
```

---

## 三、分阶段任务清单（Plan）

### 阶段一：技术方案与文档 ✅ 已完成

| 序号 | 任务项 | 状态 | 产出/路径 |
|:----:|-------|:----:|----------|
| 1.1 | 应用管理模块技术方案 | ✅ | docs/05-模块技术方案/应用管理模块技术方案_v1.0.md |
| 1.2 | 前端技术方案 | ✅ | docs/05-模块技术方案/应用管理-前端技术方案.md |
| 1.3 | 后端技术方案 | ✅ | docs/05-模块技术方案/应用管理-后端技术方案.md |
| 1.4 | 开发检查清单 | ✅ | docs/05-模块技术方案/应用管理-开发检查清单.md |
| 1.5 | 测试用例 | ✅ | docs/05-模块技术方案/应用管理-测试用例.md |

---

### 阶段二：前端开发 ✅ 已完成

| 序号 | 任务项 | 状态 | 产出/路径 |
|:----:|-------|:----:|----------|
| 2.1 | 应用列表页 | ✅ | pangu-ui/src/views/application/index.vue |
| 2.2 | 新增/编辑弹窗 | ✅ | pangu-ui/src/views/application/components/AppDialog.vue |
| 2.3 | 密钥展示弹窗（重置后复制） | ✅ | pangu-ui/src/views/application/components/SecretDialog.vue |
| 2.4 | 应用管理 API 封装 | ✅ | pangu-ui/src/api/application.js |
| 2.5 | 应用管理 Mock 数据 | ✅ | pangu-ui/src/mock/application.js |
| 2.6 | 路由与菜单配置 | ✅ | 已挂载应用管理菜单，可 Mock 联调 |

**前端已实现能力：**

- 列表查询（应用名称、编码、状态筛选 + 分页）
- 新增应用（应用名称、描述、联系人、电话、状态、接口授权勾选）
- 编辑应用（拉取详情回填 + 提交更新）
- 删除应用（Popconfirm 二次确认）
- 重置密钥（确认后弹窗显示新密钥并支持复制）
- 接口授权选项来自 `GET /api/application/apiList`，与接口文档一致

---

### 阶段三：后端开发 ⬜ 待开始

| 序号 | 任务项 | 状态 | 说明 |
|:----:|-------|:----:|------|
| **3.1 数据库** | | | |
| 3.1.1 | 创建 pg_application 表 | ⬜ | 按《数据库设计文档》建表 |
| 3.1.2 | 创建 pg_app_api 表 | ⬜ | 应用接口授权表 |
| 3.1.3 | 创建 pg_api_dict 表 | ⬜ | API 接口字典表 |
| 3.1.4 | 插入 pg_api_dict 初始数据 | ⬜ | 6 条（STUDENT_LIST 等） |
| 3.1.5 | 插入应用管理菜单数据 | ⬜ | sql/pangu_menu.sql 或等价脚本 |
| **3.2 实体层** | | | |
| 3.2.1 | Application 实体 | ⬜ | app_id, app_code, app_name, app_secret 等 |
| 3.2.2 | AppApi 实体 | ⬜ | 应用接口授权 |
| 3.2.3 | ApiDict 实体 | ⬜ | 接口字典（或复用已有） |
| 3.2.4 | VO/DTO（可选） | ⬜ | 列表/详情/新增修改用 |
| **3.3 Mapper 层** | | | |
| 3.3.1 | ApplicationMapper + XML | ⬜ | 分页列表、详情、增删改 |
| 3.3.2 | AppApiMapper + XML | ⬜ | 按 app_id 查/删/批量插入 |
| 3.3.3 | ApiDictMapper + XML | ⬜ | 查全部接口列表（apiList） |
| **3.4 Service 层** | | | |
| 3.4.1 | IApplicationService | ⬜ | 列表、详情、新增、修改、删除、重置密钥、apiList |
| 3.4.2 | ApplicationServiceImpl | ⬜ | 应用编码 YY+6 位、密钥 32 位、事务与授权表联动 |
| **3.5 Controller 层** | | | |
| 3.5.1 | ApplicationController | ⬜ | 实现《接口设计文档》第 6 章全部接口 |
| **3.6 接口清单（与前端对齐）** | | | |
| 3.6.1 | GET /api/application/list | ⬜ | 分页列表，支持 appName、appCode、status |
| 3.6.2 | GET /api/application/{appId} | ⬜ | 详情，含 apis 列表 |
| 3.6.3 | POST /api/application | ⬜ | 新增，body: appName, appDesc, contactPerson, contactPhone, status, apiCodes |
| 3.6.4 | PUT /api/application | ⬜ | 修改，body: appId + 同上 |
| 3.6.5 | DELETE /api/application/{appId} | ⬜ | 删除（含授权表） |
| 3.6.6 | PUT /api/application/resetSecret/{appId} | ⬜ | 重置密钥，返回 data.appSecret |
| 3.6.7 | GET /api/application/apiList | ⬜ | 返回可授权接口列表，供前端勾选 |

---

### 阶段四：联调与测试 ⬜ 待开始

| 序号 | 任务项 | 状态 | 说明 |
|:----:|-------|:----:|------|
| 4.1 | 前端关闭 Mock，对接真实后端 | ⬜ | 修改 request baseURL 或环境变量 |
| 4.2 | 接口联调（列表、详情、新增、编辑、删除、重置密钥、apiList） | ⬜ | 按接口文档校验请求/响应 |
| 4.3 | 业务规则校验 | ⬜ | 编码 YY+6 位、密钥 32 位、删除确认、重置后弹窗复制 |
| 4.4 | 执行《应用管理-测试用例》 | ⬜ | 功能 + 边界 + 权限（如需要） |

---

### 阶段五：验收上线 ⬜ 待开始

| 序号 | 任务项 | 状态 | 说明 |
|:----:|-------|:----:|------|
| 5.1 | 产品/业务验收 | ⬜ | 按需求规格说明书应用管理章节 |
| 5.2 | 部署与发布 | ⬜ | 后端部署、前端打包部署 |
| 5.3 | 上线检查与回滚预案 | ⬜ | 配置、权限、数据初始化 |

---

## 四、后端开发建议顺序（Plan 执行顺序）

按依赖关系，建议按以下顺序实施**阶段三**：

```
1. 数据库
   └─ 建表 + 初始数据 + 菜单 SQL

2. 实体 + Mapper
   └─ Application, AppApi, ApiDict 实体
   └─ ApplicationMapper, AppApiMapper, ApiDictMapper（含 XML）

3. Service
   └─ IApplicationService + ApplicationServiceImpl
   └─ 编码生成、密钥生成、重置密钥、授权表增删

4. Controller
   └─ ApplicationController
   └─ 7 个接口与接口文档、前端入参出参完全对齐

5. 单测与自测
   └─ Service 单测（可选）
   └─ Postman/浏览器自测 7 个接口
```

---

## 五、前后端对接要点（联调时核对）

| 项目 | 前端约定 | 后端需满足 |
|------|----------|------------|
| 主键字段名 | 兼容 `appId` 与 `id` | 统一返回 `appId` 或与前端约定一致 |
| 列表行数据 | 含 `apis: [{ apiCode, apiName, apiPath }]` | 列表接口返回每行带 apis（或至少 apiCodes） |
| 详情接口 | 返回 `data.apis` | GET /api/application/{appId} 返回 apis 数组 |
| 新增/修改 body | appName, appDesc, contactPerson, contactPhone, status, apiCodes | 接收 apiCodes 数组，落库到 pg_app_api |
| 重置密钥 | PUT /api/application/resetSecret/{appId}，响应 data.appSecret | 同上，返回明文新密钥 |
| apiList | GET /api/application/apiList，data 为数组 | 返回 pg_api_dict 中启用接口列表 |

---

## 六、总结

| 问题 | 结论 |
|------|------|
| 应用管理菜单中的全部页面是否前后端一起完成？ | **否。** 仅前端（含 Mock）完成，后端未开发。 |
| 下一步建议 | 按本文「阶段三」与「后端开发建议顺序」实施后端开发，再进行阶段四联调与测试。 |

---

*文档结束*
