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

6.0 KiB
Raw Permalink Blame History

管理端支付用户统计API接口文档

概述

本功能为管理端提供了完整的真实支付用户统计分析功能,包括:

  • 支付用户数量和信息统计
  • 支付金额分布分析
  • 时间维度的支付统计
  • 复购用户和高消费用户分析
  • 支持自定义时间段查询

技术实现

核心文件结构

src/main/java/com/dora/
├── dto/AdminPaymentUserDto.java                    # 数据传输对象
├── mapper/AdminPaymentUserMapper.java             # 数据访问接口
├── service/AdminPaymentUserService.java           # 服务接口
├── service/impl/AdminPaymentUserServiceImpl.java  # 服务实现
└── controller/AdminPaymentUserController.java     # 控制器

src/main/resources/mapper/
└── AdminPaymentUserMapper.xml                     # SQL映射文件

数据库依赖

  • order订单数据status=1表示已支付
  • user 表:用户基本信息
  • membership_plan 表:会员套餐信息

API接口详情

1. 获取支付用户统计数据

接口地址GET /admin/payment-users/statistics

请求参数

参数名 类型 必填 说明 示例
startDate String 开始日期 2024-01-01
endDate String 结束日期 2024-01-31

响应数据

{
  "code": 200,
  "message": "操作成功",
  "data": {
    "overview": {
      "totalPaymentUsers": 150,
      "totalPaymentOrders": 200,
      "totalPaymentAmount": 25000.00,
      "avgOrderAmount": 125.00,
      "newVipUsers": 80,
      "newSvipUsers": 30,
      "repeatPurchaseUsers": 45,
      "firstTimeUsers": 105
    },
    "paymentUsers": [
      {
        "userId": 1001,
        "username": "用户001",
        "phone": "138****1234",
        "role": 2,
        "orderCount": 3,
        "totalAmount": 299.00,
        "lastPaidAt": "2024-01-15T14:30:00",
        "firstPaidAt": "2024-01-01T10:15:00",
        "paymentMethod": 2,
        "isRepeatUser": true
      }
    ],
    "amountDistribution": {
      "users0To50": 20,
      "users50To100": 35,
      "users100To200": 45,
      "users200To500": 35,
      "usersAbove500": 15
    },
    "dailyStats": [
      {
        "date": "2024-01-01",
        "paymentUsers": 12,
        "paymentOrders": 15,
        "paymentAmount": 1500.00,
        "newVipUsers": 8,
        "newSvipUsers": 2
      }
    ]
  }
}

2. 获取支付用户详情列表

接口地址GET /admin/payment-users/list

请求参数

参数名 类型 必填 说明 示例
startDate String 开始日期 2024-01-01
endDate String 结束日期 2024-01-31
role Integer 用户角色筛选 2
onlyRepeatUsers Boolean 只显示复购用户 true
minAmount BigDecimal 最小支付金额 100
maxAmount BigDecimal 最大支付金额 500
sortField String 排序字段 totalAmount
sortOrder String 排序方向 DESC
page Integer 页码 1
size Integer 每页大小 10

响应数据

{
  "code": 200,
  "message": "操作成功",
  "data": {
    "users": [...],
    "total": 150,
    "currentPage": 1,
    "pageSize": 10,
    "totalPages": 15
  }
}

3. 便捷统计接口

3.1 今日支付用户统计

接口地址GET /admin/payment-users/statistics/today

3.2 本周支付用户统计

接口地址GET /admin/payment-users/statistics/week

3.3 本月支付用户统计

接口地址GET /admin/payment-users/statistics/month

3.4 复购用户列表

接口地址GET /admin/payment-users/list/repeat-users

请求参数

参数名 类型 必填 说明 示例
startDate String 开始日期 2024-01-01
endDate String 结束日期 2024-01-31
page Integer 页码 1
size Integer 每页大小 10

3.5 高消费用户列表

接口地址GET /admin/payment-users/list/top-spenders

请求参数:同复购用户列表

数据字段说明

用户角色定义

  • 1普通用户
  • 2VIP用户
  • 3SVIP用户

支付方式定义

  • 1支付宝
  • 2微信支付

订单状态定义

  • 0待支付
  • 1已完成已支付
  • 2已取消
  • 3支付失败

性能优化

  1. SQL优化:使用了合适的索引和查询优化
  2. 分页查询:支持大数据量分页显示
  3. 缓存机制可根据需要添加Redis缓存
  4. 异步处理:适用于大数据量统计

权限控制

  • 所有接口都需要管理员权限验证
  • 使用 AdminSecurityUtil.getCurrentAdminId() 验证管理员身份

错误处理

{
  "code": 500,
  "message": "查询支付用户统计数据失败: 具体错误信息",
  "data": null
}

使用示例

查询本月所有支付用户统计

GET /admin/payment-users/statistics/month

查询指定时间段的复购用户

GET /admin/payment-users/list/repeat-users?startDate=2024-01-01&endDate=2024-01-31&page=1&size=10

查询高消费VIP用户支付金额>200元

GET /admin/payment-users/list?role=2&minAmount=200&sortField=totalAmount&sortOrder=DESC&page=1&size=20

注意事项

  1. 时间范围:如果不指定时间范围,将统计所有历史数据
  2. 数据一致性基于已支付订单status=1进行统计
  3. 复购定义:有多次支付记录的用户
  4. 新增VIP/SVIP根据购买的会员套餐target_role字段判断
  5. 金额分布:按用户总支付金额进行区间统计

扩展功能建议

  1. 导出功能支持Excel导出统计数据
  2. 图表展示:前端配合实现数据可视化
  3. 定时报告:定期生成支付用户分析报告
  4. 对比分析:不同时间段的数据对比
  5. 预测分析:基于历史数据的趋势预测