一、功能介绍
会员渠道页展示渠道名称、入会方式或系统渠道、渠道状态、排序以及编辑和渠道设置入口。管理员可以创建 CRM 内部渠道、修改渠道注册与展示配置、切换状态并新增会员等级。当前多个二级设置仍为开发中,且停用渠道会在刷新后从列表消失,因此配置前必须理解页面真实边界。
二、功能亮点
- 新增渠道时配置名称、入会审核、激活会员默认首页、推荐人显示、自购带单奖励和邀请码有效期。
- 可选择会员等级背景颜色,并设置是否强制关注公众号。
- 渠道设置页展示等级名称、卡面、升级条件、降级规则和已选权益。
- 等级新增支持成长值条件、预设卡面和权益勾选。
- 排序数字可跳转到携带渠道 ID 的会员列表,用于查看该渠道会员。
三、使用场景
适用于在 CRM 内建立会员来源渠道,维护基础注册行为并查看渠道等级。当前渠道尚未同步外部商城,停用恢复、等级编辑、降级规则和渠道专属权益等链路不完整,不适合作为已全面上线的多渠道权益中心。
四、使用权限
- 进入页面需要「会员渠道」菜单权限。
- 页面源码没有按钮级权限键;新增、编辑、状态切换、删除、等级和权益入口都应只授予会员运营管理员。
- MemberChannelController 没有会员专区或查看、新增、编辑、启停、删除、等级和权益等服务端功能权限守卫;菜单和按钮不是安全边界。
- MemberChannelEntity 与 MemberLevelEquityEntity 已按 authCorpId 企业隔离;MemberCustomEquityEntity 仍没有企业隔离键,权益数据跨企业共享。
- 状态切换没有二次确认,停用后刷新即从列表消失,属于高风险操作。
- 删除按钮仅在渠道为 `FAIL`、非系统默认且非默认渠道时显示,点击后没有二次确认;后端删除端点不重复检查这些条件,可绕过页面删除任意已知 mciId。
- 在补齐企业隔离与服务端授权前,只允许单一受控数据域内的受信管理员操作。
五、前置条件
- 先定义渠道名称、入会审核方式、默认会员页面、推荐关系和邀请码有效期;页面把渠道名称限制为 6 个字符,但后端只校验非空,不校验长度或重名。
- 新建请求必须提交合法 JSON 对象;空白或非法 detailJson 不会生成安全默认配置,会因不可变空 Map 写入失败。
- 确认 detailJson 明确包含 isDefault=false;缺失或无法解析时列表会把渠道识别为默认渠道。
- 确认新建渠道仅形成 CRM 配置记录,当前不会触发外部商城或消息渠道同步。
- 确认当前处于单一受控数据域;会员自定义权益仍没有企业隔离,不能在多企业生产环境安全共用。
- 准备各等级名称、成长值门槛、卡面与权益,并确认本次只新增等级;当前“编辑”等级尚未接入更新接口。
- 新增等级前先确认 mciId 对应渠道真实存在,并串行操作;后端不校验渠道、字段或权益。
- 停用前导出或记录渠道 ID、关联会员、站点和活动,准备人工恢复方案;刷新后页面无法重新显示该停用渠道。
- 优先使用页面内置的等级卡面和权益图标;自定义图片上传当前只指向占位地址,不能视为正式上传。
六、操作步骤
- 进入「会员管理 → 渠道管理」。当前页面直接加载本企业 enabled=true 渠道,没有搜索、筛选或分页。先按渠道名称和 mciId 逐条查重。
- 查看渠道名称下方的入会方式与系统渠道说明。状态为 `NORMAL` 时显示正常;排序有数值时,点击数字会跳转会员列表并携带该渠道 ID 和名称。
- 点击「新增渠道」。填写不超过 6 个字符的渠道名称,设置邀请码注册是否审核,以及已激活会员默认进入站点首页还是会员中心。
- 按需设置亲友券海报是否显示推荐人、会员自购是否同时获得带单奖励;开启邀请码有效期时填写 1 至 365 天,关闭则表示永久有效。
- 选择等级背景填充颜色,并设置是否强制关注公众号。图片背景当前没有真实上传端点,只有文件项已经带 URL 时才会保存,不要用本地图片选择完成正式配置。
- 点击「保存」。新增成功后列表刷新;系统生成形如 `crm-channel-...` 的渠道 ID。后端不检查名称长度和重名,保存后必须重新核对是否出现重复渠道。
- 需要修改时点击「编辑」。保存会把当前弹窗数据序列化为 `detailJson` 整体覆盖渠道设置,因此多人操作前应先刷新并避免并发覆盖。
- 渠道设置保存前会校验渠道存在,不存在的 mciId 返回 404 错误,不会再创建占位渠道;不要用接口尝试修复错误 ID。
- 谨慎使用状态开关。切换为禁用会把状态改为 `FAIL` 并同时把渠道设为不可见;当前停用渠道刷新后从列表消失,无法从本页重新启用。后端接受任意 status 字符串,除精确 `NORMAL` 外都会隐藏渠道。
- 点击「渠道设置」进入携带 `mciId` 的设置页。缺少渠道 ID 时页面只显示“请先选择会员渠道”警告,不加载等级。后端详情对不存在 ID 不报错,只返回带 mciId 的空壳对象。
- 在会员等级表格查看等级名称、卡面、团长推荐成员数、团队成员数、团队业绩、降级规则和权益;点击「添加等级」进入新增页。
- 填写不超过 8 个字符的等级名称和不小于 0 的成长值条件,优先选择预设卡面,再从权益池勾选需要生效的权益并保存。标题颜色虽然可选择,但当前不会随保存请求提交。
- 后端新增等级不验证渠道存在、名称非空/长度、成长值非负或权益 ID 有效;并以当前最大 grade+1 计算等级,并发新增可能争用同一编号。保存后必须按 mciId、grade 和名称复核。
- 等级行的「编辑」会携带等级 ID 进入编辑页并回显既有配置,保存调用更新接口,不会新增等级。降级规则弹窗的确认只写入浏览器 localStorage,没有后端保存端点,也没有回显读取。
- 会员运营中的推荐方式、会员注册设置、会员资料及标签可打开配置弹窗,但保存只提示成功,既不调用后端也不写本地存储,配置不会持久化;额外权益可打开权益池列表,列表与新增、编辑保存均按渠道 mciId 过滤并保存。
- 自定义权益列表的删除会真实调用软删除接口且没有二次确认,操作前需特别确认;新增和编辑保存已真实写入后端。会员站点模板选择会进入全局模板管理页,不会携带当前渠道 ID。
- 不要依赖页面删除按钮条件保护系统渠道。直接 DELETE 后端只按 mciId 设 enabled=false,不检查当前状态、isDefault、systemMciName、等级、会员或权益引用。
- 完成可用配置后,用演示会员验证入会、默认页面、渠道归属和等级展示;不要把开发中提示或页面保存提示当作完整权益生效证据。
七、字段与规则说明
- MemberChannelController 没有服务端功能权限守卫。
- 渠道名称为页面新增操作唯一必填项,最多 6 个字符;后端同步校验长度上限,启用渠道内不允许重名。
- 空白或非法 detailJson 不会生成安全默认配置,会因不可变空 Map 写入失败。
- isDefault 缺失或无法解析时默认返回 true,普通渠道可能被误标为默认渠道。
- 新增渠道只保存 CRM 侧配置,不同步外部商城渠道。
- 渠道设置以 `detailJson` 整体保存,后提交的旧页面可能覆盖前一次修改;不存在的 mciId 会被后端拒绝(404),不会创建新渠道。
- 状态仅支持 `NORMAL`(正常)与 `FAIL`(失效),后端拒绝其他取值;列表只返回启用渠道。
- 当前停用渠道刷新后从列表消失,无法从本页重新启用。
- 删除按钮只对禁用、非系统默认、非默认渠道出现,且点击后没有二次确认;后端不复核条件和引用,只执行软删除。
- 排序字段当前不是排序编辑控件,点击会跳转该渠道的会员列表。
- 等级「编辑」已携带等级 ID 调用更新接口,不会新增记录;标题颜色当前仍不会随保存提交。
- 降级规则、推荐方式、会员注册设置、会员资料及标签尚未保存或尚未上线。
- 渠道内自定义权益新增和编辑保存已真实写入后端,删除则会真实停用权益;权益按渠道 mciId 隔离,列表与保存均携带渠道 ID。
- 渠道背景、等级卡面和权益图标的自定义上传均未形成正式上传链路,应优先使用颜色或预设素材。
八、风险与限制
服务端缺少功能权限守卫,已知 mciId 的直接接口操作仍可能影响本企业的渠道与等级数据。停用渠道后无法从列表恢复,任意非 NORMAL 状态也会隐藏;后端删除不保护默认/系统渠道或引用。新增等级缺少字段校验可能产生异常等级;开发中的权益弹窗与真实删除接口并存,容易产生“保存未生效、删除却已生效”的误判。
注意
在企业隔离和服务端授权补齐前,不得在多企业生产环境使用本模块。不要在没有恢复方案时停用或删除渠道,也不要使用降级规则或渠道权益保存作为正式配置。
九、常见问题
- 为什么空配置新建报错?parseMap 对空白或非法 JSON 返回不可变空 Map,服务随后写默认值会失败。
- 为什么普通渠道被标记为默认?detailJson 缺少或无法解析 isDefault 时列表默认返回 true。
- 为什么页面没有搜索框?当前渠道页直接加载全部 enabled=true 渠道,没有搜索、筛选或分页。
- 为什么停用后渠道不见了?停用会同时设为不可见,当前停用渠道刷新后从列表消失,无法从本页重新启用。
- 为什么输入异常状态后渠道消失?后端只有精确 NORMAL 会启用,其他值都设 enabled=false。
- 为什么新增渠道没有编码输入?渠道 ID 由后端自动生成,页面只要求渠道名称。
- 为什么直接保存设置会出现新渠道?后端 settings 使用 upsert,不存在 mciId 会创建占位渠道。
- 页面不显示删除按钮就一定安全了吗?不安全,后端删除不校验渠道状态、默认/系统标志或引用。
- 为什么能为不存在渠道新增等级?后端没有渠道存在性校验。
- 为什么标题颜色没有变化?等级保存请求当前没有提交标题颜色。
- 为什么降级规则确认后没有真正生效?后端仍无保存端点,降级规则保存功能仍在开发中:弹窗只把规则写入浏览器 localStorage,弹窗重开不回显,清除浏览器数据后即丢失。
十、相关指南
配合《配置会员基础信息与等级》和会员获客报表使用。
说明
页面入口:/member/channel、/member/channel/settings、/member/channel/add-level、/member/channel/custom-equity、/member/custom-rights