#!/bin/bash # 设置路径变量 BASE_DIR="/root/autodl-tmp/TravelContentCreator" DB_PATH="$BASE_DIR/distribution.db" LOG_DIR="$BASE_DIR/log/db_reports" OUTPUT_DIR="$BASE_DIR/output/db_reports/$(date +"%Y%m%d_%H%M%S")" # 创建必要的目录 mkdir -p "$LOG_DIR" mkdir -p "$OUTPUT_DIR" # 将日志同时输出到控制台和日志文件 LOG_FILE="$LOG_DIR/database_operations_$(date +"%Y%m%d_%H%M%S").log" exec > >(tee -a "$LOG_FILE") 2>&1 echo "===== 开始内容分发数据库操作 =====" echo "时间: $(date)" echo "数据库路径: $DB_PATH" echo "输出目录: $OUTPUT_DIR" # 1. 初始化数据库(如果不存在) echo -e "\n\n===== 初始化数据库 =====" python scripts/distribution_database.py --db-path "$DB_PATH" init # 2. 导入内容清单 echo -e "\n\n===== 导入内容清单 =====" python scripts/distribution_database.py --db-path "$DB_PATH" import-contents \ --file "$BASE_DIR/output/2025-05-12_09-33-12/manifest_2025-05-12_09-33-12.csv" # 3. 导入用户数据 echo -e "\n\n===== 导入用户数据 =====" python scripts/distribution_database.py --db-path "$DB_PATH" import-users \ --file "$BASE_DIR/output/5.12 copy.csv" \ --email-column "达人邮箱" \ --username-column "小红书ID" # 4. 导入现有分发记录 echo -e "\n\n===== 导入分发记录 =====" # 假设有一个最近的分发记录CSV LATEST_DIST_FILE=$(ls -t "$BASE_DIR"/output/*/distribution_*.csv | head -1) if [ -n "$LATEST_DIST_FILE" ]; then BATCH_ID="batch_$(date +"%Y%m%d")" echo "导入分发记录: $LATEST_DIST_FILE (批次ID: $BATCH_ID)" python scripts/distribution_database.py --db-path "$DB_PATH" import-distribution \ --file "$LATEST_DIST_FILE" \ --batch-id "$BATCH_ID" else echo "未找到分发记录文件,跳过导入" fi # 5. 查询特定产品的内容分发状态 echo -e "\n\n===== 查询产品分发状态 =====" python scripts/distribution_database.py --db-path "$DB_PATH" query-content \ --product "五常大米" \ --output "$OUTPUT_DIR/五常大米_分发状态.csv" # 6. 查询特定景点的内容分发状态 echo -e "\n\n===== 查询景点分发状态 =====" python scripts/distribution_database.py --db-path "$DB_PATH" query-content \ --object "呼伦贝尔草原" \ --output "$OUTPUT_DIR/呼伦贝尔草原_分发状态.csv" # 7. 查询特定用户接收的内容 echo -e "\n\n===== 查询用户接收内容 =====" USER_EMAIL="example@example.com" # 替换为实际用户邮箱 python scripts/distribution_database.py --db-path "$DB_PATH" query-user \ --email "$USER_EMAIL" \ --output "$OUTPUT_DIR/用户${USER_EMAIL}_接收内容.csv" # 8. 生成综合统计报告 echo -e "\n\n===== 生成统计报告 =====" python scripts/distribution_database.py --db-path "$DB_PATH" report \ --output "$OUTPUT_DIR/分发统计报告.csv" \ --format "csv" # 9. 生成JSON格式统计报告(可用于可视化) echo -e "\n\n===== 生成JSON统计报告 =====" python scripts/distribution_database.py --db-path "$DB_PATH" report \ --output "$OUTPUT_DIR/分发统计报告.json" \ --format "json" echo -e "\n\n===== 内容分发数据库操作完成 =====" echo "时间: $(date)" echo "所有报告已保存到: $OUTPUT_DIR" echo "日志已保存到: $LOG_FILE" # 列出生成的报告文件 echo -e "\n生成的报告文件列表:" find "$OUTPUT_DIR" -type f | sort