[Claude Workbench] Initial commit - preserving existing code
This commit is contained in:
273
docs/admin-user-statistics-usage-examples.md
Normal file
273
docs/admin-user-statistics-usage-examples.md
Normal file
@@ -0,0 +1,273 @@
|
||||
# 管理后台用户统计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('有效会员数量异常下降');
|
||||
}
|
||||
});
|
||||
```
|
||||
|
||||
这个统计接口为管理层提供了全面的用户分析能力,支持精确的业务决策和运营优化。通过区分不同类型的会员,能够更好地理解用户结构,制定针对性的营销策略。
|
||||
Reference in New Issue
Block a user