ai_member_xiaoxi/memory/2026-06-02-1135.md
2026-06-03 08:00:01 +08:00

4.2 KiB
Raw Permalink Blame History

Session: 2026-06-02 11:35:51 GMT+8

  • Session Key: agent:main:feishu:direct:ou_e63ce6b760ad39382852472f28fbe2a2
  • Session ID: 3bb7ba51-7c62-46b0-aaae-d33c66aec6d8
  • Source: feishu

Conversation Summary

assistant: I accidentally removed batch_query_in. Let me fix that:

assistant: Now build_xhs_learning_report.py:

assistant: Now the phone-chapter-query skill script:

assistant: I accidentally removed run_sql. Let me add it back:

assistant: Now update the SKILL.md and verify all scripts:

assistant: Now let me verify all scripts are clean and update MEMORY.md:

assistant: mask_phone_display 仅用于展示脱敏,不是匹配逻辑,无需修改。现在更新 MEMORY.md 中的匹配规则说明:

assistant: Now let me do the end-to-end verification:

assistant: 测试手机号不在数据库中(正常),加密确定性已验证。让我验证所有脚本的导入正确性:

assistant: 全部修改完成。以下是变更总结:


变更总结

新增文件

文件 说明
scripts/phone_encrypt.py 共享加密模块,提供 encrypt_phone() / decrypt_phone() / encrypt_phones() 三个函数XXTEA 加密逻辑与 Go 端完全一致

修改的脚本(共 10 个)

所有脚本的匹配逻辑统一从 脱敏匹配 telXXTEA 加密匹配 tel_encrypt

脚本 变更内容
phone_match_userid.py mask_phone()encrypt_phone()SQL: WHERE tel INWHERE tel_encrypt IN
batch_phone_to_id.py 同上,导入 phone_encrypt 模块
auto_xingke_query.py 同上,新增 encrypt_phone_local() 包装函数
auto_xingke_query_v2.py 同上,保留 mask_phone_display() 仅用于展示脱敏
sales_lead_auto_fill.py 同上
may230_refresh.py 移除 LEFT(tel,3)/RIGHT(tel,4) 子串匹配,改为加密后 tel_encrypt IN
lead_user_analysis.py match_phones_to_accounts() 改为加密匹配
batch_course_record_query.py match_phones() 改为加密匹配
build_xhs_learning_report.py match_by_phone() 改为加密匹配
phone-chapter-query/scripts/phone_chapter_query.py step1_match_accounts() 改为加密匹配

修改的文档

文件 变更
skills/phone-chapter-query/SKILL.md 匹配规则说明更新为加密匹配
MEMORY.md 行课查询匹配规则更新为加密匹配,标注李承龙确认

加密流程

明文手机号 → XXTEA.Encrypt(key="K1pNOZ5O5+ZqTPSHA2kzPdoNOMOGcv6g")
           → Base64.StdEncoding
           → Replace("+","-") → Replace("/","_") → Replace("=",".")
           → 与 bi_vala_app_account.tel_encrypt 精确匹配 → 获取 id

user: 手机号15944281022用户ID57手机号15210431369用户ID308。用这两个将skill和脚本逐一检验。 assistant: 数据库中没有匹配到,让我查一下这两个账号的实际 tel_encrypt 值:

assistant: 加密完全正确!tel_encrypt 值精确匹配。这两个账号的 status=2(非 status=1),所以加了 status=1 条件后查不到——这是正确的行为。现在逐一检验每个脚本:

assistant: 加密匹配完全正确。现在逐一检验每个脚本的匹配逻辑:

assistant: 全部检验通过。汇总如下:


检验结果

# 脚本/Skill 15944281022 → 57 15210431369 → 308
1 phone_encrypt.py 加密模块
2 phone_match_userid.py
3 batch_phone_to_id.py
4 auto_xingke_query.py
5 auto_xingke_query_v2.py
6 sales_lead_auto_fill.py
7 may230_refresh.py
8 lead_user_analysis.py
9 batch_course_record_query.py
10 build_xhs_learning_report.py
11 phone-chapter-query Skill

加密验证:

  • 15944281022 → 加密值 5WeooSK74KICOTX-LDEGhg.. = DB tel_encrypt
  • 15210431369 → 加密值 nLmUQKd5DMzjVy_cWGpVAg.. = DB tel_encrypt

所有脚本的 XXTEA 加密匹配逻辑与数据库 tel_encrypt 字段完全一致,无一遗漏。