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

7.7 KiB
Raw Permalink Blame History

管理后台用户统计API使用示例

接口调用

基本调用

GET /admin/users/statistics
Authorization: Bearer <admin_token>

响应数据解读

{
  "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. 收益分析 💰

真实付费用户

// 计算真实付费用户数量
const realPaidUsers = data.paidVipUsers + data.paidSvipUsers;
console.log(`真实付费用户:${realPaidUsers}人`);

// 计算付费转化率
const paidConversionRate = (realPaidUsers / data.totalUsers * 100).toFixed(2);
console.log(`付费转化率:${paidConversionRate}%`);

收益贡献分析

// 分析不同会员类型的收益贡献
const analysis = {
    付费VIP: data.paidVipUsers,
    付费SVIP: data.paidSvipUsers,
    兑换VIP: data.exchangeVipUsers,
    兑换SVIP: data.exchangeSvipUsers
};

console.log('会员结构分析:', analysis);

2. 用户生命周期管理 📈

过期用户挽回

// 识别需要挽回的过期用户
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('⚠️ 过期率偏高,建议启动挽回营销活动');
}

续费预警

// 计算当前活跃会员占比
const activeRate = (data.activeMembersTotal / data.totalUsers * 100).toFixed(2);
console.log(`活跃会员占比:${activeRate}%`);

// 监控续费风险
if (data.expiredMembersTotal > data.activeMembersTotal * 0.2) {
    console.log('🚨 续费风险较高,建议加强续费提醒');
}

3. 运营策略优化 🎯

兑换码效果评估

// 分析兑换码推广效果
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('⚠️ 兑换码转化效果待优化');
}

赠送策略分析

// 分析赠送会员转化
const giftConversionPotential = data.giftMembers;
console.log(`赠送会员数量:${giftConversionPotential}人`);

if (giftConversionPotential > data.todayNewUsers * 0.5) {
    console.log('📊 赠送比例较高,关注转化效果');
}

4. 管理层报告 📊

关键指标摘要

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. 仪表板布局

<!-- 核心指标卡片 -->
<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. 会员结构饼图

// 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. 预警提示

// 预警逻辑
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: '今日新增用户低于周平均水平'
    });
}

定时任务建议

每日统计报告

// 每日早上8点执行
cron.schedule('0 8 * * *', async () => {
    const stats = await getAdminUserStatistics();
    
    // 生成日报
    const report = generateDailyReport(stats);
    
    // 发送给管理层
    await sendToAdmins(report);
});

异常监控

// 每小时检查一次关键指标
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('有效会员数量异常下降');
    }
});

这个统计接口为管理层提供了全面的用户分析能力,支持精确的业务决策和运营优化。通过区分不同类型的会员,能够更好地理解用户结构,制定针对性的营销策略。