diff --git a/backend/internal/modules/adminfinance/dashboard.go b/backend/internal/modules/adminfinance/dashboard.go index fbf4853..5794eec 100644 --- a/backend/internal/modules/adminfinance/dashboard.go +++ b/backend/internal/modules/adminfinance/dashboard.go @@ -260,7 +260,8 @@ func (r *Repository) dailyItems(ctx context.Context, query DashboardQuery) ([]Fi pickupProfits := make([]dailyPickupProfitRow, 0) if err := db.Table("admin_pickups"). Select(`DATE(completed_at) AS date, - COALESCE(SUM(profit_amount_cent), 0) AS profit_amount_cent`). + COALESCE(SUM(profit_amount_cent), 0) AS profit_amount_cent, + COUNT(id) AS completed_count`). Where("status = ?", "completed"). Where("completed_at >= ? AND completed_at <= ?", query.StartDate, query.EndDate). Group("DATE(completed_at)"). @@ -318,6 +319,7 @@ func (r *Repository) dailyItems(ctx context.Context, query DashboardQuery) ([]Fi item.OfflineSettlementPendingAmountCent = row.OfflineSettlementPendingAmountCent item.SettlementDiffAmountCent = row.OwnerShouldIncomeAmountCent - row.OwnerEffectiveSettlementAmountCent item.SettledOrderCount = row.SettledOrderCount + item.SalesCount = row.SettledOrderCount item.OfflineSettlementPendingCount = row.OfflineSettlementPendingCount itemsByDate[date] = item } @@ -326,6 +328,8 @@ func (r *Repository) dailyItems(ctx context.Context, query DashboardQuery) ([]Fi item := itemsByDate[date] item.Date = date item.PlatformIncomeAmountCent += row.ProfitAmountCent + item.PickupCompletedCount = row.CompletedCount + item.SalesCount += row.CompletedCount itemsByDate[date] = item } for _, row := range estimates { @@ -409,6 +413,7 @@ type dailySettlementRow struct { type dailyPickupProfitRow struct { Date string ProfitAmountCent int64 + CompletedCount int64 } type dailyEstimatedRow struct { diff --git a/backend/internal/modules/adminfinance/dto.go b/backend/internal/modules/adminfinance/dto.go index cb296ba..ce74291 100644 --- a/backend/internal/modules/adminfinance/dto.go +++ b/backend/internal/modules/adminfinance/dto.go @@ -214,6 +214,8 @@ type FinanceDailyDTO struct { PartialRefundCount int64 `json:"partial_refund_count"` PendingRefundCount int64 `json:"pending_refund_count"` SettledOrderCount int64 `json:"settled_order_count"` + PickupCompletedCount int64 `json:"pickup_completed_count"` + SalesCount int64 `json:"sales_count"` OfflineSettlementPendingCount int64 `json:"offline_settlement_pending_count"` OfflineSettlementPaidAmountCent int64 `json:"offline_settlement_paid_amount_cent"` OfflineSettlementPaidCount int64 `json:"offline_settlement_paid_count"` diff --git a/frontend/src/features/admin/api/adminFinance.ts b/frontend/src/features/admin/api/adminFinance.ts index bcada81..d23f0e7 100644 --- a/frontend/src/features/admin/api/adminFinance.ts +++ b/frontend/src/features/admin/api/adminFinance.ts @@ -51,6 +51,8 @@ export interface FinanceDailyItem { partial_refund_count: number pending_refund_count: number settled_order_count: number + pickup_completed_count: number + sales_count: number offline_settlement_pending_count: number offline_settlement_paid_amount_cent: number offline_settlement_paid_count: number diff --git a/frontend/src/features/admin/views/AdminFinanceDashboardView.vue b/frontend/src/features/admin/views/AdminFinanceDashboardView.vue index 7887f86..8b1fbd3 100644 --- a/frontend/src/features/admin/views/AdminFinanceDashboardView.vue +++ b/frontend/src/features/admin/views/AdminFinanceDashboardView.vue @@ -6,7 +6,6 @@ import { fetchFinanceDashboard, SETTLEMENT_DIFF_THRESHOLD_CENT, type FinanceDashboard, - type FinanceDailyItem, } from '@/features/admin/api/adminFinance' import { formatCentWithSymbol } from '@/shared/utils/money' import { formatDateTime, formatInputDate } from '@/shared/utils/time' @@ -48,16 +47,6 @@ function defaultEndDate() { function diffType(value: number) { return Math.abs(Number(value || 0)) >= SETTLEMENT_DIFF_THRESHOLD_CENT ? 'danger' : 'success' } - -function rowDiffClass(row: FinanceDailyItem) { - return Math.abs(Number(row.settlement_diff_amount_cent || 0)) >= SETTLEMENT_DIFF_THRESHOLD_CENT - ? 'amount-danger' - : '' -} - -function rowOfflinePendingClass(row: FinanceDailyItem) { - return Number(row.offline_settlement_pending_amount_cent || 0) > 0 ? 'amount-warning' : '' -}