优化处理逻辑

This commit is contained in:
2026-03-17 10:49:42 +08:00
parent 682985ffc0
commit a9c7b7ead5
7 changed files with 442 additions and 277 deletions
+19 -63
View File
@@ -2,6 +2,8 @@ import argparse
from pathlib import Path
from project_bitable_common import (
DailySyncConfig,
build_daily_sync_context,
get_default_end_date,
get_default_start_date,
get_base_url,
@@ -13,11 +15,8 @@ from project_bitable_common import (
iter_dates,
load_dotenv,
log_step,
run_gmv_sync,
run_metric_sync,
send_feishu_app_card,
send_feishu_sync_card,
sync_field_groups_for_day,
run_daily_sync_for_date,
send_sync_notification,
validate_date,
)
@@ -47,65 +46,22 @@ def main() -> None:
raise ValueError("end-date 不能早于 start-date")
log_step("流水线开始: 按天执行 销售 -> 退款 -> GMV")
context = build_daily_sync_context(
DailySyncConfig(
base_url=args.base_url,
mapping_file=Path(args.mapping_file),
store_field_name=args.store_field_name,
table_map_file=args.table_map_file,
dry_run=args.dry_run,
skip_missing_tables=args.skip_missing_tables,
chat_id=args.chat_id,
report_image_path=args.report_image_path,
group_webhook=args.group_webhook,
)
)
for stat_date in iter_dates(start_date, end_date):
log_step(f"开始处理日期: {stat_date.isoformat()}")
run_metric_sync(
metric_name="sales",
start_date=stat_date,
end_date=stat_date,
base_url=args.base_url,
mapping_file=Path(args.mapping_file),
store_field_name=args.store_field_name,
table_map_file=args.table_map_file,
dry_run=args.dry_run,
skip_missing_tables=args.skip_missing_tables,
)
run_metric_sync(
metric_name="refund",
start_date=stat_date,
end_date=stat_date,
base_url=args.base_url,
mapping_file=Path(args.mapping_file),
store_field_name=args.store_field_name,
table_map_file=args.table_map_file,
dry_run=args.dry_run,
skip_missing_tables=args.skip_missing_tables,
)
run_gmv_sync(
start_date=stat_date,
end_date=stat_date,
base_url=args.base_url,
store_field_name=args.store_field_name,
dry_run=args.dry_run,
skip_missing_tables=args.skip_missing_tables,
)
sync_field_groups_for_day(
stat_date=stat_date,
base_url=args.base_url,
store_field_name=args.store_field_name,
table_map_file=args.table_map_file,
dry_run=args.dry_run,
skip_missing_tables=args.skip_missing_tables,
)
log_step(f"日期处理完成: {stat_date.isoformat()}")
if not args.dry_run:
if args.chat_id:
send_feishu_app_card(
chat_id=args.chat_id,
title="GMV数据同步",
base_url=args.base_url,
start_date=start_date,
end_date=end_date,
image_path=args.report_image_path,
)
else:
send_feishu_sync_card(
webhook_url=args.group_webhook,
title="GMV数据同步",
base_url=args.base_url,
start_date=start_date,
end_date=end_date,
)
run_daily_sync_for_date(context, stat_date)
send_sync_notification(context, start_date, end_date)
log_step("流水线完成")