Files

32 lines
1.6 KiB
Python

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""检查微信账单与已导入的支付宝/邮储卡支出的重叠"""
import json, pymysql, collections
cfg = json.load(open('db_config.json'))
conn = pymysql.connect(host=cfg['host'], port=cfg['port'], user=cfg['user'],
password=cfg.get('password'), database=cfg['database'], charset='utf8mb4')
cur = conn.cursor()
cur.execute("""SELECT amount, recorded_date FROM variable_expenses
WHERE member_id=3 AND recorded_date BETWEEN '2026-01-01' AND '2026-06-30'
AND (note LIKE '%[支付宝]%' OR note LIKE '%[邮储卡]%')""")
imported = set()
for a, d in cur.fetchall():
imported.add((d.strftime('%Y-%m-%d'), round(float(a), 2)))
print(f"已导入支付宝+邮储卡支出: {len(imported)}笔")
d = json.load(open('/tmp/wx_juaner.json'))
def fp(s): return float(s)
wx_pay = [(r[0][:10], round(fp(r[5]), 2), r[1].strip(), r[2], r[6].strip())
for r in d['records'] if r[4].strip() == '支出']
overlap = 0; dupe_amt = 0.0; over_pay = collections.Counter()
for t, amt, typ, peer, pay in wx_pay:
if (t, amt) in imported:
overlap += 1; dupe_amt += amt; over_pay[pay] += 1
print(f"微信支出中与已导入(支付宝/邮储卡)同日同金额重叠: {overlap}笔 ¥{dupe_amt:.2f}")
print(" 重叠按微信支付方式:", dict(over_pay))
for pay in ['邮储银行储蓄卡(8719)', '零钱通', '零钱', '徽商银行储蓄卡(1491)']:
sub = [x for x in wx_pay if x[4] == pay]
ov = sum(1 for x in sub if (x[0], x[1]) in imported)
print(f" {pay}: {len(sub)}笔, 其中与已导入重叠 {ov}笔")
conn.close()