# 一、需求背景 汇丰银行后台需要基于客户数据标签筛选目标客群,用于权益投放、活动触达、名单圈选等业务场景。 当前《汇丰借记卡权益》PRD 中,"展示客群限制""领取客群限制"依赖标签 ID 关联客群,但标签本身的创建、编辑、维护能力缺失。本需求补齐客户数据标签的后台管理能力,支持运营人员通过可视化方式按客户属性组合规则,生成可被其他业务模块引用的标签。 # 二、需求列表 ## (一)后台 入口:定制功能 → 汇丰银行 → 标签管理 1. 标签列表 2. 新建标签 3. 编辑标签 4. 查看标签 5. 删除标签 6. 启用 / 停用标签 # 三、需求详述 ## (一)业务流程 ```mermaid flowchart TD A[运营人员进入标签管理] --> B{操作类型} B -->|新建/编辑| C[填写标签名称与描述] C --> D[新增规则组] D --> E[组内新增规则] E --> E1[选择参数] E1 --> E2{参数是否含历史月末值?} E2 -->|是| E3[选择时间窗口与聚合方式] E2 -->|否| E4[跳过] E3 --> E5[选择运算符] E4 --> E5 E5 --> E6[填写/选择比较值] E6 --> F{继续新增规则?} F -->|是| E F -->|否| G[设置组内关系 且/或] G --> H{继续新增规则组?} H -->|是| D H -->|否| J[保存标签] J --> K[标签可在权益/活动配置中引用] B -->|查看| L[只读展示规则] B -->|删除| M{是否被业务引用?} M -->|是| M1[阻止删除, 提示先解除引用] M -->|否| M2[二次确认, 软删除] B -->|启用/停用| N[状态切换, 实时生效] ``` ## (二)后台 菜单入口:liso 定制功能 → 汇丰银行 → 标签管理 ### 1\. 标签列表 (1)筛选条件 | **字段名称** | **字段类型** | **是否必填** | **说明** | | --- | --- | --- | --- | | 标签名称 | 文本输入框 | 否 | 模糊搜索 | | 标签 ID | 文本输入框 | 否 | 精确匹配 | | 状态 | 下拉选择 | 否 | 全部 / 启用 / 停用,默认"全部" | | 创建时间 | 日期范围 | 否 | 起止日期,格式 Y-m-d | | 创建人 | 文本输入框 | 否 | 模糊搜索创建人姓名/账号 | (2)操作按钮 - 查询:按筛选条件查询 - 重置:清空筛选条件 - 新建标签:打开【新建标签】页面 (3)列表字段 | 字段名称 | **说明** | | --- | --- | | 操作 | • 查看:查看标签详情
• 编辑:编辑标签
• 删除:软删除该标签
• 启用 / 停用:切换标签状态 | | 标签 ID | 系统生成,唯一,可复制 | | 标签名称 | 运营定义的名称 | | 标签描述 | 标签用途说明,超出省略 | | 规则摘要 | "规则组数 / 规则总数",如 `2 组 / 5 条` | | 状态 | 启用 / 停用 | | 创建人 / 创建时间 | 展示姓名与 Y-m-d H:i:s | | 最后更新人 / 更新时间 | 展示姓名与 Y-m-d H:i:s | | 引用数 | 该标签被权益、活动等引用的次数,点击可查看引用明细 | (4)分页 - 默认每页 20 条 - 支持首页、上一页、下一页、末页、跳转至指定页 ### 2\. 新建标签 采用单页表单布局:**基础信息 + 规则配置**。 2.1 基础信息 | **字段名称** | **字段类型** | **是否必填** | **说明** | | --- | --- | --- | --- | | 标签名称 | 文本输入框 | 是 | 最长 40 字符,同一渠道下不可重复 | | 标签描述 | 文本域 | 否 | 最长 200 字符,便于识别标签用途 | | 状态 | 开关(Toggle) | 是 | 默认开启 | 2.2 规则配置 规则采用"规则组 + 规则"两级嵌套结构: - **规则组之间**:固定为 **且(AND)** - **规则组内部**:可切换为 **且(AND)** 或 **或(OR)** (1)规则组管理 - **新增规则组**:页面右上角"+ 新增规则组"按钮;新建标签时默认已有 1 个空规则组 - **删除规则组**:每个规则组右上角提供删除按钮;至少保留 1 个规则组,最后一个不可删除 - **复制规则组**:复制当前组的全部规则到新规则组(含组内关系设置) (2)规则管理(组内) - **新增规则**:规则组底部"+ 新增规则"按钮;新建规则组时默认已有 1 条空规则 - **删除规则**:每条规则末尾提供删除按钮;每组至少保留 1 条规则 - **组内关系**:规则组头部切换"且 / 或" (3)单条规则配置 每条规则包含四段输入:**参数 → 时间窗口(仅历史值参数) → 运算符 → 比较值** | **输入段** | **控件** | **说明** | | --- | --- | --- | | 参数 | 级联下拉 / 搜索下拉 | 按分组展示(客户基础 / 资产 / 尊尚与私行 / 跨境资格 / MGM / 投资偏好 / 行为触点),支持中文、参数名双向搜索。详见【附录 A:参数清单】 | | 时间窗口 | 动态下拉组合 | 仅当参数含"近 12 个月月末值"变体时展示:
① **取值方式**:当前值 / 指定某月 / 近 N 个月(N=1-12)
② **聚合方式**(取值方式为"近 N 个月"时):任一月满足 / 所有月满足 / 至少 M 个月满足 / 平均值 / 最大值 / 最小值(后三项仅数值类型支持) | | 运算符 | 下拉 | 根据参数类型动态展示可选项。详见【附录 B:运算符清单】 | | 比较值 | 动态控件 | 根据运算符类型切换输入控件:
• 单值:文本 / 数字 / 日期选择器 / 布尔下拉(真/假)
• 多值:多选下拉 或 以逗号分隔的批量输入
• 区间:两个输入框或区间选择器
• 为空 / 不为空:不需要输入 | **参数取值规则:** - 参数类型为枚举(如私行权益标签、客户持有定存种类、资产大类明细等)时,运算符与比较值均使用枚举选择器,避免手工输入错误 - 比较值输入需与参数类型一致:`BigDecimal` 仅允许数字;`YYYY-MM-DD` 仅允许日期;`Boolean` 使用"真/假"下拉选择 2.3 操作按钮 - **取消**:若有未保存修改则二次确认"未保存内容将丢失,确认退出?";否则直接返回列表 - **保存**:校验必填项与规则完整性,通过后持久化;保存成功 toast "保存成功"并返回列表 ### 3\. 编辑标签 - 入口:列表"编辑"按钮 - 字段同【新建标签】,**标签 ID 不可编辑** - 若标签已被业务引用(引用数 > 0),保存时二次确认:"该标签已被 N 个权益/活动引用,修改后将影响其客群匹配,确认保存?" - 操作按钮:取消 / 保存(同新建) ### 4\. 查看标签 - 入口:列表"查看"按钮 - 字段同【编辑标签】 - 所有输入框、选择框、按钮(新增规则组 / 新增规则 / 删除)禁用 - 仅展示【返回】按钮 ### 5\. 删除标签 - 入口:列表"删除"按钮 - 若 **引用数 > 0**:弹窗提示"该标签已被 N 个权益/活动引用,请先在对应业务中解除引用后再删除",**仅显示"我知道了"按钮**,阻止删除 - 若 **引用数 = 0**:弹窗二次确认"确定要删除标签「XXX」吗?删除后无法恢复" - **确定**:软删除(保留数据用于审计),列表不再展示 - **取消**:关闭弹窗 ### 6\. 启用 / 停用 - 入口:列表"启用"/"停用"按钮 - **启用 → 停用**:弹窗二次确认"停用后,引用该标签的业务将视为该客群不命中,确认停用?" - **停用 → 启用**:无需确认,直接切换 - 状态变更实时生效 ### 7\. 状态定义 | 状态 | 说明 | 可执行操作 | | --- | --- | --- | | 启用 | 参与客户匹配,可被业务引用 | 查看 / 编辑 / 停用 / 删除(引用数=0 时) | | 停用 | 不参与匹配,引用方视为未命中 | 查看 / 编辑 / 启用 / 删除(引用数=0 时) | ## (三)校验与异常 - **标签名称**:必填、长度 ≤ 40、同渠道下唯一;重复时提示"标签名称已存在" - **规则组**:至少 1 个;每组至少 1 条完整规则 - **规则完整性**:参数、运算符、比较值(除"为空/不为空"外)均不得为空 - **数值比较值**:须可解析为数字;"区间"运算符要求下限 ≤ 上限 - **日期比较值**:格式须与参数格式匹配(`YYYY-MM-DD` 或 `YYYY-MM`) - **枚举比较值**:仅允许枚举内取值 - **时间窗口参数**:`近 N 个月`的 N 取值 1-12;`至少 M 个月`的 M 不得大于 N - **并发编辑**:以保存时间戳为准,后保存覆盖先保存;列表展示最后更新人与时间,便于追溯 - **删除保护**:引用数 > 0 的标签不可删除 - **接口异常**:保存 / 预估接口异常时 toast 报错并保留当前输入,不清空表单 # 附录 A:参数清单 > 所有参数仅在存在数据时返回;标签匹配时参数值为空则该条规则判为不匹配(除非运算符为"为空")。 ## A.1 客户基础与身份 | 中文名 | 参数名 | 类型 | 历史值 | 说明 / 取值 | | --- | --- | --- | --- | --- | | 客户 MSC Group | mscGroup / mscGroupList | String / List | ✔ | 历史值:近 12 个月月末值 `[{"date":"2025-03","mscGroup":"xxx"}, ...]` | | 客户类型 MSC | mscCode / mscCodeList | String / List | ✔ | 历史值:近 12 个月月末值 `[{"date":"2025-03","mscCode":"xxx"}, ...]` | | Current MSC entry date | currentMscEntryDate | String (YYYY-MM-DD) |
| 当前 MSC 生效起始日期 | | 客户 MOB 值(含信用卡) | mob | String |
| 取值:0 / 1 / 2 / 3 / 4 / 5 / 6 / … | | First contact date | firstContactDate | String (YYYY-MM-DD) |
|
| | 开户时间 | openDate | String (YYYY-MM-DD) |
|
| | 城市 | city | String |
|
| | RM 类型 | rmType | String |
|
| | 客户姓名 | customerName | String |
|
| ## A.2 资产与持有 | 中文名 | 参数名 | 类型 | 历史值 | 说明 / 取值 | | --- | --- | --- | --- | --- | | End of day balance(所有资金含产品) | endOfBalance / endOfBalanceList | BigDecimal / List | ✔ | 历史值:近 12 个月月末值 `[{"date":"2025-03","endOfBalance":"xxx"}, ...]` | | TRB 值 - Avg TRB 口径(含家庭账户余额) | avgTrbIncludingHousehold / avgTrbIncludingHouseholdList | BigDecimal / List | ✔ | 历史值:近 12 个月月末值 | | TRB 值 - Avg TRB 口径(不含家庭账户余额) | avgTrbExcludingHousehold / avgTrbExcludingHouseholdList | BigDecimal / List | ✔ | 历史值:近 12 个月月末值 | | 资产大类明细 | assetCategoryDetails | String(多选) |
| 1-9 依次表示,多个英文逗号分隔:
1 存款(定期 / 通知 / 个人大额存单)
2 结构性存款(自有)
3 基金相关产品(代客境外理财海外基金 / 代销内地证券投资基金 / 代销香港互认基金)
4 理财产品(代销)
5 代客境外理财海外债券型 / 结构性票据型(自有)
6 资产管理计划(代销)
7 信托计划(代销)
8 保险产品(代销)
9 预留 | | 客户持有定存种类 | fixedDepositTypes | String(多选) |
| 1-5 依次表示,多个英文逗号分隔:
1 不持有定存
2 持有普通定存(美金)
3 持有普通定存(人民币)
4 持有普通定存(其他币种)
5 持有大额存单(人民币) | ## A.3 尊尚 / 私行 | 中文名 | 参数名 | 类型 | 历史值 | 说明 / 取值 | | --- | --- | --- | --- | --- | | 近 6 个月是否符合尊尚资格 | isQualifiedLast6Months | Boolean |
|
| | 私行权益标签 | privateBankTag | String |
| 取值:银辉 / 金曜 / 钻皓私人银行客户 | | 首次升级尊尚的时间 | firstUpgradePremierDate | String (YYYY-MM-DD) |
|
| | 私行 ID 卓越理财尊尚编号 | privateBankId | String |
|
| | 尊尚资格到期日 | premierValidityDate | String (YYYY-MM-DD) |
|
| | 首次达标日期 | firstAchievementDate | String (YYYY-MM) |
|
| | 首次升级为 PB 的日期 | firstPBUpgradeDate | String (YYYY-MM) |
|
| | PB 活动参与白名单 | isPbActivityWhitelisted | Boolean |
|
| ## A.4 跨境资格(1+1) | 中文名 | 参数名 | 类型 | 历史值 | 说明 | | --- | --- | --- | --- | --- | | 是否为 1+1 CN-HK 双边客户 | isCrossBorderHK | Boolean |
|
| | 是否为 1+1 CN-SG 双边客户 | isCrossBorderSG | Boolean |
|
| | 是否为 HK qualifier | isHKQualifier | Boolean |
|
| | New to 1+1 CN-HK qualifier 时间 | cnHkQualifierDate | String (YYYY-MM) |
|
| | 是否为 SG qualifier | isSGQualifier | Boolean |
|
| | New to 1+1 CN-SG qualifier 时间 | cnSgQualifierDate | String (YYYY-MM) |
|
| ## A.5 MGM / 推荐关系 | 中文名 | 参数名 | 类型 | 历史值 | 说明 | | --- | --- | --- | --- | --- | | 某自然月成功推荐人数 | monthlySuccessfulReferrals | List | ✔ | 近 12 个月 `[{"date":"2025-03","successfulReferrals":"xxx"}, ...]` | | 某自然年成功推荐人数总数 | yearlySuccessfulReferrals | List | ✔ | 近 N 年 `[{"date":"2024","successfulReferrals":"xxx"}, ...]` | | 是否被成功推荐来开户且达标 | isReferredAndQualified | Boolean |
|
| | MGM case ID | mgmCaseId | String |
|
| | 某自然月推荐人数 | monthlyReferrals | List | ✔ | 近 12 个月 | | 某自然年推荐人数 | yearlyReferrals | List | ✔ | 近 N 年 | | 推荐关系 | referralRelation | List |
| `[{customerId:"xxx"}, ...]`;通过被推荐人客户号查询其数据 | ## A.6 投资偏好 | 中文名 | 参数名 | 类型 | 历史值 | 说明 | | --- | --- | --- | --- | --- | | 客户持有 valid RPQ 等级 | validRpq | String |
| 取值:0 / 1 / 2 / 3 / 4 / 5 / NA | | Prospects Needs | prospectsNeeds | Boolean |
|
| ## A.7 行为与触点 | 中文名 | 参数名 | 类型 | 历史值 | 说明 | | --- | --- | --- | --- | --- | | 是否关注 "汇丰中国客户服务" 微信服务号且绑定银行账户 | isHsbcWechatLinked | Boolean |
|
| | 上个自然月未登录、当前自然月登录过手机银行 1 天或以上 | isPrevMonthInactiveCurMonthActive | Boolean |
|
| | 从当前自然月起前序连续 2 个完整月是否登录手机银行 | isPrevTwoMonthsActive | Boolean |
|
| | 是否绑定 RM 企业微信 | isRmWeComBound | Boolean |
|
| | 是否首次使用 Face ID 或指纹登录手机银行 | firstBiometricLogin | Boolean |
|
| | 成功完成模拟资产配置的客户 | isSimulatedAllocationCompleted | Boolean |
|
| # 附录 B:运算符清单 ## B.1 String(字符串 / 枚举) | 运算符 | 适用说明 | | --- | --- | | 等于 / 不等于 | 单值精确匹配 | | 包含 / 不包含 | 子串匹配(仅自由文本类参数开放) | | 属于 / 不属于 | 多值集合,比较值为多选或逗号分隔 | | 为空 / 不为空 | 无需输入比较值 | ## B.2 BigDecimal / Number(数值) | 运算符 | 适用说明 | | --- | --- | | \= / ≠ | 精确匹配 | | \>、≥、<、≤ | 单边比较 | | 区间 | `[下限, 上限]`,支持"含 / 不含端点"设置 | | 为空 / 不为空 | 无需输入比较值 | ## B.3 Boolean(布尔) | 运算符 | 适用说明 | | --- | --- | | \= / ≠ | 比较值为 `真` / `假`(下拉选择);`= 假` 与 `≠ 真` 等价 | ## B.4 Date(日期 YYYY-MM-DD / YYYY-MM) | 运算符 | 适用说明 | | --- | --- | | \= / ≠ | 精确日期匹配 | | \>、≥、<、≤ | 早于 / 晚于 | | 区间 | 起止日期 | | 相对当前 | N 日 / 月 / 年内;超过 N 日 / 月 / 年 | | 为空 / 不为空 | 无需输入比较值 | ## B.5 List(近 N 月 / 近 N 年历史值) ### B.5.1 数值型 List(如 endOfBalanceList、TRB List) 先在"时间窗口"阶段聚合为单值,再套用 B.2 数值运算符: - **聚合方式**:任一月满足 / 所有月满足 / 至少 M 个月满足 / 平均值 / 最大值 / 最小值 ### B.5.2 枚举 / 字符串型 List(如 mscGroupList、mscCodeList) 在"时间窗口"阶段选择匹配策略: - 任一月等于 X - 所有月等于 X - 至少 M 个月等于 X ### B.5.3 推荐关系 List(referralRelation) - 列表长度(推荐人数)→ 套用 B.2 数值运算符 - 是否包含指定客户号 → 精确匹配,比较值为客户号或客户号列表 ### B.5.4 月度 / 年度推荐人数 List - 可聚合后套用 B.2(同 B.5.1) - 也可指定月份 / 年份单点匹配