feat(finance): 增加保险统计与订单保险明细
This commit is contained in:
@@ -406,6 +406,18 @@ func (r *Repository) dailySettlements(ctx context.Context, query DashboardQuery)
|
||||
err := db.Table("rental_orders AS ro USE INDEX (idx_rental_orders_dashboard_settled)").
|
||||
Select(`DATE_FORMAT(ro.settled_at, '%Y-%m-%d') AS date,
|
||||
COALESCE(SUM(oc.platform_fee_cent), 0) AS platform_income_amount_cent,
|
||||
COALESCE(SUM(CASE WHEN ro.compensation_plan = 'insurance' AND ro.insurance_fee_bps > 0
|
||||
THEN 1 ELSE 0 END), 0) AS insurance_order_count,
|
||||
COALESCE(SUM(CASE WHEN ro.compensation_plan = 'insurance' AND ro.insurance_fee_bps > 0
|
||||
THEN COALESCE(oc.insurance_fee_cent, 0) ELSE 0 END), 0) AS insurance_profit_amount_cent,
|
||||
COALESCE(SUM(CASE WHEN ro.compensation_plan = 'insurance' AND ro.insurance_fee_bps > 0
|
||||
AND ro.is_premium = 0 THEN 1 ELSE 0 END), 0) AS normal_insurance_order_count,
|
||||
COALESCE(SUM(CASE WHEN ro.compensation_plan = 'insurance' AND ro.insurance_fee_bps > 0
|
||||
AND ro.is_premium = 0 THEN COALESCE(oc.insurance_fee_cent, 0) ELSE 0 END), 0) AS normal_insurance_profit_amount_cent,
|
||||
COALESCE(SUM(CASE WHEN ro.compensation_plan = 'insurance' AND ro.insurance_fee_bps > 0
|
||||
AND ro.is_premium = 1 THEN 1 ELSE 0 END), 0) AS premium_insurance_order_count,
|
||||
COALESCE(SUM(CASE WHEN ro.compensation_plan = 'insurance' AND ro.insurance_fee_bps > 0
|
||||
AND ro.is_premium = 1 THEN COALESCE(oc.insurance_fee_cent, 0) ELSE 0 END), 0) AS premium_insurance_profit_amount_cent,
|
||||
COALESCE(SUM(oc.owner_income_amount_cent), 0) AS owner_should_income_amount_cent,
|
||||
COALESCE(SUM(COALESCE(w.owner_wallet_income_amount_cent, 0)), 0) AS owner_wallet_income_amount_cent,
|
||||
COALESCE(SUM(CASE WHEN ro.settlement_mode = 'platform_managed'
|
||||
@@ -466,6 +478,12 @@ func summaryFromDailyRows(payments []dailyPaymentRow, settlements []dailySettlem
|
||||
}
|
||||
for _, row := range settlements {
|
||||
summary.NormalOrderProfitAmountCent += row.PlatformIncomeAmountCent
|
||||
summary.InsuranceOrderCount += row.InsuranceOrderCount
|
||||
summary.InsuranceProfitAmountCent += row.InsuranceProfitAmountCent
|
||||
summary.NormalInsuranceOrderCount += row.NormalInsuranceOrderCount
|
||||
summary.NormalInsuranceProfitAmountCent += row.NormalInsuranceProfitAmountCent
|
||||
summary.PremiumInsuranceOrderCount += row.PremiumInsuranceOrderCount
|
||||
summary.PremiumInsuranceProfitAmountCent += row.PremiumInsuranceProfitAmountCent
|
||||
summary.OwnerShouldIncomeAmountCent += row.OwnerShouldIncomeAmountCent
|
||||
summary.OwnerWalletIncomeAmountCent += row.OwnerWalletIncomeAmountCent
|
||||
summary.OwnerEffectiveSettlementAmountCent += row.OwnerEffectiveSettlementAmountCent
|
||||
@@ -604,6 +622,12 @@ type dailyPaidOrderRow struct {
|
||||
type dailySettlementRow struct {
|
||||
Date string
|
||||
PlatformIncomeAmountCent int64
|
||||
InsuranceOrderCount int64
|
||||
InsuranceProfitAmountCent int64
|
||||
NormalInsuranceOrderCount int64
|
||||
NormalInsuranceProfitAmountCent int64
|
||||
PremiumInsuranceOrderCount int64
|
||||
PremiumInsuranceProfitAmountCent int64
|
||||
OwnerShouldIncomeAmountCent int64
|
||||
OwnerWalletIncomeAmountCent int64
|
||||
OwnerEffectiveSettlementAmountCent int64
|
||||
|
||||
Reference in New Issue
Block a user