From a1d7e81859f554f3a53680cc35f0f49bf1f77098 Mon Sep 17 00:00:00 2001
From: wwf <1971391498@qq.com>
Date: 星期四, 14 五月 2026 14:37:02 +0800
Subject: [PATCH] 导入项目

---
 src/api/mall/statistics/member.ts |  123 +++++++++++++++++++++++++++++++++++++++++
 1 files changed, 123 insertions(+), 0 deletions(-)

diff --git a/src/api/mall/statistics/member.ts b/src/api/mall/statistics/member.ts
new file mode 100644
index 0000000..d9accf9
--- /dev/null
+++ b/src/api/mall/statistics/member.ts
@@ -0,0 +1,123 @@
+import request from '@/config/axios'
+import dayjs from 'dayjs'
+import { DataComparisonRespVO } from '@/api/mall/statistics/common'
+import { formatDate } from '@/utils/formatTime'
+
+/** 浼氬憳鍒嗘瀽 Request VO */
+export interface MemberAnalyseReqVO {
+  times: dayjs.ConfigType[]
+}
+
+/** 浼氬憳鍒嗘瀽 Response VO */
+export interface MemberAnalyseRespVO {
+  visitUserCount: number
+  orderUserCount: number
+  payUserCount: number
+  atv: number
+  comparison: DataComparisonRespVO<MemberAnalyseComparisonRespVO>
+}
+
+/** 浼氬憳鍒嗘瀽瀵圭収鏁版嵁 Response VO */
+export interface MemberAnalyseComparisonRespVO {
+  registerUserCount: number
+  visitUserCount: number
+  rechargeUserCount: number
+}
+
+/** 浼氬憳鍦板尯缁熻 Response VO */
+export interface MemberAreaStatisticsRespVO {
+  areaId: number
+  areaName: string
+  userCount: number
+  orderCreateUserCount: number
+  orderPayUserCount: number
+  orderPayPrice: number
+}
+
+/** 浼氬憳鎬у埆缁熻 Response VO */
+export interface MemberSexStatisticsRespVO {
+  sex: number
+  userCount: number
+}
+
+/** 浼氬憳缁熻 Response VO */
+export interface MemberSummaryRespVO {
+  userCount: number
+  rechargeUserCount: number
+  rechargePrice: number
+  expensePrice: number
+}
+
+/** 浼氬憳缁堢缁熻 Response VO */
+export interface MemberTerminalStatisticsRespVO {
+  terminal: number
+  userCount: number
+}
+
+/** 浼氬憳鏁伴噺缁熻 Response VO */
+export interface MemberCountRespVO {
+  /** 鐢ㄦ埛璁块棶閲� */
+  visitUserCount: string
+  /** 娉ㄥ唽鐢ㄦ埛鏁伴噺 */
+  registerUserCount: number
+}
+
+/** 浼氬憳娉ㄥ唽鏁伴噺 Response VO */
+export interface MemberRegisterCountRespVO {
+  date: string
+  count: number
+}
+
+// 鏌ヨ浼氬憳缁熻
+export const getMemberSummary = () => {
+  return request.get<MemberSummaryRespVO>({
+    url: '/statistics/member/summary'
+  })
+}
+
+// 鏌ヨ浼氬憳鍒嗘瀽鏁版嵁
+export const getMemberAnalyse = (params: MemberAnalyseReqVO) => {
+  return request.get<MemberAnalyseRespVO>({
+    url: '/statistics/member/analyse',
+    params: { times: [formatDate(params.times[0]), formatDate(params.times[1])] }
+  })
+}
+
+// 鎸夌収鐪佷唤锛屾煡璇細鍛樼粺璁″垪琛�
+export const getMemberAreaStatisticsList = () => {
+  return request.get<MemberAreaStatisticsRespVO[]>({
+    url: '/statistics/member/area-statistics-list'
+  })
+}
+
+// 鎸夌収鎬у埆锛屾煡璇細鍛樼粺璁″垪琛�
+export const getMemberSexStatisticsList = () => {
+  return request.get<MemberSexStatisticsRespVO[]>({
+    url: '/statistics/member/sex-statistics-list'
+  })
+}
+
+// 鎸夌収缁堢锛屾煡璇細鍛樼粺璁″垪琛�
+export const getMemberTerminalStatisticsList = () => {
+  return request.get<MemberTerminalStatisticsRespVO[]>({
+    url: '/statistics/member/terminal-statistics-list'
+  })
+}
+
+// 鑾峰緱鐢ㄦ埛鏁伴噺閲忓鐓�
+export const getUserCountComparison = () => {
+  return request.get<DataComparisonRespVO<MemberCountRespVO>>({
+    url: '/statistics/member/user-count-comparison'
+  })
+}
+
+// 鑾峰緱浼氬憳娉ㄥ唽鏁伴噺鍒楄〃
+export const getMemberRegisterCountList = (
+  beginTime: dayjs.ConfigType,
+  endTime: dayjs.ConfigType
+) => {
+  return request.get<MemberRegisterCountRespVO[]>({
+    url: '/statistics/member/register-count-list',
+    params: { times: [formatDate(beginTime), formatDate(endTime)] }
+  })
+}

--
Gitblit v1.8.0