交付出件箱

← 返回出件箱

子席位批量开号(礼品卡)· 方案评估汇总 · 定稿版

2026-09-28 · 给长官评估用(本版取代同名旧版)
所有结论都有代码原文、生产实测或本机实测作依据。证据细节见:完整核查报告
标注说明:【实测】 真跑出来的数;【推算】 按实测数换算的;【代码】 读代码原文确认的


一、一句话结论

方案可行,没有大风险。 5 万个号约 10 秒开完,开号期间别人基本感觉不到;数据表完全撑得住。
改动只在「子席位管理」里,全站共用的登录功能一行不改。
目前方案已经定稿,还没开始写代码。上线顺序:先上 test,您验收通过后再上生产。


二、改动范围

范围 动不动
平台后台「子席位管理」 ✅ 动
家长子席位「账号 + 密码」登录这一处 ✅ 前面加一道判断(见第九节)
全站共用的"校验密码"功能 ❌ 不动
管理员、结算、门店的登录 ❌ 不动
家长手机号登录 ❌ 不动
门店端(门店手机端给家长开号) ❌ 不动
品牌码 ❌ 不动
已经开出去的老账号 ❌ 不动,只有以后新开的号走新方式
子席位管理里的「重置密码」「换绑」 ❌ 不动

三、怎么用(您在后台的操作)

不另加新按钮,直接改现有的「开通子席位」:

  1. 点「开通子席位」,选机构,数量自己填(1 ~ 5 万),填有效天数,提交
  2. 开完以后:
  3. 10 个以内:跟现在一样,直接弹框显示账号和密码,能复制
  4. 超过 10 个:开完到「下载记录」里下载 Excel(账号 + 临时密码)(沿用 9-18 定的门槛)
  5. 「下载记录」里的文件随时能下,可以反复下载
  6. 家长第一次登录:输卡上的账号和密码 → 必须改密码 → 绑定自己的微信
  7. 再下载时,已激活的那一行显示「已激活」,不再给密码
  8. 卡丢了、印错了,可以整批或按一段号一键停用

四、效率:从 50 分钟压到约 10 秒

阶段 5 万个号开号时间 依据
原始写法(每个号都用最高档慢加密) 约 50 分钟 生产实测 60.4 毫秒/个【实测】
第一轮优化:临时密码改用国际标准档位 约 10~19 分钟 生产实测 22.7 毫秒/个【实测】
定稿:临时密码只做"能解开的加密" 约 10 秒 见下表

定稿版时间明细:

环节 耗时
加密 5 万个临时密码 0.76 秒【实测,本机】
写进数据库(一批一批写) 约 2 秒【推算:本机逐条写 2000 行 0.85 秒】
生成 Excel 约 8 秒【实测,本机】
合计 约 10 秒

为什么能这么快:
您要求密码能反复补下载,所以临时密码本来就得存成"能解开"的形式。既然都要存,就没必要再额外做一次"慢加密"。
- 开号时:临时密码只做"能解开的加密"
- 家长第一次登录时:系统解开比对,对上就放行,然后强制改密码
- 改完以后:新密码照旧用最高档慢加密,跟现在完全一样


五、对其他功能的影响

功能 影响 依据
开号那 10 秒里 基本无感;生成 Excel 那几秒,别人偶尔可能慢零点几秒 后台生成文件时会跟网站抢一点 CPU【推算,test 上实测】
管理员 / 结算 / 门店 / 老家长号登录 零影响 这些登录代码一行不改【代码】
查档案、查数据 不受影响 9.7 万行规模下查询 0.02~26 毫秒【实测,本机】
数据库连接 不会被挤爆 已把"每开一个号单独连一次数据库记日志"改成每 500 个号合写一次
结算里的席位统计 不受影响 结算本来就不算家长号【代码】
用户管理页 慢几十毫秒,感觉不到 默认视图会多扫这 5 万行【代码】
门店端、品牌码 不受影响 不动

六、数据表撑不撑得住

本地数据库真插 5 万行测过,测完已撤回,前后行数一致【实测】:


七、安全

项 情况
临时密码被偷 加了密存储,只偷走数据库解不开;家长激活后临时密码作废
正式密码 家长改完的密码仍用最高档慢加密,跟现在一样
别人挨个试密码 系统已有防护:同一个网络地址 15 分钟内在 10 个不同账号上输错就会被拦【代码】
捡到卡冒用 家长第一次登录后绑定自己的微信,别人拿到卡也登不上【代码】
卡放久了会不会过期 不会:有效期从家长第一次登录才开始算【代码】

八、已纳入方案的优化(共 8 项)

  1. ⚡ 临时密码只做"能解开的加密":开号从约 50 分钟缩到约 10 秒
  2. 🔴 修一个隐患:现在每开一个号就单独连一次数据库记日志,开 5 万个会瞬间把数据库连接挤爆(最多只能同时接 50 个)→ 改成每 500 个号合写一次
  3. ⚡ 写数据库改成一批一批写:约 21 秒 → 约 2 秒
  4. 🔄 断点续开:开号期间遇上发版重启,自动接着开,不重复、不漏号
  5. 🚫 防重复点击:同一时间只跑一个批量开号
  6. ⚠️ 开号前先查机构有没有设前缀,没设就提示
  7. 🗑️ 整批 / 按一段号作废
  8. 🔔 开号失败自动告警

九、风险与规避

原来的风险:要改全站共用的"校验密码"功能,万一写错,最坏全站登不进去。

规避后的做法:全站共用的"校验密码"功能一行不改。

规避前 规避后
最坏影响范围 全站所有人登不进去 只有新开的号第一次登录失败
兜底办法 — 后台点「重置密码」就能救回来(现有功能)
管理员 / 结算 / 门店 / 老家长号 有风险 零影响

另一个小提醒(不影响使用):临时密码是用服务器上的一把"总钥匙"配出来的锁锁住的。这把钥匙平时没人动(一换全站都要重新登录)。万一要换,换之前先用旧钥匙把临时密码解开、再用新钥匙重新锁好,卡照常能用。这一步会写进方案里。

测试:上 test 后,把家长账号登录、家长手机号登录、门店登录、管理员登录都测一遍,确认新号能登、老号不受影响。您验收通过才上生产。


十、要新做的东西(目前都还没写)

  1. 「开通子席位」数量上限改到 5 万;10 个以内照旧弹框显示密码,超过 10 个走 Excel
  2. 「开号批次」记录(每批开了多少、状态)
  3. 「下载记录」页:可反复下载,已激活的显示「已激活」
  4. 后台开号任务(批量写库、断点续开、失败告警)
  5. 家长子席位账号登录处加一道判断(全站共用的校验功能不动)
  6. 整批 / 按段作废

十一、需要您决定