# 用户使用流程图 — 管理后台 > **端口说明**: 📱 小程序 | 🖥 管理后台 | 📋 规划师端 | ⚙️ 系统自动 > > **分层说明**: 🏠 页面 → 🔗 API → ⚙️ Service → 📦 数据实体 ```mermaid flowchart TD %% ============ 颜色定义 ============ classDef page fill:#e3f2fd,stroke:#1565c0,stroke-width:2px classDef api fill:#fff3e0,stroke:#f57c00,stroke-width:1px classDef service fill:#e8f5e9,stroke:#388e3c,stroke-width:1px classDef data fill:#f3e5f5,stroke:#7b1fa2,stroke-width:1px classDef actor fill:#e1f5fe,stroke:#0288d1,stroke-width:2px,stroke-dasharray:5 3 %% ============ 角色 ============ RP(("🔧 管理员")):::actor %% ================================================================ %% 阶段一:管理员认证 %% ================================================================ subgraph 阶段一[阶段一:管理员认证] direction TB P1["🏠 管理后台:登录页"]:::page P1 -->|"发送验证码"| A1["🔗 POST /api/admin-auth/send-code"]:::api A1 -->|"手机号"| S1["⚙️ VerificationCodeService.generateCode()"]:::service S1 -->|"验证码, 过期时间"| D1["📦 sms_codes 表(写入)"]:::data P1 -->|"验证码登录"| A2["🔗 POST /api/admin-auth/login"]:::api A2 -->|"手机号, 验证码"| S2["⚙️ AdminAuthController.login()"]:::service S2 -->|"用户信息"| D_USER["📦 users 表(查询)"]:::data P1 -->|"密码登录"| A2a["🔗 POST /api/admin-auth/login-by-password"]:::api A2a -->|"手机号, 密码"| S2a["⚙️ 密码校验 + JWT生成"]:::service S2a -->|"用户信息"| D_USER D_USER -->|"用户ID, 角色"| S_JWT["⚙️ JwtConfig.generateToken()"]:::service S_JWT -->|"JWT token"| D_JWT["📦 JWT Token(返回前端)"]:::data D_JWT -->|"token"| P2["🏠 管理后台:首页"]:::page P2 -->|"获取管理员信息"| A3["🔗 POST /api/admin-auth/info"]:::api A3 -->|"用户ID(token提取)"| S3["⚙️ 用户信息查询"]:::service S3 -->|"管理员信息"| D_USER P2 -->|"修改密码"| A4["🔗 POST /api/admin-auth/change-password"]:::api A4 -->|"旧密码, 新密码"| S4["⚙️ UserService.setPassword()"]:::service S4 -->|"更新密码字段"| D_USER end %% ================================================================ %% 阶段二:用户与家庭管理 %% ================================================================ subgraph 阶段二[阶段二:用户与家庭管理] P2 -->|"用户列表"| B1["🏠 管理后台:用户管理页"]:::page B1 -->|"分页参数, 角色筛选"| A5["🔗 POST /api/admin/users"]:::api A5 -->|"userId, role, page"| S5["⚙️ UserMapper.selectPage()"]:::service S5 -->|"分页用户列表"| D_USER B1 -->|"创建用户"| A6["🔗 POST /api/admin/users/create"]:::api A6 -->|"手机号, 昵称, 角色"| S6["⚙️ 创建用户记录"]:::service S6 -->|"新用户记录"| D_USER B1 -->|"用户详情"| A7["🔗 POST /api/admin/users/{id}"]:::api A7 -->|"用户ID"| S7["⚙️ UserMapper.selectById()"]:::service B1 -->|"更新用户"| A8["🔗 POST /api/admin/users/{id}/update"]:::api A8 -->|"用户ID, 更新字段"| S8["⚙️ UserMapper.updateById()"]:::service B1 -->|"重置密码"| A9["🔗 POST /api/admin/users/{id}/reset-password"]:::api A9 -->|"用户ID, 新密码"| S9["⚙️ UserService.resetPassword()"]:::service B1 -->|"搜索用户"| A10["🔗 POST /api/admin/user/search"]:::api A10 -->|"关键词"| S10["⚙️ 模糊搜索(nickname/phone/realName)"]:::service B1 -->|"删除用户"| A11["🔗 POST /api/admin/users/{id}/delete"]:::api A11 -->|"用户ID"| S11["⚙️ UserService.deleteUser()"]:::service P2 -->|"孩子管理"| C1["🏠 管理后台:孩子管理页"]:::page C1 -->|"分页"| A12["🔗 POST /api/admin/children"]:::api C1 -->|"详情"| A13["🔗 POST /api/admin/children/{id}"]:::api C1 -->|"更新"| A14["🔗 POST /api/admin/children/{id}/update"]:::api C1 -->|"调整积分"| A15["🔗 POST /api/admin/children/{id}/adjust-points"]:::api A15 -->|"孩子ID, 积分数额, 原因"| S15["⚙️ 积分调整 + PointsLog写入"]:::service S15 -->|"更新余额, 写入流水"| D_POINTS["📦 family_members + points_logs"]:::data P2 -->|"家庭管理"| D1["🏠 管理后台:家庭管理页"]:::page D1 -->|"列表"| A16["🔗 POST /api/admin/families"]:::api D1 -->|"详情"| A17["🔗 POST /api/admin/families/{id}"]:::api D1 -->|"成员"| A18["🔗 POST /api/admin/families/{id}/members"]:::api D1 -->|"更新"| A19["🔗 POST /api/admin/families/{id}/update"]:::api D1 -->|"删除"| A20["🔗 POST /api/admin/families/{id}/delete"]:::api A18 -->|"家庭ID"| S18["⚙️ 查询家长列表 + 孩子列表"]:::service S18 -->|"家长+孩子数据"| D_FAMILY["📦 families + users + family_members"]:::data end %% ================================================================ %% 阶段三:任务与奖励审核 %% ================================================================ subgraph 阶段三[阶段三:任务与奖励审核] P2 -->|"任务列表"| E1["🏠 管理后台:任务管理页"]:::page E1 -->|"分页, 状态筛选"| A21["🔗 POST /api/admin/tasks"]:::api A21 -->|"page, status, familyId"| S21["⚙️ TaskMapper.selectPage()"]:::service S21 -->|"分页任务列表"| D_TASK["📦 tasks 表"]:::data E1 -->|"任务统计"| A22["🔗 POST /api/admin/tasks/stats"]:::api A22 -->|""| S22["⚙️ 任务总数 + 今日任务数"]:::service P2 -->|"奖励列表"| F1["🏠 管理后台:奖励管理页"]:::page F1 -->|"分页, 状态"| A23["🔗 POST /api/admin/rewards"]:::api F1 -->|"模板列表"| A24["🔗 POST /api/admin/rewards/templates"]:::api F1 -->|"创建模板"| A25["🔗 POST /api/admin/rewards/create"]:::api F1 -->|"审批通过/拒绝"| A26["🔗 POST /api/admin/rewards/{id}/approve"]:::api A26 -->|"奖励ID, approved标志"| S26["⚙️ 状态更新 + 积分退还(拒绝时)"]:::service S26 -->|"更新奖励状态, 退积分"| D_TASK end %% ================================================================ %% 阶段四:积分与模板管理 %% ================================================================ subgraph 阶段四[阶段四:积分与模板管理] P2 -->|"积分日志"| G1["🏠 管理后台:积分管理页"]:::page G1 -->|"分页, 孩子ID, 类型"| A27["🔗 POST /api/admin/points/logs"]:::api A27 -->|"childId, type, page"| S27["⚙️ PointsLogMapper.selectPage()"]:::service S27 -->|"分页积分流水"| D_POINTS G1 -->|"积分统计"| A28["🔗 POST /api/admin/points/stats"]:::api A28 -->|""| S28["⚙️ 孩子总数统计"]:::service P2 -->|"任务模板"| H1["🏠 管理后台:任务模板页"]:::page H1 -->|"列表"| A29["🔗 POST /api/admin/task-templates"]:::api H1 -->|"详情"| A30["🔗 POST /api/admin/task-templates/{id}"]:::api H1 -->|"创建"| A31["🔗 POST /api/admin/task-templates/create"]:::api H1 -->|"更新"| A32["🔗 POST /api/admin/task-templates/{id}/update"]:::api H1 -->|"删除"| A33["🔗 POST /api/admin/task-templates/{id}/delete"]:::api A31 -->|"模板内容"| S31["⚙️ TaskTemplateMapper.insert()"]:::service S31 -->|"新模板记录"| D_TTPL["📦 task_templates 表"]:::data end %% ================================================================ %% 阶段五:规划师审核与套餐 %% ================================================================ subgraph 阶段五[阶段五:规划师审核与套餐] P2 -->|"规划师审核"| I1["🏠 管理后台:规划师审核页"]:::page I1 -->|"待审批列表"| A34["🔗 POST /api/admin/guide/applications"]:::api I1 -->|"待审批数量"| A34a["🔗 POST /api/admin/guide/pending-count"]:::api I1 -->|"通过"| A35["🔗 POST /api/admin/guide/approve/{userId}"]:::api I1 -->|"驳回"| A36["🔗 POST /api/admin/guide/reject/{userId}"]:::api A35 -->|"用户ID"| S35["⚙️ 更新user角色 + 创建admins记录"]:::service S35 -->|"更新users表, 插入admins表"| D_USER I1 -->|"规划师列表"| A37["🔗 POST /api/admin/guide/guides"]:::api I1 -->|"等级筛选"| A38["🔗 POST /api/admin/guide/guides/level/{level}"]:::api P2 -->|"套餐管理"| I2["🏠 管理后台:套餐管理页"]:::page I2 -->|"套餐列表"| A39["🔗 POST /api/admin/guide/packages"]:::api I2 -->|"创建套餐"| A40["🔗 POST /api/admin/guide/packages/create"]:::api I2 -->|"更新"| A41["🔗 POST /api/admin/guide/packages/{id}/update"]:::api I2 -->|"状态"| A42["🔗 POST /api/admin/guide/packages/{id}/status"]:::api A40 -->|"套餐内容"| S40["⚙️ GuidePackageService.save()"]:::service S40 -->|"新套餐记录"| D_GPKG["📦 guide_packages 表"]:::data P2 -->|"营养师审核"| I3["🏠 管理后台:营养师审核页"]:::page I3 -->|"列表"| A43["🔗 POST /api/admin/nutritionist/applications"]:::api I3 -->|"通过"| A44["🔗 POST /api/admin/nutritionist/approve/{userId}"]:::api I3 -->|"驳回"| A45["🔗 POST /api/admin/nutritionist/reject/{userId}"]:::api end %% ================================================================ %% 阶段六:商品与订单 %% ================================================================ subgraph 阶段六[阶段六:商品与订单管理] P2 -->|"商品管理"| J1["🏠 管理后台:商品管理页"]:::page J1 -->|"列表"| A46["🔗 POST /api/admin/product/list"]:::api J1 -->|"审核"| A47["🔗 POST /api/admin/product/review"]:::api J1 -->|"上下架"| A48["🔗 POST /api/admin/product/shelve"]:::api J1 -->|"创建"| A49["🔗 POST /api/admin/product/create"]:::api J1 -->|"更新"| A50["🔗 POST /api/admin/product/update"]:::api J1 -->|"删除"| A51["🔗 POST /api/admin/product/delete"]:::api A47 -->|"productId, action"| S47["⚙️ ProductService.review()"]:::service S47 -->|"更新审核状态"| D_PROD["📦 products 表"]:::data P2 -->|"订单管理"| K1["🏠 管理后台:订单管理页"]:::page K1 -->|"列表"| A52["🔗 POST /api/admin/product/order/list"]:::api K1 -->|"详情"| A53["🔗 POST /api/admin/product/order/detail"]:::api K1 -->|"发货"| A54["🔗 POST /api/admin/product/order/ship"]:::api K1 -->|"退款审核"| A55["🔗 POST /api/admin/product/order/refund/approve"]:::api K1 -->|"关闭订单"| A56["🔗 POST /api/admin/product/order/close"]:::api A54 -->|"orderNo, trackingNumber, expressCompany"| S54["⚙️ ProductOrderService.ship()"]:::service S54 -->|"更新发货状态"| D_ORDER["📦 product_orders 表"]:::data end %% ================================================================ %% 阶段七:系统配置 %% ================================================================ subgraph 阶段七[阶段七:系统配置] P2 -->|"食材管理"| L1["🏠 管理后台:食材管理页"]:::page L1 -->|"CRUD"| A57["🔗 POST /api/admin/foods/*"]:::api A57 -->|"食材数据"| S57["⚙️ FoodService CRUD"]:::service S57 -->|"食材记录"| D_FOOD["📦 foods 表"]:::data P2 -->|"能量配置"| L2["🏠 管理后台:五维能量配置页"]:::page L2 -->|"来源列表"| A58["🔗 POST /api/admin/energy-config/source-list"]:::api A58 -->|""| S58["⚙️ 查询能量来源配置"]:::service S58 -->|"能量来源配置列表"| D_ENERGY["📦 energy_source_config 表"]:::data P2 -->|"会员管理"| L3["🏠 管理后台:会员管理页"]:::page L3 -->|"等级列表"| A59["🔗 POST /api/admin/membership/levels"]:::api L3 -->|"概览"| A60["🔗 POST /api/admin/membership/overview"]:::api P2 -->|"测评订单"| L4["🏠 管理后台:测评管理页"]:::page L4 -->|"待分配列表"| A61["🔗 POST /api/admin/assessment/pending-list"]:::api L4 -->|"可用规划师"| A62["🔗 POST /api/admin/assessment/available-guides"]:::api L4 -->|"订单列表"| A63["🔗 POST /api/admin/assessment/orders"]:::api L4 -->|"分配规划师"| A64["🔗 POST /api/admin/assessment/assign-guide"]:::api end RP -.- P1 RP -.- P2 ``` ## 端点明细 ### 管理员认证 | 端点 | 说明 | 端口 | 请求数据 | 响应数据 | |------|------|------|---------|---------| | `POST /api/admin-auth/send-code` | 发送管理员登录验证码 | 🖥管理后台 | `{phone}` | `{success}` | | `POST /api/admin-auth/login` | 验证码登录 | 🖥管理后台 | `{phone, code}` | `{token, adminId, username, role, roles}` | | `POST /api/admin-auth/login-by-password` | 密码登录 | 🖥管理后台 | `{phone, password}` | `{token, adminId, username, role, roles}` | | `POST /api/admin-auth/info` | 获取当前管理员信息 | 🖥管理后台 | Header: `Authorization` | `{id, nickname, phone, role, roles, user}` | | `POST /api/admin-auth/change-password` | 修改密码 | 🖥管理后台 | `{oldPassword, newPassword}` | `{success}` | | `POST /api/admin-auth/update-info` | 更新个人信息 | 🖥管理后台 | `{nickname, phone}` | `{nickname, phone}` | | `POST /api/admin-auth/reset-password` | 验证码重置密码 | 🖥管理后台 | `{phone, code, newPassword}` | `{success}` | ### 用户管理 | 端点 | 说明 | 端口 | 请求数据 | 响应数据 | |------|------|------|---------|---------| | `POST /api/admin/users` | 用户分页列表 | 🖥管理后台 | `{page, size, role, nickname, phone}` | `Page` | | `POST /api/admin/users/create` | 创建用户 | 🖥管理后台 | `{phone, nickname, role, realName}` | `User` | | `POST /api/admin/users/{id}` | 用户详情 | 🖥管理后台 | path: `id` | `User` | | `POST /api/admin/users/{id}/update` | 更新用户 | 🖥管理后台 | path: `id`, body: `User字段` | `{success}` | | `POST /api/admin/users/{id}/reset-password` | 重置用户密码 | 🖥管理后台 | path: `id`, body: `{password}` | `{success}` | | `POST /api/admin/user/search` | 搜索用户(下拉选择用) | 🖥管理后台 | `{keyword}` | `List` | | `POST /api/admin/users/{id}/delete` | 删除用户 | 🖥管理后台 | path: `id` | `{success}` | ### 孩子管理 | 端点 | 说明 | 端口 | 请求数据 | 响应数据 | |------|------|------|---------|---------| | `POST /api/admin/children` | 孩子分页列表 | 🖥管理后台 | `{page, size}` | `Page` | | `POST /api/admin/children/{id}` | 孩子详情 | 🖥管理后台 | path: `id` | `FamilyMember` | | `POST /api/admin/children/{id}/update` | 更新孩子信息 | 🖥管理后台 | path: `id`, body: `FamilyMember字段` | `{success}` | | `POST /api/admin/children/{id}/adjust-points` | 手动调整孩子积分 | 🖥管理后台 | path: `id`, body: `{amount, reason}` | `{newBalance}` | ### 家庭管理 | 端点 | 说明 | 端口 | 请求数据 | 响应数据 | |------|------|------|---------|---------| | `POST /api/admin/families` | 家庭分页列表 | 🖥管理后台 | `{page, size, name}` | `Page` | | `POST /api/admin/families/{id}` | 家庭详情 | 🖥管理后台 | path: `id` | `Family` | | `POST /api/admin/families/{id}/members` | 家庭成员详情(含家长+孩子) | 🖥管理后台 | path: `id` | `{family, parents, children}` | | `POST /api/admin/families/{id}/update` | 更新家庭信息 | 🖥管理后台 | path: `id`, body: `Family字段` | `{success}` | | `POST /api/admin/families/{id}/delete` | 删除家庭 | 🖥管理后台 | path: `id` | `{success}` | ### 任务管理与奖励 | 端点 | 说明 | 端口 | 请求数据 | 响应数据 | |------|------|------|---------|---------| | `POST /api/admin/tasks` | 任务分页列表 | 🖥管理后台 | `{page, size, status, familyId}` | `Page` | | `POST /api/admin/tasks/stats` | 任务统计 | 🖥管理后台 | — | `{total, today}` | | `POST /api/admin/rewards` | 奖励分页列表 | 🖥管理后台 | `{page, size, status, familyId}` | `Page` | | `POST /api/admin/rewards/templates` | 获取奖励模板列表 | 🖥管理后台 | — | `List` | | `POST /api/admin/rewards/create` | 创建奖励模板 | 🖥管理后台 | `Reward字段` | `{id}` | | `POST /api/admin/rewards/{id}/approve` | 审批奖励兑换 | 🖥管理后台 | path: `id`, body: `{approved}` | `{success}` | ### 积分管理 | 端点 | 说明 | 端口 | 请求数据 | 响应数据 | |------|------|------|---------|---------| | `POST /api/admin/points/logs` | 积分日志分页 | 🖥管理后台 | `{page, size, childId, type}` | `Page` | | `POST /api/admin/points/stats` | 积分统计概览 | 🖥管理后台 | — | `{totalChildren}` | ### 任务模板管理 | 端点 | 说明 | 端口 | 请求数据 | 响应数据 | |------|------|------|---------|---------| | `POST /api/admin/task-templates` | 模板分页列表 | 🖥管理后台 | `{page, size, category, difficulty, isActive}` | `Page` | | `POST /api/admin/task-templates/{id}` | 模板详情 | 🖥管理后台 | path: `id` | `TaskTemplate` | | `POST /api/admin/task-templates/create` | 创建模板 | 🖥管理后台 | `TaskTemplate字段` | `{id}` | | `POST /api/admin/task-templates/{id}/update` | 更新模板 | 🖥管理后台 | path: `id`, body: `TaskTemplate字段` | `{success}` | | `POST /api/admin/task-templates/{id}/delete` | 删除模板 | 🖥管理后台 | path: `id` | `{success}` | ### 规划师审核 | 端点 | 说明 | 端口 | 请求数据 | 响应数据 | |------|------|------|---------|---------| | `POST /api/admin/guide/applications` | 规划师申请列表 | 🖥管理后台 | `{page, size, status}` | `Page` | | `POST /api/admin/guide/applications/pending` | 待审批申请列表 | 🖥管理后台 | — | `List` | | `POST /api/admin/guide/approve/{userId}` | 通过规划师审核 | 🖥管理后台 | path: `userId` | `{success}` | | `POST /api/admin/guide/reject/{userId}` | 驳回规划师审核 | 🖥管理后台 | path: `userId`, body: `{reason}` | `{success}` | | `POST /api/admin/guide/pending-count` | 待审核数量 | 🖥管理后台 | — | `{count}` | | `POST /api/admin/guide/applications/{id}/approve` | 通过申请(AdminGuideController) | 🖥管理后台 | path: `id`, param: `adminId` | `{success}` | | `POST /api/admin/guide/applications/{id}/reject` | 驳回申请 | 🖥管理后台 | path: `id`, param: `adminId, reason` | `{success}` | | `POST /api/admin/guide/guides` | 规划师列表 | 🖥管理后台 | — | `List` | | `POST /api/admin/guide/guides/level/{level}` | 按等级筛选规划师 | 🖥管理后台 | path: `level` | `List` | ### 套餐与商品管理 | 端点 | 说明 | 端口 | 请求数据 | 响应数据 | |------|------|------|---------|---------| | `POST /api/admin/guide/packages` | 套餐列表 | 🖥管理后台 | — | `List` | | `POST /api/admin/guide/packages/create` | 创建套餐 | 🖥管理后台 | `GuidePackage字段` | `{success}` | | `POST /api/admin/guide/packages/{id}/update` | 更新套餐 | 🖥管理后台 | path: `id`, body: `GuidePackage字段` | `{success}` | | `POST /api/admin/guide/packages/{id}/status` | 更新套餐状态 | 🖥管理后台 | path: `id`, param: `status` | `{success}` | | `POST /api/admin/guide/packages/pending` | 待审核套餐数量 | 🖥管理后台 | — | `{count}` | | `POST /api/admin/product/list` | 商品分页列表 | 🖥管理后台 | `{page, size, status, productType, keyword}` | `{records, total}` | | `POST /api/admin/product/review` | 审核商品(通过/驳回) | 🖥管理后台 | `{productId, action, reason}` | `Result` | | `POST /api/admin/product/shelve` | 商品上下架 | 🖥管理后台 | `{productId, shelve}` | `Result` | | `POST /api/admin/product/create` | 创建商品 | 🖥管理后台 | `ProductCreateRequest` | `ProductDTO` | | `POST /api/admin/product/update` | 更新商品 | 🖥管理后台 | `ProductCreateRequest` | `ProductDTO` | | `POST /api/admin/product/delete` | 删除商品 | 🖥管理后台 | `{productId}` | `Result` | | `POST /api/admin/product/detail` | 商品详情 | 🖥管理后台 | `{productId}` | `ProductDTO` | ### 订单管理 | 端点 | 说明 | 端口 | 请求数据 | 响应数据 | |------|------|------|---------|---------| | `POST /api/admin/product/order/list` | 订单分页列表 | 🖥管理后台 | `{page, size, status, keyword, startDate, endDate}` | `{records, total}` | | `POST /api/admin/product/order/detail` | 订单详情 | 🖥管理后台 | `{orderNo}` | `ProductOrderDTO` | | `POST /api/admin/product/order/ship` | 订单发货 | 🖥管理后台 | `{orderNo, trackingNumber, expressCompany}` | `Result` | | `POST /api/admin/product/order/close` | 关闭订单 | 🖥管理后台 | `{orderNo}` | `Result` | | `POST /api/admin/product/order/refund/approve` | 退款审核通过 | 🖥管理后台 | `{orderNo}` | `Result` | | `POST /api/admin/product/order/refund/reject` | 退款审核拒绝 | 🖥管理后台 | `{orderNo}` | `Result` | ### 系统配置 | 端点 | 说明 | 端口 | 请求数据 | 响应数据 | |------|------|------|---------|---------| | `POST /api/admin/foods/list` | 食材列表 | 🖥管理后台 | `{category}` | `List` | | `POST /api/admin/foods/create` | 新增食材 | 🖥管理后台 | `Food字段` | `Food` | | `POST /api/admin/foods/update` | 更新食材 | 🖥管理后台 | `Food字段` | `{success}` | | `POST /api/admin/foods/delete` | 删除食材 | 🖥管理后台 | `{id}` | `{success}` | | `POST /api/admin/foods/detail` | 食材详情(含应季月份) | 🖥管理后台 | `{id}` | `Map` | | `POST /api/admin/foods/saveMonths` | 保存应季月份 | 🖥管理后台 | `{id, months}` | `{success}` | | `POST /api/admin/energy-config/source-list` | 能量来源配置列表 | 🖥管理后台 | — | `List` | | `POST /api/admin/membership/levels` | 会员等级列表 | 🖥管理后台 | — | `List` | | `POST /api/admin/membership/overview` | 会员概览统计 | 🖥管理后台 | — | `{freeCount, familyCount, providerCount, ...}` | | `POST /api/admin/membership/upgrade-records` | 会员升级记录 | 🖥管理后台 | `{page, size}` | `Page` | | `POST /api/admin/assessment/pending-list` | 待分配规划师的测评列表 | 🖥管理后台 | `{page, size}` | `{records, total}` | | `POST /api/admin/assessment/available-guides` | 可选规划师列表 | 🖥管理后台 | — | `List` | | `POST /api/admin/assessment/orders` | 测评订单列表 | 🖥管理后台 | `{page, size, status, keyword}` | `{records, total}` | | `POST /api/admin/assessment/assign-guide` | 分配规划师 | 🖥管理后台 | `{appointmentId, guideId}` | `null` | | `POST /api/admin/assessment/change-guide` | 更换规划师 | 🖥管理后台 | `{orderId, guideId}` | `null` | | `POST /api/admin/nutritionist/applications` | 营养师申请列表 | 🖥管理后台 | `{page, size, status}` | `Page` | | `POST /api/admin/nutritionist/approve/{userId}` | 通过营养师审核 | 🖥管理后台 | path: `userId` | `{success}` | | `POST /api/admin/nutritionist/reject/{userId}` | 驳回营养师审核 | 🖥管理后台 | path: `userId`, body: `{reason}` | `{success}` | ## 完整性分析 | # | 维度 | 评估 | 说明 | |---|------|------|------| | 1 | **流程完整性** | ✅ 完整 | 覆盖管理员认证、用户/孩子/家庭管理、任务/奖励审核、积分/模板管理、规划师/营养师审核、商品/订单管理、系统配置共7个阶段 | | 2 | **异常路径** | ⚠️ 部分覆盖 | Token过期引导重新登录已覆盖;验证码错误、密码错误、重复手机号等在Service层处理,前端已有提示 | | 3 | **端点覆盖** | ✅ 完整 | 52+个端点全部映射到流程图中,涵盖AdminAuthController、AdminController、AdminGuideController、AdminProductController、AdminProductOrderController、AdminFoodController、AdminEnergyConfigController | | 4 | **角色覆盖** | ✅ 完整 | 管理员(admin)全量管理功能覆盖;规划师(teacher)审核等跨角色操作已标注 | | 5 | **数据实体** | ✅ 完整 | users、family_members、families、tasks、rewards、points_logs、task_templates、guide_packages、products、product_orders、foods、admins等表均在图中映射 | | 6 | **一致性** | ✅ 与代码一致 | 所有端点路径与实际Controller中的`@PostMapping`匹配,无重复路由 |