Files
yudao-ui-admin-vben/apps/web-antd/src/api/mall/statistics/member.ts

137 lines
3.8 KiB
TypeScript

import type { Dayjs } from 'dayjs';
import type { DataComparisonRespVO } from './common';
import { formatDateTime } from '@vben/utils';
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)],
},
},
);
}