diff --git a/internal/api/admin/users_profile.go b/internal/api/admin/users_profile.go index 24dfc93..20faf47 100755 --- a/internal/api/admin/users_profile.go +++ b/internal/api/admin/users_profile.go @@ -195,12 +195,20 @@ func (h *handler) GetUserProfile() core.HandlerFunc { } var is invStats _ = h.repo.GetDbR().Raw(` - SELECT + SELECT COUNT(ui.id) as count, - COALESCE(SUM(COALESCE(NULLIF(ui.value_cents, 0), p.price, 0)), 0) as value + COALESCE(SUM( + COALESCE(NULLIF(ui.value_cents, 0), ars.price_snapshot_cents, p.price, 0) + * GREATEST(COALESCE(sic.reward_multiplier_x1000, 1000), 1000) / 1000 + ), 0) as value FROM user_inventory ui LEFT JOIN products p ON p.id = ui.product_id + LEFT JOIN activity_reward_settings ars ON ars.id = ui.reward_id + LEFT JOIN orders o ON o.id = ui.order_id + LEFT JOIN user_item_cards uic ON uic.id = o.item_card_id + LEFT JOIN system_item_cards sic ON sic.id = uic.card_id WHERE ui.user_id = ? AND ui.status IN (1, 3) + AND COALESCE(ui.remark, '') NOT LIKE '%%void%%' `, userID).Scan(&is).Error rsp.CurrentAssets.InventoryCount = is.Count rsp.CurrentAssets.InventoryValue = is.Value diff --git a/internal/api/admin/users_profit_loss.go b/internal/api/admin/users_profit_loss.go index ee0cba5..48ba554 100755 --- a/internal/api/admin/users_profit_loss.go +++ b/internal/api/admin/users_profit_loss.go @@ -88,10 +88,18 @@ func (h *handler) GetUserProfitLossTrend() core.HandlerFunc { } _ = h.repo.GetDbR().Raw("SELECT COALESCE(SUM(points), 0) FROM user_points WHERE user_id = ? AND (valid_end IS NULL OR valid_end > NOW())", userID).Scan(&curAssets.Points).Error _ = h.repo.GetDbR().Raw(` - SELECT COALESCE(SUM(COALESCE(NULLIF(ui.value_cents, 0), p.price, 0)), 0) + SELECT COALESCE(SUM( + COALESCE(NULLIF(ui.value_cents, 0), ars.price_snapshot_cents, p.price, 0) + * GREATEST(COALESCE(sic.reward_multiplier_x1000, 1000), 1000) / 1000 + ), 0) FROM user_inventory ui LEFT JOIN products p ON p.id = ui.product_id + LEFT JOIN activity_reward_settings ars ON ars.id = ui.reward_id + LEFT JOIN orders o ON o.id = ui.order_id + LEFT JOIN user_item_cards uic ON uic.id = o.item_card_id + LEFT JOIN system_item_cards sic ON sic.id = uic.card_id WHERE ui.user_id = ? AND ui.status IN (1, 3) + AND COALESCE(ui.remark, '') NOT LIKE '%%void%%' `, userID).Scan(&curAssets.Products).Error _ = h.repo.GetDbR().Raw("SELECT COALESCE(SUM(sc.price), 0) FROM user_item_cards uic LEFT JOIN system_item_cards sc ON sc.id = uic.card_id WHERE uic.user_id = ? AND uic.status = 1", userID).Scan(&curAssets.Cards).Error _ = h.repo.GetDbR().Raw("SELECT COALESCE(SUM(balance_amount), 0) FROM user_coupons WHERE user_id = ? AND status = 1", userID).Scan(&curAssets.Coupons).Error