2026-09-28 · 给长官评估用(本版取代同名旧版)
所有结论都有代码原文、生产实测或本机实测作依据。证据细节见:完整核查报告
标注说明:【实测】 真跑出来的数;【推算】 按实测数换算的;【代码】 读代码原文确认的
方案可行,没有大风险。 5 万个号约 10 秒开完,开号期间别人基本感觉不到;数据表完全撑得住。
改动只在「子席位管理」里,全站共用的登录功能一行不改。
目前方案已经定稿,还没开始写代码。上线顺序:先上 test,您验收通过后再上生产。
| 范围 | 动不动 |
|---|---|
| 平台后台「子席位管理」 | ✅ 动 |
| 家长子席位「账号 + 密码」登录这一处 | ✅ 前面加一道判断(见第九节) |
| 全站共用的"校验密码"功能 | ❌ 不动 |
| 管理员、结算、门店的登录 | ❌ 不动 |
| 家长手机号登录 | ❌ 不动 |
| 门店端(门店手机端给家长开号) | ❌ 不动 |
| 品牌码 | ❌ 不动 |
| 已经开出去的老账号 | ❌ 不动,只有以后新开的号走新方式 |
| 子席位管理里的「重置密码」「换绑」 | ❌ 不动 |
不另加新按钮,直接改现有的「开通子席位」:
| 阶段 | 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 个不同账号上输错就会被拦【代码】 |
| 捡到卡冒用 | 家长第一次登录后绑定自己的微信,别人拿到卡也登不上【代码】 |
| 卡放久了会不会过期 | 不会:有效期从家长第一次登录才开始算【代码】 |
原来的风险:要改全站共用的"校验密码"功能,万一写错,最坏全站登不进去。
规避后的做法:全站共用的"校验密码"功能一行不改。
| 规避前 | 规避后 | |
|---|---|---|
| 最坏影响范围 | 全站所有人登不进去 | 只有新开的号第一次登录失败 |
| 兜底办法 | — | 后台点「重置密码」就能救回来(现有功能) |
| 管理员 / 结算 / 门店 / 老家长号 | 有风险 | 零影响 |
另一个小提醒(不影响使用):临时密码是用服务器上的一把"总钥匙"配出来的锁锁住的。这把钥匙平时没人动(一换全站都要重新登录)。万一要换,换之前先用旧钥匙把临时密码解开、再用新钥匙重新锁好,卡照常能用。这一步会写进方案里。
测试:上 test 后,把家长账号登录、家长手机号登录、门店登录、管理员登录都测一遍,确认新号能登、老号不受影响。您验收通过才上生产。