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/trade.ts |  119 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 119 insertions(+), 0 deletions(-)

diff --git a/src/api/mall/statistics/trade.ts b/src/api/mall/statistics/trade.ts
new file mode 100644
index 0000000..e59952a
--- /dev/null
+++ b/src/api/mall/statistics/trade.ts
@@ -0,0 +1,119 @@
+import request from '@/config/axios'
+import dayjs from 'dayjs'
+import { formatDate } from '@/utils/formatTime'
+import { DataComparisonRespVO } from '@/api/mall/statistics/common'
+
+/** 浜ゆ槗缁熻 Response VO */
+export interface TradeSummaryRespVO {
+  yesterdayOrderCount: number
+  monthOrderCount: number
+  yesterdayPayPrice: number
+  monthPayPrice: number
+}
+
+/** 浜ゆ槗鐘跺喌 Request VO */
+export interface TradeTrendReqVO {
+  times: [dayjs.ConfigType, dayjs.ConfigType]
+}
+
+/** 浜ゆ槗鐘跺喌缁熻 Response VO */
+export interface TradeTrendSummaryRespVO {
+  time: string
+  turnoverPrice: number
+  orderPayPrice: number
+  rechargePrice: number
+  expensePrice: number
+  walletPayPrice: number
+  brokerageSettlementPrice: number
+  afterSaleRefundPrice: number
+}
+
+/** 浜ゆ槗璁㈠崟鏁伴噺 Response VO */
+export interface TradeOrderCountRespVO {
+  /** 寰呭彂璐� */
+  undelivered?: number
+  /** 寰呮牳閿� */
+  pickUp?: number
+  /** 閫�娆句腑 */
+  afterSaleApply?: number
+  /** 鎻愮幇寰呭鏍� */
+  auditingWithdraw?: number
+}
+
+/** 浜ゆ槗璁㈠崟缁熻 Response VO */
+export interface TradeOrderSummaryRespVO {
+  /** 鏀粯璁㈠崟鍟嗗搧鏁� */
+  orderPayCount?: number
+  /** 鎬绘敮浠橀噾棰濓紝鍗曚綅锛氬垎 */
+  orderPayPrice?: number
+}
+
+/** 璁㈠崟閲忚秼鍔跨粺璁� Response VO */
+export interface TradeOrderTrendRespVO {
+  /** 鏃ユ湡 */
+  date: string
+  /** 璁㈠崟鏁伴噺 */
+  orderPayCount: number
+  /** 璁㈠崟鏀粯閲戦 */
+  orderPayPrice: number
+}
+
+// 鏌ヨ浜ゆ槗缁熻
+export const getTradeStatisticsSummary = () => {
+  return request.get<DataComparisonRespVO<TradeSummaryRespVO>>({
+    url: '/statistics/trade/summary'
+  })
+}
+
+// 鑾峰緱浜ゆ槗鐘跺喌缁熻
+export const getTradeStatisticsAnalyse = (params: TradeTrendReqVO) => {
+  return request.get<DataComparisonRespVO<TradeTrendSummaryRespVO>>({
+    url: '/statistics/trade/analyse',
+    params: formatDateParam(params)
+  })
+}
+
+// 鑾峰緱浜ゆ槗鐘跺喌鏄庣粏
+export const getTradeStatisticsList = (params: TradeTrendReqVO) => {
+  return request.get<TradeTrendSummaryRespVO[]>({
+    url: '/statistics/trade/list',
+    params: formatDateParam(params)
+  })
+}
+
+// 瀵煎嚭浜ゆ槗鐘跺喌鏄庣粏
+export const exportTradeStatisticsExcel = (params: TradeTrendReqVO) => {
+  return request.download({
+    url: '/statistics/trade/export-excel',
+    params: formatDateParam(params)
+  })
+}
+
+// 鑾峰緱浜ゆ槗璁㈠崟鏁伴噺
+export const getOrderCount = async () => {
+  return await request.get<TradeOrderCountRespVO>({ url: `/statistics/trade/order-count` })
+}
+
+// 鑾峰緱浜ゆ槗璁㈠崟鏁伴噺瀵圭収
+export const getOrderComparison = async () => {
+  return await request.get<DataComparisonRespVO<TradeOrderSummaryRespVO>>({
+    url: `/statistics/trade/order-comparison`
+  })
+}
+
+// 鑾峰緱璁㈠崟閲忚秼鍔跨粺璁�
+export const getOrderCountTrendComparison = (
+  type: number,
+  beginTime: dayjs.ConfigType,
+  endTime: dayjs.ConfigType
+) => {
+  return request.get<DataComparisonRespVO<TradeOrderTrendRespVO>[]>({
+    url: '/statistics/trade/order-count-trend',
+    params: { type, beginTime: formatDate(beginTime), endTime: formatDate(endTime) }
+  })
+}
+
+/** 鏃堕棿鍙傛暟闇�瑕佹牸寮忓寲, 纭繚鎺ュ彛鑳借瘑鍒� */
+const formatDateParam = (params: TradeTrendReqVO) => {
+  return { times: [formatDate(params.times[0]), formatDate(params.times[1])] } as TradeTrendReqVO
+}

--
Gitblit v1.8.0