Files
huangjingfen/docs/PRD_V2.md
apple 78de918c37 Initial commit: queue workspace
Made-with: Cursor
2026-03-21 02:55:24 +08:00

352 lines
15 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 黄精粉健康商城小程序 · 产品需求文档PRDV2.0
> **技术底座**CRMEB Pro v3.5 二次开发
> **文档日期**2026年3月
> **文档状态**:定稿
---
## 1. 文档说明
### 1.1 文档目的
本文档基于《黄精粉小程序方案》及《黄精粉项目概述》,以 CRMEB Pro v3.5 会员电商系统为二次开发底座,明确黄精粉健康商城微信小程序的全部产品功能需求、业务逻辑、二开改造清单及系统架构,为产品设计、前后端开发、测试及运营团队提供统一参考依据。
### 1.2 技术底座说明
| 维度 | 说明 |
|---|---|
| 基础系统 | CRMEB Pro v3.5 会员电商系统 |
| 后端框架 | ThinkPHP 8 + Swoole 4 + Redis |
| 前端框架 | uni-app (Vue 3) + iView Admin (后台) |
| 数据库 | MySQL 8.0 |
| 消息队列 | think-queue (Redis驱动) |
| 定时任务 | Swoole Timer / Linux Crontab |
| 小程序端 | 微信小程序 + H5 |
### 1.3 术语定义
| 术语 | 定义 |
|---|---|
| 公排池 | 所有购买报单商品的订单按付款时间顺序进入的全局排队队列 |
| 进四退一 | 默认每进入4单触发退还最早入队第1单的购买款项数量后台可配置 |
| 报单商品 | 参与公排机制的指定商品当前主要为3600元黄精粉套餐 |
| 普通商品 | 不参与公排机制的商品,可使用积分购买 |
| 待释放积分 | 已奖励但尚在冻结期的积分,按千分之四/天速率解冻 |
| 已释放积分 | 已完成解冻的可用积分,可用于购买普通商品 |
| 伞下 | 某会员通过裂变推荐关系树中,其直推及直推以下的所有下级成员 |
| 直推 | 某会员直接邀请加入的一级下级成员 |
| 创客 | 直推3单后自动升级的会员等级 |
| 云店 | 伞下业绩30单后自动升级的会员等级至少3个直推 |
| 服务商 | 伞下业绩100单后自动升级的会员等级至少3个直推 |
| 分公司 | 伞下业绩1000单后自动升级的会员等级至少3个直推 |
| 级差 | 上级享受的积分奖励为下级等级对应奖励与该下级自身等级所扣除部分的差额 |
---
## 2. 产品概述
### 2.1 产品背景
黄精粉是一款以传统中草药黄精为核心原料的健康食品,定位于大健康消费赛道。本项目基于 CRMEB Pro v3.5 进行二次开发,通过微信小程序构建集商品销售、社交裂变、会员激励为一体的线上销售平台,通过独特的公排返利机制和多级会员积分体系,驱动用户自发传播,形成去中心化的分销网络。
### 2.2 产品定位
| 维度 | 描述 |
|---|---|
| 产品类型 | 微信小程序 + PC管理后台基于CRMEB Pro v3.5 |
| 核心商品 | 黄精粉套餐3600元/单)及周边健康产品 |
| 商业模式 | 社交裂变电商 + 公排返利 + 会员积分分销 |
| 目标市场 | 健康消费意识强、具备社交传播意愿的中青年用户群体 |
| 核心差异化 | 公排退款机制降低用户试错成本,积分分级奖励激励持续推广 |
### 2.3 CRMEB Pro 功能复用与改造策略
| 策略 | 涉及模块 |
|---|---|
| **直接复用** | 微信登录/手机号授权、商品CRUD及上下架、订单管理及状态流转、微信支付/支付宝支付、优惠券管理、Banner/文章/公告管理、首页DIY装修、后台权限管理、数据统计看板、活动管理及核销、用户管理及标签 |
| **改造复用** | 分销推荐关系绑定 → 加入公排关联、团队分销等级 → 改为五级会员等级体系、分销佣金冻结 → 改为积分待释放/按日释放、余额账户 → 增加公排退款入口、商品分类 → 增加报单商品标记、提现功能 → 调整手续费计算逻辑 |
| **全新开发** | 公排池引擎进N退1、积分每日释放定时任务、级差计算引擎、伞下业绩统计含级别隔离、公排状态展示页面 |
---
## 3. 核心业务逻辑
### 3.1 公排机制(进四退一)【全新开发】
#### 3.1.1 机制说明
公排机制是本平台核心的激励与信任建立机制。用户购买报单商品后进入公排池按全平台购买时间顺序排队。当排队总单数达到设定倍数默认4单进1单退最早入队的用户获得退款。
#### 3.1.2 规则详述
- 每笔报单商品订单3600元付款成功后立即进入公排池
- 公排池按付款时间全局排序,不区分用户等级
- 当全平台新增 N 单时N为可配置参数默认为4触发退还最早入队第1单的购买款项
- 退款金额进入该用户的现金余额账户可申请提现扣除手续费7%
- 一次购买多单时,拆分为多个独立订单分别进入公排池
- 已付款订单不可取消,退款仅通过公排机制解锁
> 可配置项:公排触发倍数(进 N 退 1默认 N=4后台可调整
#### 3.1.3 技术实现要点
- 新建 `eb_queue_pool` 数据表存储公排队列
- 使用 Redis 分布式锁保证入队和退款的原子性
- 退款写入 CRMEB 现有的用户余额账户(复用 `eb_user``now_money` 字段)
- 通过 think-queue 异步处理退款,避免支付回调阻塞
### 3.2 会员等级体系【改造团队分销等级】
#### 3.2.1 等级定义与升级条件
| 等级 | 升级条件 | 直推奖励(积分/单) | 伞下奖励(积分/单) | 备注 |
|---|---|---|---|---|
| 普通会员 | 注册即获得 | — | — | 可参与公排 |
| 创客 | 直推3单 | 500 | — | 直推单数可配置 |
| 云店 | 伞下业绩30单至少3直推 | 800 | 300 | 伞下云店分离计算 |
| 服务商 | 伞下业绩100单至少3直推 | 1000 | 200 | — |
| 分公司 | 伞下业绩1000单至少3直推 | 1300 | 300 | — |
> 所有奖励数值和升级门槛均支持后台配置(复用 CRMEB 系统配置表)
#### 3.2.2 改造说明
基于 CRMEB Pro 的团队分销等级功能进行改造:
- 将原有的"分销员等级"概念替换为"会员等级"
- 升级条件从"推广订单数/消费金额"改为"直推单数 + 伞下业绩单数"
- 佣金计算从"按比例返佣"改为"按等级发放固定积分"
- 新增"伞下业绩分离"逻辑:当下级升级为同等级或更高等级后,该下级的团队业绩不再计入上级
### 3.3 账户与积分体系【改造佣金冻结机制】
#### 3.3.1 账户类型
| 账户类型 | 来源 | 用途 | 提现 |
|---|---|---|---|
| 现金余额 | 公排退款、后台手动充值 | 购物、申请提现 | 可提现扣除7%手续费 |
| 待释放积分 | 会员推荐奖励 | 按天解冻后转为已释放积分 | 不可提现 |
| 已释放积分 | 待释放积分每日解冻0.4%/天) | 购买普通商品(不可买报单商品) | 不可提现 |
#### 3.3.2 改造说明
- **现金余额**:复用 CRMEB 的 `now_money` 字段,增加公排退款的入账来源
- **待释放积分**:新增字段或复用 CRMEB 积分字段,增加"待释放"状态标记
- **已释放积分**:新增字段,作为可消费积分
- **每日释放**:新建定时任务,每天凌晨执行:待释放积分 × 0.4‰ → 转入已释放积分
- **提现**:复用 CRMEB 提现功能调整手续费率为7%(后台可配)
---
## 4. 用户端功能需求(小程序)
### 4.1 登录与注册【直接复用】
| 功能点 | 详细说明 | 优先级 | 复用/改造 |
|---|---|---|---|
| 微信授权登录 | 使用微信OAuth授权获取用户基本信息 | P0 | 直接复用 |
| 手机号一键登录 | 微信手机号授权组件,获取用户手机号完成绑定 | P0 | 直接复用 |
| 推荐关系绑定 | 首次进入小程序时携带推荐人参数,自动绑定上下级关系,不可更改 | P0 | 改造复用 |
| 新用户引导 | 首次登录展示平台介绍、公排规则说明页面 | P1 | 新开发 |
### 4.2 首页【改造复用DIY】
| 模块 | 内容说明 | 优先级 | 复用/改造 |
|---|---|---|---|
| Banner轮播图 | 展示主推套餐、最新活动,后台可更换图片和跳转链接 | P0 | 直接复用 |
| 活动专区 | 展示最新线下活动卡片(品鉴会报名入口) | P0 | 直接复用 |
| 商品推荐区 | 展示主推商品列表(报单商品+热门普通商品) | P1 | 改造复用 |
| 公告通知 | 平台公告或活动通知 | P2 | 直接复用 |
### 4.3 商品与购买【改造复用】
#### 4.3.1 商品分类改造
在 CRMEB 商品管理基础上增加"报单商品"标记字段(`is_queue_goods`),报单商品参与公排机制,普通商品不参与。
#### 4.3.2 支付方式
| 支付方式 | 适用商品 | 配置权限 |
|---|---|---|
| 微信支付 | 所有商品 | 系统默认支持(复用) |
| 支付宝 | 所有商品 | 系统默认支持(复用) |
| 现金余额 | 指定商品 | 后台按商品设置(改造) |
| 待释放积分 | 仅普通商品 | 后台按商品设置(新增) |
| 已释放积分 | 仅普通商品 | 后台按商品设置(新增) |
> 报单商品不支持积分支付;普通商品支持哪种支付方式由后台商品管理中单独配置
#### 4.3.3 购买流程改造
在 CRMEB 标准购买流程基础上,支付回调后增加以下处理:
1. 检查商品是否为报单商品
2. 若是报单商品:多单拆分 → 逐单写入公排池 → 检查是否触发退款 → 计算积分奖励
3. 若是普通商品:走标准订单流程
### 4.4 裂变推荐机制【改造复用】
复用 CRMEB Pro 的分销推广海报/链接功能,改造推荐成功后的奖励逻辑:
- 保持推荐关系绑定机制不变
- 将"按比例返佣金"改为"按等级发固定积分"
- 积分入账为"待释放"状态
### 4.5 个人中心【改造复用】
#### 4.5.1 我的订单【直接复用】
复用 CRMEB 订单列表、订单详情、售后申请功能,在订单详情中增加"公排状态"展示。
#### 4.5.2 我的资产【改造复用】
| 资产项 | 展示内容 | 可操作项 | 复用/改造 |
|---|---|---|---|
| 现金余额 | 当前可用余额金额 | 申请提现(填写金额,显示到账金额) | 改造复用 |
| 待释放积分 | 待解冻积分总量、预计今日释放量 | 查看释放明细 | 新开发 |
| 已释放积分 | 可用积分总量 | 查看使用记录 | 新开发 |
| 优惠券 | 我的优惠券列表 | 使用(购物时选择) | 直接复用 |
#### 4.5.3 我的推荐【改造复用】
基于 CRMEB Pro 团队分销的推广人管理进行改造:
- 推荐关系树:可视化展示自己的直推成员及伞下成员(显示等级、入团时间)
- 推荐收益明细:每笔积分奖励的来源、时间、金额
- 推荐数据统计:直推人数、伞下总人数、伞下总单数
#### 4.5.4 其他功能【直接复用】
- 收货地址管理
- 账号设置
- 帮助与客服
---
## 5. 管理后台功能需求PC端
### 5.1 概览仪表盘【改造复用】
在 CRMEB Pro 数据统计基础上增加公排相关数据:
- 今日数据:新增用户数、今日订单数、今日销售额、公排触发次数
- 趋势图:用户增长趋势、销售额趋势
- 实时公排状态:当前公排池总单数、待退款订单数
### 5.2 用户管理【改造复用】
在 CRMEB 用户管理基础上增加:
- 等级管理:手动调整用户等级(含降级),设置/取消"不考核"标记
- 上下级关系树:可视化查看任意用户的推荐关系树
- 账户操作:手动增减余额或积分
### 5.3 商品管理【改造复用】
在 CRMEB 商品管理基础上增加:
- 报单商品设置:标记某商品为报单商品(参与公排机制)
- 支付方式设置:为每个商品独立配置允许的支付方式(含积分支付选项)
### 5.4 订单管理【改造复用】
增加"公排订单视图":查看公排池中所有订单排队状态,查看历史公排退款记录。
### 5.5 财务管理【改造复用】
在 CRMEB 财务管理基础上增加:
- 公排退款流水记录
- 积分发放记录(来源订单、受益人、发放时间、积分类型)
- 积分释放日志
- 提现手续费调整为7%
### 5.6 活动管理【直接复用】
直接使用 CRMEB Pro 的活动管理功能。
### 5.7 营销中心(参数配置)【改造复用】
在 CRMEB 系统配置基础上新增以下配置项:
| 配置项 | 说明 | 默认值 |
|---|---|---|
| 公排触发倍数 | 进N单退1单N值配置 | 4 |
| 积分日释放比例 | 待释放积分每日解冻比例(‰) | 4千分之四 |
| 提现手续费率 | 提现时扣除的手续费百分比 | 7% |
| 创客升级门槛 | 直推满N单升级创客 | 3 |
| 云店升级门槛 | 伞下满N单升级云店 | 30 |
| 服务商升级门槛 | 伞下满N单升级服务商 | 100 |
| 分公司升级门槛 | 伞下满N单升级分公司 | 1000 |
| 各等级直推积分奖励 | 各等级会员每直推1单获得的积分数 | 见等级表 |
| 各等级伞下积分奖励 | 各等级会员伞下每入1单获得的积分数 | 见等级表 |
### 5.8 内容管理【直接复用】
直接使用 CRMEB Pro 的 Banner管理、文章管理、公告管理。
### 5.9 数据统计【改造复用】
在 CRMEB 数据统计基础上增加:
- 公排统计:公排池当前状态、历史退款总额、触发频率分析
- 积分统计:总发放积分、总释放积分、积分使用情况
---
## 6. 数据库改造方案
### 6.1 新增表
#### eb_queue_pool公排池表
| 字段 | 类型 | 说明 |
|---|---|---|
| id | INT UNSIGNED AUTO_INCREMENT | 主键 |
| uid | INT UNSIGNED | 用户ID关联eb_user |
| order_id | VARCHAR(64) | 原始订单号 |
| amount | DECIMAL(10,2) | 金额默认3600.00 |
| queue_no | BIGINT UNSIGNED | 全局排队序号 |
| status | TINYINT | 0排队中 1已退款 |
| refund_time | INT UNSIGNED | 退款时间戳 |
| trigger_batch | INT UNSIGNED | 触发退款的批次号 |
| add_time | INT UNSIGNED | 入队时间戳 |
#### eb_points_release_log积分释放日志表
| 字段 | 类型 | 说明 |
|---|---|---|
| id | INT UNSIGNED AUTO_INCREMENT | 主键 |
| uid | INT UNSIGNED | 用户ID |
| frozen_before | BIGINT | 释放前待释放积分 |
| release_amount | BIGINT | 本次释放积分数 |
| frozen_after | BIGINT | 释放后待释放积分 |
| release_date | DATE | 释放日期 |
| add_time | INT UNSIGNED | 记录时间 |
### 6.2 修改表
#### eb_user用户表新增字段
| 字段 | 类型 | 说明 |
|---|---|---|
| member_level | TINYINT DEFAULT 0 | 会员等级0普通 1创客 2云店 3服务商 4分公司 |
| no_assess | TINYINT DEFAULT 0 | 不考核标记0正常 1不考核 |
| frozen_points | BIGINT DEFAULT 0 | 待释放积分 |
| available_points | BIGINT DEFAULT 0 | 已释放积分 |
#### eb_system_config系统配置表
新增上述营销中心的各项配置键值对。
---
## 7. 非功能性需求
### 7.1 性能要求
- 公排入队响应时间 < 200ms
- 积分每日释放任务在5分钟内完成10万用户规模
- 支持 1000 并发用户同时访问
- 利用 Swoole 协程处理公排并发
### 7.2 安全要求
- 公排退款使用 Redis 分布式锁,防止重复退款
- 积分操作使用数据库事务,保证一致性
- 所有金额计算使用 bcmath 扩展,避免浮点误差
- 支付回调验签,防止伪造