chore(init): 初始化解忧商行项目并完成 Phase 0 基座
This commit is contained in:
@@ -0,0 +1,351 @@
|
||||
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
|
||||
Operator string
|
||||
OperatorID uint64
|
||||
UserID uint64
|
||||
StartDate time.Time
|
||||
EndDate time.Time
|
||||
Page int
|
||||
PageSize int
|
||||
}
|
||||
|
||||
type OperatingExpenseQuery struct {
|
||||
Status string
|
||||
Category string
|
||||
Keyword string
|
||||
DateType string
|
||||
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"`
|
||||
OperatingExpenseSummary OperatingExpenseSummaryDTO `json:"operating_expense_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"` // 当前提号中笔数(不按时间)
|
||||
PendingAmountCent int64 `json:"pending_amount_cent"` // 当前平台代管提号待结算金额(含正向调整)
|
||||
PendingCount int64 `json:"pending_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 OperatingExpenseSummaryDTO struct {
|
||||
AmountCent int64 `json:"amount_cent"`
|
||||
Count int64 `json:"count"`
|
||||
}
|
||||
|
||||
type OperatingExpenseListSummaryDTO struct {
|
||||
RecordCount int64 `json:"record_count"`
|
||||
PaidAmountCent int64 `json:"paid_amount_cent"`
|
||||
PaidCount int64 `json:"paid_count"`
|
||||
}
|
||||
|
||||
type OperatingExpenseListDTO struct {
|
||||
Items []OperatingExpenseDTO `json:"items"`
|
||||
Total int64 `json:"total"`
|
||||
Page int `json:"page"`
|
||||
PageSize int `json:"page_size"`
|
||||
Summary OperatingExpenseListSummaryDTO `json:"summary"`
|
||||
}
|
||||
|
||||
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 CreateOperatingExpenseRequest struct {
|
||||
Category string `json:"category"`
|
||||
PayeeName string `json:"payee_name"`
|
||||
AmountCent int64 `json:"amount_cent"`
|
||||
OccurredAt time.Time `json:"occurred_at"`
|
||||
Remark string `json:"remark"`
|
||||
VoucherURL string `json:"voucher_url"`
|
||||
}
|
||||
|
||||
type VoidOperatingExpenseRequest struct {
|
||||
Reason string `json:"reason"`
|
||||
}
|
||||
|
||||
type OperatingExpenseDTO struct {
|
||||
ID uint64 `json:"id"`
|
||||
ExpenseNo string `json:"expense_no"`
|
||||
Category string `json:"category"`
|
||||
PayeeName string `json:"payee_name"`
|
||||
AmountCent int64 `json:"amount_cent"`
|
||||
OccurredAt time.Time `json:"occurred_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"`
|
||||
OperatingExpenseAmountCent int64 `json:"operating_expense_amount_cent"`
|
||||
OperatingExpenseCount int64 `json:"operating_expense_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"`
|
||||
}
|
||||
Reference in New Issue
Block a user