package adminfinance import "time" type DashboardQuery struct { StartDate time.Time EndDate time.Time } type DetailQuery struct { OrderNo string UserID uint64 OrderStatus string SettlementStatus string SettlementMode string OfflineSettlementStatus string DateType string StartDate time.Time EndDate time.Time Page int PageSize int } type DisbursementQuery struct { SourceType string Status string DateType string BusinessNo string Keyword string UserID uint64 StartDate time.Time EndDate time.Time Page int PageSize int } type DashboardDTO struct { Summary FinanceSummaryDTO `json:"summary"` DailyItems []FinanceDailyDTO `json:"daily_items"` PickupSummary PickupSummaryDTO `json:"pickup_summary"` MohongSummary MohongSummaryDTO `json:"mohong_summary"` DisbursementSummary DisbursementSummaryDTO `json:"disbursement_summary"` GeneratedAt time.Time `json:"generated_at"` } // PickupSummaryDTO 线下提号统计,独立于正常订单口径,数据来自 admin_pickups 表。 type PickupSummaryDTO struct { SettledAmountCent int64 `json:"settled_amount_cent"` // 区间内已完成提号的结算金额合计 ProfitAmountCent int64 `json:"profit_amount_cent"` // 区间内已完成提号的线下利润合计 CompletedCount int64 `json:"completed_count"` // 区间内已完成提号笔数 InProgressCount int64 `json:"in_progress_count"` // 当前提号中笔数(不按时间) } // MohongSummaryDTO 撞车商城的交易流水,单独展示,不计入平台利润。 type MohongSummaryDTO struct { FlowAmountCent int64 `json:"flow_amount_cent"` RefundAmountCent int64 `json:"refund_amount_cent"` NetAmountCent int64 `json:"net_amount_cent"` PaidOrderCount int64 `json:"paid_order_count"` } // DisbursementSummaryDTO 统计平台实际线下出款及当前待处理金额。 // 已打款按确认打款时间归入查询区间,待处理不受日期范围限制,反映当前资金待办。 type DisbursementSummaryDTO struct { PaidAmountCent int64 `json:"paid_amount_cent"` PaidCount int64 `json:"paid_count"` PendingPaymentAmountCent int64 `json:"pending_payment_amount_cent"` PendingPaymentCount int64 `json:"pending_payment_count"` OfflineSettlementPaidAmountCent int64 `json:"offline_settlement_paid_amount_cent"` OfflineSettlementPaidCount int64 `json:"offline_settlement_paid_count"` OfflineSettlementPendingAmountCent int64 `json:"offline_settlement_pending_amount_cent"` OfflineSettlementPendingCount int64 `json:"offline_settlement_pending_count"` WithdrawalAmountCent int64 `json:"withdrawal_amount_cent"` WithdrawalFeeAmountCent int64 `json:"withdrawal_fee_amount_cent"` WithdrawalPaidAmountCent int64 `json:"withdrawal_paid_amount_cent"` WithdrawalPaidCount int64 `json:"withdrawal_paid_count"` WithdrawalPendingAmountCent int64 `json:"withdrawal_pending_amount_cent"` WithdrawalPendingCount int64 `json:"withdrawal_pending_count"` WithdrawalReviewAmountCent int64 `json:"withdrawal_review_amount_cent"` WithdrawalReviewCount int64 `json:"withdrawal_review_count"` ManualPaidAmountCent int64 `json:"manual_paid_amount_cent"` ManualPaidCount int64 `json:"manual_paid_count"` } type DisbursementListDTO struct { Items []DisbursementItemDTO `json:"items"` Total int64 `json:"total"` Page int `json:"page"` PageSize int `json:"page_size"` Summary DisbursementListSummaryDTO `json:"summary"` } type DisbursementListSummaryDTO struct { RecordCount int64 `json:"record_count"` PaidAmountCent int64 `json:"paid_amount_cent"` PaidCount int64 `json:"paid_count"` PaymentPendingAmountCent int64 `json:"payment_pending_amount_cent"` PaymentPendingCount int64 `json:"payment_pending_count"` ReviewPendingAmountCent int64 `json:"review_pending_amount_cent"` ReviewPendingCount int64 `json:"review_pending_count"` WithdrawalFeeAmountCent int64 `json:"withdrawal_fee_amount_cent"` } type DisbursementItemDTO struct { SourceType string `json:"source_type"` SourceID uint64 `json:"source_id"` BusinessNo string `json:"business_no"` OrderID uint64 `json:"order_id,omitempty"` WithdrawalID uint64 `json:"withdrawal_id,omitempty"` UserID uint64 `json:"user_id"` PayeeName string `json:"payee_name"` PayeePhone string `json:"payee_phone"` UploaderName string `json:"uploader_name"` SourceChannel string `json:"source_channel"` AccountType string `json:"account_type"` AccountName string `json:"account_name"` AccountNo string `json:"account_no"` BankName string `json:"bank_name"` AmountCent int64 `json:"amount_cent"` FeeCent int64 `json:"fee_cent"` ActualAmountCent int64 `json:"actual_amount_cent"` Status string `json:"status"` RawStatus string `json:"raw_status"` BusinessCreatedAt *time.Time `json:"business_created_at,omitempty"` PaidAt *time.Time `json:"paid_at,omitempty"` OperatorID *uint64 `json:"operator_id,omitempty"` OperatorName string `json:"operator_name"` Remark string `json:"remark"` Category string `json:"category"` CustomCategoryName string `json:"custom_category_name"` VoucherURL string `json:"voucher_url"` VoidedAt *time.Time `json:"voided_at,omitempty"` VoidedBy *uint64 `json:"voided_by,omitempty"` VoidedByName string `json:"voided_by_name"` VoidReason string `json:"void_reason"` } type CreateManualDisbursementRequest struct { Category string `json:"category"` CustomCategoryName string `json:"custom_category_name"` PayeeName string `json:"payee_name"` AmountCent int64 `json:"amount_cent"` PaidAt time.Time `json:"paid_at"` Remark string `json:"remark"` VoucherURL string `json:"voucher_url"` } type VoidManualDisbursementRequest struct { Reason string `json:"reason"` } type ManualDisbursementDTO struct { ID uint64 `json:"id"` DisbursementNo string `json:"disbursement_no"` Category string `json:"category"` CustomCategoryName string `json:"custom_category_name"` PayeeName string `json:"payee_name"` AmountCent int64 `json:"amount_cent"` PaidAt time.Time `json:"paid_at"` Remark string `json:"remark"` VoucherURL string `json:"voucher_url"` Status string `json:"status"` CreatedBy uint64 `json:"created_by"` CreatedByName string `json:"created_by_name"` VoidedBy *uint64 `json:"voided_by,omitempty"` VoidedByName string `json:"voided_by_name"` VoidedAt *time.Time `json:"voided_at,omitempty"` VoidReason string `json:"void_reason"` CreatedAt time.Time `json:"created_at"` } type FinanceSummaryDTO struct { TotalFlowAmountCent int64 `json:"total_flow_amount_cent"` TotalRefundAmountCent int64 `json:"total_refund_amount_cent"` PendingRefundAmountCent int64 `json:"pending_refund_amount_cent"` ChannelNetAmountCent int64 `json:"channel_net_amount_cent"` // PlatformIncomeAmountCent 为正常订单最终结账利润与已完成线下提号利润之和。 // 保留原 JSON 字段名,避免影响已接入的管理端客户端。 PlatformIncomeAmountCent int64 `json:"platform_income_amount_cent"` NormalOrderProfitAmountCent int64 `json:"normal_order_profit_amount_cent"` PickupProfitAmountCent int64 `json:"pickup_profit_amount_cent"` // PickupCompletedCount 线下提号利润对应的已完成提号笔数。 PickupCompletedCount int64 `json:"pickup_completed_count"` OwnerShouldIncomeAmountCent int64 `json:"owner_should_income_amount_cent"` OwnerWalletIncomeAmountCent int64 `json:"owner_wallet_income_amount_cent"` OwnerEffectiveSettlementAmountCent int64 `json:"owner_effective_settlement_amount_cent"` OfflineSettlementAmountCent int64 `json:"offline_settlement_amount_cent"` OfflineSettlementPendingAmountCent int64 `json:"offline_settlement_pending_amount_cent"` SettlementDiffAmountCent int64 `json:"settlement_diff_amount_cent"` EstimatedIncomeAmountCent int64 `json:"estimated_income_amount_cent"` SuccessfulPayCount int64 `json:"successful_pay_count"` SuccessfulRefundCount int64 `json:"successful_refund_count"` FullRefundCount int64 `json:"full_refund_count"` PartialRefundCount int64 `json:"partial_refund_count"` PendingRefundCount int64 `json:"pending_refund_count"` SettledOrderCount int64 `json:"settled_order_count"` PendingSettleOrderCount int64 `json:"pending_settle_order_count"` OfflineSettlementPendingCount int64 `json:"offline_settlement_pending_count"` FinancialExceptionCount int64 `json:"financial_exception_count"` } type FinanceDailyDTO struct { Date string `json:"date"` TotalFlowAmountCent int64 `json:"total_flow_amount_cent"` TotalRefundAmountCent int64 `json:"total_refund_amount_cent"` PendingRefundAmountCent int64 `json:"pending_refund_amount_cent"` ChannelNetAmountCent int64 `json:"channel_net_amount_cent"` PlatformIncomeAmountCent int64 `json:"platform_income_amount_cent"` OwnerShouldIncomeAmountCent int64 `json:"owner_should_income_amount_cent"` OwnerWalletIncomeAmountCent int64 `json:"owner_wallet_income_amount_cent"` OwnerEffectiveSettlementAmountCent int64 `json:"owner_effective_settlement_amount_cent"` OfflineSettlementAmountCent int64 `json:"offline_settlement_amount_cent"` OfflineSettlementPendingAmountCent int64 `json:"offline_settlement_pending_amount_cent"` SettlementDiffAmountCent int64 `json:"settlement_diff_amount_cent"` EstimatedIncomeAmountCent int64 `json:"estimated_income_amount_cent"` SuccessfulPayCount int64 `json:"successful_pay_count"` SuccessfulRefundCount int64 `json:"successful_refund_count"` FullRefundCount int64 `json:"full_refund_count"` PartialRefundCount int64 `json:"partial_refund_count"` PendingRefundCount int64 `json:"pending_refund_count"` SettledOrderCount int64 `json:"settled_order_count"` PickupCompletedCount int64 `json:"pickup_completed_count"` // NormalFullRefundCount 正常(租赁)订单已退全款笔数(不含撞车商城退款)。 NormalFullRefundCount int64 `json:"normal_full_refund_count"` // PickupCancelledCount 线下提号取消笔数(按取消日归集)。 PickupCancelledCount int64 `json:"pickup_cancelled_count"` SalesCount int64 `json:"sales_count"` PaidOrderCount int64 `json:"paid_order_count"` OfflineSettlementPendingCount int64 `json:"offline_settlement_pending_count"` OfflineSettlementPaidAmountCent int64 `json:"offline_settlement_paid_amount_cent"` OfflineSettlementPaidCount int64 `json:"offline_settlement_paid_count"` WithdrawalPaidAmountCent int64 `json:"withdrawal_paid_amount_cent"` WithdrawalPaidCount int64 `json:"withdrawal_paid_count"` ManualPaidAmountCent int64 `json:"manual_paid_amount_cent"` ManualPaidCount int64 `json:"manual_paid_count"` DisbursementPaidAmountCent int64 `json:"disbursement_paid_amount_cent"` DisbursementPaidCount int64 `json:"disbursement_paid_count"` } type PaginatedResult struct { Items interface{} `json:"items"` Total int64 `json:"total"` Page int `json:"page"` PageSize int `json:"page_size"` } type FinanceDetailDTO struct { OrderID uint64 `json:"order_id"` OrderNo string `json:"order_no"` OrderStatus string `json:"order_status"` SettlementStatus string `json:"settlement_status"` RefundStatus string `json:"refund_status"` HandoffMode string `json:"handoff_mode"` SettlementMode string `json:"settlement_mode"` OfflineSettlementStatus string `json:"offline_settlement_status"` OfflineSettlementAmountCent int64 `json:"offline_settlement_amount_cent"` RenterID uint64 `json:"renter_id"` RenterPhone string `json:"renter_phone"` RenterNickname string `json:"renter_nickname"` OwnerID uint64 `json:"owner_id"` OwnerPhone string `json:"owner_phone"` OwnerNickname string `json:"owner_nickname"` OrderRentAmountCent int64 `json:"order_rent_amount_cent"` OrderDepositAmountCent int64 `json:"order_deposit_amount_cent"` CheckoutRentAmountCent int64 `json:"checkout_rent_amount_cent"` CheckoutRenterRefundCent int64 `json:"checkout_renter_refund_cent"` CheckoutOwnerIncomeCent int64 `json:"checkout_owner_income_cent"` CheckoutPlatformFeeCent int64 `json:"checkout_platform_fee_cent"` OwnerWalletIncomeAmountCent int64 `json:"owner_wallet_income_amount_cent"` OwnerEffectiveSettlementAmountCent int64 `json:"owner_effective_settlement_amount_cent"` PaidAmountCent int64 `json:"paid_amount_cent"` RefundedAmountCent int64 `json:"refunded_amount_cent"` RefundingAmountCent int64 `json:"refunding_amount_cent"` FailedRefundAmountCent int64 `json:"failed_refund_amount_cent"` ChannelNetAmountCent int64 `json:"channel_net_amount_cent"` PlatformNetAmountCent int64 `json:"platform_net_amount_cent"` SettlementDiffAmountCent int64 `json:"settlement_diff_amount_cent"` FinanceStatus string `json:"finance_status"` CreatedAt time.Time `json:"created_at"` SettledAt *time.Time `json:"settled_at,omitempty"` OfflineSettledAt *time.Time `json:"offline_settled_at,omitempty"` }