# -*- coding: utf-8 -*- """第三轮 3 个失败用例的手动取证:transfer/page 过滤、assignable 耗时、import page D-06 复核。""" import io, sys, time, json sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8') import requests BASE = 'http://localhost:8080' def tok(uid): r = requests.get(f'{BASE}/api/auth/debug/token', params={'userId': uid}, timeout=30) d = r.json().get('data') return d if isinstance(d, str) else (d or {}).get('token') adm = tok('739564171091247104') H = {'Authorization': f'Bearer {adm}'} print('--- 1) transfer/page?transferNo=JG202609030002 ---') t0 = time.time() r = requests.get(f'{BASE}/api/customer/transfer/page', params={'transferNo': 'JG202609030002', 'pageSize': 10}, headers=H, timeout=30) print(f'HTTP {r.status_code} {time.time()-t0:.1f}s') d = r.json() recs = (d.get('data') or {}).get('records') or [] print('total=', (d.get('data') or {}).get('total'), '命中:', [(x.get('transferNo'), x.get('status')) for x in recs]) print('--- 2) transfer/page 全量(无过滤) ---') r = requests.get(f'{BASE}/api/customer/transfer/page', params={'pageSize': 5}, headers=H, timeout=30) d = r.json() recs = (d.get('data') or {}).get('records') or [] print('total=', (d.get('data') or {}).get('total'), '首条:', [(x.get('transferNo'), x.get('status'), x.get('fromUserName')) for x in recs[:3]]) print('--- 3) assignable 耗时(JG202609030002 的 id 由 1) 拿,否则查 DB 备用) ---') tid = None if recs: tid = recs[0].get('id') if not tid: import pymysql c = pymysql.connect(host='8.129.84.155', port=3306, user='root', password='Itc@123456', database='crm', charset='utf8mb4', cursorclass=pymysql.cursors.DictCursor) cur = c.cursor(); cur.execute('SELECT id FROM customer_transfer ORDER BY id DESC LIMIT 1') tid = str(cur.fetchone()['id']); c.close() print('tid =', tid) for i in range(2): t0 = time.time() try: r = requests.get(f'{BASE}/api/customer/transfer/{tid}/assignable', params={'id': tid}, headers=H, timeout=60) users = (r.json().get('data') or []) print(f'尝试{i+1}: HTTP {r.status_code} {time.time()-t0:.1f}s 用户数={len(users)}', [u.get('username') for u in users[:5]]) except Exception as e: print(f'尝试{i+1}: {time.time()-t0:.1f}s 异常 {type(e).__name__}: {str(e)[:100]}') print('--- 4) import page 复核(D-06:主 task 是否可见) ---') r = requests.get(f'{BASE}/api/customer/import/page', params={'pageSize': 10}, headers=H, timeout=30) d = r.json() recs = (d.get('data') or {}).get('records') or [] print('total=', (d.get('data') or {}).get('total')) for x in recs[:6]: print(' task=', x.get('taskId'), 'mode=', x.get('importMode'), 'status=', x.get('status'), 'creator=', x.get('creatorName'), 'create=', x.get('createTime')) print('主 task 750866543671246848 可见 =', any(str(x.get('taskId')) == '750866543671246848' for x in recs))