mirror of
https://github.com/henry4682/linebot_finance.git
synced 2026-05-16 04:41:52 +00:00
1. change query today
This commit is contained in:
@@ -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}")
|
|
||||||
|
|
||||||
# 4. 回傳最終訊息
|
# 5. 回傳最終訊息
|
||||||
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
|
||||||
|
|||||||
Reference in New Issue
Block a user