门店人员信息审核迭代需求
1. 文档定位与责任边界
本文档描述 SA 通过 SA App 内嵌 Stores H5 录入或维护店长、店员后,后台如何接收资料版本、审核人员身份及门店关系、控制生效、处理转店/换店长/停用并保存审计记录。
本文档负责门店人员主数据、关系与审核,不负责门店基础资料审批、RM → SM → SA 组织关系、佣金计算或门店端收益展示。相关边界如下:
- SA 端资料录入、草稿与提交:见《08-PocketBuy SA、SM、RM端 H5 需求文档》。
- 店长/店员登录及只读展示:见《07-PocketBuy门店端H5需求文档》。
- 正式关系向下游提供有效期事实:见《09-PocketBuy 佣金系统外围配合改造功能点》。
- 资格时点受益人及不可变台账:见《10-PocketBuy 佣金系统需求文档》。
- SA、SM、RM 角色与层级:见《06A-SA角色与组织层级管理迭代需求》。
门店资料提交成功只表示服务端已接收,不代表门店、店长、店员、登录账号、二维码或佣金归属已经生效。
2. 设计状态与原型地址
- 文档状态:
draft;建设范围:mvp。 - 设计状态:
prototype_available,对应后台审核页已有可交互原型。 - 生产预览:后台管理原型;进入后选择
PocketBuy Operations → Store Personnel Review。查看门店人员汇总时可进入Store Management → Store detail → Store Personnel。 - 本地预览:127.0.0.1:8776;需先在后台原型目录启动静态服务。
- 原型目录:
D:\Africa\blueprint\12-迭代需求管理\11-后台管理需求\后台原型。
生产预览地址已于 2026-08-10 验证可访问。当前原型没有页面级深链;正式权限、字段和状态以本文档及服务端接口为准。
3. 背景、目标与范围
SA App 的 Stores H5 已承担 SA/SM/RM 授权范围内的门店、店长和店员资料录入,但提交态与正式生效态需要隔离。若直接把提交资料用于登录、订单归属或佣金计算,会造成重复手机号、跨店绑定、无效店长关系和历史归属被覆盖。
本期目标:
- 建立店长/店员人员、门店关系、核验资料和审核单的独立版本。
- 提供 Store → Store Manager → Clerk 的关系树和列表审核工作台。
- 支持通过、驳回、重提、转交、停用、转店和更换主店长。
- 仅将满足全部生效条件的关系提供给登录、办单、二维码和佣金系统。
- 保留历史资料、关系、审核和敏感访问记录。
本期不包含:门店基础信息审批流程;门店端自行编辑人员资料;多个店长或副店长;线上申诉;自动根据手机号或备注推断人员关系。本期每个门店仅支持一名有效店长。
4. 角色、来源与数据流
| 参与方 | 能力 | 不允许的操作 |
|---|---|---|
| SA/SM/RM | 在 Stores H5 新增、保存、提交和维护本人服务端授权范围内的门店、店长和店员资料 | 越出本人门店/团队/区域范围,自审、自行激活账号、覆盖历史版本 |
| 后台审核员 | 查看资料与证据,审核、驳回、转交 | 修改 BVN/银行/人脸等强实名结果,绕过冲突校验 |
| 后台管理员 | 按权限停用、转店、更换主店长、处理异常 | 物理删除人员/关系/审核历史 |
| 店长/店员 | 审核生效后登录门店端 H5 并只读查看资料状态 | 在门店端修改主数据或关系 |
flowchart LR H5["SA/SM/RM Stores H5 草稿/提交"] --> Submission["资料提交版本"] Submission --> Review["后台人员审核"] Review -->|驳回| H5 Review -->|通过| Effective["有效人员与门店关系"] Effective --> StoreH5["门店端登录/只读展示"] Effective --> BNS["办单与推荐证据"] Effective --> Commission["佣金资格时点快照"]
来源统一为 SA_CREATED、SA_UPDATED、SM_CREATED、SM_UPDATED、RM_CREATED、RM_UPDATED、OPERATIONS_MIGRATED。提交和审核均保留创建人/更新人角色、人员 ID、授权范围、版本、时间和操作人。
5. 对象、关系与状态模型
5.1 审核对象
- 店长身份与账号信息。
- 店长与门店的主店长关系。
- 店员身份与账号信息。
- 店员与店长、门店的关系。
- 店员工牌资料及每次重新提交的资料版本。
门店基础信息审核与人员审核相互独立:门店通过不代表人员通过,人员通过也不能使未通过或已停用的门店生效。
5.2 状态分层
不得用一个 status 同时表示提交、审核、账号、关系和门店状态:
| 状态维度 | 状态 | 说明 |
|---|---|---|
| H5 提交 | DRAFT / SUBMITTING / SUBMITTED / SUBMIT_FAILED | 仅表示资料保存和接收结果,与 08 一致 |
| 人员审核 | NOT_SUBMITTED / PENDING_REVIEW / APPROVED / REJECTED | 表示当前资料版本的审核结果 |
| 账号 | PENDING_ACTIVATION / ACTIVE / DISABLED | 表示是否可登录;审核通过不等于已激活 |
| 门店关系 | PENDING_REVIEW / ACTIVE / INACTIVE | 表示人员与门店/店长关系是否在有效期内 |
| 工牌审核 | NOT_REQUIRED / PENDING_REVIEW / APPROVED / REJECTED | 仅适用于要求工牌的店员 |
旧文档中把 DISABLED 同时作为人员审核状态的写法不再使用;停用属于账号或关系状态,审核结果仍保留为 APPROVED,从而可以解释“曾审核通过但后来被停用”。页面另输出只读的 effective_status:仅当人员审核为 APPROVED、账号为 ACTIVE、关系为 ACTIVE、门店审核通过且门店有效,以及适用时工牌审核通过,才为 ACTIVE。该字段是新登录/新归属是否允许的最终结论,不反写任一上游状态。
5.3 关系约束
- 每个门店同一时刻有且仅有一个有效主店长。
- 本期没有副店长、协同店长或多店长角色;再次提交其他店长必须走“更换主店长”,先关闭原关系后才能生效新关系。
- 一个店员同一时刻只能有一个有效门店关系;其店长必须是该门店当前有效主店长。
- 转店、更换店长和更换主店长必须关闭原关系有效期并新增关系,不能覆盖原记录。
- 手机号同一时刻只能绑定一个有效人员账号;重复或疑似同人进入人工复核。
- 门店停用后禁止人员新增业务,历史人员、关系、订单和佣金快照不变。
6. SA/SM/RM Stores H5 提交契约
SA、SM、RM 可在服务端会话授权的数据范围内录入门店、店长和店员资料。SA 范围为本人获授权门店,SM 范围为本人管理团队/区域,RM 范围为本人授权区域;范围由服务端返回并校验,不能信任前端角色或区域参数。可录入店长姓名、手机号、门店关系,以及店员姓名、手机号、店长关系、工牌照片/编号/说明和要求的核验资料。每一步可保存草稿;提交使用幂等键;失败可重试且不清空已上传资料。
服务端接收成功返回 submission_id、profile_version、接收时间和 SUBMITTED,随后创建或关联 PENDING_REVIEW 审核单。已提交版本默认只读;SA 修改被驳回或已生效资料时创建新版本,不原地覆盖。
以下情况在提交阶段阻止或标记人工复核:手机号已被有效账号占用、人员存在其他有效门店关系、越出提交人授权范围、必填证据缺失、店长关系无效、资料版本已过期。
7. 后台页面与交互
7.1 Store Personnel Review
默认 Tree 展示 Store → Store Manager → Clerk,并保留 List 切换:
- Tree 用于理解门店、主店长和店员关系;List 用于按角色、来源、审核/账号/关系/工牌状态、提交时间和审核人筛选。
- 选中节点后在详情区展示当前版本、提交批次、提交人及角色、人员审核、账号、关系、工牌、
effective_status、生效条件、冲突、历史版本和审核时间线,并保留审核/停用/变更操作。 - 对来源为
SA_CREATED/SA_UPDATED/SM_CREATED/SM_UPDATED/RM_CREATED/RM_UPDATED的人员,详情和审核弹窗必须展示提交人上传的门店正面照、店长与提交人合照、店员与提交人合照等文件名、file_id、上传时间和受控预览;无店员的提交显示“本次未提交店员”,不能被误判为缺少店长或门店材料。 - 审核页须显示店长关联提示:审核店长时查询该店长已关联的门店;审核店员时查询其指定店长已关联的门店。提示至少展示门店 ID、门店名称、人员关系和
effective_status。发现店长同时存在多个有效主店长关系、店员指定的店长不在当前门店有效,或关系待审核/停用时,审批按钮必须提示冲突并按规则阻止或转人工复核。 - 列表和树默认脱敏姓名与手机号;BVN 不在列表或导出中出现。
7.2 Store Management → Store Personnel
门店详情展示当前及历史主店长/店员、账号状态、关系状态与有效期、人员审核、工牌审核、来源、加入时间、最近登录、最近审核及驳回原因。该页用于门店维度汇总,不替代审核工作台。
7.3 审核详情
展示提交版本、字段差异、图片/工牌证据、重复手机号/跨店冲突、门店和主店长状态、历史审核及操作审计。若门店提交因门店资料审核被拒绝,SA 端只显示可反馈原因、审核时间和重提入口;审核人端保留完整内部审计与证据。审核操作只能更新“人员审核”;审核通过后由服务端原子激活账号和关系。停用只能更新账号/关系,不能把已通过的人员审核改写为 DISABLED。敏感原图默认加水印和遮罩,仅持有 store.personnel.sensitive.read 的人员可查看,查看行为留痕。
8. 审核、重提与停用流程
审核人可通过、驳回或转交。驳回必须选择标准原因并填写可反馈给 SA 的说明;通过前服务端校验门店有效、手机号唯一、关系唯一、主店长合法、资料完整、工牌满足要求且当前版本未被新版本替代。
重提规则:
REJECTED版本保持只读;SA 修改后生成新profile_version和新审核单。- 审核期间再次提交新版本时,旧审核单标记
SUPERSEDED结束原因但保留原审核状态和历史,不允许继续审批旧版本。 - 重复审核请求使用审核单版本和幂等键,不能产生两个最终结果。
停用规则:
- 仅对已通过的账号或关系执行,必须填写原因和生效时间。
- 停用后禁止登录、新订单归属和新二维码使用,不取消或改写历史订单、奖励及结算。
- 恢复需重新校验人员、门店、关系和必要资料;高风险停用/恢复建议复核。
9. 生效条件与下游输出
人员参与登录、办单、推荐或订单归属必须同时满足:
- 当前资料版本的人员审核为
APPROVED。 - 账号为
ACTIVE。 - 门店关系在当前时点为
ACTIVE。 - 门店审核通过且门店状态有效。
- 要求工牌的店员,其工牌审核为
APPROVED。 - 店长/店员关系不存在未解决冲突。
门店端 H5 只读消费上述生效结果;不满足时统一提示联系 SA 或客服,不暴露内部风控策略。组织/运营域向 BNS 和佣金系统输出人员、门店、角色、关系版本、valid_from、valid_to 和状态。佣金系统只在资格事件时固化有效关系;后续编辑、转店或停用不得回写历史快照。
10. 人员变更场景
| 场景 | 当前数据处理 | 历史订单/佣金 |
|---|---|---|
| 增加店员 | 新建资料版本和待审核关系 | 审核生效前不可成为新归属 |
| 修改联系/工牌资料 | 新版本审核;高风险字段按规则暂停生效 | 不回写历史快照 |
| 店员更换店长 | 关闭旧关系并新增待审核关系 | 原资格时点归属不变 |
| 店员转店 | 校验无其他有效关系,按生效时间切换 | 转店前后分别按资格时点关系固化 |
| 更换主店长 | 必须先处理原主店长和下属承接,建议双人复核 | 历史主店长佣金不转移 |
| 停用人员/门店 | 禁止新增业务和登录 | 已固化台账不变;退款冲正原受益人 |
11. 服务端模型、接口与权限
建议实体:门店人员、门店人员关系、人员资料版本、工牌资料版本、审核单、审核动作、账号激活记录和操作审计日志。手机号、BVN、银行卡等敏感字段加密存储并按权限脱敏;所有版本和关系不得物理删除。
接口能力:查询门店人员树/列表/详情与历史;提交资料版本;审核、驳回、转交;停用/恢复;转店/换店长/更换主店长影响预览与提交;查询审计日志。所有写接口校验权限、对象版本、状态、关系合法性和幂等键。
| 权限点 | 说明 |
|---|---|
store.personnel.read | 查看门店人员及脱敏资料 |
store.personnel.sensitive.read | 查看受控敏感材料 |
store.personnel.review | 审核、驳回和转交 |
store.personnel.disable | 停用/恢复账号或关系 |
store.personnel.relation.update | 转店、换店长、更换主店长 |
audit.log.read / audit.log.export | 查询/导出审计 |
12. 审计、异常与安全
审计记录 SA/SM/RM 提交/重提、审核、驳回、转交、账号激活/停用、主店长变更、店员转店/换店长、敏感查看和导出。至少包含操作人及角色、授权范围、对象、版本、前后值、原因、生效时间、结果、错误码、幂等键和 trace_id;日志仅保存脱敏值或字段变更标记。
异常处理:
- 同一店员已在其他门店有效:不覆盖,进入人工复核。
- 同一门店出现多个主店长:阻止新关系生效。
- 审核期间出现更新版本:旧单终止为被替代,不允许继续操作。
- 门店审核撤销或门店停用:相关人员暂停新增业务,历史不变。
- 关系生效部分失败:整体回滚或进入可恢复状态,禁止出现账号已激活但关系未生效。
- 文件读取失败、恶意格式或超限:隔离文件并保留提交记录,不能绕过扫描直接审核。
13. 数据迁移、上线与监控
迁移现有店长、店员、门店关系、账号状态和可用核验资料;已停用人员及历史关系也必须迁移。无法确认来源或有效期的数据标记 OPERATIONS_MIGRATED 并进入核对清单,不直接推定审核通过。
上线前检查重复手机号、跨店人员、无主店长、多主店长、缺少工牌、已通过但未激活和历史有效期重叠。监控待审核量/时长、驳回率、重提率、冲突量、激活失败、关系生效失败、敏感访问及审计写入失败。回滚不得删除已产生的提交、审核、关系和审计记录。
14. 验收标准
- SA/SM/RM
StoresH5 的SUBMITTED只创建资料版本和待审核单,不直接激活人员或参与佣金归属,越权/越区提交被服务端拒绝。 - Tree 默认展示 Store → Manager → Clerk,List 可切换;选中节点可查看详情并执行有权操作。
- 人员审核、账号、门店关系、工牌和门店状态相互独立,页面可解释未生效原因。
- 通过、驳回、重提、转交、停用、恢复、转店和更换主店长均保留版本与历史。
- 重复手机号、跨店有效关系、多主店长和过期版本被服务端阻止或进入人工复核。
- 店长/店员仅在全部条件满足后登录或成为新订单归属;07 只读消费生效结果。
- 人员调店、资料修改和停用不回写 09、10 定义的资格时点归属及佣金台账。
- 敏感资料按权限脱敏,查看/导出和所有写操作均可通过
trace_id追溯。 - 任一门店同一时刻只能有一名有效店长;新增第二名店长被阻止,更换必须保留前后关系有效期。
15. 待业务确认
- 店员工牌是否为所有渠道必填,或由门店类型/区域配置决定。
- 主店长变更、跨店调动和批量停用是否强制双人复核;本文建议强制。
- 门店基础信息审批的责任系统和上线批次;本需求只消费其最终状态。