gaoluyang
2026-06-24 bfdc0e0e6d5e47aa501f9b6fadd143d9c97cf00a
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
import type { Dayjs } from 'dayjs';
 
import type { DataComparisonRespVO } from './common';
 
import { formatDateTime } from '../../../packages/utils/src';
 
import { requestClient } from '#/api/request';
 
export namespace MallMemberStatisticsApi {
  /** 会员分析 Request */
  export interface MemberAnalyseReqVO {
    times: Date[] | Dayjs[]; // 时间范围
  }
 
  /** 会员分析 Response */
  export interface AnalyseRespVO {
    visitUserCount: number; // 访问用户数
    orderUserCount: number; // 下单用户数
    payUserCount: number; // 支付用户数
    atv: number; // 平均客单价
    comparison: DataComparisonRespVO<AnalyseDataRespVO>; // 对照数据
  }
 
  /** 会员分析对照数据 Response */
  export interface AnalyseDataRespVO {
    registerUserCount: number; // 注册用户数
    visitUserCount: number; // 访问用户数
    rechargeUserCount: number; // 充值用户数
  }
 
  /** 会员地区统计 Response */
  export interface AreaStatisticsRespVO {
    areaId: number; // 地区ID
    areaName: string; // 地区名称
    userCount: number; // 用户数
    orderCreateUserCount: number; // 下单用户数
    orderPayUserCount: number; // 支付用户数
    orderPayPrice: number; // 支付金额
  }
 
  /** 会员性别统计 Response */
  export interface SexStatisticsRespVO {
    sex: number; // 性别
    userCount: number; // 用户数
  }
 
  /** 会员统计 Response */
  export interface SummaryRespVO {
    userCount: number; // 用户数
    rechargeUserCount: number; // 充值用户数
    rechargePrice: number; // 充值金额
    expensePrice: number; // 消费金额
  }
 
  /** 会员终端统计 Response */
  export interface TerminalStatisticsRespVO {
    terminal: number; // 终端
    userCount: number; // 用户数
  }
 
  /** 会员数量统计 Response */
  export interface MemberCountRespVO {
    visitUserCount: string; // 用户访问量
    registerUserCount: number; // 注册用户数量
  }
 
  /** 会员注册数量 Response */
  export interface RegisterCountRespVO {
    date: string; // 日期
    count: number; // 数量
  }
}
 
/** 查询会员统计 */
export function getMemberSummary() {
  return requestClient.get<MallMemberStatisticsApi.SummaryRespVO>(
    '/statistics/member/summary',
  );
}
 
/** 查询会员分析数据 */
export function getMemberAnalyse(
  params: MallMemberStatisticsApi.MemberAnalyseReqVO,
) {
  return requestClient.get<MallMemberStatisticsApi.AnalyseRespVO>(
    '/statistics/member/analyse',
    {
      params: {
        times: [
          formatDateTime(params.times[0]),
          formatDateTime(params.times[1]),
        ],
      },
    },
  );
}
 
/** 按照省份,查询会员统计列表 */
export function getMemberAreaStatisticsList() {
  return requestClient.get<MallMemberStatisticsApi.AreaStatisticsRespVO[]>(
    '/statistics/member/area-statistics-list',
  );
}
 
/** 按照性别,查询会员统计列表 */
export function getMemberSexStatisticsList() {
  return requestClient.get<MallMemberStatisticsApi.SexStatisticsRespVO[]>(
    '/statistics/member/sex-statistics-list',
  );
}
 
/** 按照终端,查询会员统计列表 */
export function getMemberTerminalStatisticsList() {
  return requestClient.get<MallMemberStatisticsApi.TerminalStatisticsRespVO[]>(
    '/statistics/member/terminal-statistics-list',
  );
}
 
/** 获得用户数量量对照 */
export function getUserCountComparison() {
  return requestClient.get<
    DataComparisonRespVO<MallMemberStatisticsApi.MemberCountRespVO>
  >('/statistics/member/user-count-comparison');
}
 
/** 获得会员注册数量列表 */
export function getMemberRegisterCountList(beginTime: Date, endTime: Date) {
  return requestClient.get<MallMemberStatisticsApi.RegisterCountRespVO[]>(
    '/statistics/member/register-count-list',
    {
      params: {
        times: [formatDateTime(beginTime), formatDateTime(endTime)],
      },
    },
  );
}