Files
Neo-ZQYY/docs/database/ddl/etl_feiqiu__app.sql
Neo b25308c3f4 feat: P1-P3 全栈集成 — 数据库基础 + DWS 扩展 + 小程序鉴权 + 工程化体系
## P1 数据库基础
- zqyy_app: 创建 auth/biz schema、FDW 连接 etl_feiqiu
- etl_feiqiu: 创建 app schema RLS 视图、商品库存预警表
- 清理 assistant_abolish 残留数据

## P2 ETL/DWS 扩展
- 新增 DWS 助教订单贡献度表 (dws.assistant_order_contribution)
- 新增 assistant_order_contribution_task 任务及 RLS 视图
- member_consumption 增加充值字段、assistant_daily 增加处罚字段
- 更新 ODS/DWD/DWS 任务文档及业务规则文档
- 更新 consistency_checker、flow_runner、task_registry 等核心模块

## P3 小程序鉴权系统
- 新增 xcx_auth 路由/schema(微信登录 + JWT)
- 新增 wechat/role/matching/application 服务层
- zqyy_app 鉴权表迁移 + 角色权限种子数据
- auth/dependencies.py 支持小程序 JWT 鉴权

## 文档与审计
- 新增 DOCUMENTATION-MAP 文档导航
- 新增 7 份 BD_Manual 数据库变更文档
- 更新 DDL 基线快照(etl_feiqiu 6 schema + zqyy_app auth)
- 新增全栈集成审计记录、部署检查清单更新
- 新增 BACKLOG 路线图、FDW→Core 迁移计划

## Kiro 工程化
- 新增 5 个 Spec(P1/P2/P3/全栈集成/核心业务)
- 新增审计自动化脚本(agent_on_stop/build_audit_context/compliance_prescan)
- 新增 6 个 Hook(合规检查/会话日志/提交审计等)
- 新增 doc-map steering 文件

## 运维与测试
- 新增 ops 脚本:迁移验证/API 健康检查/ETL 监控/集成报告
- 新增属性测试:test_dws_contribution / test_auth_system
- 清理过期 export 报告文件
- 更新 .gitignore 排除规则
2026-02-26 08:03:53 +08:00

1190 lines
25 KiB
SQL
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
-- =============================================================================
-- etl_feiqiu / appRLS 视图层)
-- 生成日期2026-02-25
-- 来源:测试库(通过脚本自动导出)
-- =============================================================================
CREATE SCHEMA IF NOT EXISTS app;
-- 视图
CREATE OR REPLACE VIEW app.v_assistant AS
SELECT assistant_id,
tenant_id,
site_id,
real_name,
nickname,
mobile,
level,
assistant_status,
leave_status
FROM core.dim_assistant a;
;
CREATE OR REPLACE VIEW app.v_assistant_daily AS
SELECT id,
site_id,
tenant_id,
assistant_id,
assistant_nickname,
stat_date,
total_service_count,
total_hours,
base_hours,
bonus_hours,
room_hours,
total_ledger_amount,
unique_customers,
unique_tables,
created_at
FROM dws.dws_assistant_daily_detail d;
;
CREATE OR REPLACE VIEW app.v_cfg_assistant_level_price AS
SELECT price_id,
level_code,
level_name,
base_course_price,
bonus_course_price,
effective_from,
effective_to,
description,
created_at,
updated_at
FROM dws.cfg_assistant_level_price;
;
CREATE OR REPLACE VIEW app.v_cfg_bonus_rules AS
SELECT rule_id,
rule_type,
rule_code,
rule_name,
threshold_hours,
rank_position,
bonus_amount,
is_cumulative,
priority,
effective_from,
effective_to,
description,
created_at,
updated_at
FROM dws.cfg_bonus_rules;
;
CREATE OR REPLACE VIEW app.v_cfg_index_parameters AS
SELECT param_id,
index_type,
param_name,
param_value,
description,
effective_from,
effective_to,
created_at,
updated_at
FROM dws.cfg_index_parameters;
;
CREATE OR REPLACE VIEW app.v_cfg_performance_tier AS
SELECT tier_id,
tier_code,
tier_name,
tier_level,
min_hours,
max_hours,
base_deduction,
bonus_deduction_ratio,
vacation_days,
vacation_unlimited,
is_new_hire_tier,
effective_from,
effective_to,
description,
created_at,
updated_at
FROM dws.cfg_performance_tier;
;
CREATE OR REPLACE VIEW app.v_dim_assistant AS
SELECT assistant_id,
user_id,
assistant_no,
real_name,
nickname,
mobile,
tenant_id,
site_id,
team_id,
team_name,
level,
entry_time,
resign_time,
leave_status,
assistant_status,
scd2_start_time,
scd2_end_time,
scd2_is_current,
scd2_version
FROM dwd.dim_assistant
WHERE (site_id = (current_setting('app.current_site_id'::text))::bigint);
;
CREATE OR REPLACE VIEW app.v_dim_member AS
SELECT member_id,
system_member_id,
tenant_id,
register_site_id,
mobile,
nickname,
member_card_grade_code,
member_card_grade_name,
create_time,
update_time,
pay_money_sum,
recharge_money_sum,
scd2_start_time,
scd2_end_time,
scd2_is_current,
scd2_version,
birthday
FROM dwd.dim_member
WHERE (register_site_id = (current_setting('app.current_site_id'::text))::bigint);
;
CREATE OR REPLACE VIEW app.v_dim_member_card_account AS
SELECT member_card_id,
tenant_id,
register_site_id,
tenant_member_id,
system_member_id,
card_type_id,
member_card_grade_code,
member_card_grade_code_name,
member_card_type_name,
member_name,
member_mobile,
balance,
start_time,
end_time,
last_consume_time,
status,
is_delete,
principal_balance,
member_grade,
scd2_start_time,
scd2_end_time,
scd2_is_current,
scd2_version
FROM dwd.dim_member_card_account
WHERE (register_site_id = (current_setting('app.current_site_id'::text))::bigint);
;
CREATE OR REPLACE VIEW app.v_dim_staff AS
SELECT staff_id,
staff_name,
alias_name,
mobile,
gender,
job,
tenant_id,
site_id,
system_role_id,
staff_identity,
status,
leave_status,
entry_time,
resign_time,
is_delete,
scd2_start_time,
scd2_end_time,
scd2_is_current,
scd2_version
FROM dwd.dim_staff
WHERE (site_id = (current_setting('app.current_site_id'::text))::bigint);
;
CREATE OR REPLACE VIEW app.v_dim_staff_ex AS
SELECT staff_id,
avatar,
job_num,
account_status,
rank_id,
rank_name,
new_rank_id,
new_staff_identity,
is_reserve,
shop_name,
site_label,
tenant_org_id,
system_user_id,
cashier_point_id,
cashier_point_name,
group_id,
group_name,
staff_profile_id,
auth_code,
auth_code_create,
ding_talk_synced,
salary_grant_enabled,
entry_type,
entry_sign_status,
resign_sign_status,
criticism_status,
create_time,
user_roles,
scd2_start_time,
scd2_end_time,
scd2_is_current,
scd2_version
FROM dwd.dim_staff_ex;
;
CREATE OR REPLACE VIEW app.v_dim_table AS
SELECT table_id,
site_id,
table_name,
site_table_area_id,
site_table_area_name,
tenant_table_area_id,
table_price,
order_id,
scd2_start_time,
scd2_end_time,
scd2_is_current,
scd2_version
FROM dwd.dim_table
WHERE (site_id = (current_setting('app.current_site_id'::text))::bigint);
;
CREATE OR REPLACE VIEW app.v_dwd_assistant_service_log AS
SELECT assistant_service_id,
order_trade_no,
order_settle_id,
order_pay_id,
order_assistant_id,
order_assistant_type,
tenant_id,
site_id,
site_table_id,
tenant_member_id,
system_member_id,
assistant_no,
nickname,
site_assistant_id,
user_id,
assistant_team_id,
person_org_id,
assistant_level,
level_name,
skill_id,
skill_name,
ledger_unit_price,
ledger_amount,
projected_income,
coupon_deduct_money,
income_seconds,
real_use_seconds,
add_clock,
create_time,
start_use_time,
last_use_time,
is_delete,
real_service_money
FROM dwd.dwd_assistant_service_log
WHERE (site_id = (current_setting('app.current_site_id'::text))::bigint);
;
CREATE OR REPLACE VIEW app.v_dwd_recharge_order AS
SELECT recharge_order_id,
tenant_id,
site_id,
member_id,
member_name_snapshot,
member_phone_snapshot,
tenant_member_card_id,
member_card_type_name,
settle_relate_id,
settle_type,
settle_name,
is_first,
pay_amount,
refund_amount,
point_amount,
cash_amount,
payment_method,
create_time,
pay_time,
pl_coupon_sale_amount,
mervou_sales_amount,
electricity_money,
real_electricity_money,
electricity_adjust_money
FROM dwd.dwd_recharge_order
WHERE (site_id = (current_setting('app.current_site_id'::text))::bigint);
;
CREATE OR REPLACE VIEW app.v_dwd_settlement_head AS
SELECT order_settle_id,
tenant_id,
site_id,
site_name,
table_id,
settle_name,
order_trade_no,
create_time,
pay_time,
settle_type,
revoke_order_id,
member_id,
member_name,
member_phone,
member_card_account_id,
member_card_type_name,
is_bind_member,
member_discount_amount,
consume_money,
table_charge_money,
goods_money,
real_goods_money,
assistant_pd_money,
assistant_cx_money,
adjust_amount,
pay_amount,
balance_amount,
recharge_card_amount,
gift_card_amount,
coupon_amount,
rounding_amount,
point_amount,
electricity_money,
real_electricity_money,
electricity_adjust_money,
pl_coupon_sale_amount,
mervou_sales_amount
FROM dwd.dwd_settlement_head
WHERE (site_id = (current_setting('app.current_site_id'::text))::bigint);
;
CREATE OR REPLACE VIEW app.v_dwd_store_goods_sale AS
SELECT store_goods_sale_id,
order_trade_no,
order_settle_id,
order_pay_id,
order_goods_id,
site_id,
tenant_id,
site_goods_id,
tenant_goods_id,
tenant_goods_category_id,
tenant_goods_business_id,
site_table_id,
ledger_name,
ledger_group_name,
ledger_unit_price,
ledger_count,
ledger_amount,
discount_money,
real_goods_money,
cost_money,
ledger_status,
is_delete,
create_time,
coupon_share_money,
discount_price
FROM dwd.dwd_store_goods_sale
WHERE (site_id = (current_setting('app.current_site_id'::text))::bigint);
;
CREATE OR REPLACE VIEW app.v_dwd_table_fee_log AS
SELECT table_fee_log_id,
order_trade_no,
order_settle_id,
order_pay_id,
tenant_id,
site_id,
site_table_id,
site_table_area_id,
site_table_area_name,
tenant_table_area_id,
member_id,
ledger_name,
ledger_unit_price,
ledger_count,
ledger_amount,
real_table_charge_money,
coupon_promotion_amount,
member_discount_amount,
adjust_amount,
real_table_use_seconds,
add_clock_seconds,
start_use_time,
ledger_end_time,
create_time,
ledger_status,
is_single_order,
is_delete,
activity_discount_amount,
real_service_money
FROM dwd.dwd_table_fee_log
WHERE (site_id = (current_setting('app.current_site_id'::text))::bigint);
;
CREATE OR REPLACE VIEW app.v_dws_assistant_customer_stats AS
SELECT id,
site_id,
tenant_id,
assistant_id,
assistant_nickname,
member_id,
member_nickname,
member_mobile,
stat_date,
first_service_date,
last_service_date,
total_service_count,
total_service_hours,
total_service_amount,
service_count_7d,
service_count_10d,
service_count_15d,
service_count_30d,
service_count_60d,
service_count_90d,
service_hours_7d,
service_hours_10d,
service_hours_15d,
service_hours_30d,
service_hours_60d,
service_hours_90d,
service_amount_7d,
service_amount_10d,
service_amount_15d,
service_amount_30d,
service_amount_60d,
service_amount_90d,
days_since_last,
is_active_7d,
is_active_30d,
created_at,
updated_at
FROM dws.dws_assistant_customer_stats
WHERE (site_id = (current_setting('app.current_site_id'::text))::bigint);
;
CREATE OR REPLACE VIEW app.v_dws_assistant_daily_detail AS
SELECT id,
site_id,
tenant_id,
assistant_id,
assistant_nickname,
stat_date,
assistant_level_code,
assistant_level_name,
total_service_count,
base_service_count,
bonus_service_count,
room_service_count,
total_seconds,
base_seconds,
bonus_seconds,
room_seconds,
total_hours,
base_hours,
bonus_hours,
room_hours,
total_ledger_amount,
base_ledger_amount,
bonus_ledger_amount,
room_ledger_amount,
unique_customers,
unique_tables,
trashed_seconds,
trashed_count,
created_at,
updated_at,
penalty_minutes,
penalty_reason,
is_exempt,
per_hour_contribution
FROM dws.dws_assistant_daily_detail
WHERE (site_id = (current_setting('app.current_site_id'::text))::bigint);
;
CREATE OR REPLACE VIEW app.v_dws_assistant_finance_analysis AS
SELECT id,
site_id,
tenant_id,
stat_date,
assistant_id,
assistant_nickname,
revenue_total,
revenue_base,
revenue_bonus,
revenue_room,
cost_daily,
gross_profit,
gross_margin,
service_count,
service_hours,
room_service_count,
room_service_hours,
unique_customers,
created_at,
updated_at
FROM dws.dws_assistant_finance_analysis
WHERE (site_id = (current_setting('app.current_site_id'::text))::bigint);
;
CREATE OR REPLACE VIEW app.v_dws_assistant_monthly_summary AS
SELECT id,
site_id,
tenant_id,
assistant_id,
assistant_nickname,
stat_month,
assistant_level_code,
assistant_level_name,
hire_date,
is_new_hire,
work_days,
total_service_count,
base_service_count,
bonus_service_count,
room_service_count,
total_hours,
base_hours,
bonus_hours,
room_hours,
effective_hours,
trashed_hours,
total_ledger_amount,
base_ledger_amount,
bonus_ledger_amount,
room_ledger_amount,
unique_customers,
unique_tables,
avg_service_seconds,
tier_id,
tier_code,
tier_name,
rank_by_hours,
rank_with_ties,
created_at,
updated_at
FROM dws.dws_assistant_monthly_summary
WHERE (site_id = (current_setting('app.current_site_id'::text))::bigint);
;
CREATE OR REPLACE VIEW app.v_dws_assistant_order_contribution AS
SELECT contribution_id,
site_id,
tenant_id,
assistant_id,
assistant_nickname,
stat_date,
order_gross_revenue,
order_net_revenue,
time_weighted_revenue,
time_weighted_net_revenue,
order_count,
total_service_seconds,
created_at,
updated_at
FROM dws.dws_assistant_order_contribution
WHERE (site_id = (current_setting('app.current_site_id'::text))::bigint);
;
CREATE OR REPLACE VIEW app.v_dws_assistant_recharge_commission AS
SELECT id,
site_id,
tenant_id,
assistant_id,
assistant_nickname,
commission_month,
recharge_order_id,
recharge_order_no,
recharge_amount,
commission_amount,
commission_ratio,
import_batch_no,
import_file_name,
import_time,
import_user,
remark,
created_at,
updated_at
FROM dws.dws_assistant_recharge_commission
WHERE (site_id = (current_setting('app.current_site_id'::text))::bigint);
;
CREATE OR REPLACE VIEW app.v_dws_assistant_salary_calc AS
SELECT id,
site_id,
tenant_id,
assistant_id,
assistant_nickname,
salary_month,
assistant_level_code,
assistant_level_name,
hire_date,
is_new_hire,
effective_hours,
base_hours,
bonus_hours,
room_hours,
tier_id,
tier_code,
tier_name,
rank_with_ties,
base_course_price,
bonus_course_price,
base_deduction,
bonus_deduction_ratio,
base_income,
bonus_income,
room_income,
total_course_income,
sprint_bonus,
top_rank_bonus,
recharge_commission,
other_bonus,
total_bonus,
gross_salary,
vacation_days,
vacation_unlimited,
calc_notes,
created_at,
updated_at
FROM dws.dws_assistant_salary_calc
WHERE (site_id = (current_setting('app.current_site_id'::text))::bigint);
;
CREATE OR REPLACE VIEW app.v_dws_finance_daily_summary AS
SELECT id,
site_id,
tenant_id,
stat_date,
gross_amount,
table_fee_amount,
goods_amount,
assistant_pd_amount,
assistant_cx_amount,
discount_total,
discount_groupbuy,
discount_vip,
discount_gift_card,
discount_manual,
discount_rounding,
discount_other,
confirmed_income,
cash_inflow_total,
cash_pay_amount,
groupbuy_pay_amount,
platform_settlement_amount,
platform_fee_amount,
recharge_cash_inflow,
card_consume_total,
cash_card_consume,
gift_card_consume,
cash_outflow_total,
cash_balance_change,
recharge_count,
recharge_total,
recharge_cash,
recharge_gift,
first_recharge_count,
first_recharge_amount,
renewal_count,
renewal_amount,
order_count,
member_order_count,
guest_order_count,
avg_order_amount,
created_at,
updated_at
FROM dws.dws_finance_daily_summary
WHERE (site_id = (current_setting('app.current_site_id'::text))::bigint);
;
CREATE OR REPLACE VIEW app.v_dws_finance_discount_detail AS
SELECT id,
site_id,
tenant_id,
stat_date,
discount_type_code,
discount_type_name,
discount_amount,
discount_ratio,
usage_count,
affected_orders,
created_at,
updated_at
FROM dws.dws_finance_discount_detail
WHERE (site_id = (current_setting('app.current_site_id'::text))::bigint);
;
CREATE OR REPLACE VIEW app.v_dws_finance_expense_summary AS
SELECT id,
site_id,
tenant_id,
expense_month,
expense_type_code,
expense_type_name,
expense_category,
expense_amount,
expense_detail,
import_batch_no,
import_file_name,
import_time,
import_user,
remark,
created_at,
updated_at
FROM dws.dws_finance_expense_summary
WHERE (site_id = (current_setting('app.current_site_id'::text))::bigint);
;
CREATE OR REPLACE VIEW app.v_dws_finance_income_structure AS
SELECT id,
site_id,
tenant_id,
stat_date,
structure_type,
category_code,
category_name,
income_amount,
income_ratio,
order_count,
duration_minutes,
created_at,
updated_at
FROM dws.dws_finance_income_structure
WHERE (site_id = (current_setting('app.current_site_id'::text))::bigint);
;
CREATE OR REPLACE VIEW app.v_dws_finance_recharge_summary AS
SELECT id,
site_id,
tenant_id,
stat_date,
recharge_count,
recharge_total,
recharge_cash,
recharge_gift,
first_recharge_count,
first_recharge_cash,
first_recharge_gift,
first_recharge_total,
renewal_count,
renewal_cash,
renewal_gift,
renewal_total,
recharge_member_count,
new_member_count,
total_card_balance,
cash_card_balance,
gift_card_balance,
created_at,
updated_at
FROM dws.dws_finance_recharge_summary
WHERE (site_id = (current_setting('app.current_site_id'::text))::bigint);
;
CREATE OR REPLACE VIEW app.v_dws_member_assistant_intimacy AS
SELECT intimacy_id,
site_id,
tenant_id,
member_id,
assistant_id,
session_count,
total_duration_minutes,
basic_session_count,
incentive_session_count,
days_since_last_session,
attributed_recharge_count,
attributed_recharge_amount,
score_frequency,
score_recency,
score_recharge,
score_duration,
burst_multiplier,
raw_score,
display_score,
calc_time,
calc_version,
created_at,
updated_at
FROM dws.dws_member_assistant_intimacy
WHERE (site_id = (current_setting('app.current_site_id'::text))::bigint);
;
CREATE OR REPLACE VIEW app.v_dws_member_assistant_relation_index AS
SELECT relation_id,
site_id,
tenant_id,
member_id,
assistant_id,
session_count,
total_duration_minutes,
basic_session_count,
incentive_session_count,
days_since_last_session,
rs_f,
rs_d,
rs_r,
rs_raw,
rs_display,
os_share,
os_label,
os_rank,
ms_f_short,
ms_f_long,
ms_raw,
ms_display,
ml_order_count,
ml_allocated_amount,
ml_raw,
ml_display,
calc_time,
created_at,
updated_at
FROM dws.dws_member_assistant_relation_index
WHERE (site_id = (current_setting('app.current_site_id'::text))::bigint);
;
CREATE OR REPLACE VIEW app.v_dws_member_consumption_summary AS
SELECT id,
site_id,
tenant_id,
member_id,
stat_date,
member_nickname,
member_mobile,
card_grade_name,
register_date,
first_consume_date,
last_consume_date,
total_visit_count,
total_consume_amount,
total_recharge_amount,
total_table_fee,
total_goods_amount,
total_assistant_amount,
visit_count_7d,
visit_count_10d,
visit_count_15d,
visit_count_30d,
visit_count_60d,
visit_count_90d,
consume_amount_7d,
consume_amount_10d,
consume_amount_15d,
consume_amount_30d,
consume_amount_60d,
consume_amount_90d,
cash_card_balance,
gift_card_balance,
total_card_balance,
days_since_last,
is_active_7d,
is_active_30d,
is_active_90d,
customer_tier,
created_at,
updated_at,
recharge_count_30d,
recharge_count_60d,
recharge_count_90d,
recharge_amount_30d,
recharge_amount_60d,
recharge_amount_90d,
avg_ticket_amount
FROM dws.dws_member_consumption_summary
WHERE (site_id = (current_setting('app.current_site_id'::text))::bigint);
;
CREATE OR REPLACE VIEW app.v_dws_member_newconv_index AS
SELECT newconv_id,
site_id,
tenant_id,
member_id,
status,
segment,
member_create_time,
first_visit_time,
last_visit_time,
last_recharge_time,
t_v,
t_r,
t_a,
visits_14d,
visits_60d,
visits_total,
spend_30d,
spend_180d,
sv_balance,
recharge_60d_amt,
interval_count,
need_new,
salvage_new,
recharge_new,
value_new,
welcome_new,
raw_score_welcome,
raw_score_convert,
raw_score,
display_score_welcome,
display_score_convert,
display_score,
last_wechat_touch_time,
calc_time,
calc_version,
created_at,
updated_at
FROM dws.dws_member_newconv_index
WHERE (site_id = (current_setting('app.current_site_id'::text))::bigint);
;
CREATE OR REPLACE VIEW app.v_dws_member_recall_index AS
SELECT recall_id,
site_id,
tenant_id,
member_id,
days_since_last_visit,
visit_interval_median,
visit_interval_mad,
days_since_first_visit,
days_since_last_recharge,
visits_last_14_days,
visits_last_60_days,
score_overdue,
score_new_bonus,
score_recharge_bonus,
score_hot_drop,
raw_score,
display_score,
calc_time,
calc_version,
created_at,
updated_at
FROM dws.dws_member_recall_index
WHERE (site_id = (current_setting('app.current_site_id'::text))::bigint);
;
CREATE OR REPLACE VIEW app.v_dws_member_visit_detail AS
SELECT id,
site_id,
tenant_id,
member_id,
order_settle_id,
visit_date,
visit_time,
member_nickname,
member_mobile,
member_birthday,
table_id,
table_name,
area_name,
area_category,
table_fee,
goods_amount,
assistant_amount,
total_consume,
total_discount,
actual_pay,
cash_pay,
cash_card_pay,
gift_card_pay,
groupbuy_pay,
table_duration_min,
assistant_duration_min,
assistant_services,
created_at,
updated_at
FROM dws.dws_member_visit_detail
WHERE (site_id = (current_setting('app.current_site_id'::text))::bigint);
;
CREATE OR REPLACE VIEW app.v_dws_member_winback_index AS
SELECT winback_id,
site_id,
tenant_id,
member_id,
status,
segment,
member_create_time,
first_visit_time,
last_visit_time,
last_recharge_time,
t_v,
t_r,
t_a,
visits_14d,
visits_60d,
visits_total,
spend_30d,
spend_180d,
sv_balance,
recharge_60d_amt,
interval_count,
overdue_old,
drop_old,
recharge_old,
value_old,
raw_score,
display_score,
last_wechat_touch_time,
calc_time,
calc_version,
created_at,
updated_at,
overdue_cdf_p,
ideal_interval_days,
ideal_next_visit_date
FROM dws.dws_member_winback_index
WHERE (site_id = (current_setting('app.current_site_id'::text))::bigint);
;
CREATE OR REPLACE VIEW app.v_dws_order_summary AS
SELECT site_id,
order_settle_id,
order_trade_no,
order_date,
tenant_id,
member_id,
member_flag,
recharge_order_flag,
item_count,
total_item_quantity,
table_fee_amount,
assistant_service_amount,
goods_amount,
group_amount,
total_coupon_deduction,
member_discount_amount,
manual_discount_amount,
order_original_amount,
order_final_amount,
stored_card_deduct,
external_paid_amount,
total_paid_amount,
book_table_flow,
book_assistant_flow,
book_goods_flow,
book_group_flow,
book_order_flow,
order_effective_consume_cash,
order_effective_recharge_cash,
order_effective_flow,
refund_amount,
net_income,
created_at,
updated_at
FROM dws.dws_order_summary
WHERE (site_id = (current_setting('app.current_site_id'::text))::bigint);
;
CREATE OR REPLACE VIEW app.v_dws_platform_settlement AS
SELECT id,
site_id,
tenant_id,
settlement_date,
platform_type,
platform_name,
platform_order_no,
order_settle_id,
settlement_amount,
commission_amount,
service_fee,
gross_amount,
import_batch_no,
import_file_name,
import_time,
import_user,
remark,
created_at,
updated_at
FROM dws.dws_platform_settlement
WHERE (site_id = (current_setting('app.current_site_id'::text))::bigint);
;
CREATE OR REPLACE VIEW app.v_finance_daily AS
SELECT id,
site_id,
tenant_id,
stat_date,
gross_amount,
table_fee_amount,
goods_amount,
assistant_pd_amount,
assistant_cx_amount,
discount_total,
confirmed_income,
cash_inflow_total,
recharge_count,
recharge_total,
order_count,
member_order_count,
guest_order_count,
avg_order_amount,
created_at
FROM dws.dws_finance_daily_summary f;
;
CREATE OR REPLACE VIEW app.v_member AS
SELECT member_id,
system_member_id,
tenant_id,
register_site_id AS site_id,
mobile,
nickname,
member_card_grade_name,
status
FROM core.dim_member m;
;
CREATE OR REPLACE VIEW app.v_member_consumption AS
SELECT id,
site_id,
tenant_id,
member_id,
stat_date,
member_nickname,
card_grade_name,
total_visit_count,
total_consume_amount,
total_recharge_amount,
last_consume_date,
first_consume_date,
days_since_last,
customer_tier,
created_at
FROM dws.dws_member_consumption_summary mc;
;
CREATE OR REPLACE VIEW app.v_order_summary AS
SELECT site_id,
order_settle_id,
order_trade_no,
order_date,
tenant_id,
member_id,
member_flag,
order_original_amount,
order_final_amount,
total_paid_amount,
refund_amount,
net_income,
created_at
FROM dws.dws_order_summary os;
;
CREATE OR REPLACE VIEW app.v_site AS
SELECT site_id,
tenant_id,
shop_name,
site_label,
shop_status
FROM core.dim_site s;
;