"""对**当前线上测试环境**(test.anzhizhichong.com → :3000,另一 agent 于 01:50 重新部署的 合并版二进制)做一次端到端验证: 插入 2 条临时 charge_records → 调 4 个接口(经 nginx + HTTPS)→ 删除临时数据。 服务端 sqlx 会话时区为 +00:00,所以"今天(UTC)"= 2026-09-19。 """ import json import time import pymysql import jwt import requests DB = dict(host="10.8.0.252", user="root", password="Hbhyg731024@", database="pms_dev") SECRET = "32e8708743c42fe764aff1d40737a63803a46815a9501f4bcb50c41fe3d27108" BASE = "https://test.anzhizhichong.com/api/pms" conn = pymysql.connect(**DB) cur = conn.cursor() # ---- 临时总管理员 cur.execute( "INSERT INTO users (phone, name, password, role, organization_id, status) " "VALUES ('19900000002','能耗复验临时管理员','x',2,NULL,1)" ) user_id = cur.lastrowid # ---- 2 条临时充电记录(挂在已有柜子 1 / 仓体 1 上):昨天 222Wh + 今天(UTC) 333Wh records = [] for energy, day_expr in ((333, "CURDATE()"), (222, "DATE_SUB(CURDATE(), INTERVAL 1 DAY)")): cur.execute( "INSERT INTO charge_records " "(compartment_id, cabinet_id, start_time, end_time, energy, max_temperature, status) " f"VALUES (1, 1, {day_expr} + INTERVAL 10 HOUR, {day_expr} + INTERVAL 12 HOUR, %s, 29815, 0)", (energy,), ) records.append(cur.lastrowid) conn.commit() print(f"插入临时数据: user_id={user_id} charge_records={records} (333Wh + 222Wh)") now = int(time.time()) token = jwt.encode({"sub": user_id, "phone": "19900000002", "exp": now + 3600, "iat": now}, SECRET, algorithm="HS256") headers = {"Authorization": f"Bearer {token}"} paths = [ "/energy-stats/summary", "/energy-stats/cabinets", "/energy-stats/projects", "/energy-stats/trend?granularity=day&range=30", ] try: for p in paths: r = requests.get(BASE + p, headers=headers, timeout=20) print(f"\n--- GET /api/pms{p} [HTTP {r.status_code}]") try: print(json.dumps(r.json(), ensure_ascii=False)) except ValueError: print(r.text[:400]) finally: # ---- 清理 cur.execute("DELETE FROM charge_records WHERE id IN (%s,%s)", records) cur.execute("DELETE FROM users WHERE id = %s", (user_id,)) conn.commit() print(f"\n已清理: charge_records {records} 与 user_id={user_id}") cur.execute("SELECT COUNT(*) FROM charge_records") print("charge_records 剩余行数 =", cur.fetchone()[0]) cur.close() conn.close()