feat: batch update - gift card breakdown spec, backend APIs, miniprogram pages, ETL finance recharge, docs & migrations

This commit is contained in:
Neo
2026-03-20 01:43:48 +08:00
parent 075caf067f
commit 79f9a0e1da
437 changed files with 118603 additions and 976 deletions

View File

@@ -0,0 +1,35 @@
-- 迁移:为 BOARD 看板新增 3 个 app schema RLS 视图
-- 日期2026-03-19
-- 原因BOARD-1 技能筛选、BOARD-2 项目筛选/消费潜力指数需要这些视图通过 FDW 暴露给业务库
-- 回滚DROP VIEW IF EXISTS app.v_dws_assistant_project_tag, app.v_dws_member_project_tag, app.v_dws_member_spending_power_index;
-- 1. 助教项目标签视图BOARD-1 技能筛选用)
CREATE OR REPLACE VIEW app.v_dws_assistant_project_tag AS
SELECT id, site_id, tenant_id, assistant_id, time_window,
category_code, category_name, short_name,
duration_seconds, total_seconds, percentage, is_tagged,
computed_at, created_at, updated_at
FROM dws.dws_assistant_project_tag
WHERE site_id = current_setting('app.current_site_id')::bigint;
-- 2. 会员项目标签视图BOARD-2 项目筛选用)
CREATE OR REPLACE VIEW app.v_dws_member_project_tag AS
SELECT id, site_id, tenant_id, member_id, time_window,
category_code, category_name, short_name,
duration_seconds, total_seconds, percentage, is_tagged,
computed_at, created_at, updated_at
FROM dws.dws_member_project_tag
WHERE site_id = current_setting('app.current_site_id')::bigint;
-- 3. 会员消费潜力指数视图BOARD-2 potential 维度用)
CREATE OR REPLACE VIEW app.v_dws_member_spending_power_index AS
SELECT spi_id, site_id, member_id,
spend_30, spend_90, recharge_90,
orders_30, orders_90, visit_days_30, visit_days_90,
avg_ticket_90, active_weeks_90, daily_spend_ewma_90,
score_level_raw, score_speed_raw, score_stability_raw,
score_level_display, score_speed_display, score_stability_display,
raw_score, display_score,
calc_time, created_at, updated_at
FROM dws.dws_member_spending_power_index
WHERE site_id = current_setting('app.current_site_id')::bigint;

View File

@@ -0,0 +1,12 @@
-- 赠送卡按卡类型拆分:新增 6 个细分字段
-- 需求BOARD-3 赠送卡矩阵需要按酒水卡/台费卡/抵用券展示余额和新增
-- 恒等式gift_card_balance = gift_liquor_balance + gift_table_fee_balance + gift_voucher_balance
-- recharge_gift = gift_liquor_recharge + gift_table_fee_recharge + gift_voucher_recharge
ALTER TABLE dws.dws_finance_recharge_summary
ADD COLUMN IF NOT EXISTS gift_liquor_balance NUMERIC(14,2) NOT NULL DEFAULT 0,
ADD COLUMN IF NOT EXISTS gift_table_fee_balance NUMERIC(14,2) NOT NULL DEFAULT 0,
ADD COLUMN IF NOT EXISTS gift_voucher_balance NUMERIC(14,2) NOT NULL DEFAULT 0,
ADD COLUMN IF NOT EXISTS gift_liquor_recharge NUMERIC(14,2) NOT NULL DEFAULT 0,
ADD COLUMN IF NOT EXISTS gift_table_fee_recharge NUMERIC(14,2) NOT NULL DEFAULT 0,
ADD COLUMN IF NOT EXISTS gift_voucher_recharge NUMERIC(14,2) NOT NULL DEFAULT 0;

View File

@@ -0,0 +1,24 @@
-- =============================================================================
-- 迁移biz.notes 新增 score 列(备注星星评分)
-- 日期2026-03-18
-- 关联 SPECrns1-task-performance-apiRNS1.1 任务与绩效接口)
-- =============================================================================
-- 新增列
ALTER TABLE biz.notes
ADD COLUMN score SMALLINT CHECK (score IS NULL OR (score >= 1 AND score <= 5));
COMMENT ON COLUMN biz.notes.score IS '备注星星评分1-5由助教在创建备注时可选填写不参与 AI 分析,仅存储展示';
-- =============================================================================
-- 回滚
-- =============================================================================
-- ALTER TABLE biz.notes DROP COLUMN IF EXISTS score;
-- =============================================================================
-- 验证
-- =============================================================================
-- SELECT column_name, data_type, is_nullable
-- FROM information_schema.columns
-- WHERE table_schema = 'biz' AND table_name = 'notes' AND column_name = 'score';
-- 预期1 行smallint, YES

View File

@@ -0,0 +1,14 @@
-- 迁移:业务库导入 BOARD 看板所需的 3 个 FDW 外部表
-- 日期2026-03-19
-- 前置ETL 库已执行 2026-03-19_add_board_rls_views.sql
-- 回滚DROP FOREIGN TABLE IF EXISTS fdw_etl.v_dws_assistant_project_tag, fdw_etl.v_dws_member_project_tag, fdw_etl.v_dws_member_spending_power_index;
-- 从 ETL 库 app schema 导入 3 个新视图为外部表
IMPORT FOREIGN SCHEMA app
LIMIT TO (
v_dws_assistant_project_tag,
v_dws_member_project_tag,
v_dws_member_spending_power_index
)
FROM SERVER etl_feiqiu_server
INTO fdw_etl;