Files
zyt/app/artifacts/debug_lxh_psb2.py
T
2026-08-13 11:54:00 +08:00

88 lines
3.6 KiB
Python

# -*- coding: utf-8 -*-
import json
import sys
import pymysql
sys.stdout.reconfigure(encoding="utf-8")
conn = pymysql.connect(host="127.0.0.1", user="root", password="root", database="zyt", charset="utf8mb4")
cur = conn.cursor(pymysql.cursors.DictCursor)
def q(sql, args=None):
cur.execute(sql, args or ())
return cur.fetchall()
print("=== dept bindings ===")
print(json.dumps(q("""
SELECT a.id, a.name, a.work_wechat_userid, d.id AS dept_id, d.name AS dept_name
FROM zyt_admin a
LEFT JOIN zyt_admin_dept ad ON ad.admin_id=a.id
LEFT JOIN zyt_dept d ON d.id=ad.dept_id AND d.delete_time IS NULL
WHERE a.work_wechat_userid IN ('LiXiaoHuan','GeiWoNaHaoDeA','mu')
ORDER BY a.id, d.id
"""), ensure_ascii=False, default=str, indent=2))
print("=== 员工@ contact type ===")
print(json.dumps(q("""
SELECT c.id, c.external_userid, c.name, c.type, c.corp_name, c.gender
FROM zyt_qywx_external_contact_event e
JOIN zyt_qywx_external_contact c ON c.external_userid=e.external_userid
WHERE e.user_id='LiXiaoHuan' AND e.change_type='add_external_contact'
AND e.event_time BETWEEN 1786464000 AND 1786550399
AND (c.name LIKE '%@%' OR c.name LIKE '%员工%')
GROUP BY c.id
"""), ensure_ascii=False, default=str, indent=2))
print("=== today Aug 13 counts ===")
start, end = 1786550400, 1786636799
for uid, name in [("LiXiaoHuan","李晓焕"),("GeiWoNaHaoDeA","彭世博")]:
cur.execute("""
SELECT COUNT(*) AS c FROM (
SELECT e.external_userid
FROM zyt_qywx_external_contact_event e
WHERE e.change_type='add_external_contact' AND e.user_id=%s
AND e.event_time BETWEEN %s AND %s AND e.external_userid<>''
AND EXISTS (
SELECT 1 FROM zyt_qywx_external_contact_event a
WHERE a.user_id=e.user_id AND a.external_userid=e.external_userid
AND a.change_type='msg_audit_approved' AND a.event_time>=e.event_time AND a.event_time<=%s
)
AND NOT EXISTS (
SELECT 1 FROM zyt_qywx_external_contact_event d
WHERE d.user_id=e.user_id AND d.external_userid=e.external_userid
AND d.change_type='del_external_contact' AND d.event_time>=e.event_time AND d.event_time<=%s
)
AND NOT EXISTS (
SELECT 1 FROM zyt_qywx_external_contact_event p
WHERE p.user_id=e.user_id AND p.external_userid=e.external_userid
AND p.change_type='add_external_contact' AND p.event_time<%s
)
GROUP BY e.external_userid
) t
""", (uid, start, end, end, end, start))
print(name, "today unique", cur.fetchone())
cur.execute("""
SELECT COUNT(*) AS raw FROM (
SELECT external_userid FROM zyt_qywx_external_contact_event
WHERE change_type='add_external_contact' AND user_id=%s
AND event_time BETWEEN %s AND %s GROUP BY external_userid
) t
""", (uid, start, end))
print(name, "today raw unique", cur.fetchone())
print("=== personal yeji 8/12 open/fans ===")
print(json.dumps(q("""
SELECT a.name, y.yeji_date, y.add_fans_count, y.total_open_count, y.media_source, y.creator_id
FROM zyt_personal_yeji y
JOIN zyt_admin a ON a.id=y.creator_id
WHERE a.work_wechat_userid IN ('LiXiaoHuan','GeiWoNaHaoDeA')
AND y.yeji_date BETWEEN '2026-08-12' AND '2026-08-13'
ORDER BY a.name, y.yeji_date
"""), ensure_ascii=False, default=str, indent=2))
print("=== 李晓焕 add_way mix ===")
print(json.dumps(q("""
SELECT change_type, COUNT(*) c FROM zyt_qywx_external_contact_event
WHERE user_id='LiXiaoHuan' AND event_time BETWEEN 1786464000 AND 1786550399
GROUP BY change_type
"""), ensure_ascii=False, default=str))