本文档旨在详细说明CRMEB系统中统计分析模块的设计架构、核心功能、代码实现及开发规范,为系统开发人员提供完整的开发参考。
本文档适用于CRMEB系统开发人员、维护人员及二次开发人员,用于指导统计分析模块的开发、扩展和维护工作。
| 术语 | 解释 |
|---|---|
| PV | 页面访问量(Page View),即页面浏览次数 |
| UV | 独立访客数(Unique Visitor),即不同IP地址访问网站的用户数 |
| 转化率 | 转化次数与访问次数的比率,如注册转化率、下单转化率 |
| 复购率 | 重复购买用户数与总购买用户数的比率 |
| 环比 | 本期统计数据与上期统计数据的比较 |
| 同比 | 本期统计数据与上年同期统计数据的比较 |
| 资金流水 | 系统中所有资金的流入流出记录 |
系统采用分层架构设计,严格遵循MVC设计模式:
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ Controllers │ │ Services │ │ Daos │
└─────────────────┘ └─────────────────┘ └─────────────────┘
│ │ │
└───────────────────────┼───────────────────────┘
│
┌─────────────────┐
│ Models │
└─────────────────┘
│
┌─────────────────┐
│ 数据库 │
└─────────────────┘
统计分析控制器:/crmeb/app/adminapi/controller/v1/statistic/
FlowStatistic.php - 资金流水统计控制器UserStatistic.php - 用户统计控制器OrderStatistic.php - 订单统计控制器TradeStatistic.php - 交易统计控制器ProductStatistic.php - 商品统计控制器BalanceStatistic.php - 余额统计控制器统计分析服务:/crmeb/app/services/statistic/
CapitalFlowServices.php - 资金流水统计服务UserStatisticServices.php - 用户统计服务OrderStatisticServices.php - 订单统计服务TradeStatisticServices.php - 交易统计服务ProductStatisticServices.php - 商品统计服务BalanceStatisticServices.php - 余额统计服务统计分析Dao:与各个业务模块的Dao共用,如用户Dao、订单Dao、商品Dao等
统计分析模型:与各个业务模块的模型共用,如用户模型、订单模型、商品模型等
| 字段名 | 数据类型 | 描述 |
|---|---|---|
| id | int(10) unsigned | 流水ID |
| uid | int(10) | 用户ID |
| link_id | int(10) | 关联ID(如订单ID、充值ID等) |
| type | varchar(20) | 交易类型(pay-支付订单,refund-退款,recharge-充值,extract-提现等) |
| money | decimal(10,2) | 交易金额 |
| pm | tinyint(1) | 收支方向(1-收入,0-支出) |
| balance | decimal(10,2) | 交易后余额 |
| mark | varchar(255) | 备注 |
| add_time | int(10) | 添加时间 |
| 字段名 | 数据类型 | 描述 |
|---|---|---|
| id | int(10) unsigned | 记录ID |
| uid | int(10) | 用户ID(0-游客) |
| ip | varchar(15) | 访问IP |
| url | varchar(255) | 访问URL |
| referer | varchar(255) | 来源URL |
| user_agent | text | 用户代理信息 |
| device | varchar(20) | 设备类型(pc, mobile, tablet) |
| browser | varchar(20) | 浏览器 |
| os | varchar(20) | 操作系统 |
| add_time | int(10) | 访问时间 |
| 字段名 | 数据类型 | 描述 |
|---|---|---|
| id | int(10) unsigned | 统计ID |
| date | date | 统计日期 |
| order_count | int(10) | 订单数量 |
| order_amount | decimal(10,2) | 订单总金额 |
| pay_amount | decimal(10,2) | 实付金额 |
| refund_count | int(10) | 退款订单数量 |
| refund_amount | decimal(10,2) | 退款金额 |
| user_count | int(10) | 成交用户数 |
| add_time | int(10) | 添加时间 |
/adminapi/v1/statistic/flow/pvuv/adminapi/v1/statistic/flow/source/adminapi/v1/statistic/user/basic/adminapi/v1/statistic/user/trend/adminapi/v1/statistic/user/region/adminapi/v1/statistic/order/basic/adminapi/v1/statistic/order/trend/adminapi/v1/statistic/flow/list/adminapi/v1/statistic/flow/bill/adminapi/v1/statistic/product/basic/adminapi/v1/statistic/product/rank命名规范:
UserStatisticServicesgetUserBasicInfovisitorCountSTATISTIC_TYPE_HOUR代码结构:
性能优化:
问题:统计数据与实际数据不符 解决方案:
问题:统计查询耗时过长,影响系统性能 解决方案:
问题:无法满足多维度统计需求 解决方案:
问题:实时统计数据延迟或不准确 解决方案:
| 版本 | 更新日期 | 更新内容 | 更新人 |
|---|---|---|---|
| 1.0 | 2026-01-19 | 初始版本,包含流量统计、用户统计、销售统计、资金统计、商品统计等核心功能 | AI Assistant |
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ Controllers │ │ Services │ │ Daos │
└─────────────────┘ └─────────────────┘ └─────────────────┘
│ │ │
└───────────────────────┼───────────────────────┘
│
┌─────────────────┐
│ Models │
└─────────────────┘
│
┌─────────────────┐
│ 数据库 │
└─────────────────┘
统计流程:
1. 系统收集原始数据(访问日志、订单数据、用户数据等)
2. 定期汇总原始数据,生成统计数据
3. 将统计数据存储到统计表中
4. 提供API接口,供前端查询统计数据
5. 前端展示统计图表和数据
6. 支持统计数据导出
| 维度名称 | 描述 |
|---|---|
| 时间维度 | 小时、日、周、月、年 |
| 地域维度 | 省份、城市 |
| 设备维度 | PC、移动端、平板 |
| 渠道维度 | 微信、支付宝、APP、小程序等 |
| 商品维度 | 商品分类、商品属性、品牌等 |
| 用户维度 | 性别、年龄、会员等级等 |
| 订单维度 | 订单类型、支付方式、配送方式等 |
| 指标名称 | 描述 |
|---|---|
| PV | 页面访问量 |
| UV | 独立访客数 |
| 新增用户数 | 新增注册用户数 |
| 成交用户数 | 完成交易的用户数 |
| 复购率 | 重复购买用户数与总购买用户数的比率 |
| 转化率 | 转化次数与访问次数的比率 |
| 订单总金额 | 订单的总金额 |
| 实付金额 | 实际支付的金额 |
| 订单数量 | 订单总数 |
| 客单价 | 平均每笔订单的金额 |
| 商品销售额 | 商品的销售总额 |
| 商品销量 | 商品的销售数量 |
| 资金流入 | 系统中的资金流入总额 |
| 资金流出 | 系统中的资金流出总额 |
提示:该文档由AI生成,仅供参考。