feat: linebot
All checks were successful
Oracle-Deploy / redeploy (push) Successful in 29s

1. change query today
This commit is contained in:
2026-03-24 10:46:29 +08:00
parent 24034b782b
commit 42d290ac3c

View File

@@ -227,24 +227,34 @@ def query_today(line_user_id: str) -> str:
rows = db.execute(sql, {"user_id": user_id}).fetchall()
data_list = [dict(row) if hasattr(row, '_mapping') else row for row in rows]
total = 0.0
# 2. 計算總額
total = sum(float(r['total_amount']) for r in data_list)
for r in rows:
# 這裡依照妳 SQL 的別名抓資料r.total_amount 或是 r['total_amount']
amt = float(r.total_amount)
total += amt
# 抓取顯示名稱與備註
name = r.display_name if hasattr(r, 'display_name') else r.item_name
note_str = f"{r.note}" if hasattr(r, 'note') and r.note else ""
data_list.append({
"name": name,
"amt": amt,
"note": note_str
})
# 3. 檢查是否有資料
if not data_list:
return "📋 今日還沒有記錄喔!💨"
# 3. 組裝每一行的文字 (注意欄位改用 ['display_name'] 和 ['total_amount'])
lines = []
for i, r in enumerate(data_list):
# 這裡用 display_name 才會顯示 merchant_mapping 轉換後的好記名稱
name = r.get('display_name') or r.get('item_name')
amt = float(r['total_amount'])
note_str = f"{r['note']}" if r.get('note') else ""
lines.append(f"{i+1}. {name} ${amt:.0f}{note_str}")
# 4. 組裝每一行的文字
lines = [
f"{i+1}. {item['name']} ${item['amt']:.0f}{item['note']}"
for i, item in enumerate(data_list)
]
# 4. 回傳最終訊息
# 5. 回傳最終訊息
header = "📋 今日記錄:\n"
footer = f"\n\n💰 合計:${total:.0f}\n\n🗑 刪除請輸入:刪除 編號\n例如:刪除 1"
return header + "\n".join(lines) + footer