package dto import ( "time" "github.com/gogf/gf/v2/frame/g" ) // GetOrderStatisticsReq 获取订单统计数据请求 type GetOrderStatisticsReq struct { g.Meta `path:"/getStatistics" method:"get" tags:"订单统计" summary:"获取订单统计数据" dc:"根据报表类型和日期获取订单统计数据"` TenantID int64 `v:"required" json:"tenant_id" dc:"租户ID"` ReportType string `v:"required|in:daily,monthly,quarterly,yearly" json:"report_type" dc:"报表类型"` StartDate string `json:"start_date,omitempty" dc:"开始日期"` EndDate string `json:"end_date,omitempty" dc:"结束日期"` } // GetOrderStatisticsRes 获取订单统计数据响应 type GetOrderStatisticsRes struct { Statistics *OrderStatisticsDetail `json:"statistics"` } // OrderStatisticsDetail 订单统计详情 type OrderStatisticsDetail struct { ReportType string `json:"report_type"` ReportDate time.Time `json:"report_date"` Period string `json:"period"` // 订单基础统计 TotalOrders int64 `json:"total_orders"` CompletedOrders int64 `json:"completed_orders"` CancelledOrders int64 `json:"cancelled_orders"` PaidOrders int64 `json:"paid_orders"` // 金额统计(单位:分) TotalAmount int64 `json:"total_amount"` PaidAmount int64 `json:"paid_amount"` RefundAmount int64 `json:"refund_amount"` NetAmount int64 `json:"net_amount"` // 业务指标 AverageOrderValue int64 `json:"average_order_value"` PaymentRate float64 `json:"payment_rate"` CompletionRate float64 `json:"completion_rate"` // 用户统计 UniqueUsers int64 `json:"unique_users"` NewUsers int64 `json:"new_users"` ReturningUsers int64 `json:"returning_users"` // 商品统计 TotalItems int64 `json:"total_items"` UniqueAssets int64 `json:"unique_assets"` TopAssetID string `json:"top_asset_id,omitempty"` TopAssetName string `json:"top_asset_name,omitempty"` TopAssetCount int64 `json:"top_asset_count,omitempty"` // 时间统计 CreatedAt time.Time `json:"created_at"` UpdatedAt time.Time `json:"updated_at"` } // GetOrderStatisticsListReq 获取订单统计列表请求 type GetOrderStatisticsListReq struct { g.Meta `path:"/getStatisticsList" method:"get" tags:"订单统计" summary:"获取订单统计列表" dc:"分页获取订单统计列表"` TenantID int64 `v:"required" json:"tenant_id" dc:"租户ID"` ReportType string `v:"required|in:daily,monthly,quarterly,yearly" json:"report_type" dc:"报表类型"` StartDate string `json:"start_date,omitempty" dc:"开始日期"` EndDate string `json:"end_date,omitempty" dc:"结束日期"` PageNum int `json:"page_num,omitempty" dc:"页码"` PageSize int `json:"page_size,omitempty" dc:"每页数量"` } // GetOrderStatisticsListRes 获取订单统计列表响应 type GetOrderStatisticsListRes struct { List []*OrderStatisticsDetail `json:"list"` TotalCount int64 `json:"total_count"` PageNum int `json:"page_num"` PageSize int `json:"page_size"` } // GenerateOrderStatisticsReq 生成订单统计数据请求 type GenerateOrderStatisticsReq struct { g.Meta `path:"/generateStatistics" method:"post" tags:"订单统计" summary:"生成订单统计数据" dc:"手动触发生成指定日期的统计数据"` TenantID int64 `v:"required" json:"tenant_id" dc:"租户ID"` ReportType string `v:"required|in:daily,monthly,quarterly,yearly" json:"report_type" dc:"报表类型"` ReportDate string `json:"report_date,omitempty" dc:"统计日期,格式YYYY-MM-DD"` Force bool `json:"force,omitempty" dc:"是否强制重新生成"` } // GenerateOrderStatisticsRes 生成订单统计数据响应 type GenerateOrderStatisticsRes struct { Success bool `json:"success"` Message string `json:"message"` } // GetOrderTrendReq 获取订单趋势数据请求 type GetOrderTrendReq struct { g.Meta `path:"/getTrend" method:"get" tags:"订单统计" summary:"获取订单趋势数据" dc:"获取指定时间范围内的订单趋势数据"` TenantID int64 `v:"required" json:"tenant_id" dc:"租户ID"` StartDate string `v:"required" json:"start_date" dc:"开始日期,格式YYYY-MM-DD"` EndDate string `v:"required" json:"end_date" dc:"结束日期,格式YYYY-MM-DD"` TrendType string `v:"required|in:revenue,orders,users" json:"trend_type" dc:"趋势类型:revenue-收入趋势,orders-订单趋势,users-用户趋势"` } // GetOrderTrendRes 获取订单趋势数据响应 type GetOrderTrendRes struct { TrendData []*TrendDataPoint `json:"trend_data"` } // TrendDataPoint 趋势数据点 type TrendDataPoint struct { Date string `json:"date"` Value int64 `json:"value"` Label string `json:"label,omitempty"` } // GetTopAssetsReq 获取热门资产请求 type GetTopAssetsReq struct { g.Meta `path:"/getTopAssets" method:"get" tags:"订单统计" summary:"获取热门资产" dc:"获取指定时间范围内的热门资产排行"` TenantID int64 `v:"required" json:"tenant_id" dc:"租户ID"` StartDate string `v:"required" json:"start_date" dc:"开始日期,格式YYYY-MM-DD"` EndDate string `v:"required" json:"end_date" dc:"结束日期,格式YYYY-MM-DD"` Limit int `json:"limit,omitempty" dc:"返回数量限制,默认10"` } // GetTopAssetsRes 获取热门资产响应 type GetTopAssetsRes struct { TopAssets []*AssetRanking `json:"top_assets"` } // AssetRanking 资产排行 type AssetRanking struct { AssetID string `json:"asset_id"` AssetName string `json:"asset_name"` AssetType string `json:"asset_type"` OrderCount int64 `json:"order_count"` TotalAmount int64 `json:"total_amount"` Quantity int64 `json:"quantity"` Rank int `json:"rank"` }