# 审核状态接口实现方案 ## 问题分析 前端调用以下API获取审核状态,但后端没有这些接口: - `/api/teacher/application/status` - 陪伴员 - `/api/manager/application/status` - 管理师 - `/api/distributor/application/status` - 分销员 - `/api/provider/application/status` - 服务商 ## 数据表结构 ### 陪伴员和管理师 保存在 `user` 表: ```sql SELECT id, phone, role, status, audit_status, create_time, update_time FROM user WHERE id = ? AND role IN ('teacher', 'manager') ``` ### 分销员 保存在 `distributor` 表: ```sql SELECT id, user_id, phone, name, audit_status, create_time, update_time, reject_reason FROM distributor WHERE user_id = ? ``` ### 服务商 保存在 `provider` 表: ```sql SELECT id, user_id, phone, name, audit_status, create_time, update_time, reject_reason FROM provider WHERE user_id = ? ``` ## 实现方案 ### 1. TeacherController ```java @ApiOperation("获取陪伴员申请状态") @GetMapping("/application/status") public Result> getApplicationStatus(@CurrentUser Long userId) { User user = userService.getById(userId); if (user == null || !"teacher".equals(user.getRole())) { return Result.error("未找到陪伴员申请信息"); } Map 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 ```java @ApiOperation("获取管理师申请状态") @GetMapping("/application/status") public Result> getApplicationStatus(@CurrentUser Long userId) { User user = userService.getById(userId); if (user == null || !"manager".equals(user.getRole())) { return Result.error("未找到管理师申请信息"); } Map 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 ```java @ApiOperation("获取分销员申请状态") @GetMapping("/application/status") public Result> getApplicationStatus(@CurrentUser Long userId) { Distributor distributor = distributorService.lambdaQuery() .eq(Distributor::getUserId, userId) .one(); if (distributor == null) { return Result.error("未找到分销员申请信息"); } Map 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 ```java @ApiOperation("获取服务商申请状态") @GetMapping("/application/status") public Result> getApplicationStatus(@CurrentUser Long userId) { Provider provider = providerService.lambdaQuery() .eq(Provider::getUserId, userId) .one(); if (provider == null) { return Result.error("未找到服务商申请信息"); } Map 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` 字段,需要添加: ```sql ALTER TABLE `user` ADD COLUMN `audit_status` INT DEFAULT 0 COMMENT '审核状态:0=待审核,1=已通过,2=未通过' AFTER `status`; ``` ## 创建时间 2026-01-28