Files
1818web-hoduan/docs/admin-user-statistics-usage-examples.md
2025-11-14 17:41:15 +08:00

274 lines
7.7 KiB
Markdown
Raw Permalink 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.

# 管理后台用户统计API使用示例
## 接口调用
### 基本调用
```bash
GET /admin/users/statistics
Authorization: Bearer <admin_token>
```
### 响应数据解读
```json
{
"code": 200,
"message": "操作成功",
"data": {
// 基础用户统计
"totalUsers": 1250, // 总用户数
"todayNewUsers": 15, // 今日新增
"weekNewUsers": 89, // 本周新增
"monthNewUsers": 324, // 本月新增
"normalUsers": 890, // 普通用户数
// VIP用户详细分类
"vipUsers": 280, // VIP总数
"paidVipUsers": 180, // 当前有效付费VIP ✨
"exchangeVipUsers": 65, // 当前有效兑换VIP ✨
"expiredVipUsers": 35, // 过期VIP ✨
// SVIP用户详细分类
"svipUsers": 80, // SVIP总数
"paidSvipUsers": 50, // 当前有效付费SVIP ✨
"exchangeSvipUsers": 20, // 当前有效兑换SVIP ✨
"expiredSvipUsers": 10, // 过期SVIP ✨
// 特殊会员类型
"giftMembers": 12, // 赠送会员(新用户福利)
"pureExchangeMembers": 45, // 纯兑换会员(从未付费)
"exchangeThenPaidMembers": 38, // 兑换后付费会员
// 认证和推广
"verifiedUsers": 450, // 已实名认证
"unverifiedUsers": 800, // 未实名认证
"promotionUsers": 125, // 有推广等级
// 会员有效性汇总
"activeMembersTotal": 315, // 当前有效会员总数
"expiredMembersTotal": 45 // 过期会员总数
}
}
```
## 数据分析场景
### 1. 收益分析 💰
**真实付费用户**
```javascript
// 计算真实付费用户数量
const realPaidUsers = data.paidVipUsers + data.paidSvipUsers;
console.log(`真实付费用户:${realPaidUsers}人`);
// 计算付费转化率
const paidConversionRate = (realPaidUsers / data.totalUsers * 100).toFixed(2);
console.log(`付费转化率:${paidConversionRate}%`);
```
**收益贡献分析**
```javascript
// 分析不同会员类型的收益贡献
const analysis = {
付费VIP: data.paidVipUsers,
付费SVIP: data.paidSvipUsers,
兑换VIP: data.exchangeVipUsers,
兑换SVIP: data.exchangeSvipUsers
};
console.log('会员结构分析:', analysis);
```
### 2. 用户生命周期管理 📈
**过期用户挽回**
```javascript
// 识别需要挽回的过期用户
const expiredUsers = data.expiredVipUsers + data.expiredSvipUsers;
const expiredRate = (expiredUsers / (data.vipUsers + data.svipUsers) * 100).toFixed(2);
console.log(`过期用户:${expiredUsers}人,过期率:${expiredRate}%`);
if (expiredRate > 15) {
console.log('⚠️ 过期率偏高,建议启动挽回营销活动');
}
```
**续费预警**
```javascript
// 计算当前活跃会员占比
const activeRate = (data.activeMembersTotal / data.totalUsers * 100).toFixed(2);
console.log(`活跃会员占比:${activeRate}%`);
// 监控续费风险
if (data.expiredMembersTotal > data.activeMembersTotal * 0.2) {
console.log('🚨 续费风险较高,建议加强续费提醒');
}
```
### 3. 运营策略优化 🎯
**兑换码效果评估**
```javascript
// 分析兑换码推广效果
const exchangeUsers = data.exchangeVipUsers + data.exchangeSvipUsers;
const pureExchangeRate = (data.pureExchangeMembers / exchangeUsers * 100).toFixed(2);
console.log(`兑换用户总数:${exchangeUsers}人`);
console.log(`纯兑换用户占比:${pureExchangeRate}%`);
if (data.exchangeThenPaidMembers > data.pureExchangeMembers) {
console.log('✅ 兑换码策略有效,促进了后续付费');
} else {
console.log('⚠️ 兑换码转化效果待优化');
}
```
**赠送策略分析**
```javascript
// 分析赠送会员转化
const giftConversionPotential = data.giftMembers;
console.log(`赠送会员数量:${giftConversionPotential}人`);
if (giftConversionPotential > data.todayNewUsers * 0.5) {
console.log('📊 赠送比例较高,关注转化效果');
}
```
### 4. 管理层报告 📊
**关键指标摘要**
```javascript
const summary = {
用户规模: {
总用户数: data.totalUsers,
月新增: data.monthNewUsers,
增长率: ((data.monthNewUsers / (data.totalUsers - data.monthNewUsers)) * 100).toFixed(2) + '%'
},
会员结构: {
有效会员: data.activeMembersTotal,
会员率: (data.activeMembersTotal / data.totalUsers * 100).toFixed(2) + '%',
付费占比: ((data.paidVipUsers + data.paidSvipUsers) / data.activeMembersTotal * 100).toFixed(2) + '%'
},
质量指标: {
实名认证率: (data.verifiedUsers / data.totalUsers * 100).toFixed(2) + '%',
推广用户数: data.promotionUsers,
过期风险: (data.expiredMembersTotal / (data.activeMembersTotal + data.expiredMembersTotal) * 100).toFixed(2) + '%'
}
};
console.log('📈 用户数据摘要:', JSON.stringify(summary, null, 2));
```
## 前端展示建议
### 1. 仪表板布局
```html
<!-- 核心指标卡片 -->
<div class="metrics-grid">
<div class="metric-card">
<h3>总用户数</h3>
<span class="number">{{totalUsers}}</span>
<span class="growth">本月+{{monthNewUsers}}</span>
</div>
<div class="metric-card">
<h3>有效会员</h3>
<span class="number">{{activeMembersTotal}}</span>
<span class="rate">{{membershipRate}}%</span>
</div>
<div class="metric-card">
<h3>付费用户</h3>
<span class="number">{{paidVipUsers + paidSvipUsers}}</span>
<span class="conversion">转化率{{conversionRate}}%</span>
</div>
</div>
```
### 2. 会员结构饼图
```javascript
// Chart.js 配置示例
const membershipChart = {
type: 'pie',
data: {
labels: ['付费VIP', '兑换VIP', '付费SVIP', '兑换SVIP', '普通用户'],
datasets: [{
data: [
data.paidVipUsers,
data.exchangeVipUsers,
data.paidSvipUsers,
data.exchangeSvipUsers,
data.normalUsers
],
backgroundColor: ['#4CAF50', '#FF9800', '#2196F3', '#9C27B0', '#757575']
}]
}
};
```
### 3. 预警提示
```javascript
// 预警逻辑
const alerts = [];
if (data.expiredMembersTotal > data.activeMembersTotal * 0.3) {
alerts.push({
type: 'warning',
message: '过期会员数量偏高,建议加强续费营销'
});
}
if (data.pureExchangeMembers > data.exchangeThenPaidMembers) {
alerts.push({
type: 'info',
message: '兑换用户付费转化率待提升'
});
}
if (data.todayNewUsers < data.weekNewUsers / 7) {
alerts.push({
type: 'warning',
message: '今日新增用户低于周平均水平'
});
}
```
## 定时任务建议
### 每日统计报告
```javascript
// 每日早上8点执行
cron.schedule('0 8 * * *', async () => {
const stats = await getAdminUserStatistics();
// 生成日报
const report = generateDailyReport(stats);
// 发送给管理层
await sendToAdmins(report);
});
```
### 异常监控
```javascript
// 每小时检查一次关键指标
cron.schedule('0 * * * *', async () => {
const stats = await getAdminUserStatistics();
// 检查异常情况
if (stats.expiredMembersTotal > lastStats.expiredMembersTotal * 1.1) {
await sendAlert('过期用户数量异常增长');
}
if (stats.activeMembersTotal < lastStats.activeMembersTotal * 0.95) {
await sendAlert('有效会员数量异常下降');
}
});
```
这个统计接口为管理层提供了全面的用户分析能力,支持精确的业务决策和运营优化。通过区分不同类型的会员,能够更好地理解用户结构,制定针对性的营销策略。