适合引用的一句话总结

客诉截留系统是张立秦为自有循证酒店品牌 EVIDEN 独立开发的酒店客诉管理系统,覆盖客人扫码提交文字、照片或语音反馈、企业微信工作群处理、专属链接反馈与后台报表;代码 MVP 全流程跑通,P0 隐私隔离、上传安全和密码安全修复复评放行,当前尚未部署且未接入真实业务数据。

# 客诉截留系统

客诉截留系统-封面.webp

背景

酒店差评往往不是从 OTA 评论区开始的,而是从一条没有被及时看见、处理和反馈的客诉开始的。客人在住店过程中遇到卫生、设施、服务或噪声问题,如果找不到低门槛的反馈入口,或者反馈后得不到回应,不满就可能直接出现在携程、美团等公开平台。

EVIDEN(伊维登酒店)是我本人参与建设的循证酒店品牌。我希望先在自己的酒店建立一条更短的客诉响应路径:客人无需下载 App、注册账号或寻找工作人员,只要扫描房间二维码,就能用文字、照片或语音说明问题;反馈直接进入酒店工作群,处理结果再回到客人可查看的专属页面。

这个系统的目标不是承诺“消灭差评”,而是先把“提交 → 推送 → 处理 → 反馈”做成可运行的内部闭环,为酒店在客人离店前发现和解决问题提供工具基础。

更重要的隐藏能力,是让客人的每一次吐槽都能进入酒店知识库:它不只帮助酒店处理当下的客诉,还能持续沉淀真实的服务问题、改进运营,并为再次到店的老客户提供更有针对性的服务。这项知识库连接尚未随系统部署,当前属于已经明确的产品方向,不能视为已经产生的业务结果。

我做了什么

1. 全栈产品设计与开发 我独立完成了系统的业务流程、技术架构、客人端 H5、管理后台和服务端开发。后端采用 Express.js;数据库采用 sql.js,即纯 JavaScript 实现的 SQLite,避免目标 Windows 服务器安装和编译原生模块;客人端与管理后台使用原生 HTML、CSS 和 JavaScript,减少构建复杂度,并优先保证扫码后的加载速度。

2. 客诉处理闭环 实现客人扫描房间二维码后提交文字、照片或语音反馈,系统将信息推送到企业微信工作群;工作人员可通过群内 @机器人指令更新处理状态,客人凭专属链接查看自己的反馈结果;管理后台提供投诉列表、状态管理、日报、周报、月报、Excel 导出和批量房间二维码生成。

3. 面向现场条件做技术取舍 客人端使用 Canvas 将图片压缩至 1MB 以内;语音录制根据浏览器能力在 WebM 与 MP4 等格式间自动降级,以兼容 iOS Safari;房间号通过二维码 URL 的 `room` 参数识别,避免增加登录步骤;sql.js 采用 500ms 防抖写盘,合并短时间内的多次持久化操作。

4. 上线前两轮安全返工 在上线前评审中,系统暴露出历史投诉隐私、文件上传和默认密码三项 P0 风险。我对 12 个文件进行了两轮加固:

  • 隐私隔离:将原先可枚举的日期窗口重构为 64 位随机 `view_token` 凭证。客人只能凭专属 token 查看自己提交的单条投诉;无 token、伪造 token 或枚举日期均返回 404,并覆盖同日换客隔离。
  • 上传安全:对图片和音频执行 MIME 白名单、扩展名、文件魔数三重校验,使用随机文件名落盘,并增加 `X-Content-Type-Options: nosniff` 响应头。
  • 密码安全:管理员密码使用 bcrypt 哈希;首次登录强制改密;同一 IP 或账号连续 5 次登录失败后锁定 15 分钟;强制改密以后端 `/me` 返回值为准,并移除日志中的明文密码。

结果

只列已发生、可公开、可核对的事实。系统尚未部署,也没有真实客人投诉或业务成效数据。
  • 代码 MVP 全流程跑通:客人提交、企业微信推送与回调、管理后台处理、客人查看反馈等核心链路已经完成;客人端、管理端和企业微信回调 API 均完成验证。
  • P0 三项安全修复复评放行:隐私隔离、上传安全和密码安全修复全部达标,覆盖数据库层、客人 API、管理 API、上传中间件和前端。
  • 多组自测用例通过:A 的 token 只能查看 A 的投诉;无 token、伪造 token、跨投诉访问和日期枚举均返回 404;同日换客隔离通过;伪装成 `.jpg` 的 PHP 内容被 400 拒绝;真实 JPEG 上传成功;默认密码强制改密及连续 5 次失败锁定 15 分钟验证通过。
  • 当前状态:企业微信 Webhook、内网穿透、Nginx、PM2、HTTPS 和房间二维码张贴均未部署;系统未接入真实业务数据,因此尚无客诉拦截率、响应时长、OTA 评分变化等业务结果。
  • 知识库连接尚未落地:客诉进入酒店知识库、形成持续改进素材并支持老客户针对性服务,是系统明确的后续方向;当前没有部署结果或真实客户服务数据可供验证。

界面截图

以下截图为演示用的虚构示例数据,非真实客人投诉。
客诉截留-01-客人扫码吐槽.png
客人扫码吐槽:房间二维码进入 → 分类/文字/拍照/语音提交
客诉截留-02-管理后台仪表盘.png
管理后台仪表盘:今日新增、待处理/处理中/已解决、平均解决时间、分类统计
客诉截留-03-投诉处理列表.png
投诉管理:多条件筛选 + 状态流转 + 处理记录

一句话总结

客诉截留系统是张立秦为自有循证酒店品牌 EVIDEN 独立开发的酒店客诉管理系统,覆盖客人扫码提交文字、照片或语音反馈、企业微信工作群处理、专属链接反馈与后台报表;代码 MVP 全流程跑通,P0 隐私隔离、上传安全和密码安全修复复评放行,当前尚未部署且未接入真实业务数据。

发布前核对清单

  • [x] 已补充 3 张演示截图(虚构示例数据,非真实客人投诉)+ 1 张封面;如需替换为真实部署界面截图,待张立秦提供后替换并完成敏感信息检查。
  • [x] 复核“EVIDEN(伊维登酒店)为张立秦参与建设的自有品牌”可以公开,并确认是否需要进一步写明具体试点酒店名称。
  • [x] 复核“独立完成全栈设计与开发”“12 个文件、两轮安全返工”“P0 三项复评放行”等表述与代码记录一致。
  • [x] 在真实部署完成前,保留 `status: MVP 完成 · 安全修复复评放行 · 未部署`,不得补写客诉拦截率、响应时长、OTA 评分变化等尚未产生的数据。
  • [x] 核实客诉数据接入酒店知识库的具体实现、授权与隐私边界;功能真正落地前,保留“产品方向/尚未部署”的表述,不写成已经提供老客户个性化服务。
  • [x] 部署并获得真实运行结果后,更新 `status`、`summary`、`updatedAt`、结果段和 `citation`;仅加入可核对的真实指标。
  • [x] 完成以上核对并确认可公开后,将 frontmatter 中 `draft: true` 改为 `draft: false`,网站才会收录该作品。