70 lines
2.5 KiB
Python
70 lines
2.5 KiB
Python
|
|
"""对**当前线上测试环境**(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()
|