relationship-management-analysis.md 11 KB

关系管理功能需求分析

一、当前实现范围

关系管理是浠艾福平台的核心基础能力——以家庭为单位的服务平台,关系管理贯穿家庭构成、服务商绑定、社会联系人等场景。当前已实现以下能力:

1.1 家庭内部关系

能力 数据结构 前端 后端 API 状态
家庭创建 family 表 — FamilyController ✅
家庭成员添加 family_members 表 add-member.vue FamilyMembersController.add ✅
家庭成员列表 family_members 表 family-members.vue FamilyMembersController.list ✅
成员关系类型编辑 family_members.relationshipType RelationshipPicker.vue 组件 FamilyMembersController.update ✅
切换成员视角 family_members 表 family-members.vue FamilyMembersController.switch ✅
踢出成员 family_members 表 family-members.vue FamilyMembersController.kick ✅
孩子管理 关联 family_members+user children.vue / create-child.vue / edit-child.vue 家长端接口 ✅
关系类型字典 CRUD relationship_types 表 RelationshipTypes.vue(管理端) RelationshipTypeAdminController ✅
家庭邀请码 family.inviteCode 小程序码 FamilyController ✅
家庭邀请处理 family_invitation 表 落地页 FamilyInviteController ✅
家庭地址编辑 family 表地址字段 address-edit.vue — ✅
家庭属性配置 family_member_attributes 表 — FamilyAttributeController ✅
家庭关系图 Canvas 绘制 FamilyRelationGraph.vue 组件 前端绘制 ✅

1.2 社会联系人(非家庭成员)

能力 数据结构 前端 后端 API 状态
联系人列表 contacts 表 ContactCard.vue 组件 ContactController.list ✅
创建联系人 contacts 表 表单 ContactController.create ✅
编辑联系人 contacts 表 表单 ContactController.update ✅
删除联系人 contacts 表 删除操作 ContactController.delete ✅
联系人详情 contacts 表 ContactCard.vue ContactController.detail ✅
手机通讯录导入 contacts 表 ContactImport.vue 组件 ContactController.importPhone ✅
互动记录 contacts 表 + contactCount — ContactController.interaction ✅

1.3 服务商-家庭绑定

能力 数据结构 前端 后端 API 状态
家长-规划师绑定 guide_family_relations + family.teacherId 绑定页面 BindController ✅
规划师邀请绑定 guide_family_relations 邀请链接 BindInviteController ✅
规划师家庭列表 guide_family_relations FamilyList.vue(管理端) GuideFamilyService ✅
规划师-家庭关系 guide_family_relations(relationType, status) — GuideFamilyRelationService ✅

1.4 其他关系

能力 数据结构 状态
分销关系 distribution_relation 表 ✅ 存在但未见前端对接
家庭会员关系 family_memberships 表 ✅ 基础实现
成员属性扩展 family_member_attributes 表 ✅

二、现有功能覆盖评估

已覆盖的维度(5分/5分)

  • 成员 CRUD:完整的家庭成员增删改查
  • 关系类型字典:管理端可配置
  • 关系图可视化:Canvas 绘制家庭关系图
  • 联系人管理:社会联系人 CRUD + 手机导入
  • 规划师-家庭绑定:两端双向绑定流程
  • 邀请机制:通过邀请码加入家庭

部分覆盖的维度(3分/5分)

  • 关系类型体系:只有 typeKey/typeName/capabilityRole 三要素,缺少关系属性(如"亲密度"、"关系年限"、"共同居住"等)
  • 家庭关系图交互:仅查看,不支持在图上直接编辑
  • 联系人与家庭成员的打通:联系人和家庭成员互不关联,无法将联系人直接邀请为家庭成员
  • 关系历史/时间线:成员关系变更没有记录

未覆盖的维度(0分/5分)

  • 关系统计分析:无任何关系数据统计功能
  • 关系事件提醒:无生日提醒、纪念日提醒等
  • 家庭成员角色/标签:无自定义标签(如"主要照顾者"、"紧急联系人"等)
  • 关系健康度评估:无关系质量打分、互动频率分析
  • 多家庭归属:一个人是否可属于多个家庭
  • 家庭树谱系图:跨代家庭关系展示

三、功能需求建议

P0 - 核心补齐(建议立即纳入)

3.1 关系类型体系扩展

  • 问题:当前关系类型只有 typeKey/typeName/capabilityRole,无法表达关系的多维属性
  • 需求:
    • 关系属性扩展:亲属关系可配置"父系/母系"、"血缘/姻亲"等维度
    • 关系有效期:临时关系(如"保姆")可设置有效期
    • 关系等级:成员在家庭中的权限等级(管理员/普通成员/受限成员)
  • 涉及范围:RelationshipType 实体扩展、family_members 加字段

3.2 联系人→家庭成员升级路径

  • 问题:联系人与家庭成员是两套独立的数据,无法互通
  • 需求:
    • 联系人的"邀请加入家庭"操作
    • 联系人详情页显示"已在家庭中"的状态
    • 导入手机通讯录后,自动匹配已注册用户,显示"可邀请加入家庭"提示
  • 涉及范围:ContactController 新增邀请接口、ContactCard.vue 扩展

3.3 家庭关系时间线

  • 问题:家庭成员的关系变更、加入、离开无历史记录
  • 需求:
    • 记录家庭成员每次关系类型变更
    • 记录新成员加入时间、退出时间
    • 可在家庭关系图中按时间节点回溯关系状态
  • 涉及范围:新增 family_member_logs 表、更新时间线组件

P1 - 体验增强(建议下个迭代)

3.4 家庭关系图增强

  • 单击节点显示成员详情(弹窗)
  • 双击节点切换为该成员视角(复用现有 switch 能力)
  • 关系线 hover 显示关系类型名称
  • 支持按关系类型筛选显示/隐藏
  • 支持缩放和平移(大数据量家庭)

3.5 家庭成员标签系统

  • 可为成员添加自定义标签(如"接送人"、"紧急联系人"、"过敏体质"等)
  • 标签在家庭关系图中以图标展示
  • 标签由家长管理

3.6 关系事件提醒

  • 成员生日提醒
  • 关系纪念日提醒(如 "爸爸加入家庭一周年")
  • 互动频率低提醒(如 "和孩子已 7 天未互动")

P2 - 高阶能力(建议规划)

3.7 关系健康度评估

  • 基于互动频率、任务完成情况、能量流动方向等,计算成员之间的关系健康度
  • 关系健康度在家庭关系图中以颜色/动画表现
  • 低健康度时 AI 提醒并提供改善建议

3.8 多家庭/跨家庭场景

  • 一个人可同时属于多个家庭(如祖父母属于多个子女家庭)
  • 跨家庭能量互动、任务协作
  • 家庭联姻关系管理(两个家庭因婚姻关系关联)

3.9 家族谱系(Tree)

  • 支持跨代关系展示(祖父母→父母→子女)
  • 支持"家庭成员"和"已故长辈"的标注
  • 族谱导出(图片/PDF)

四、现有数据模型改进建议

4.1 relationship_types 表扩展

-- 当前字段:typeKey, typeName, capabilityRole, sortOrder, enabled
-- 建议新增:
ALTER TABLE relationship_types ADD COLUMN category VARCHAR(32) DEFAULT 'family' COMMENT '分类: family/contact/workplace';
ALTER TABLE relationship_types ADD COLUMN is_blood_relation TINYINT(1) DEFAULT 0 COMMENT '是否血缘关系';
ALTER TABLE relationship_types ADD COLUMN is_immediate_family TINYINT(1) DEFAULT 0 COMMENT '是否直系亲属';

4.2 family_members 表扩展

-- 当前字段:userId, familyId, relationshipType, nickname, avatar, etc.
-- 建议新增:
ALTER TABLE family_members ADD COLUMN is_primary TINYINT(1) DEFAULT 0 COMMENT '是否主要家庭成员';
ALTER TABLE family_members ADD COLUMN permission_level VARCHAR(16) DEFAULT 'member' COMMENT '权限等级: admin/member/restricted';
ALTER TABLE family_members ADD COLUMN joined_at DATETIME COMMENT '加入时间';

4.3 新增表:family_member_tags

CREATE TABLE family_member_tags (
    id BIGINT AUTO_INCREMENT PRIMARY KEY,
    family_id BIGINT NOT NULL,
    member_id BIGINT NOT NULL,
    tag_name VARCHAR(32) NOT NULL COMMENT '标签名',
    tag_type VARCHAR(16) DEFAULT 'custom' COMMENT '标签类型: system/custom',
    created_at DATETIME
);

4.4 新增表:family_member_logs

CREATE TABLE family_member_logs (
    id BIGINT AUTO_INCREMENT PRIMARY KEY,
    family_id BIGINT NOT NULL,
    member_id BIGINT NOT NULL,
    action VARCHAR(32) NOT NULL COMMENT '操作: join/leave/change_role/change_relation',
    old_value VARCHAR(64) COMMENT '旧值',
    new_value VARCHAR(64) COMMENT '新值',
    operator_id BIGINT COMMENT '操作人',
    created_at DATETIME
);

4.5 contacts 表扩展

-- 建议新增字段:
ALTER TABLE contacts ADD COLUMN family_member_id BIGINT DEFAULT NULL COMMENT '关联的家庭成员ID';
ALTER TABLE contacts ADD COLUMN invited_status VARCHAR(16) DEFAULT 'none' COMMENT '邀请加入家庭状态: none/invited/accepted/declined';

五、优先级建议

优先级 需求 工作估 依赖
P0 关系类型体系扩展(属性/有效期/权限) 2-3 天 后端实体改、管理端 UI
P0 联系人→家庭成员升级路径 3-4 天 后端 API + 前端组件
P0 家庭关系时间线 3-5 天 新建表 + 后端 + 前端
P1 关系图增强交互 2-3 天 前端组件改
P1 成员标签系统 2-3 天 新建表 + 管理端
P1 关系事件提醒 2-3 天 定时任务 + 消息推送
P2 关系健康度评估 5-7 天 AI 分析 + 可视化
P2 多家庭场景 5-8 天 架构级改动
P2 家族谱系 4-6 天 前端组件 + 后端

六、总结

当前关系管理功能覆盖了基本 CRUD 和核心流程(家庭构成、联系人管理、服务商绑定),已经是一个可用的基础版本。主要短板在于:

  1. 数据隔离:联系人和家庭成员是两套独立数据,缺少互通路径
  2. 历史缺失:关系变更无记录,无法回溯
  3. 交互单薄:关系图展示能力强但交互弱(仅查看、无编辑)
  4. 智能不足:无关系分析、健康度评估等 AI 能力

建议 P0 需求在 1-2 个迭代内完成,补齐基础能力;P1 优化体验;P2 作为 AI 差异化能力规划。


文档版本: v0.1 日期: 2026-06-26