perf(finance): 补齐财务仪表盘覆盖索引

This commit is contained in:
yml2213
2026-11-02 19:34:19 +08:00
parent 1c18dbcb64
commit 812e95e7d1
4 changed files with 64 additions and 12 deletions
@@ -27,7 +27,7 @@ func (r *Repository) disbursementSummary(ctx context.Context, query DashboardQue
AmountCent int64
Count int64
}
if err := db.Table("rental_orders").
if err := db.Table("rental_orders USE INDEX (idx_rental_orders_dashboard_offline_settlement)").
Select(`COALESCE(SUM(offline_settlement_amount_cent), 0) AS amount_cent, COUNT(id) AS count`).
Where("settlement_mode = ?", "platform_managed").
Where("offline_settlement_status = ?", "settled").
@@ -39,7 +39,7 @@ func (r *Repository) disbursementSummary(ctx context.Context, query DashboardQue
AmountCent int64
Count int64
}
if err := db.Table("admin_pickups").
if err := db.Table("admin_pickups USE INDEX (idx_admin_pickups_dashboard_offline_settlement)").
Select(`COALESCE(SUM(settle_amount_cent), 0) AS amount_cent, COUNT(id) AS count`).
Where("settlement_mode = ?", "platform_managed").
Where("offline_settlement_status = ?", "settled").
@@ -65,7 +65,7 @@ func (r *Repository) disbursementSummary(ctx context.Context, query DashboardQue
AmountCent int64
Count int64
}
if err := db.Table("rental_orders").
if err := db.Table("rental_orders USE INDEX (idx_rental_orders_dashboard_offline_settlement)").
Select(`COALESCE(SUM(offline_settlement_amount_cent), 0) AS amount_cent, COUNT(id) AS count`).
Where("settlement_mode = ?", "platform_managed").
Where("offline_settlement_status = ?", "pending").
@@ -77,7 +77,7 @@ func (r *Repository) disbursementSummary(ctx context.Context, query DashboardQue
AmountCent int64
Count int64
}
if err := db.Table("admin_pickups").
if err := db.Table("admin_pickups USE INDEX (idx_admin_pickups_dashboard_offline_settlement)").
Select(`COALESCE(SUM(settle_amount_cent), 0) AS amount_cent, COUNT(id) AS count`).
Where("settlement_mode = ?", "platform_managed").
Where("offline_settlement_status = ?", "pending").
@@ -161,7 +161,7 @@ func (r *Repository) disbursementSummary(ctx context.Context, query DashboardQue
func (r *Repository) dailyDisbursements(ctx context.Context, query DashboardQuery) ([]dailyDisbursementRow, error) {
db := r.db.WithContext(ctx)
offlineRows := make([]dailyDisbursementSourceRow, 0)
if err := db.Table("rental_orders").
if err := db.Table("rental_orders USE INDEX (idx_rental_orders_dashboard_offline_settlement)").
Select(`DATE_FORMAT(offline_settled_at, '%Y-%m-%d') AS date,
COALESCE(SUM(offline_settlement_amount_cent), 0) AS amount_cent,
COUNT(id) AS count`).
@@ -173,7 +173,7 @@ func (r *Repository) dailyDisbursements(ctx context.Context, query DashboardQuer
return nil, err
}
pickupOfflineRows := make([]dailyDisbursementSourceRow, 0)
if err := db.Table("admin_pickups").
if err := db.Table("admin_pickups USE INDEX (idx_admin_pickups_dashboard_offline_settlement)").
Select(`DATE_FORMAT(offline_settled_at, '%Y-%m-%d') AS date,
COALESCE(SUM(settle_amount_cent), 0) AS amount_cent,
COUNT(id) AS count`).