技师端账户系统需求明细文档
项目名称: 麦瓣健康 - 技师端账户系统
文档版本: v2.2
创建日期: 2025-10-24
最后更新: 2025-10-24
需求总数: 8个核心功能,98个细分需求点,50个API接口
一、需求概述
1.1 模块定位
账户系统是技师端APP的入口模块,负责技师的注册、登录、实名认证、资质审核、服务类别选择等核心功能,是技师入驻平台的第一步。
1.2 业务目标
- 确保技师身份真实可靠(实名认证+资质验证)
- 建立完善的准入机制(服务类别+性别限制)
- 提供便捷的注册流程(3分钟完成注册,2-3天完成审核)
- 保障平台和用户安全(健康证明+无犯罪记录)
1.3 关键指标
- 注册转化率 ≥ 60%
- 审核通过率 ≥ 80%
- 资质真实率 = 100%
- 账户安全事故 = 0
二、功能需求详细说明
2.1 手机号注册/登录
2.1.1 功能概述
技师使用手机号+验证码的方式完成注册和登录,首次登录自动创建账户。
2.1.2 对应API
| API接口 | 归属微服务 | 说明 |
|---|---|---|
POST /api/v1/auth/nurse/sendSmsCode | maiban-auth | 发送短信验证码 |
POST /api/v1/auth/nurse/login | maiban-auth | 手机号+验证码登录 |
POST /api/v1/auth/nurse/refreshToken | maiban-auth | 刷新Token |
GET /api/v1/auth/nurse/deviceList | maiban-auth | 获取登录设备列表 |
DELETE /api/v1/auth/nurse/device/{deviceId} | maiban-auth | 移除登录设备 |
2.1.3 页面结构
┌────────────────────────────┐
│ 麦瓣健康·技师端 │
│ │
│ [Logo] │
│ │
│ ┌──────────────────┐ │
│ │ 手机号输入框 │ │
│ └──────────────────┘ │
│ │
│ ┌─────────┬────────┐ │
│ │验证码框 │[获取验证码]│ │
│ └─────────┴────────┘ │
│ │
│ [登录/注册] │
│ │
│ □ 我已阅读并同意《用户协议》│
│ 和《隐私政策》 │
└────────────────────────────┘
2.1.4 详细需求
PRD-ACC-001: 手机号输入验证
- 输入框限制:仅数字,最多11位
- 实时验证:输入满11位自动校验格式
- 格式规则:1开头,第二位为3-9,共11位
- 错误提示:"请输入正确的手机号"
- 已注册提示:显示"该号码已注册,将直接登录"
- 未注册提示:显示"新用户将自动注册"
PRD-ACC-002: 验证码发送
- 触发条件:手机号格式正确 + 勾选协议
- 发送接口:调用短信服务商API(阿里云/腾讯云)
- 验证码规则:6位数字,5分钟有效
- 倒计时显示:60秒倒计时,"重新发送(59s)"
- 发送限制:
- 同一手机号每天最多5次
- 同一IP每小时最多10次
- 同一设备每天最多20次
- 失败处理:
- 网络失败:提示"网络异常,请稍后重试"
- 发送失败:提示"发送失败,请联系客服"
- 触发限制:提示"今日发送次数已达上限"
PRD-ACC-003: 验证码校验
- 输入框:6位数字,自动聚焦
- 自动提交:输入满6位自动提交
- 校验接口:调用后端验证接口
- 成功处理:
- 首次登录:跳转到"完善资料"页面
- 老用户:跳转到"首页"
- 失败处理:
- 验证码错误:提示"验证码错误,请重新输入"
- 验证码过期:提示"验证码已过期,请重新获取"
- 多次错误:3次错误后锁定5分钟
PRD-ACC-004: Token管理
- Token生成:JWT格式,包含userId、phone、role
- 有效期:7天(可续期)
- 存储位置:本地加密存储(Keychain/KeyStore)
- 自动续期:Token过期前24小时自动刷新
- 失效处理:Token失效自动跳转登录页
PRD-ACC-005: 设备管理
- 设备指纹:记录设备型号、系统版本、IMEI/UDID
- 常用设备:记录最近3个登录设备
- 异地登录提醒:
- 新设备登录发送短信通知
- App内推送"您的账号在新设备登录"
- 显示设备信息和登录时间地点
- 多端互踢:同一账号仅允许1个设备在线,新登录踢掉旧设备
PRD-ACC-006: 账号安全检测
- 登录前检测:
- 账号状态(正常/冻结/注销)
- 是否在黑名单
- 是否有违规记录
- 冻结账号拦截:提示"账号已冻结,请联系客服"
- 注销账号拦截:提示"账号已注销,请重新注册"
2.2 实名认证
2.2.1 功能概述
技师完成身份证实名认证+人脸识别,确保技师身份真实可靠。
2.2.2 对应API
| API接口 | 归属微服务 | 说明 |
|---|---|---|
POST /api/v1/auth/nurse/uploadIdCard | maiban-auth | 上传身份证照片(OCR识别) |
POST /api/v1/auth/nurse/realname | maiban-auth | 提交实名认证信息 |
POST /api/v1/auth/nurse/face-verify | maiban-auth | 人脸识别验证 |
GET /api/v1/auth/nurse/realname/status | maiban-auth | 查询实名认证状态 |
POST /api/v1/auth/nurse/realname/appeal | maiban-auth | 实名认证申诉 |
2.2.3 页面流程
注册成功 → 实名认证引导 → 上传身份证 → OCR识别 → 人脸识别 → 提交审核 → 审核结果
2.2.4 详细需求
PRD-ACC-007: 身份证上传
- 上传方式:
- 拍照上传(调用相机)
- 相册选择(调用相册)
- 上传要求:
- 需上传正反面各1张
- 图片格式:JPG/PNG
- 图片大小:≤5MB
- 图片清晰度:≥720p
- 拍照指引:
- 显示身份证取景框
- 提示"请将身份证放入框内"
- 自动检测边缘并拍照
- 图片校验:
- 检测是否包含身份证
- 检测图片是否清晰
- 检测是否为复印件(拒绝)
- 不通过提示:
- "未检测到身份证,请重新拍摄"
- "图片模糊,请在光线充足处重新拍摄"
- "不支持复印件,请使用原件"
PRD-ACC-008: OCR信息识别
- 识别内容:
- 姓名、性别、民族
- 出生日期、身份证号
- 住址、签发机关
- 有效期限
- 识别服务:调用阿里云/腾讯云OCR API
- 自动填充:识别成功后自动填充表单
- 人工修正:允许技师修正识别错误的信息
- 必填项校验:姓名、性别、身份证号、有效期不能为空
PRD-ACC-009: 身份证信息验证
- 格式校验:
- 身份证号18位
- 校验位算法验证
- 出生日期合理性(年龄18-65岁)
- 有效期校验:
- 不接受已过期身份证
- 有效期<3个月提示"即将过期,请提前准备新证"
- 年龄限制:
- 最小年龄:18岁(不含)
- 最大年龄:65岁(不含)
- 不符合提示:"年龄需在18-65岁之间"
- 实名验证:
- 对接公安部身份验证接口
- 校验姓名+身份证号是否一致
- 失败提示:"身份信息验证失败,请核对后重试"
PRD-ACC-010: 人脸识别认证
- 触发时机:身份证信息填写完成后
- 识别方式:活体检测(眨眼、摇头、张嘴等)
- 识别服务:调用Face++/腾讯云人脸识别API
- 比对逻辑:
- 人脸照片 vs 身份证头像
- 相似度阈值:≥80%通过
- 失败重试:
- 最多重试3次
- 3次失败需重新上传身份证
- 常见失败原因:
- "人脸与身份证不符"
- "光线不足,请在明亮处重试"
- "未检测到人脸"
- "检测到多张人脸"
PRD-ACC-011: 重复认证检测
- 检测规则:同一身份证号仅允许注册1个账号
- 检测时机:提交审核前
- 已注册提示:"该身份证已注册账号,一个身份证仅能注册一个账号"
- 申诉通道:提供"账号找回"或"联系客服"入口
PRD-ACC-012: 审核状态管理
- 状态流转:
未认证 → 认证中 → 已通过/未通过 - 状态显示:
- 未认证:显示"去认证"按钮
- 认证中:显示"审核中,预计2-3个工作日"
- 已通过:显示"已认证"绿色标签
- 未通过:显示"未通过,查看原因"
- 审核时效:
- 自动审核:OCR+人脸识别通过即刻通过
- 人工审核:需要人工介入的2-3个工作日
- 结果通知:
- 短信通知
- App推送通知
- 消息中心留存
PRD-ACC-013: 审核失败处理
- 失败原因分类:
- 身份证照片不清晰
- 身份证信息无法识别
- 人脸识别不通过
- 身份信息与公安数据不符
- 年龄不符合要求
- 失败提示:详细说明失败原因和解决方法
- 重新提交:允许修正后重新提交
- 多次失败:3次失败后需联系客服人工审核
2.3 资质上传
2.3.1 功能概述
技师上传护士证/康复师证/育婴师证/按摩师证等专业资质证书,平台审核后开通对应服务权限。
2.3.2 对应API
| API接口 | 归属微服务 | 说明 |
|---|---|---|
POST /api/v1/nurse/qualification/upload | maiban-nurse | 上传证书照片 |
POST /api/v1/nurse/qualification | maiban-nurse | 提交证书信息 |
GET /api/v1/nurse/certificates | maiban-nurse | 获取证书列表 |
GET /api/v1/nurse/qualification/{id} | maiban-nurse | 获取证书详情 |
PUT /api/v1/nurse/qualification/{id} | maiban-nurse | 更新证书信息 |
DELETE /api/v1/nurse/qualification/{id} | maiban-nurse | 删除证书 |
POST /api/v1/nurse/qualification/verify | maiban-nurse | 触发证书真伪验证 |
2.3.3 页面结构
┌────────────────────────────┐
│ 资质证书上传 │
│ │
│ 已上传证书(2) │
│ ┌──────────────────┐ │
│ │ [护士证] │ │
│ │ 审核状态:已通过 │ │
│ │ 有效期:2026-05-20│ │
│ └──────────────────┘ │
│ ┌──────────────────┐ │
│ │ [康复师证] │ │
│ │ 审核状态:审核中 │ │
│ └──────────────────┘ │
│ │
│ [+ 添加证书] │
└────────────────────────────┘
2.3.4 详细需求
PRD-ACC-014: 证书类型管理
- 支持类型:
- 护士执业证书
- 康复治疗师证
- 育婴师证(高级/中级/初级)
- 按摩师证(保健按摩师/中医按摩师)
- 其他相关资质(美容师证、营养师证等)
- 类型选择:下拉列表选择证书类型
- 多证书支持:技师可上传多个不同类型证书
- 证书数量:最多上传5个证书
PRD-ACC-015: 证书照片上传
- 上传方式:拍照/相册选择
- 照片数量:每个证书1-2张(正面必传,背面选传)
- 照片要求:
- 格式:JPG/PNG
- 大小:≤5MB
- 清晰度:能清晰识别证书编号和个人信息
- 拍照指引:
- 显示证书取景框
- 提示"请将证书放平,确保文字清晰"
- 照片预览:上传后可预览、重新拍摄、删除
PRD-ACC-016: 证书信息录入
- 必填信息:
- 证书类型(下拉选择)
- 证书编号(文本输入,支持数字和字母)
- 发证机关(文本输入)
- 发证日期(日期选择)
- 有效期至(日期选择,或选择"长期有效")
- 选填信息:
- 证书等级(初级/中级/高级/技师)
- 专业类别(如护理学、康复医学等)
- OCR辅助识别:自动识别证书照片中的信息并填充
- 格式校验:
- 证书编号格式验证(不同证书类型有不同规则)
- 日期逻辑校验(发证日期<有效期至)
PRD-ACC-017: 证书真伪验证
- 验证方式:
- 护士证:对接国家卫健委执业注册信息系统
- 康复师证:对接人社部职业资格证书查询系统
- 育婴师证/按摩师证:对接人社部技能人才评价证书全国联网查询系统
- 验证内容:证书编号+姓名+身份证号三要素匹配
- 验证失败处理:
- 查询不到:提示"未查询到该证书,请确认信息无误"
- 信息不符:提示"证书信息与身份信息不符"
- 已注销/吊销:提示"该证书已失效"
- 人工审核:自动验证失败时转人工审核
PRD-ACC-018: 证书等级识别
- 等级分类:
- 初级(影响接单权重+10%)
- 中级(+20%)
- 高级(+30%)
- 技师(+50%)
- 等级来源:
- 从证书照片OCR识别
- 技师手动选择
- 人工审核确认
- 等级展示:在技师个人主页显示最高等级
PRD-ACC-019: 证书有效期管理
- 到期提醒:
- 提前30天:推送"您的XX证书即将到期,请提前准备"
- 提前7天:再次推送提醒
- 过期当天:推送"您的XX证书已过期,请尽快更新"
- 过期处理:
- 证书过期后自动限制相关服务类别接单
- 个人中心显示"证书已过期"红色警告
- 需上传新证书重新审核后才能恢复
- 更新流程:上传新证书 → 平台审核 → 恢复接单权限
PRD-ACC-020: 证书审核管理
- 审核维度:
- 照片清晰度(能否看清证书信息)
- 信息完整性(证书编号、发证机关、有效期等)
- 真伪验证结果
- 证书是否在有效期内
- 证书持有人是否为本人
- 审核时效:48小时内完成
- 审核结果:
- 通过:显示"已通过"绿色标签,开通对应服务权限
- 不通过:显示"未通过"红色标签,注明原因
- 审核失败原因:
- "照片模糊,无法识别证书信息"
- "证书编号查询不到,请确认信息准确"
- "证书已过期"
- "证书持有人与身份证姓名不符"
- 申诉通道:审核不通过可申请人工复核
PRD-ACC-021: 证书模板示例
- 示例入口:上传页面显示"查看示例"
- 示例内容:
- 标准的证书照片(正确示例)
- 常见错误示例(模糊、反光、缺角等)
- 拍摄技巧说明
- 示例展示:图片+文字说明
2.4 个体户执照上传
2.4.1 功能概述
技师上传营业执照或灵活就业证明,满足平台合规要求,用于税务结算。
2.4.2 对应API
| API接口 | 归属微服务 | 说明 |
|---|---|---|
POST /api/v1/nurse/license/upload | maiban-nurse | 上传营业执照/灵活就业证明照片 |
POST /api/v1/nurse/license | maiban-nurse | 提交执照信息 |
GET /api/v1/nurse/license | maiban-nurse | 获取执照信息 |
PUT /api/v1/nurse/license | maiban-nurse | 更新执照信息 |
POST /api/v1/nurse/license/verify | maiban-nurse | 触发执照验证(对接企业信用系统) |
GET /api/v1/nurse/license/annual-status | maiban-nurse | 查询营业执照年检状态 |
2.4.3 详细需求
PRD-ACC-022: 上传方式选择
- 两种方式:
- 个体工商户营业执照
- 灵活就业证明
- 选择页面:
- 显示两种方式的说明和区别
- 推荐个体户方式(税务优惠)
- 灵活就业适用人群说明
- 切换支持:已上传后可切换方式重新上传
PRD-ACC-023: 营业执照上传
- 上传方式:拍照/相册
- 照片要求:
- 清晰显示统一社会信用代码
- 清晰显示经营范围
- 清晰显示法定代表人/经营者
- 清晰显示有效期
- OCR识别:
- 自动识别统一社会信用代码
- 自动识别法定代表人/经营者姓名
- 自动识别营业期限
- 自动识别经营范围
PRD-ACC-024: 营业执照验证
- 真伪验证:
- 对接国家企业信用信息公示系统
- 查询统一社会信用代码
- 验证企业状态(正常/注销/吊销)
- 法人一致性验证:
- 营业执照法人/经营者姓名需与实名认证姓名一致
- 不一致提示:"营业执照经营者需与认证姓名一致"
- 特殊情况申诉通道(如委托经营)
- 经营范围检查:
- 需包含健康服务/居民服务/生活美容等相关内容
- 不符合提示:"经营范围不包含健康服务类别,请联系客服"
- 有效期检查:
- 营业执照需在有效期内
- 即将到期(<3个月)提示预警
- 过期提示:"营业执照已过期,请更新"
PRD-ACC-025: 灵活就业证明上传
- 接受类型:
- 社保缴纳证明(显示灵活就业参保)
- 灵活就业登记证
- 个人所得税完税证明
- 街道/社区开具的灵活就业证明
- 照片要求:
- 清晰显示姓名、身份证号
- 清晰显示证明类型和开具单位
- 有效期内(一般3-6个月)
- 人工审核:灵活就业证明需人工审核(自动审核无法验证真伪)
PRD-ACC-026: 执照年检提醒
- 适用对象:上传营业执照的技师
- 年检时间:每年1-6月
- 提醒策略:
- 1月1日推送:"请及时完成营业执照年检"
- 5月1日再次推送
- 6月30日未年检警告:"营业执照未年检,可能影响接单"
- 年检状态查询:对接企业信用系统查询年检状态
PRD-ACC-027: 税务说明
- 说明内容:
- 个体户税务优惠政策
- 灵活就业税务政策
- 平台代扣代缴说明
- 税务申报流程
- 展示位置:上传页面底部"税务说明"链接
2.5 健康证明上传
2.5.1 功能概述
技师上传健康证和无犯罪记录证明,确保技师健康状况良好,无犯罪记录,保障用户安全。
2.5.2 对应API
| API接口 | 归属微服务 | 说明 |
|---|---|---|
POST /api/v1/nurse/health-cert/upload | maiban-nurse | 上传健康证照片 |
POST /api/v1/nurse/health-cert | maiban-nurse | 提交健康证信息 |
POST /api/v1/nurse/criminal-record/upload | maiban-nurse | 上传无犯罪记录证明照片 |
POST /api/v1/nurse/criminal-record | maiban-nurse | 提交无犯罪记录证明信息 |
GET /api/v1/nurse/health-certificates | maiban-nurse | 获取健康证明列表 |
GET /api/v1/nurse/cooperate-hospitals | maiban-nurse | 获取合作体检机构列表 |
2.5.3 详细需求
PRD-ACC-028: 健康证上传
- 证明类型:
- 健康证(公共场所从业人员健康证明)
- 体检报告(指定项目的体检报告)
- 上传方式:拍照/相册,支持上传1-3张照片
- 照片要求:
- 清晰显示姓名、身份证号、照片
- 清晰显示体检结论(合格/不合格)
- 清晰显示发证日期和有效期
- 清晰显示发证机构公章
- OCR识别:
- 姓名、身份证号
- 发证日期、有效期
- 体检结论
PRD-ACC-029: 健康证有效期管理
- 有效期:
- 健康证一般有效期为1年
- 部分地区6个月
- 自动识别有效期,允许技师修正
- 到期提醒:
- 提前30天推送提醒
- 提前7天再次提醒
- 过期当天警告:"健康证已过期,请尽快更新"
- 过期处理:
- 过期后限制接单
- 需重新上传健康证审核通过后恢复
PRD-ACC-030: 健康证要求说明
- 体检项目要求:
- 必检项目:
- 血常规
- 胸透(排除肺结核)
- 肝功能(排除肝炎)
- 皮肤科检查(排除皮肤病)
- 便检(排除肠道传染病)
- 推荐项目:
- 心电图
- 血压
- 必检项目:
- 不合格情况:
- 有传染病史(肺结核、肝炎、皮肤病等)不予通过
- 需提供医院康复证明
- 说明位置:上传页面顶部"体检项目要求"折叠说明
PRD-ACC-031: 合作体检机构
- 机构列表:
- 提供平台合作的体检机构列表(按城市)
- 显示机构名称、地址、电话、价格
- 显示"平台合作,优惠价XX元"
- 快速预约:点击机构可拨打电话或跳转预约
- 加急办理:部分机构支持加急(当天出结果)
PRD-ACC-032: 无犯罪记录证明上传
- 证明类型:
- 公安机关开具的无犯罪记录证明
- 个人信用报告(显示无犯罪记录)
- 上传方式:拍照/相册,1-2张
- 照片要求:
- 清晰显示姓名、身份证号
- 清晰显示开具单位公章
- 清晰显示开具日期
- 有效期:
- 一般3-6个月有效
- 技师手动选择有效期(3个月/6个月/长期)
PRD-ACC-033: 无犯罪记录办理指引
- 办理流程:
- 携带身份证到户籍地派出所
- 填写申请表,说明用途(平台入驻)
- 等待3-7个工作日
- 领取证明(部分地区可邮寄)
- 异地办理:
- 部分城市支持异地办理
- 提供异地办理方法
- 常见问题:
- "需要回老家办理吗?" → 说明
- "收费吗?" → 免费
- "多久能办下来?" → 3-7天
PRD-ACC-034: 健康异常处理
- 传染病史:
- 有肺结核史:需提供痊愈证明+复查报告(6个月内)
- 有肝炎史:需提供治愈证明+肝功能正常报告
- 有皮肤病史:需提供治愈证明
- 申诉通道:健康证不合格可申请人工审核
- 定期复查:有病史的技师需3个月复查一次
2.6 服务类别选择(v2.0新增)
2.6.1 功能概述
技师根据自身资质选择可提供的服务类别(5大类别),平台审核资质匹配度后开通相应接单权限。
2.6.2 对应API
| API接口 | 归属微服务 | 说明 |
|---|---|---|
GET /api/v1/nurse/categories/available | maiban-nurse | 获取可选服务类别列表(含推荐) |
POST /api/v1/nurse/categories | maiban-nurse | 提交选择的服务类别 |
GET /api/v1/nurse/categories | maiban-nurse | 获取已选服务类别列表 |
PUT /api/v1/nurse/switch-category | maiban-nurse | 切换服务类别(开启/关闭接单) |
POST /api/v1/nurse/category/verify | maiban-nurse | 触发资质匹配验证 |
GET /api/v1/nurse/category/income-stats | maiban-nurse | 获取各类别收益对比数据 |
POST /api/v1/nurse/professional/consult | maiban-im | 专业严选客服咨询 |
2.6.3 页面结构
┌────────────────────────────┐
│ 选择服务类别 │
│ │
│ 请选择您可以提供的服务 │
│ (可多选,需审核通过后生效) │
│ │
│ ☑️ 专业严选 │
│ 需线下考核入驻 │
│ 营业时间:9:00-21:00 │
│ [了解详情] │
│ │
│ ☑️ 健康管理 (仅女性) │
│ 需持有护士证/康复师证 │
│ 营业时间:9:00-21:00 │
│ [了解详情] │
│ │
│ ☐ 功能型服务 │
│ 需持有相关专业证书 │
│ 营业时间:9:00-21:00 │
│ 22:00-08:00加收30% │
│ [了解详情] │
│ │
│ ☐ 差旅放松 │
│ 需持有按摩师证 │
│ 营业时间:至23:00 │
│ [了解详情] │
│ │
│ ☐ 肩颈快按 │
│ 需持有按摩师证 │
│ 营业时间:至22:00 │
│ 支持团购订单 │
│ [了解详情] │
│ │
│ [下一步:资质审核] │
└────────────────────────────┘
2.6.4 详细需求
PRD-ACC-035: 服务类别展示
- 5大类别:
- 专业严选(高端定位)
- 健康管理(女性专属)
- 功能型服务(全面服务)
- 差旅放松(延时服务)
- 肩颈快按(团购支持)
- 展示内容:
- 类别名称
- 准入要求(资质、性别、考核)
- 营业时间
- 特殊说明(如夜间服务费、团购等)
- 服务项目列表(可展开查看)
- 推荐标识:根据技师已上传资质推荐合适类别
PRD-ACC-036: 多选逻辑
- 选择方式:复选框多选
- 选择限制:至少选择1个,最多选择5个(全选)
- 智能提示:
- 未上传对应资质时,选择后提示"该类别需要XX证书,请先上传"
- 性别不符时(男性选择健康管理),提示"该类别仅限女性技师"
- 未选择任何类别时,"下一步"按钮灰显
- 依赖关系:专业严选需要先联系客服,点击后弹窗说明
PRD-ACC-037: 准入条件验证
- 专业严选:
- 需持有高级职称证书或从业5年以上
- 需联系客服预约线下考核
- 考核内容:专业技能、服务标准、沟通能力
- 考核通过后开通
- 健康管理:
- 需持有护士证或康复师证
- 仅女性技师(系统自动验证)
- 产后养护类需额外培训认证
- 功能型服务:
- 需持有相关专业证书(护士证/康复师证/按摩师证)
- 手法通乳/回乳需额外线上培训+考试
- 差旅放松:
- 需持有按摩师证
- 无额外要求
- 肩颈快按:
- 需持有按摩师证
- 自动开通团购订单权限
PRD-ACC-038: 资质匹配算法
- 匹配逻辑:
IF 持有护士证 THEN 推荐健康管理+功能型服务 IF 持有康复师证 THEN 推荐健康管理+功能型服务 IF 持有按摩师证 THEN 推荐功能型服务+差旅放松+肩颈快按 IF 持有高级证书 THEN 推荐专业严选 - 自动推荐:进入页面自动勾选推荐类别(技师可取消)
- 匹配度显示:每个类别显示匹配度(高/中/低)
PRD-ACC-039: 服务项目详情
- 展示方式:点击"了解详情"展开服务项目列表
- 详情内容:
- 专业严选:
- ☑️ 骨态健康(男女不限)
- ☑️ 产后骨盆修复
- ☑️ 产后肋弓调理
- ☑️ 腹壁筋膜管理
- ☑️ 含胸驼背骨态矫正
- ☑️ 骨龄体态综合调理
- ☑️ 青少年体态管理
- 健康管理:
- ☑️ 产后养护、香灸养生、脊背释压
- ☑️ 腹部养护、肩颈疏通、腰酸腰僵调理
- 功能型服务:
- ☑️ 睡眠管理、运动复健、腹部管理
- ☑️ 香灸暖宫、气血香灸
- ☑️ 手法通乳、手法回乳、淋巴代谢
- 差旅放松:
- ☑️ 足部健康护理
- 肩颈快按:
- ☑️ 坐式肩颈快按
- 专业严选:
- 服务说明:每个项目简短说明(50字内)
PRD-ACC-040: 专业严选客服咨询
- 触发方式:
- 选择专业严选类别时自动弹窗
- 弹窗文案:"专业严选需线下考核入驻,请先联系客服做专业了解"
- 联系方式:
- 在线客服(优先)
- 客服电话:400-XXX-XXXX(工作时间 9:00-21:00)
- 预约回电(留下电话,客服主动联系)
- 咨询内容:
- 技师专业背景和资质
- 从业经验和擅长领域
- 线下考核时间安排
- 专业严选服务标准说明
- 咨询后流程:
- 客服预约线下考核时间
- 技师携带资质证书参加考核
- 考核通过后开通权限
- 未通过可再次预约考核(3个月后)
PRD-ACC-041: 类别审核流程
- 审核维度:
- 资质证书是否符合类别要求
- 性别是否符合(健康管理类)
- 是否完成线下考核(专业严选)
- 是否完成线上培训(通乳类)
- 审核时效:
- 自动审核:即时(资质+性别验证)
- 人工审核:48小时内
- 线下考核:预约后7天内
- 审核结果:
- 通过:显示"已开通",可立即接单
- 不通过:显示"未通过",注明原因
- 部分通过:部分类别开通,部分未通过
- 结果通知:推送+短信+消息中心
PRD-ACC-042: 类别收益对比
- 展示内容:
- 各类别平均订单单价
- 各类别平均接单量(每月)
- 各类别平均月收入
- 各类别服务时段(影响接单量)
- 数据来源:平台统计的近3个月数据
- 展示位置:选择页面底部"收益参考"折叠卡片
2.7 性别验证(v2.0新增)
2.7.1 功能概述
系统从身份证自动识别技师性别,健康管理类服务仅限女性技师注册,保障用户隐私和服务质量。
2.7.2 对应API
| API接口 | 归属微服务 | 说明 |
|---|---|---|
GET /api/v1/nurse/gender | maiban-nurse | 获取技师性别信息 |
POST /api/v1/nurse/gender/appeal | maiban-nurse | 性别信息申诉 |
GET /api/v1/nurse/gender/verify | maiban-nurse | 验证性别与服务类别匹配度 |
2.7.3 详细需求
PRD-ACC-043: 性别自动识别
- 识别来源:身份证OCR识别或身份证号码推算
- 识别规则:身份证倒数第2位,奇数为男,偶数为女
- 识别时机:实名认证完成时自动识别
- 识别结果存储:用户档案中存储性别字段
PRD-ACC-044: 健康管理类性别限制
- 限制规则:健康管理类服务仅限女性技师
- 拦截时机:
- 服务类别选择时:男性技师选择健康管理类时自动取消勾选+提示
- 审核时:后端二次验证,男性技师审核自动拒绝
- 提示文案:"健康管理类服务(产后养护等)仅限女性技师注册,以保护用户隐私"
- 例外申请:无例外,严格限制
PRD-ACC-045: 性别信息展示
- 展示位置:
- 技师个人主页:显示性别图标(♀/♂)
- 订单详情:用户查看技师信息时显示性别
- 技师列表:筛选时可按性别筛选
- 隐私保护:
- 仅在必要场景展示性别
- 不在公开场合过度强调性别
- 用户偏好:用户端可设置技师性别偏好(可选女性技师/男性技师/无偏好)
PRD-ACC-046: 性别错误申诉
- 申诉场景:
- 身份证OCR识别错误
- 身份证号码推算错误(极少数情况)
- 申诉入口:个人中心 → 账号信息 → 性别信息 → "信息有误?申诉"
- 申诉流程:
- 提交申诉 + 上传身份证照片
- 人工审核(1个工作日)
- 审核通过后修正性别信息
- 申诉限制:每个账号仅能申诉1次
PRD-ACC-047: 其他类别性别说明
- 专业严选:男女均可
- 功能型服务:男女均可
- 差旅放松:男女均可
- 肩颈快按:男女均可
- 说明展示:类别选择页面注明性别要求
2.8 技师归属类型选择(v2.0新增)
2.8.1 功能概述
技师可选择3种归属类型(平台技师/商户技师/团队技师),不同归属类型影响订单来源、结算方式和佣金比例。支持归属类型切换,帮助技师灵活发展职业路径。
2.8.2 对应API
| API接口 | 归属微服务 | 说明 |
|---|---|---|
GET /api/v1/nurse/affiliation/types | maiban-nurse | 获取归属类型列表(含对比) |
POST /api/v1/nurse/affiliation | maiban-nurse | 提交归属类型选择 |
GET /api/v1/nurse/affiliation | maiban-nurse | 获取当前归属信息 |
PUT /api/v1/nurse/switch-affiliation | maiban-nurse | 申请切换归属类型 |
DELETE /api/v1/nurse/affiliation | maiban-nurse | 解除归属关系 |
GET /api/v1/nurse/merchant/list | maiban-nurse | 搜索商户列表 |
GET /api/v1/nurse/team/list | maiban-nurse | 搜索团队列表 |
POST /api/v1/nurse/merchant/join | maiban-nurse | 申请加入商户 |
POST /api/v1/nurse/team/join | maiban-nurse | 申请加入团队 |
POST /api/v1/nurse/affiliation/join-by-code | maiban-nurse | 通过邀请码加入 |
GET /api/v1/nurse/affiliation/income-stats | maiban-payment | 获取归属收益统计 |
2.8.4 页面结构
┌────────────────────────────┐
│ 选择归属类型 │
│ │
│ 请选择您的技师归属类型 │
│ │
│ ┌───────────────────┐ │
│ │ ● 平台技师 [推荐] │ │
│ │ 个体入驻,自由接单 │ │
│ │ 💰 佣金15%-20% │ │
│ │ 📊 订单来源:平台池 │ │
│ │ [了解详情] │ │
│ └───────────────────┘ │
│ │
│ ┌───────────────────┐ │
│ │ ○ 商户技师 │ │
│ │ 归属养生馆/美容院 │ │
│ │ 💰 由商户设定 │ │
│ │ 📊 商户+平台订单 │ │
│ │ [了解详情] │ │
│ └───────────────────┘ │
│ │
│ ┌───────────────────┐ │
│ │ ○ 团队技师 │ │
│ │ 加入技师团队 │ │
│ │ 💰 团队内部分配 │ │
│ │ 📊 团队订单池 │ │
│ │ [了解详情] │ │
│ └───────────────────┘ │
│ │
│ [归属类型对比] │
│ │
│ [ 确认选择 ] │
└────────────────────────────┘
2.8.5 详细需求
PRD-ACC-048: 归属类型展示
- 3种类型:
- 平台技师:个体入驻,直接与平台结算(默认推荐)
- 商户技师:归属商户(养生馆/美容院等),商户统一结算
- 团队技师:加入技师团队,团队长分配订单
- 展示内容:
- 类型名称和图标
- 入驻方式说明
- 订单来源说明
- 结算方式说明
- 佣金比例说明
- 适用场景说明
- 默认选择:平台技师(标记"推荐")
PRD-ACC-049: 平台技师详情
- 入驻方式:个体入驻,完成认证即可
- 订单来源:
- 平台订单池(系统智能推送)
- 用户指定下单
- 老客户复购
- 结算方式:与平台直接结算,每周一结算上周收入
- 佣金比例:
- 基础佣金:15%(默认)
- 优秀技师:18%(订单≥200单,好评率≥95%)
- 金牌技师:20%(订单≥500单,好评率≥98%)
- 提现方式:余额随时提现,T+1到账
- 优势:
- 自由度高,不受约束
- 收入透明,按单结算
- 平台流量支持
- 限制:
- 需自行维护客户关系
- 订单量受接单能力影响
PRD-ACC-050: 商户技师详情
- 入驻方式:
- 方式一:商户邀请(商户生成邀请码)
- 方式二:技师申请加入(搜索商户,提交申请)
- 商户类型:
- 养生馆
- 美容院
- 产后康复中心
- 母婴护理中心
- 其他健康服务机构
- 订单来源:
- 商户自有订单(优先分配)
- 平台订单池(补充订单)
- 结算方式:
- 商户统一结算(商户与技师结算,商户与平台结算)
- 结算周期:由商户设定(周结/月结)
- 佣金比例:
- 由商户自主设定(平台建议60%-80%归技师)
- 商户订单:技师获得商户设定比例
- 平台订单:技师获得商户设定比例,商户向平台缴纳佣金
- 审核流程:
- 技师申请/接受邀请
- 商户审核技师资质(1-2个工作日)
- 审核通过后建立归属关系
- 优势:
- 订单更稳定(商户保底+平台补充)
- 可能有保底收入(部分商户提供)
- 商户提供培训和支持
- 限制:
- 受商户管理约束(排班、服务标准)
- 佣金比例由商户设定
- 无法直接获得平台全部流量
PRD-ACC-051: 团队技师详情
- 入驻方式:
- 方式一:团队长邀请(团队长生成邀请码)
- 方式二:技师申请加入(搜索团队,提交申请)
- 团队类型:
- 独立技师团队(3-10人小团队)
- 技师工作室(注册工作室的团队)
- 师徒团队(师傅带多个徒弟)
- 订单来源:
- 团队订单池(团队共享订单)
- 团队长分配订单(按规则分配)
- 结算方式:
- 团队长统一结算(平台→团队长→团队成员)
- 结算周期:由团队长设定
- 佣金比例:
- 由团队内部协商(建议70%-85%归接单技师)
- 团队长可提取管理费(建议5%-10%)
- 剩余部分归团队公共基金或团队长
- 团队规则:
- 团队人数:3-20人
- 团队长需完成≥100单且评分≥4.8
- 团队成员需遵守团队制定的服务标准
- 审核流程:
- 技师申请/接受邀请
- 团队长审核技师资质(1-3天)
- 审核通过后加入团队
- 优势:
- 订单共享,接单机会更多
- 团队互助,经验交流
- 收入更稳定(订单池共享)
- 限制:
- 需遵守团队规则和分配机制
- 佣金比例由团队协商
- 受团队长管理约束
PRD-ACC-052: 归属类型对比
- 对比维度:
- 入驻方式
- 订单来源
- 结算方式
- 佣金比例
- 适用场景
- 优势和限制
- 展示方式:表格对比,清晰展示差异
- 互动功能:点击表格可展开详细说明
PRD-ACC-053: 商户/团队搜索
- 搜索入口:选择商户/团队技师时,显示"搜索商户/团队"按钮
- 搜索条件:
- 商户/团队名称
- 所在城市
- 服务类别
- 评分筛选(≥4.5/≥4.8)
- 搜索结果:
- 商户/团队基本信息
- 技师人数
- 平均评分
- 佣金比例(商户可选择公开)
- 招募状态(招募中/已满员)
- 申请加入:
- 点击"申请加入"
- 填写申请理由(100字内)
- 上传资质证书(自动带入已上传证书)
- 提交申请
PRD-ACC-054: 邀请码加入
- 邀请码格式:8位数字+字母组合
- 输入方式:
- 手动输入邀请码
- 扫描二维码(商户/团队长生成)
- 验证流程:
- 输入邀请码
- 系统验证有效性
- 显示商户/团队信息
- 确认加入
- 失效机制:
- 邀请码有效期:7天(可续期)
- 使用次数:无限次(可设置上限)
- 过期/无效提示:"邀请码已过期或无效"
PRD-ACC-055: 归属类型切换
- 切换入口:个人中心 → 归属管理 → "切换归属类型"
- 切换前提:
- 需结算完当前所有订单收入
- 无未完成订单
- 无待处理纠纷
- 切换流程:
- 平台技师 → 商户/团队技师:
- 申请加入商户/团队或输入邀请码
- 商户/团队长审核
- 审核通过后切换归属
- 商户/团队技师 → 平台技师:
- 申请解除归属关系
- 商户/团队长确认(3天内)
- 结算完收入后解除
- 商户技师 ⇄ 团队技师:
- 先解除当前归属
- 等待15天冷静期
- 申请加入新归属
- 平台技师 → 商户/团队技师:
- 冷静期:
- 解除归属后15天内不可再次加入同一商户/团队
- 可以加入其他商户/团队
- 可以切换为平台技师
- 切换限制:
- 每月最多切换1次
- 每年最多切换3次
- 频繁切换会影响信誉评分
PRD-ACC-056: 归属关系解除
- 解除发起方:
- 技师主动解除
- 商户/团队长主动解除
- 系统自动解除(违规)
- 解除条件:
- 无未完成订单
- 无待结算收入
- 无未处理纠纷
- 解除流程:
- 发起方提交解除申请
- 对方确认(3天内,超时默认同意)
- 系统结算待结算收入
- 解除归属关系
- 进入15天冷静期
- 强制解除:
- 违规情况:商户/团队/技师严重违规
- 系统自动解除,不可申诉
- 收入正常结算
PRD-ACC-057: 归属状态管理
- 状态流转:
未选择 → 申请中 → 已归属 → 解除中 → 已解除(冷静期) → 可重新选择 - 状态显示:
- 未选择:显示"选择归属类型"入口
- 申请中:显示"等待审核",显示申请商户/团队信息
- 已归属:显示归属商户/团队名称,显示"切换归属"入口
- 解除中:显示"解除中",显示剩余结算金额
- 冷静期:显示"冷静期剩余X天"
- 状态查询:
- 个人中心显示当前归属状态
- 订单列表显示订单来源(平台/商户/团队)
PRD-ACC-058: 商户/团队资质审核
- 商户资质要求:
- 营业执照(必须)
- 经营范围包含健康服务
- 实体门店(提供门店照片)
- 法人实名认证
- 团队资质要求:
- 团队长资质:≥100单,评分≥4.8
- 团队人数:≥3人
- 团队成员资质齐全
- 审核流程:
- 商户/团队提交认证资料
- 平台审核(3-5个工作日)
- 审核通过后可招募技师
- 审核不通过说明原因
PRD-ACC-059: 归属收益统计
- 统计维度:
- 平台技师:平台订单收入、佣金比例、提现记录
- 商户技师:商户订单收入、平台订单收入、结算记录
- 团队技师:团队订单收入、团队分成、团队长管理费
- 展示内容:
- 本月收入、上月收入
- 订单来源分布(饼图)
- 收入趋势(折线图)
- 佣金明细
三、非功能需求
3.1 性能要求
| 指标 | 要求 | 说明 |
|---|---|---|
| 页面加载时间 | ≤2秒 | 4G网络环境 |
| 图片上传时间 | ≤5秒 | 单张5MB图片 |
| OCR识别时间 | ≤3秒 | 身份证/证书识别 |
| 人脸识别时间 | ≤5秒 | 活体检测+比对 |
| 接口响应时间 | ≤1秒 | 90%的请求 |
| 审核结果通知延迟 | ≤1分钟 | 推送通知 |
3.2 安全要求
| 需求 | 实现方式 |
|---|---|
| 数据传输加密 | HTTPS + TLS 1.3 |
| 敏感数据加密 | AES-256加密存储(身份证号、手机号) |
| Token安全 | JWT,7天有效期,本地加密存储 |
| 防重放攻击 | 请求签名+时间戳验证 |
| 防暴力破解 | 验证码错误3次锁定5分钟 |
| 防刷机制 | 同一手机号每天最多5次验证码 |
| 数据脱敏 | 身份证号显示前6位+***+后4位 |
| 权限控制 | 未认证技师无法接单 |
3.3 兼容性要求
- iOS: iOS 13.0及以上
- Android: Android 8.0及以上
- 分辨率: 支持375×667 ~ 414×896
- 网络: 支持4G/5G/WiFi
- 相机: 支持前置/后置摄像头
3.4 可用性要求
- 系统可用性: ≥99.9%
- 审核人工介入率: ≤10%(90%自动审核通过)
- 客服响应时间: ≤5分钟(工作时间)
- 故障恢复时间: ≤30分钟
四、界面原型
4.1 注册登录页
┌─────────────────────────────┐
│ 麦瓣健康·技师端 │
│ │
│ [Logo图标] │
│ │
│ 专业技师,值得信赖 │
│ │
│ ┌───────────────────┐ │
│ │ 📱 手机号 │ │
│ │ │ │
│ └───────────────────┘ │
│ │
│ ┌──────────┬────────┐ │
│ │🔢 验证码 │[60s] │ │
│ └──────────┴────────┘ │
│ │
│ [ 登录/注册 ] │
│ │
│ ☑️ 已阅读《用户协议》和 │
│ 《隐私政策》 │
│ │
│ 遇到问题?联系客服 │
└─────────────────────────────┘
4.2 实名认证页
┌─────────────────────────────┐
│ ← 实名认证 │
│ │
│ ━━━━━●━━━━━━━━━━ │
│ 上传身份证 人脸识别 审核 │
│ │
│ 请上传您的身份证 │
│ │
│ ┌───────────────────┐ │
│ │ [📷 拍摄身份证正面] │ │
│ │ │ │
│ │ (示例图) │ │
│ └───────────────────┘ │
│ │
│ ┌───────────────────┐ │
│ │ [📷 拍摄身份证反面] │ │
│ │ │ │
│ │ (示例图) │ │
│ └───────────────────┘ │
│ │
│ 💡 拍摄提示: │
│ · 证件放平,四角完整 │
│ · 光线充足,信息清晰 │
│ · 避免反光和阴影 │
│ │
│ [ 下一步 ] │
└─────────────────────────────┘
4.3 资质上传页
┌─────────────────────────────┐
│ ← 资质证书 │
│ │
│ 已上传 2 个证书 │
│ │
│ ┌───────────────────┐ │
│ │ 🏥 护士执业证书 │ │
│ │ 状态:✅ 已通过 │ │
│ │ 有效期:2026-05-20│ │
│ │ 证书编号:230*** │ │
│ │ [查看] [删除]│ │
│ └───────────────────┘ │
│ │
│ ┌───────────────────┐ │
│ │ 💪 康复治疗师证 │ │
│ │ 状态:⏳ 审核中 │ │
│ │ 有效期:2027-03-15│ │
│ │ [查看] │ │
│ └───────────────────┘ │
│ │
│ ┌───────────────────┐ │
│ │ ➕ 添加证书 │ │
│ └───────────────────┘ │
│ │
│ 最多上传5个证书 │
└─────────────────────────────┘
4.4 服务类别选择页
┌─────────────────────────────┐
│ ← 选择服务类别 │
│ │
│ 请选择您可提供的服务类别 │
│ (可多选,需审核后生效) │
│ │
│ ┌───────────────────┐ │
│ │ ☑️ 专业严选 [推荐] │ │
│ │ 需线下考核入驻 │ │
│ │ ⏰ 9:00-21:00 │ │
│ │ 💰 平均5000元/月 │ │
│ │ [了解详情] │ │
│ └───────────────────┘ │
│ │
│ ┌───────────────────┐ │
│ │ ☑️ 健康管理 [推荐] │ │
│ │ 仅女性技师 │ │
│ │ ⏰ 9:00-21:00 │ │
│ │ 💰 平均4000元/月 │ │
│ │ [了解详情] │ │
│ └───────────────────┘ │
│ │
│ ┌───────────────────┐ │
│ │ ☐ 功能型服务 │ │
│ │ 需持有专业证书 │ │
│ │ ⏰ 9:00-21:00 │ │
│ │ 🌙 夜间加收30% │ │
│ │ 💰 平均4500元/月 │ │
│ │ [了解详情] │ │
│ └───────────────────┘ │
│ │
│ [收益对比] [咨询客服] │
│ │
│ [ 提交审核 ] │
└─────────────────────────────┘
五、数据字典
说明:表名遵循数据库设计文档规范,部分表使用
mbn_前缀(麦瓣健康业务表)
5.1 技师基本信息表 (nurses)
| 字段名 | 类型 | 长度 | 必填 | 说明 |
|---|---|---|---|---|
| id | BIGINT | - | ✅ | 主键ID |
| phone | VARCHAR | 11 | ✅ | 手机号(唯一) |
| password | VARCHAR | 64 | ❌ | 密码(预留字段) |
| nickname | VARCHAR | 50 | ❌ | 昵称 |
| avatar | VARCHAR | 255 | ❌ | 头像URL |
| gender | TINYINT | - | ✅ | 性别:1男 2女 |
| real_name | VARCHAR | 50 | ✅ | 真实姓名 |
| id_card | VARCHAR | 18 | ✅ | 身份证号(AES-256加密) |
| id_card_front | VARCHAR | 255 | ✅ | 身份证正面照 |
| id_card_back | VARCHAR | 255 | ❌ | 身份证反面照 |
| id_card_expire_date | DATE | - | ❌ | 身份证有效期 |
| face_image | VARCHAR | 255 | ❌ | 人脸识别照片 |
| face_similarity | DECIMAL | 5,2 | ❌ | 人脸相似度 |
| business_license | VARCHAR | 255 | ❌ | 营业执照/灵活就业证明 |
| business_license_type | TINYINT | - | ❌ | 1营业执照 2灵活就业 |
| health_cert | VARCHAR | 255 | ❌ | 健康证明 |
| health_cert_expire_date | DATE | - | ❌ | 健康证有效期 |
| criminal_record_cert | VARCHAR | 255 | ❌ | 无犯罪记录证明 |
| status | TINYINT | - | ✅ | 状态:1正常 2冻结 3注销 |
| level | VARCHAR | 20 | ❌ | 等级:初级/中级/高级/金牌 |
| rating | DECIMAL | 3,2 | ❌ | 评分(0-5分) |
| order_count | INT | - | ❌ | 累计接单数 |
| is_accepting_order | TINYINT | - | ✅ | 是否接单:0否 1是 |
| service_range | INT | - | ❌ | 服务范围(公里) |
| lat | DECIMAL | 10,7 | ❌ | 纬度 |
| lng | DECIMAL | 10,7 | ❌ | 经度 |
| created_at | DATETIME | - | ✅ | 注册时间 |
| updated_at | DATETIME | - | ✅ | 更新时间 |
5.2 技师实名认证表 (mbn_nurse_real_name_auth)
| 字段名 | 类型 | 长度 | 必填 | 说明 |
|---|---|---|---|---|
| id | BIGINT | - | ✅ | 主键ID |
| nurse_id | BIGINT | - | ✅ | 技师ID |
| real_name | VARCHAR | 50 | ✅ | 真实姓名 |
| id_card_no | VARCHAR | 18 | ✅ | 身份证号(AES-256加密) |
| id_card_front | VARCHAR | 255 | ✅ | 身份证正面照 |
| id_card_back | VARCHAR | 255 | ✅ | 身份证反面照 |
| id_card_expire_date | DATE | - | ✅ | 身份证有效期 |
| birth_date | DATE | - | ❌ | 出生日期(从身份证提取) |
| age | TINYINT | - | ❌ | 年龄(自动计算) |
| face_image | VARCHAR | 255 | ✅ | 人脸识别照片 |
| face_similarity | DECIMAL | 5,2 | ✅ | 人脸相似度(0-100) |
| verify_channel | VARCHAR | 50 | ❌ | 验证渠道(Face++/腾讯云) |
| auth_status | TINYINT | - | ✅ | 认证状态:0未认证 1认证中 2已通过 3未通过 |
| auth_fail_reason | VARCHAR | 255 | ❌ | 审核失败原因 |
| auth_time | DATETIME | - | ❌ | 审核时间 |
| auditor_id | BIGINT | - | ❌ | 审核人ID |
| retry_count | TINYINT | - | ❌ | 重试次数 |
| created_at | DATETIME | - | ✅ | 创建时间 |
| updated_at | DATETIME | - | ✅ | 更新时间 |
5.3 技师证书表 (nurse_certificates)
| 字段名 | 类型 | 长度 | 必填 | 说明 |
|---|---|---|---|---|
| id | BIGINT | - | ✅ | 主键ID |
| nurse_id | BIGINT | - | ✅ | 技师ID |
| cert_type | TINYINT | - | ✅ | 证书类型:1护士证 2康复师证 3育婴师证 4按摩师证 5其他 |
| cert_no | VARCHAR | 50 | ✅ | 证书编号 |
| cert_photo_url | VARCHAR | 255 | ✅ | 证书照片URL |
| cert_back_photo_url | VARCHAR | 255 | ❌ | 证书背面照片URL |
| cert_level | TINYINT | - | ❌ | 证书等级:1初级 2中级 3高级 4技师 |
| issue_org | VARCHAR | 100 | ✅ | 发证机关 |
| issue_date | DATE | - | ✅ | 发证日期 |
| expire_date | DATE | - | ❌ | 有效期至(NULL表示长期) |
| verify_status | TINYINT | - | ✅ | 验证状态:0待审核 1已通过 2已过期 3未通过 |
| verify_fail_reason | VARCHAR | 255 | ❌ | 审核失败原因 |
| verify_channel | VARCHAR | 50 | ❌ | 验证渠道(卫健委/人社部) |
| auditor_id | BIGINT | - | ❌ | 审核人ID |
| audit_time | DATETIME | - | ❌ | 审核时间 |
| created_at | DATETIME | - | ✅ | 创建时间 |
| updated_at | DATETIME | - | ✅ | 更新时间 |
5.4 技师服务类别表 (mbn_nurse_service_categories)
| 字段名 | 类型 | 长度 | 必填 | 说明 |
|---|---|---|---|---|
| id | BIGINT | - | ✅ | 主键ID |
| nurse_id | BIGINT | - | ✅ | 技师ID |
| category_type | TINYINT | - | ✅ | 类别:1专业严选 2健康管理 3功能型 4差旅放松 5肩颈快按 |
| auth_status | TINYINT | - | ✅ | 审核状态:0待审核 1已通过 2未通过 |
| auth_fail_reason | VARCHAR | 255 | ❌ | 审核失败原因 |
| is_enabled | TINYINT | - | ✅ | 是否开启接单:0否 1是 |
| business_hours_start | TIME | - | ❌ | 营业开始时间 |
| business_hours_end | TIME | - | ❌ | 营业结束时间 |
| offline_exam_status | TINYINT | - | ❌ | 线下考核状态(专业严选):0未考核 1已通过 2未通过 |
| training_status | TINYINT | - | ❌ | 培训状态(通乳等):0未培训 1已完成 |
| auditor_id | BIGINT | - | ❌ | 审核人ID |
| audit_time | DATETIME | - | ❌ | 审核时间 |
| created_at | DATETIME | - | ✅ | 创建时间 |
| updated_at | DATETIME | - | ✅ | 更新时间 |
5.5 营业执照/灵活就业表 (mbn_nurse_business_licenses)
| 字段名 | 类型 | 长度 | 必填 | 说明 |
|---|---|---|---|---|
| id | BIGINT | - | ✅ | 主键ID |
| nurse_id | BIGINT | - | ✅ | 技师ID |
| license_type | TINYINT | - | ✅ | 类型:1营业执照 2灵活就业证明 |
| license_photo | VARCHAR | 255 | ✅ | 证照照片 |
| license_no | VARCHAR | 50 | ❌ | 统一社会信用代码(营业执照) |
| business_name | VARCHAR | 100 | ❌ | 企业名称 |
| legal_person | VARCHAR | 50 | ❌ | 法人/经营者姓名 |
| business_scope | TEXT | - | ❌ | 经营范围 |
| issue_date | DATE | - | ❌ | 发证日期 |
| expire_date | DATE | - | ❌ | 有效期至 |
| verify_status | TINYINT | - | ✅ | 审核状态:0待审核 1已通过 2未通过 |
| verify_fail_reason | VARCHAR | 255 | ❌ | 审核失败原因 |
| annual_inspection_status | TINYINT | - | ❌ | 年检状态:0未年检 1已年检 |
| auditor_id | BIGINT | - | ❌ | 审核人ID |
| audit_time | DATETIME | - | ❌ | 审核时间 |
| created_at | DATETIME | - | ✅ | 创建时间 |
| updated_at | DATETIME | - | ✅ | 更新时间 |
5.6 健康证明表 (mbn_nurse_health_certificates)
| 字段名 | 类型 | 长度 | 必填 | 说明 |
|---|---|---|---|---|
| id | BIGINT | - | ✅ | 主键ID |
| nurse_id | BIGINT | - | ✅ | 技师ID |
| cert_type | TINYINT | - | ✅ | 证明类型:1健康证 2无犯罪记录 |
| cert_photo | VARCHAR | 255 | ✅ | 证明照片 |
| cert_no | VARCHAR | 50 | ❌ | 证书编号 |
| issue_org | VARCHAR | 100 | ❌ | 开具机构 |
| issue_date | DATE | - | ✅ | 开具日期 |
| expire_date | DATE | - | ❌ | 有效期至 |
| check_items | JSON | - | ❌ | 体检项目(健康证) |
| check_result | VARCHAR | 20 | ❌ | 体检结论:合格/不合格 |
| verify_status | TINYINT | - | ✅ | 审核状态:0待审核 1已通过 2未通过 |
| verify_fail_reason | VARCHAR | 255 | ❌ | 审核失败原因 |
| auditor_id | BIGINT | - | ❌ | 审核人ID |
| audit_time | DATETIME | - | ❌ | 审核时间 |
| created_at | DATETIME | - | ✅ | 创建时间 |
| updated_at | DATETIME | - | ✅ | 更新时间 |
5.7 登录设备表 (mbn_login_devices)
| 字段名 | 类型 | 长度 | 必填 | 说明 |
|---|---|---|---|---|
| id | BIGINT | - | ✅ | 主键ID |
| user_id | BIGINT | - | ✅ | 用户ID(技师ID) |
| user_type | TINYINT | - | ✅ | 用户类型:1用户 2技师 3管理员 |
| device_id | VARCHAR | 100 | ✅ | 设备ID(唯一标识) |
| device_name | VARCHAR | 100 | ❌ | 设备名称 |
| device_model | VARCHAR | 50 | ❌ | 设备型号 |
| device_system | VARCHAR | 20 | ❌ | 设备系统:iOS/Android |
| login_ip | VARCHAR | 50 | ❌ | 登录IP |
| login_location | VARCHAR | 100 | ❌ | 登录地点(城市) |
| login_time | DATETIME | - | ✅ | 登录时间 |
| last_active_time | DATETIME | - | ❌ | 最后活跃时间 |
| is_current | TINYINT | - | ✅ | 是否当前设备:0否 1是 |
| status | TINYINT | - | ✅ | 状态:1正常 2已移除 |
| created_at | DATETIME | - | ✅ | 创建时间 |
| updated_at | DATETIME | - | ✅ | 更新时间 |
5.8 技师归属关系表 (mbn_nurse_affiliation)
| 字段名 | 类型 | 长度 | 必填 | 说明 |
|---|---|---|---|---|
| id | BIGINT | - | ✅ | 主键ID |
| nurse_id | BIGINT | - | ✅ | 技师ID |
| affiliation_type | TINYINT | - | ✅ | 归属类型:1平台技师 2商户技师 3团队技师 |
| merchant_id | BIGINT | - | ❌ | 商户ID(商户技师) |
| team_id | BIGINT | - | ❌ | 团队ID(团队技师) |
| apply_type | TINYINT | - | ✅ | 申请方式:1主动申请 2邀请码 3邀请 |
| invite_code | VARCHAR | 20 | ❌ | 邀请码 |
| apply_reason | VARCHAR | 200 | ❌ | 申请理由 |
| status | TINYINT | - | ✅ | 状态:0申请中 1已归属 2已拒绝 3已解除 |
| audit_time | DATETIME | - | ❌ | 审核时间 |
| auditor_id | BIGINT | - | ❌ | 审核人ID(商户/团队长) |
| audit_opinion | VARCHAR | 200 | ❌ | 审核意见 |
| join_time | DATETIME | - | ❌ | 加入时间 |
| leave_time | DATETIME | - | ❌ | 离开时间 |
| leave_reason | VARCHAR | 200 | ❌ | 离开原因 |
| cooldown_end_time | DATETIME | - | ❌ | 冷静期结束时间 |
| commission_rate | DECIMAL | 5,2 | ❌ | 佣金比例(商户/团队设定) |
| created_at | DATETIME | - | ✅ | 创建时间 |
| updated_at | DATETIME | - | ✅ | 更新时间 |
5.9 商户信息表 (mbn_merchants)
| 字段名 | 类型 | 长度 | 必填 | 说明 |
|---|---|---|---|---|
| id | BIGINT | - | ✅ | 主键ID |
| merchant_name | VARCHAR | 100 | ✅ | 商户名称 |
| merchant_type | TINYINT | - | ✅ | 商户类型:1养生馆 2美容院 3产后康复中心 4母婴护理中心 5其他 |
| business_license | VARCHAR | 255 | ✅ | 营业执照照片 |
| license_no | VARCHAR | 50 | ✅ | 统一社会信用代码 |
| legal_person | VARCHAR | 50 | ✅ | 法定代表人 |
| contact_phone | VARCHAR | 20 | ✅ | 联系电话 |
| province | VARCHAR | 50 | ✅ | 省份 |
| city | VARCHAR | 50 | ✅ | 城市 |
| district | VARCHAR | 50 | ✅ | 区县 |
| address | VARCHAR | 200 | ✅ | 详细地址 |
| store_photos | JSON | - | ❌ | 门店照片(数组) |
| service_categories | JSON | - | ❌ | 服务类别(数组) |
| nurse_count | INT | - | ✅ | 技师人数 |
| rating | DECIMAL | 3,2 | ❌ | 评分(0-5分) |
| commission_rate | DECIMAL | 5,2 | ❌ | 技师佣金比例 |
| is_public_rate | TINYINT | - | ✅ | 是否公开佣金:0否 1是 |
| recruit_status | TINYINT | - | ✅ | 招募状态:0已满员 1招募中 |
| status | TINYINT | - | ✅ | 状态:0待审核 1正常 2冻结 3注销 |
| audit_time | DATETIME | - | ❌ | 审核时间 |
| auditor_id | BIGINT | - | ❌ | 审核人ID |
| created_at | DATETIME | - | ✅ | 创建时间 |
| updated_at | DATETIME | - | ✅ | 更新时间 |
5.10 团队信息表 (mbn_nurse_teams)
| 字段名 | 类型 | 长度 | 必填 | 说明 |
|---|---|---|---|---|
| id | BIGINT | - | ✅ | 主键ID |
| team_name | VARCHAR | 100 | ✅ | 团队名称 |
| team_type | TINYINT | - | ✅ | 团队类型:1独立技师团队 2技师工作室 3师徒团队 |
| team_leader_id | BIGINT | - | ✅ | 团队长ID |
| team_intro | VARCHAR | 500 | ❌ | 团队简介 |
| province | VARCHAR | 50 | ✅ | 省份 |
| city | VARCHAR | 50 | ✅ | 城市 |
| service_categories | JSON | - | ❌ | 服务类别(数组) |
| member_count | INT | - | ✅ | 成员人数 |
| max_member_count | INT | - | ✅ | 最大成员数(默认20) |
| rating | DECIMAL | 3,2 | ❌ | 团队评分(0-5分) |
| commission_rate | DECIMAL | 5,2 | ❌ | 接单技师佣金比例 |
| leader_management_fee | DECIMAL | 5,2 | ❌ | 团队长管理费比例 |
| is_public_rate | TINYINT | - | ✅ | 是否公开佣金:0否 1是 |
| recruit_status | TINYINT | - | ✅ | 招募状态:0已满员 1招募中 |
| status | TINYINT | - | ✅ | 状态:0待审核 1正常 2冻结 3解散 |
| audit_time | DATETIME | - | ❌ | 审核时间 |
| auditor_id | BIGINT | - | ❌ | 审核人ID |
| created_at | DATETIME | - | ✅ | 创建时间 |
| updated_at | DATETIME | - | ✅ | 更新时间 |
六、接口详细定义示例
说明:每个功能对应的API列表已在各功能章节中说明,本章节提供关键接口的详细请求/响应参数示例。
6.1 发送验证码
接口地址: POST /api/account/sendSmsCode
请求参数:
{
"phone": "13800138000",
"scene": "login"
}
响应示例:
{
"code": 200,
"message": "发送成功",
"data": {
"expireTime": 300
}
}
6.2 登录/注册
接口地址: POST /api/account/login
请求参数:
{
"phone": "13800138000",
"smsCode": "123456",
"deviceId": "xxx-xxx-xxx"
}
响应示例:
{
"code": 200,
"message": "登录成功",
"data": {
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"isNewUser": false,
"userInfo": {
"id": 10001,
"phone": "13800138000",
"nickname": "张技师",
"avatar": "https://...",
"authStatus": 2
}
}
}
6.3 实名认证提交
接口地址: POST /api/account/submitRealNameAuth
请求参数:
{
"realName": "张三",
"idCardNo": "110101199001011234",
"idCardFront": "https://...",
"idCardBack": "https://...",
"faceImage": "https://..."
}
响应示例:
{
"code": 200,
"message": "提交成功,审核中",
"data": {
"authId": 123,
"estimatedTime": "2-3个工作日"
}
}
七、测试用例
7.1 登录功能测试
| 用例ID | 测试场景 | 操作步骤 | 预期结果 |
|---|---|---|---|
| TC-001 | 正常登录 | 1.输入手机号 2.获取验证码 3.输入验证码 4.点击登录 | 登录成功,跳转首页 |
| TC-002 | 手机号格式错误 | 输入10位手机号 | 提示"请输入正确的手机号" |
| TC-003 | 验证码错误 | 输入错误验证码 | 提示"验证码错误" |
| TC-004 | 验证码过期 | 5分钟后输入验证码 | 提示"验证码已过期" |
| TC-005 | 未勾选协议 | 未勾选协议点击获取验证码 | 提示"请先同意用户协议" |
| TC-006 | 超频发送验证码 | 1天内发送6次验证码 | 提示"今日发送次数已达上限" |
7.2 实名认证测试
| 用例ID | 测试场景 | 操作步骤 | 预期结果 |
|---|---|---|---|
| TC-010 | 正常认证 | 1.上传身份证 2.OCR识别 3.人脸识别 4.提交 | 自动审核通过 |
| TC-011 | 身份证模糊 | 上传模糊身份证照片 | 提示"图片模糊,请重新拍摄" |
| TC-012 | 人脸不匹配 | 人脸识别相似度<80% | 提示"人脸与身份证不符" |
| TC-013 | 年龄不符 | 上传17岁未成年人身份证 | 提示"年龄需在18-65岁之间" |
| TC-014 | 重复认证 | 使用已注册的身份证号 | 提示"该身份证已注册账号" |
7.3 资质上传测试
| 用例ID | 测试场景 | 操作步骤 | 预期结果 |
|---|---|---|---|
| TC-020 | 正常上传 | 1.选择证书类型 2.上传照片 3.填写信息 4.提交 | 提交成功,待审核 |
| TC-021 | 证书编号查询不到 | 输入不存在的证书编号 | 提示"未查询到该证书" |
| TC-022 | 证书已过期 | 上传过期证书 | 提示"证书已过期" |
| TC-023 | 上传5个以上证书 | 已上传5个,再添加第6个 | 提示"最多上传5个证书" |
八、上线检查清单
8.1 功能检查
- [ ] 手机号登录正常
- [ ] 验证码发送和校验正常
- [ ] Token生成和刷新正常
- [ ] 设备管理和异地登录提醒正常
- [ ] 实名认证OCR识别准确
- [ ] 人脸识别准确率≥95%
- [ ] 重复认证检测正常
- [ ] 资质证书真伪验证正常
- [ ] 证书有效期提醒正常
- [ ] 营业执照验证正常
- [ ] 健康证审核正常
- [ ] 服务类别选择和审核正常
- [ ] 性别验证准确
- [ ] 健康管理类性别限制正常
- [ ] 技师归属类型选择正常
- [ ] 商户/团队搜索功能正常
- [ ] 邀请码加入流程正常
- [ ] 归属类型切换功能正常
- [ ] 15天冷静期机制生效
8.2 安全检查
- [ ] HTTPS通信正常
- [ ] 敏感数据加密存储
- [ ] Token本地加密存储
- [ ] 防刷机制生效
- [ ] 防暴力破解生效
- [ ] 数据脱敏正常
- [ ] 权限控制正常
8.3 性能检查
- [ ] 页面加载时间≤2秒
- [ ] 图片上传时间≤5秒
- [ ] OCR识别时间≤3秒
- [ ] 人脸识别时间≤5秒
- [ ] 接口响应时间≤1秒
8.4 兼容性检查
- [ ] iOS 13+测试通过
- [ ] Android 8.0+测试通过
- [ ] 主流机型适配正常
- [ ] 前后置摄像头正常
九、风险与应对
9.1 业务风险
| 风险 | 影响 | 应对措施 |
|---|---|---|
| 虚假身份注册 | 平台信誉受损 | 强制人脸识别+公安验证 |
| 伪造资质证书 | 服务质量无保障 | 对接官方数据库验证真伪 |
| 恶意注册刷单 | 平台损失 | 设备指纹+风控模型识别 |
| 证书过期未更新 | 技师无法接单 | 提前30天、7天两次提醒 |
| 审核通过率低 | 技师流失 | 提供证书模板+审核不通过详细原因 |
| 商户技师过多 | 平台流量被分流 | 控制商户技师占比≤30%,佣金政策引导 |
| 频繁切换归属 | 影响服务稳定性 | 切换限制(月1次,年3次)+冷静期机制 |
| 虚假商户/团队 | 技师权益受损 | 商户/团队资质严格审核+定期复查 |
9.2 技术风险
| 风险 | 影响 | 应对措施 |
|---|---|---|
| OCR识别不准确 | 用户体验差 | 允许人工修正+多家服务商对比 |
| 人脸识别失败率高 | 注册流程卡点 | 提供3次重试+人工审核兜底 |
| 第三方接口故障 | 无法认证 | 降级方案:人工审核 |
| 数据库泄露 | 隐私泄露 | 敏感数据加密+访问审计 |
| 高并发注册 | 系统崩溃 | 限流+排队机制 |
十、附录
10.1 术语表
| 术语 | 说明 |
|---|---|
| 技师 | 平台认证的护士、康复师、育婴师、按摩师等专业服务人员 |
| 实名认证 | 通过身份证+人脸识别验证技师真实身份 |
| 资质证书 | 护士证、康复师证、育婴师证、按摩师证等专业资质 |
| OCR | 光学字符识别,自动识别图片中的文字信息 |
| 活体检测 | 判断人脸识别时是否为真人(防止照片、视频攻击) |
| Token | 用户登录凭证,用于身份验证 |
| JWT | JSON Web Token,一种Token格式 |
10.2 参考资料
- 国家卫健委护士执业注册信息系统
- 人社部职业资格证书查询系统
- 公安部身份验证接口文档
- 国家企业信用信息公示系统
- 阿里云OCR API文档
- 腾讯云人脸识别API文档
- 《网络安全法》
- 《个人信息保护法》
文档结束
修订记录:
| 版本 | 日期 | 修订人 | 修订内容 |
|---|---|---|---|
| v2.2 | 2025-10-24 | 产品团队 | 🔧 API数量修正:修正API统计数量 · API接口总数:42个 → 50个(重新统计) · 与架构文档保持一致性说明 |
| v2.1 | 2025-10-24 | 产品团队 | 📋 API接口补充:完善API定义 · 为8个核心功能分别添加"对应API"章节 · 新增50个API接口定义(含归属微服务说明) · 第六章改为"接口详细定义示例",明确章节定位 · 确保需求明细与架构文档一致性 |
| v2.0 | 2025-10-24 | 产品团队 | 🎯 重要新增:技师归属类型管理 · 新增2.8节"技师归属类型选择"(12个细分需求点) · 支持3种归属类型:平台技师/商户技师/团队技师 · 新增归属类型切换、搜索、邀请码加入等功能 · 新增3个数据表:mbn_nurse_affiliation、mbn_merchants、mbn_nurse_teams · 需求总数:7个功能 → 8个功能,89个细分需求点 → 98个细分需求点 |
| v1.1 | 2025-10-24 | 产品团队 | 修正数据表命名,符合数据库设计文档规范 |
| v1.0 | 2025-10-24 | 产品团队 | 初始版本,完整需求明细 |
数据表命名规范:
- 技师核心信息表:
nurses(数据库设计文档原有表) - 新增独立表:
mbn_nurse_real_name_auth(实名认证详细记录)mbn_nurse_service_categories(服务类别准入)mbn_nurse_business_licenses(营业执照/灵活就业)mbn_nurse_health_certificates(健康证明)mbn_nurse_affiliation(技师归属关系)【v2.0新增】mbn_merchants(商户信息)【v2.0新增】mbn_nurse_teams(团队信息)【v2.0新增】
- 已有表:
nurse_certificates(资质证书) - 已有表:
mbn_login_devices(登录设备管理)
表前缀说明:
mbn_:麦瓣健康业务特有表(Maiban)- 无前缀:通用业务表(如 nurses、nurse_certificates)
