peixue-dev/Archive/[一次性]审核状态接口实现方案-2026-01-28.md

4.3 KiB
Raw Blame History

审核状态接口实现方案

问题分析

前端调用以下API获取审核状态,但后端没有这些接口:

  • /api/teacher/application/status - 陪伴员
  • /api/manager/application/status - 管理师
  • /api/distributor/application/status - 分销员
  • /api/provider/application/status - 服务商

数据表结构

陪伴员和管理师

保存在 user 表:

SELECT id, phone, role, status, audit_status, create_time, update_time
FROM user
WHERE id = ? AND role IN ('teacher', 'manager')

分销员

保存在 distributor 表:

SELECT id, user_id, phone, name, audit_status, create_time, update_time, reject_reason
FROM distributor
WHERE user_id = ?

服务商

保存在 provider 表:

SELECT id, user_id, phone, name, audit_status, create_time, update_time, reject_reason
FROM provider
WHERE user_id = ?

实现方案

1. TeacherController

@ApiOperation("获取陪伴员申请状态")
@GetMapping("/application/status")
public Result<Map<String, Object>> getApplicationStatus(@CurrentUser Long userId) {
    User user = userService.getById(userId);
    if (user == null || !"teacher".equals(user.getRole())) {
        return Result.error("未找到陪伴员申请信息");
    }
    
    Map<String, Object> data = new HashMap<>();
    data.put("auditStatus", user.getAuditStatus());  // 0=待审核, 1=已通过, 2=未通过
    data.put("phone", user.getPhone());
    data.put("createTime", user.getCreateTime());
    data.put("updateTime", user.getUpdateTime());
    
    return Result.success(data);
}

2. ManagerController

@ApiOperation("获取管理师申请状态")
@GetMapping("/application/status")
public Result<Map<String, Object>> getApplicationStatus(@CurrentUser Long userId) {
    User user = userService.getById(userId);
    if (user == null || !"manager".equals(user.getRole())) {
        return Result.error("未找到管理师申请信息");
    }
    
    Map<String, Object> data = new HashMap<>();
    data.put("auditStatus", user.getAuditStatus());
    data.put("phone", user.getPhone());
    data.put("createTime", user.getCreateTime());
    data.put("updateTime", user.getUpdateTime());
    
    return Result.success(data);
}

3. DistributorController

@ApiOperation("获取分销员申请状态")
@GetMapping("/application/status")
public Result<Map<String, Object>> getApplicationStatus(@CurrentUser Long userId) {
    Distributor distributor = distributorService.lambdaQuery()
        .eq(Distributor::getUserId, userId)
        .one();
    
    if (distributor == null) {
        return Result.error("未找到分销员申请信息");
    }
    
    Map<String, Object> data = new HashMap<>();
    data.put("auditStatus", distributor.getAuditStatus());
    data.put("phone", distributor.getPhone());
    data.put("createTime", distributor.getCreateTime());
    data.put("updateTime", distributor.getUpdateTime());
    data.put("rejectReason", distributor.getRejectReason());
    
    return Result.success(data);
}

4. ProviderController

@ApiOperation("获取服务商申请状态")
@GetMapping("/application/status")
public Result<Map<String, Object>> getApplicationStatus(@CurrentUser Long userId) {
    Provider provider = providerService.lambdaQuery()
        .eq(Provider::getUserId, userId)
        .one();
    
    if (provider == null) {
        return Result.error("未找到服务商申请信息");
    }
    
    Map<String, Object> data = new HashMap<>();
    data.put("auditStatus", provider.getAuditStatus());
    data.put("phone", provider.getPhone());
    data.put("createTime", provider.getCreateTime());
    data.put("updateTime", provider.getUpdateTime());
    data.put("rejectReason", provider.getRejectReason());
    
    return Result.success(data);
}

注意事项

  1. @CurrentUser注解: 需要从JWT token中获取当前用户ID
  2. audit_status字段: 确保user表有这个字段,如果没有需要添加
  3. 错误处理: 如果找不到申请信息,返回明确的错误提示
  4. 权限控制: 只能查询自己的申请状态

数据库修改

如果 user 表没有 audit_status 字段,需要添加:

ALTER TABLE `user` 
ADD COLUMN `audit_status` INT DEFAULT 0 COMMENT '审核状态0=待审核,1=已通过,2=未通过' 
AFTER `status`;

创建时间

2026-01-28