文档目录
分享推广

简介

本开发文档面向DouPHP分享推广系统,聚焦社交分享、分享奖励机制、推广效果追踪等核心能力。文档从代码级实现出发,梳理分享链接生成、二维码制作、渠道统计的技术路径;结合分销与订单结算链路,解释分享裂变算法、用户增长模型与转化率优化策略;并提供多平台分享集成(微信、微博、QQ等)的接入要点与数据分析、热门内容推荐、KOL合作管理等高级功能建议,帮助市场推广人员高效使用分享营销工具集。

项目结构

分享推广在系统中以“前端入口 + API接口 + 后台管理”三层组织,配合服务层完成数据聚合与业务编排,并通过小程序侧提供二维码能力。

graph TB
subgraph "前台"
FSC["front/controller/share/ShareController.php"]
FUC["front/controller/share/UserController.php"]
end
subgraph "API"
ASC["api/controller/share/ShareController.php"]
AUC["api/controller/share/UserController.php"]
end
subgraph "后台"
ASCC["admin/controller/share/ShareController.php"]
ASS["admin/service/share/ShareService.php"]
end
subgraph "小程序"
QRJS["miniprogram/company/utils/grcode/qrcode.js"]
end
subgraph "交易与分销"
OST["_/module/order/core/service/order/OrderStatusTransition.php"]
UPG["_/module/distribution/_update/data/upgrade.php"]
end
FSC --> ASS
FUC --> ASS
AUC --> ASS
ASCC --> ASS
FSC -.-> QRJS
AUC -.-> QRJS
ASS -.-> OST
ASS -.-> UPG

核心组件

  • 前台分享入口与会员中心
    • /share 与 /user/share 展示当前会员的分享记录列表,统一通过 ShareService 构建数据并渲染模板。
    • 申请流程:生成草稿令牌 → 上传附件 → 提交申请 → 创建待审核记录。
  • API 分享接口
    • 小程序端通过 ?route=share/user/* 获取分享列表、申请表单与提交结果,复用同一服务逻辑。
  • 后台分享管理
    • 列表查询支持按用户名、分享单号、时间范围筛选与分页。
    • 支持详情查看、批量取消、参数初始化等操作。
  • 小程序二维码
    • 内置二维码生成库,用于将分享链接或活动页转为二维码,便于线下传播与扫码转化。

架构总览

分享推广由“控制器-服务-模型/数据库”分层协作,前台与API共享服务层,后台独立管理视图与操作。

sequenceDiagram
participant U as "用户/小程序"
participant FC as "前台控制器"
participant AC as "API控制器"
participant SVC as "ShareService"
participant DB as "数据库"
participant ORD as "订单/分销结算"
U->>FC : 访问 /share 或 /user/share
FC->>SVC : 构建分享列表数据
SVC->>DB : 查询分享记录(分页/过滤)
DB-->>SVC : 返回数据
SVC-->>FC : 组装视图数据
FC-->>U : 渲染分享列表页面
U->>AC : 小程序调用 share/user/*
AC->>SVC : 列表/申请/提交
SVC->>DB : 读写分享申请与状态
DB-->>SVC : 确认结果
SVC-->>AC : 返回JSON响应
AC-->>U : 小程序界面更新
Note over ORD,SVC : 分享带来的订单成交后,触发分销奖励与等级升级

详细组件分析

前台分享控制器(/share 与 /user/share)

  • 职责
    • 解析当前登录用户ID,调用服务层构建分享列表数据。
    • 组装面包屑、SEO信息与导航,渲染分享列表模板。
  • 关键点
    • 与 /user/share 同形展示,提升用户体验一致性。
    • 通过路由参数 page 控制分页。
flowchart TD
Start(["进入 /share 或 /user/share"]) --> Auth["获取当前用户ID"]
Auth --> BuildList["调用服务层构建分享列表"]
BuildList --> Render["渲染分享列表模板"]
Render --> End(["结束"])

分享申请流程(前台与API)

  • 流程说明
    • 检查是否存在待处理申请,避免重复提交。
    • 清理历史草稿并生成新的草稿令牌。
    • 提交时认领草稿附件,创建真实分享记录并进入审核。
  • 前后端差异
    • 前台返回页面跳转提示;API返回结构化JSON,供小程序渲染。
sequenceDiagram
participant U as "用户/小程序"
participant UC as "UserController"
participant SVC as "ShareService"
participant ATT as "附件/草稿"
participant DB as "数据库"
U->>UC : 打开申请页面
UC->>SVC : 检查待处理申请数量
SVC-->>UC : 0 表示可继续
UC->>ATT : 清理历史草稿并生成新草稿令牌
ATT-->>UC : 返回草稿令牌与图片HTML
U->>UC : 提交申请(携带草稿令牌)
UC->>SVC : 提交申请(认领草稿)
SVC->>DB : 写入分享记录(状态=待审核)
DB-->>SVC : 成功
SVC-->>UC : 返回成功消息
UC-->>U : 跳转或返回JSON

后台分享管理

  • 列表查询
    • 支持按用户名、分享单号、时间范围筛选,自动拼接分页URL。
    • 使用模型过滤器进行条件查询与默认排序。
  • 操作
    • 查看详情、批量取消、参数初始化(如分享积分参数)。
flowchart TD
QStart["后台进入分享列表"] --> Parse["解析筛选参数"]
Parse --> Filter["应用过滤器(用户/单号/时间)"]
Filter --> Paginate["分页查询"]
Paginate --> View["渲染列表视图"]
View --> Action{"选择操作"}
Action --> |详情| Show["显示详情"]
Action --> |批量取消| Batch["批量取消"]
Action --> |参数设置| Seed["初始化参数"]

小程序二维码能力

  • 用途
    • 将分享链接或活动页转换为二维码,便于线下传播与扫码转化。
  • 技术点
    • 使用内置二维码库生成标准QR码,可在小程序中直接渲染或下载。
flowchart TD
Input["输入分享链接/页面路径"] --> Gen["调用二维码库生成"]
Gen --> Output["输出二维码图像/数据"]
Output --> Use["嵌入页面/海报/物料"]

分享奖励与分销结算联动

  • 触发时机
    • 订单付款成功后,系统派发积分与分销奖励,并进行等级升级检查。
  • 并发与幂等
    • 使用行锁与去重字段保证幂等,防止回调与后台重跑导致重复发放。
  • 等级迁移
    • 分销等级配置从旧表迁入新表,用户关联分销等级ID,确保奖励比例读取正确。
sequenceDiagram
participant Pay as "支付回调/后台重跑"
participant OT as "OrderStatusTransition"
participant WAL as "钱包/积分"
participant DIST as "分销奖励"
participant LEVEL as "等级升级"
Pay->>OT : 派发付款后效应
OT->>WAL : 消费积分(幂等守卫)
WAL-->>OT : 成功/跳过
OT->>DIST : 计算并记录分销奖励(去重)
DIST-->>OT : 成功
OT->>LEVEL : 检查买家与分销商等级升级
LEVEL-->>OT : 完成
OT-->>Pay : 结束

依赖关系分析

  • 控制器与服务解耦
    • 前台与API控制器均依赖 ShareService,保证逻辑一致性与可维护性。
  • 后台管理与业务服务
    • 后台控制器通过 ShareService 执行列表构建、详情查看、批量操作与参数初始化。
  • 与交易/分销模块耦合点
    • 分享带来的订单成交后,通过订单状态转换触发分销奖励与等级升级,形成闭环。
graph LR
FSC["前台ShareController"] --> SVC["ShareService"]
FUC["前台UserController"] --> SVC
AUC["API UserController"] --> SVC
ASCC["后台ShareController"] --> SVC
SVC -.-> DB["数据库"]
SVC -.-> ORD["订单/分销结算"]

性能与并发考量

  • 幂等与防重
    • 分销奖励与积分发放采用去重字段与行锁保护,避免重复发放。
  • 事务边界
    • 积分与分销在同一事务内执行,失败仅回滚本组并记录日志,不影响订单主状态。
  • 分页与查询优化
    • 列表查询使用过滤器与默认排序,减少不必要的数据加载。

故障排查指南

  • 分享申请重复提交
    • 现象:用户多次提交申请被拒绝。
    • 排查:检查是否存在待处理申请;确认草稿令牌是否有效。
    • 参考:前台与API均在提交前校验待处理申请数量。
  • 分享列表为空或数据异常
    • 现象:后台或前台无法看到分享记录。
    • 排查:核对筛选参数(用户名、单号、时间范围);确认模型过滤器与默认排序是否正确。
  • 分享奖励未到账
    • 现象:订单付款后未发放分销奖励。
    • 排查:查看订单状态转换是否触发;检查行锁与去重逻辑;确认分销等级配置已迁移。

结论

DouPHP分享推广系统通过清晰的分层架构与统一的服务层,实现了分享记录管理、申请审核、小程序二维码生成以及与分销结算的紧密联动。系统在并发与幂等方面具备稳健设计,适合规模化推广场景。结合多平台分享接入与数据分析能力,可进一步提升裂变效率与转化率。

附录:多平台分享接入与运营策略

  • 多平台分享集成要点
    • 微信
      • 使用小程序分享接口自定义标题、路径与图片;落地页携带推广参数以便归因。
      • 利用二维码承载分享链接,便于线下传播与扫码转化。
    • 微博
      • 通过开放平台的分享SDK或网页分享接口,注入推广参数与短链。
    • QQ
      • 使用QQ分享SDK,配置分享标题、摘要与缩略图,落地页带参归因。
  • 分享链接与二维码
    • 链接规范:包含来源标识、活动ID、用户ID等参数,便于渠道统计与归因。
    • 二维码生成:使用内置二维码库或第三方服务,动态生成带参二维码。
  • 渠道统计与效果追踪
    • 埋点采集:记录分享曝光、点击、注册、下单等关键事件。
    • 归因模型:基于链接参数与用户关系链,计算直接推荐与间接邀请贡献。
  • 分享裂变算法与用户增长模型
    • 裂变系数:衡量每次分享带来的新用户数,目标大于1以实现自增长。
    • 激励策略:阶梯奖励、限时翻倍、排行榜等,提升分享意愿与频次。
  • 转化率优化
    • 落地页优化:高价值信息前置、信任背书、行动号召明确。
    • A/B测试:对比不同文案、素材与激励机制对转化的影响。
  • 数据分析与热门内容推荐
    • 指标看板:分享次数、点击率、转化率、ROI等。
    • 推荐策略:基于热度与用户画像,推送高转化内容与活动。
  • KOL合作管理
    • 合作流程:招募、签约、任务下发、数据复盘。
    • 效果评估:按渠道与KOL维度统计转化与收益,优化投放策略。
添加日期:2026-10-05