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() rows = db.execute(sql, {"user_id": user_id}).fetchall()
data_list = [dict(row) if hasattr(row, '_mapping') else row for row in rows] data_list = [dict(row) if hasattr(row, '_mapping') else row for row in rows]
total = 0.0
# 2. 計算總額 for r in rows:
total = sum(float(r['total_amount']) for r in data_list) # 這裡依照妳 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: if not data_list:
return "📋 今日還沒有記錄喔!💨" return "📋 今日還沒有記錄喔!💨"
# 3. 組裝每一行的文字 (注意欄位改用 ['display_name'] 和 ['total_amount']) # 4. 組裝每一行的文字
lines = [] lines = [
for i, r in enumerate(data_list): f"{i+1}. {item['name']} ${item['amt']:.0f}{item['note']}"
# 這裡用 display_name 才會顯示 merchant_mapping 轉換後的好記名稱 for i, item in enumerate(data_list)
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}") # 5. 回傳最終訊息
# 4. 回傳最終訊息
header = "📋 今日記錄:\n" header = "📋 今日記錄:\n"
footer = f"\n\n💰 合計:${total:.0f}\n\n🗑 刪除請輸入:刪除 編號\n例如:刪除 1" footer = f"\n\n💰 合計:${total:.0f}\n\n🗑 刪除請輸入:刪除 編號\n例如:刪除 1"
return header + "\n".join(lines) + footer return header + "\n".join(lines) + footer