Files
nexus/Project/fonrey/PRD/系统配置/系统配置模块PRD.md
2026-04-30 20:33:51 +08:00

13 KiB
Raw Blame History

PRD系统配置模块MVP

状态Draft
作者NovaPM
最后更新2026-04-27
版本v0.1
关联 TaskUS-SETTING-001
相关文档DATA_MODEL/ENUMS.mdPRD/系统配置/系统配置参数数据.mdDATA_MODEL/DATA_MODEL.md

变更历史

版本 日期 作者 变更说明
v0.1 2026-04-27 NovaPM 初稿MVP 范围)

1. 问题陈述

背景Fonrey 各业务模块(房源录入、客源录入、跟进记录、带看)中存在大量下拉选项、业务规则开关、字段必填控制。如果这些值硬编码在代码中,将导致:

  • 不同租户无法根据自身业务习惯调整选项(如来源渠道、跟进目的)
  • 管理员无法灵活控制录入数据质量(如哪些字段必填)
  • 业务规则变更(如查重范围)需要研发介入,无法自服务

核心问题:租户管理员无法通过界面自主维护业务枚举选项和录入规则,导致高频配置变更依赖研发,降低了系统的可用性与租户自服务能力。

MVP 范围决策:竞品系统配置涵盖 10+ 大类、100+ 设置项MVP 阶段仅实现影响核心业务链路的 3 类配置,其余推迟至 P1/P2。


2. 目标与成功指标

目标 度量指标 当前基线 目标值 测量窗口
管理员可自主维护枚举选项 系统配置依赖研发变更的工单数 100%(所有变更需研发) 0枚举类变更全部自服务 上线后 30 天
房源/客源录入数据质量提升 必填字段为空的录入比例 未知(当前无必填控制) < 5% 上线后 60 天
配置变更生效时效 配置保存到前端生效的时间 N/A ≤ 5 分钟Redis 缓存 TTL

3. 非目标MVP 明确不做)

以下内容在竞品中存在,但 MVP 阶段不实现:

  • 房源标签配置(颜色/排序/启用)— 标签功能整体推迟至 P1
  • 私盘数量上限配置 — 推迟至 P1当前无私盘流转业务逻辑
  • 带看规则配置(补录时间、附件必填等)— 带看功能推迟至 P1
  • 跟进置顶条数限制 — 推迟至 P1
  • 公司信息Logo、名称、联系方式— 归入系统管理模块(平台运营层),非租户配置
  • 区域/商圈配置 — 归入楼盘管理模块US-COMPLEX-003
  • 委托/交易/财务/合同相关配置 — 超出 MVP 范围
  • 通知消息配置 — P2
  • 发布平台配置 — P2

4. 目标用户

主要角色Tenant Admin租户管理员租户侧每租户 13 人)

典型画像:门店运营负责人或行政主管,熟悉业务流程,无技术背景,通过系统后台进行日常运营配置。使用频率:初始开通时高频(完成初始化配置),此后低频(按需调整)。

间接受益角色

  • Agent经纪人 — 看到的下拉选项和必填规则由管理员配置决定
  • 店长/经理 — 配置直接影响客源来源分析报表的数据质量

5. User Stories 与验收标准


US-SETTING-001-A管理员配置可选枚举值Lookup Items

As Tenant Admin租户管理员
I want 在「系统设置 → 参数配置」页面维护各业务模块的下拉选项(如客源来源、跟进目的),
So that 经纪人录入时看到的选项符合公司实际业务,不再依赖研发修改代码。

验收标准

AC-1参数分组展示

  • Given 管理员进入「系统设置 → 参数配置」
  • When 页面加载完成
  • Then 页面按模块分组展示所有可配置参数项,至少包含:
    • 「客源」分组:客源来源、跟进目的
    • 「房源」分组:房源来源
  • 每个分组展示当前已有选项列表(名称 + 排序 + 状态)

AC-2新增自定义选项

  • Given 管理员点击某参数项的「编辑」按钮
  • When 弹出编辑抽屉,填写「选项名称」并提交
  • Then 新选项追加至列表末尾,排序值自动计算
  • And 经纪人在录入界面的对应下拉中立即可见该新选项(刷新后生效)

AC-3停用选项不可删除系统预制项

  • Given 管理员在编辑态对某选项执行「停用」操作
  • When 确认提交
  • Then 该选项的 is_active 置为 False
  • And 前端录入下拉中不再展示该选项
  • And 历史已选该值的记录保留原值不变,仅展示时标注「已停用」
  • And 系统预制选项(is_system = True)的「删除」按钮禁用,仅可停用

AC-4调整选项排序

  • Given 管理员在编辑态拖拽选项或修改排序值
  • When 保存后
  • Then 经纪人录入下拉中按新排序展示

AC-5缓存一致性

  • Given 管理员保存配置变更
  • When 变更写入数据库成功
  • Then 对应 Redis 缓存 key 主动失效({tenant_schema}:setting:lookup:{module}.{key}
  • And 所有经纪人在下次请求时获取到最新选项(最长 5 分钟延迟)

AC-6MVP 必须覆盖的参数项

模块 参数 key 中文名 系统预制值(部分示例)
client source 客源来源 门店接待、老客户转介绍、网络58/安居客)、驻守、上门、朋友介绍
client follow_purpose 跟进目的 回拨、推房、带看、维护、其他
property source 房源来源 主动开发、业主上门、老客户转介绍、网络来电

US-SETTING-001-B管理员配置房源字段必填规则

As Tenant Admin租户管理员
I want 按「房源用途 × 交易状态」的组合,控制哪些字段在录入时为必填/选填/隐藏,
So that 系统能在录入时强制采集公司要求的关键信息,提升房源数据完整度。

验收标准

AC-1规则配置页面

  • Given 管理员进入「系统设置 → 房源字段规则」
  • When 页面加载
  • Then 以「用途 × 交易状态」为维度展示配置矩阵MVP 仅需支持:
    • 住宅 × 出售
    • 住宅 × 出租
    • 商铺 × 出售(可选)
    • 商铺 × 出租(可选)
  • 每个组合展示可配置字段列表,字段来源见 AC-4

AC-2规则编辑

  • Given 管理员点击某组合的「编辑」按钮
  • When 进入编辑态
  • Then 每个字段显示当前规则(必填 / 选填 / 隐藏),以三态 Toggle 或 Radio 形式展示
  • And 管理员修改后点击「保存」提交

AC-3规则应用于录入界面

  • Given 管理员保存了「住宅 × 出售」的规则:朝向=必填,车位数=隐藏
  • When 经纪人在录入界面新增「住宅 × 出售」房源
  • Then 朝向字段显示必填标记(*),提交时若为空则拦截并提示
  • And 车位数字段不显示(隐藏)
  • And 规则变更在配置保存后立即对新录入生效(不影响存量房源)

AC-4MVP 可配置字段范围

字段 字段 key 说明
朝向 orientation 对应 property.orientation 枚举
装修情况 decoration 对应 property.decoration 枚举
楼层 floor 所在楼层 / 总楼层
建筑面积 building_area 数值字段
套内面积 inner_area 数值字段
房型(室/厅/卫) room_layout 数值字段组
产权年限 ownership_years 数值字段
车位数 parking_count 数值字段

:字段是否存在于数据模型由 DATA_MODEL_PROPERTY.md 决定,本配置只控制「是否必填/展示」,不新增字段。


US-SETTING-001-C管理员配置客源录入规则

As Tenant Admin租户管理员
I want 配置新增私客时的查重范围,以及必填字段控制,
So that 减少客源重复录入风险,并确保客源数据质量满足公司管理要求。

验收标准

AC-1查重范围配置

  • Given 管理员进入「系统设置 → 客源规则」
  • When 查看「新增私客查重范围」设置项
  • Then 可选值为:
    • 本人(默认)— 同一经纪人不可重复录入同一手机号
    • 本部门 — 同部门内不可重复
    • 全公司 — 全租户范围不可重复
  • And 每个选项有说明文案,明确告知管理员改动影响范围

AC-2查重规则应用

  • Given 管理员将查重范围设置为「本部门」
  • When 经纪人录入私客手机号时
  • Then 系统在失焦后实时检测同部门内是否存在相同手机号(加密比对)
  • And 若存在重复页面提示「该号码在本部门已有记录归属人XXX录入时间XX」
  • And 经纪人可选择「仍然录入」(走审批流)或「放弃」

AC-3客源必填字段配置

  • Given 管理员在「客源规则」页面勾选必填字段
  • When 保存
  • Then 经纪人录入私客时,已勾选的字段显示必填标记(*),提交时校验
  • And MVP 可配置必填的字段范围:
字段 字段 key 默认值
等级 grade 必填
来源 source 必填
求购/求租总价区间 budget_range 选填
居室需求 room_requirement 选填
购房目的 buying_purpose 选填

AC-4配置变更即时生效

  • Given 管理员修改任一客源规则并保存
  • When 经纪人下次打开录入界面
  • Then 应用最新规则(无需重新登录)
  • And Redis 缓存 key {tenant_schema}:setting:client_rules 在保存时主动失效

6. 解决方案概述

页面结构

系统设置(侧边栏)
├── 参数配置          ← US-SETTING-001-ALookup Items 管理)
├── 房源字段规则      ← US-SETTING-001-BFieldRequirementRule
└── 客源规则          ← US-SETTING-001-CTenantSetting + 必填规则)

核心设计决策

  1. Lookup Items 与 enum_labels 分离:固定系统枚举(装修/朝向/状态/等级)存放在 Public Schema 的 enum_labels由Platform Admin平台超级管理员通过 migration 维护,租户无权修改。可配置枚举(来源/跟进目的)存放在 Tenant Schema 的 lookup_items 表,由租户管理员自主维护。详见数据模型说明文档。

  2. 字段规则不新增字段field_requirement_rules 只控制「必填/选填/隐藏」状态,字段本身的存在性由数据模型决定。避免配置层与数据模型层职责混淆。

  3. 所有配置读取走服务层:业务模块(房源/客源录入)通过 TenantSettingsService 统一读取配置,不直接查表,便于统一缓存管理。


7. 技术考量

依赖

  • apps/setting/ — 配置模块宿主 App已在 AGENTS.md 目录结构中定义)
  • core/cache.py — Redis 工具(租户前缀管理)
  • DATA_MODEL/ENUMS.mdenum_labels 设计权威来源,lookup_items 需与之对齐

已知风险

风险 可能性 影响 缓解措施
缓存失效不及时导致配置延迟生效 保存时主动 invalidate最长 5 min TTL 兜底
字段必填规则与前端渲染逻辑耦合 后端在每次 form 请求时返回规则快照,前端不缓存规则
历史数据与「已停用枚举值」展示冲突 已停用值在展示时追加「(已停用)」后缀,数据库值不变

待解决的 Open Questions(启动开发前必须确认):

  • lookup_items 表的最终 DDL 由 Atlas 确认后同步至 DATA_MODEL/DATA_MODEL.mdOwner: Atlas / Deadline: 开发启动前
  • 字段必填规则是否需要支持「按角色」粒度(如经纪人必填、店长选填)— 当前决策MVP 不做角色粒度,全员统一规则。如需变更请在 Review 中提出。
  • FieldRequirementRule 中「房源用途」的枚举值与 property.property_type 是否完全一致 — Owner: Atlas 对齐 DATA_MODEL_PROPERTY.md

8. 上线计划

阶段 时间 受众 成功门槛
内部联调 Sprint N 开发团队 + 测试 3 个 US 核心流程无 P0 Bug
Alpha 验证 Sprint N+1 1 家种子客户管理员 管理员可独立完成初始化配置,无需研发介入
MVP 上线 Sprint N+2 全部租户 配置变更工单量为 0全自服务

回滚条件:配置保存后前端报错率 > 5%,或经纪人录入报错率相比上线前上升 > 2%,立即回滚并排查。


9. 附录