88 lines
3.6 KiB
Python
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))
|