六年前给客户做的三语旅游站,2022 年春天改版。主要变化是把签证申请从独立入口并进了行程页:看完行程直接点「办签证」,不用再跳到另一个域名、重新注册一遍。
合并的难点是草稿
签证表单还是那些字段,改到 11 个、必填 8 个,跟 2016 年那版差不多。真正麻烦的是「人走到一半」。
用户可能先挑行程,挑到第三个,想去填签证,填了两步又回去改行程,再回来接着填。以前两个系统各存各的草稿,一合并就断。
我们的做法:草稿表加一列 tour_id,所有跨页状态靠一个 draft_id 串起来。cookie 里放 draft_id 和 language_code,切语言、换设备(同一浏览器)都不丢。附件一上传就落正式目录,这个规矩是 2016 年那次丢了附件之后定下的,照搬。
定时任务每天清一次 7 天没动过的草稿,清之前不删附件,先只标记,隔一天再真删。
三语还是老结构
行程主表加翻译表、URL 第一段带语言,这套没动。新加的是签证表单文案也要三语,于是把表单的 label、提示、错误提示全塞进那张翻译表,按 item_id 加 language_code 存,跟行程文字共用一套后台。
日文站有个细节:姓名栏要「姓」和「名」分开,英文站是一个 Full Name。没硬凑成一个字段,前端按语言渲染不同的输入控件,后端统一拼成一个 name 字段存,另存一个 name_split 标记。导出给客户时按这个标记拆开。
上线前核了一遍
改版前拉了旧站半年的日志,看哪些页面还有人进。有 6 个旧 URL 一直有量,都是搜索引擎收的行程页,全做了 301 到新地址,没直接关掉。签证旧入口也留着,进去自动跳到带 draft 的新页。
3 月 17 号上午切完,下午盯着日志看有没有 404 冒出来,冒了 2 个,都是带旧参数的,补了两条 rewrite。
旧站服务器上那张 2016 年拍的办公桌照片,改版时没保留。有人翻备份翻出来发群里,配了句:路由器还在。

