162 lines
4.1 KiB
Markdown
162 lines
4.1 KiB
Markdown
# 审核状态功能修复完成
|
||
|
||
## 问题描述
|
||
小程序显示"未知状态"和"未找到申请信息",无法查看审核状态。
|
||
|
||
## 根本原因
|
||
1. **前端问题**: 审核状态页面从本地存储读取数据,而不是从后端API获取
|
||
2. **后端问题**: 缺少获取申请状态的API接口
|
||
3. **数据库问题**: `user` 表的 `audit_status` 字段已存在,但User实体类中没有对应字段
|
||
|
||
## ✅ 已完成的修复
|
||
|
||
### 1. 数据库修改
|
||
**文件**: `Archive/[一次性]添加user表audit_status字段-2026-01-28.sql`
|
||
|
||
- ✅ 确认 `audit_status` 字段已存在
|
||
- ✅ 更新现有用户的审核状态为"已通过"
|
||
- ✅ 使用正确的字段名 `user_type` 而不是 `role`
|
||
|
||
```sql
|
||
UPDATE `user`
|
||
SET `audit_status` = 1
|
||
WHERE `status` = 1 AND `user_type` IN ('teacher', 'manager');
|
||
```
|
||
|
||
### 2. User实体类修改
|
||
**文件**: `peidu/backend/src/main/java/com/peidu/entity/User.java`
|
||
|
||
添加了 `auditStatus` 字段:
|
||
```java
|
||
@TableField("audit_status")
|
||
private Integer auditStatus; // 审核状态:0=待审核, 1=已通过, 2=未通过
|
||
```
|
||
|
||
### 3. 后端接口添加
|
||
**文件**: `peidu/backend/src/main/java/com/peidu/controller/TeacherController.java`
|
||
|
||
添加了获取陪伴员申请状态的接口:
|
||
```java
|
||
@ApiOperation("获取陪伴员申请状态")
|
||
@GetMapping("/application/status")
|
||
public Result<Map<String, Object>> getApplicationStatus(HttpServletRequest request)
|
||
```
|
||
|
||
**返回数据**:
|
||
```json
|
||
{
|
||
"code": 200,
|
||
"data": {
|
||
"auditStatus": 1,
|
||
"status": 1,
|
||
"phone": "13800138000",
|
||
"createTime": "2026-01-28 10:00:00",
|
||
"updateTime": "2026-01-28 10:00:00",
|
||
"applyTime": "2026-01-28 10:00:00",
|
||
"approveTime": "2026-01-28 10:00:00"
|
||
}
|
||
}
|
||
```
|
||
|
||
### 4. 前端修改
|
||
**文件**: `peidu/uniapp/src/common-package/pages/auth/application-status.vue`
|
||
|
||
修改了 `loadApplication()` 方法:
|
||
- ❌ 旧方法: 从本地存储读取 `uni.getStorageSync()`
|
||
- ✅ 新方法: 从后端API获取 `this.$http.get(apiUrl)`
|
||
|
||
添加了状态映射方法:
|
||
```javascript
|
||
mapStatus(auditStatus) {
|
||
// 后端: 0=待审核, 1=已通过, 2=未通过
|
||
// 前端: pending, approved, rejected
|
||
const statusMap = {
|
||
0: 'pending',
|
||
1: 'approved',
|
||
2: 'rejected'
|
||
}
|
||
return statusMap[auditStatus] || 'pending'
|
||
}
|
||
```
|
||
|
||
## 📋 审核状态说明
|
||
|
||
### 数据库状态值
|
||
- `0` = 待审核
|
||
- `1` = 已通过
|
||
- `2` = 未通过
|
||
|
||
### 前端显示
|
||
- `pending` = 审核中 (黄色,⏳图标)
|
||
- `approved` = 审核通过 (绿色,✅图标)
|
||
- `rejected` = 审核未通过 (红色,❌图标)
|
||
|
||
## 🔄 完整流程
|
||
|
||
```
|
||
1. 用户注册陪伴员
|
||
↓
|
||
POST /api/auth/register
|
||
参数: { userType: "teacher" }
|
||
↓
|
||
2. 保存到user表
|
||
user_type = "teacher"
|
||
audit_status = 0 (待审核)
|
||
↓
|
||
3. 小程序查看审核状态
|
||
GET /api/teacher/application/status
|
||
↓
|
||
4. 返回审核状态
|
||
{ auditStatus: 0, status: 0, ... }
|
||
↓
|
||
5. 前端显示
|
||
"审核中" + 进度条
|
||
```
|
||
|
||
## 🚀 测试步骤
|
||
|
||
### 1. 重启后端
|
||
```bash
|
||
cd peidu/backend
|
||
# 停止当前服务
|
||
# 重新启动
|
||
mvn spring-boot:run
|
||
```
|
||
|
||
### 2. 重新编译前端
|
||
前端会自动检测文件变化并重新编译
|
||
|
||
### 3. 测试审核状态页面
|
||
1. 在小程序中注册陪伴员
|
||
2. 提交申请后,点击"查看审核状态"
|
||
3. 应该能看到:
|
||
- 状态图标和标题
|
||
- 申请信息(角色、时间、电话)
|
||
- 进度条(如果是待审核状态)
|
||
|
||
## ⚠️ 注意事项
|
||
|
||
1. **后端必须重启**: 修改了实体类和Controller,必须重启后端
|
||
2. **前端自动编译**: 保存文件后会自动重新编译
|
||
3. **数据库已更新**: `audit_status` 字段已存在,现有用户已设置为"已通过"
|
||
4. **字段名称**: 数据库使用 `user_type` 而不是 `role`
|
||
|
||
## 📝 待完成的工作
|
||
|
||
### 其他角色的接口
|
||
还需要为以下角色添加类似的接口:
|
||
- ❌ 管理师: `/api/manager/application/status`
|
||
- ❌ 分销员: `/api/distributor/application/status`
|
||
- ❌ 服务商: `/api/provider/application/status`
|
||
|
||
实现方式与陪伴员接口类似,只需要:
|
||
1. 在对应的Controller中添加接口
|
||
2. 查询对应的表(user表或专门的申请表)
|
||
3. 返回审核状态数据
|
||
|
||
## 创建时间
|
||
2026-01-28
|
||
|
||
## 创建人员
|
||
Kiro AI Assistant
|