3.5 KiB
Executable File
3.5 KiB
Executable File
TTSHOP 销售看板
TTSHOP 从公开的 Google Sheets 工作簿读取销售数据,生成合并后的原始数据页面,并提供 Commission 与 GMV 趋势看板。
- 项目仓库:https://git.ops.roasbloom.site/liuji/ttshop
- 销售看板:https://ops.roasbloom.site/ttshop/
- 原始数据:https://ops.roasbloom.site/ttshop/data/merged.html
数据同步
数据源是公开的 Google Sheets 工作簿。sync.py 默认使用以下工作簿 ID:
1DPbdVsX3SG_kgDXs2j34mDAgplRSfcAWKKG9yqalFmw
运行时可通过 WORKBOOK_ID 环境变量覆盖默认值,例如:
WORKBOOK_ID=your-workbook-id ./update.sh
未设置 WORKBOOK_ID 时,脚本继续使用上述默认值。sync.py 的处理流程如下:
- 读取 XLSX 导出文件,获取工作表顺序。
- 使用 Google Visualization API(gviz)读取各工作表中的显示值。
- 合并所有工作表,并生成 UTF-8 的
data/merged.html,供数据读取和IMPORTHTML使用。
字段与合并规则
- 每张工作表的第一行作为标题行。
- 输出列按各工作表标题的首次出现顺序取并集。
- 源数据中的
LinkName会重命名为LinkName_Source、LinkName_Source_2等,并保留原值。 - 合并结果末尾增加生成的
LinkName列。 - 看板对仅包含
Date、且Commission与GMV均为空的日期行进行过滤;该过滤由index.html完成。
看板功能
看板页面采用上下布局,包含以下内容:
- 总体趋势:Commission 柱状图与 GMV 折线图。
- LinkName Commission 趋势:按日期和 LinkName 堆积的 Commission 柱状图。
- LinkName GMV 趋势:按日期和 LinkName 堆积的 GMV 柱状图。
- 币种切换:支持 IDR 与 USD;检测到多个源币种时统一换算为 USD。
- 日期范围筛选:支持当月、最近 30 天和全部日期;默认选择数据最新月份。
- KPI:显示 Total Commission 和 Total GMV,并提供记录数、LinkName 数等概览信息。
- 原始数据入口:可从看板打开
data/merged.html。
汇率
需要换算时,看板请求公开汇率接口:
https://open.er-api.com/v6/latest/USD
页面注明该公开接口通常每日更新,不承诺分钟级实时,并提供汇率来源说明:https://www.exchangerate-api.com。
自动运行
AgentStage 自动执行仓库根目录的 update.sh,不使用 Gitea Actions workflow。
schedule.conf 为单独一行 3,表示每 3 小时自动运行一次。update.sh 会执行 sync.py。
当前没有独立持久化的更新日志;AgentStage 任务日志以及脚本的 stdout/stderr 是运行日志。同步失败时脚本返回非零退出状态。只有在 AgentStage 运行环境中配置并注入 SYNC_FAILURE_WEBHOOK_URL 时,脚本才会发送一次失败 Webhook;未配置时不会发送主动通知。Webhook URL 必须由 AgentStage 运行环境注入,不会因为仓库中的模板文件而自动生效。
本地手动运行
在仓库根目录执行:
python3 -m pip install -r requirements.txt
./update.sh
Git 推送凭据由环境变量或 AgentStage 运行环境提供。凭据不得写入 remote URL、脚本、提交文件或日志。
安全提醒
- 不要提交 token、密码或
credentials文件。 - 不要把敏感凭据写入 Git URL、代码、数据文件或日志。
- 本地密钥和临时文件应通过
.gitignore等规则排除在提交之外。 update.sh失败时会返回非零状态,调用方应据此判断同步失败。