perf: 物化视图加速门店详情和健康分API - 29秒降到毫秒级
This commit is contained in:
@@ -109,11 +109,11 @@ router.get('/stores/:code', async (req: AuthRequest, res) => {
|
||||
try {
|
||||
const code = req.params.code
|
||||
const [scorecard, risk, platform, benchmark, action] = await Promise.all([
|
||||
query(`SELECT * FROM analytics.v_store_scorecard WHERE store_code = $1`, [code]),
|
||||
query(`SELECT * FROM analytics.mv_store_scorecard WHERE store_code = $1`, [code]),
|
||||
query(`SELECT * FROM analytics.mv_store_risk_rating WHERE store_code = $1`, [code]),
|
||||
query(`SELECT * FROM analytics.v_store_platform_economics WHERE store_code = $1`, [code]),
|
||||
query(`SELECT * FROM analytics.v_store_benchmark_composite WHERE store_code = $1`, [code]),
|
||||
query(`SELECT * FROM analytics.v_store_action_priority_deep_april WHERE store_code = $1`, [code]),
|
||||
query(`SELECT * FROM analytics.mv_store_benchmark_composite WHERE store_code = $1`, [code]),
|
||||
query(`SELECT * FROM analytics.mv_store_action_priority_deep_april WHERE store_code = $1`, [code]),
|
||||
])
|
||||
|
||||
if (scorecard.rows.length === 0) {
|
||||
@@ -172,7 +172,7 @@ router.get('/stores/:code/daily', async (req: AuthRequest, res) => {
|
||||
|
||||
router.get('/cost/comparison', async (req: AuthRequest, res) => {
|
||||
try {
|
||||
const result = await query(`SELECT * FROM analytics.v_store_theoretical_actual_cost_april ORDER BY variance_to_theoretical_pct DESC NULLS LAST`)
|
||||
const result = await query(`SELECT * FROM analytics.mv_store_theoretical_actual_cost_april ORDER BY variance_to_theoretical_pct DESC NULLS LAST`)
|
||||
sendSuccess(res, result.rows)
|
||||
} catch (err: any) {
|
||||
sendError(res, err.message)
|
||||
@@ -394,7 +394,7 @@ router.get('/stores/:code/category-mix', async (req: AuthRequest, res) => {
|
||||
router.get('/stores/:code/cost', async (req: AuthRequest, res) => {
|
||||
try {
|
||||
const [costResult, catResult] = await Promise.all([
|
||||
query(`SELECT * FROM analytics.v_store_theoretical_actual_cost_april WHERE store_code = $1`, [req.params.code]),
|
||||
query(`SELECT * FROM analytics.mv_store_theoretical_actual_cost_april WHERE store_code = $1`, [req.params.code]),
|
||||
query(`
|
||||
WITH store_cat AS (
|
||||
SELECT finance_category AS category_name,
|
||||
|
||||
Reference in New Issue
Block a user