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
|