开发日志
约 2225 字大约 7 分钟
鲜多多商城 开发日志
开发期:2025.10 ~ 2025.12(收尾与支付接入延续到 2026.03)
商业接单项目,闭源交付。以下摘自真实开发日志,凭据、地址、客户信息已全部略去。
进度速览
- ✅ 2025.10 后端 + 小程序 + 商家后台三端跑通,图片流水线与 Redis 落地
- ✅ 2025.11 订单、优惠券、会员、评价体系成型,缓存与并发问题集中爆发
- ✅ 2025.12 金额口径统一(以分为最小单位)+ 退款闭环 + 前端可用性打磨
- ✅ 2026.03 微信支付 JSAPI v3 接入,仓库敏感信息清理
2025/10/17
- ✔ detail 页中文乱码、图片不显示
- ✔ 首页排版改左右分栏、banner 跳转产品介绍页
- ✔ 点单页分类收敛到 6 个选项、分类只留单品/套餐两类(改 SQL)
- ✔ 商城页改成礼品卡与礼包,会员卡页展示当前身份
都是些"看着小、实际牵一发动全身"的活——改个分类就要同步改 SQL 和图标。
2025/10/18
- 每加一张图要走四步:原图备份 → 放进后端静态目录 → 跑转换脚本 → webp 再备份再分发
- 结论:太麻烦了,这个流程必须自动化
今天没干什么正事,就为后面把图片转换搬进后端埋了个伏笔。
2025/10/19
- ✔ 多个页面中文乱码(details、intro、map、order、price 等)
- ✔ 后端 docker 启动失败
- ✔ 部分页面没走统一的 base_url 配置,导致图片 404
- ✔ 梳理三个待确认项:商家管理端形态、图片存储方案、是否引入 Redis
2025/10/20 ~ 10/21
- ✔ 图片转换脚本迁进后端并常驻 docker,上传后自动生成 WebP
- ✔ 引入 Redis(缓存、购物车、库存预扣都靠它的原子性)
- ✔ 搭起商家后台管理系统(当天还登录不上,先修登录)
- ⬜ 待办:物流 API 申请、小程序认证与资质、微信支付商户号、域名备案
三端架构在这一周基本定型:小程序前端 / 后端服务 / 商家后台。
2025/10/21 ~ 10/22
- ✔ 后台"几乎每个页面都有报错",逐个修
- ✔ 商品新增无法选分类(因为压根没分类)、图片要支持拖拽上传而不是填 URL
- 开发教训:最好先在本地开发完再上服务器,边开发边部署两头顾不过来
- ✔ nginx 放行用户端经 /static 访问后端图片
2025/10/24
- ✔ 图片管线重构:
- 上传时算 MD5 去重,已存在直接复用记录
- 文件落盘后推 Redis 队列,worker 异步转多尺寸 WebP
- 新增 image_references 引用表,避免误删还在用的图
- 前端加媒体库页面 + 多文件上传(进度、并发限制、重试、拖拽排序、设为主图)
- 今天修了一整天同一个页面的 bug,越修越多,先睡觉
2025/10/25 ~ 10/26
- ✔ 解决后台无法添加商品的顽疾;意识到 SKU、规格、价格区间这块还没搞懂
- ✔ 小程序端页面批量重构
- ✔ 集中修一轮小程序端 bug:
- 个人信息保存后性别生日没入库
- 点分类会误删购物车里其它分类的商品
- 到店自取选完店铺回来丢了参数,反复横跳成死循环
- 提交订单报"收货地址不存在"
2025/10/27 ~ 10/28
- ✔ 安全收敛(起因是一个高危漏洞 + 一次测试库被入侵,还好当时没上线):
- 数据库与 Redis 端口只允许内网 / 容器网络访问
- 删除远程 root 账号,改强口令,
.env与证书密钥移出仓库并加入.gitignore - 后台管理员账号改强口令,补样例数据
- ✔ 修复 Redis 分类树缓存不随后台写入失效的问题
- ✔ 小程序体验版连不上后端,排查半天——域名没备案
安全这条是花钱买的教训,测试阶段被入侵还能重来,正式上线就不一定了。
2025/11/1 ~ 11/4
- ✔ 订单页重构:不再用 mode 参数区分到店取/送到家,改成两个独立页面
- ✔ 订单状态码统一(10/20/30/40/50/60/70),修掉"取消的订单显示已完成"
- ✔ 订单详情页补返回按钮,优惠券添加失败修复
- ✔ 服务器时间对不上:MySQL 容器是 Asia/Shanghai,JDBC 连接却写 serverTimezone=UTC
- 💬 AI 生成的 CSS 习惯到处分层设 z-index,一加 padding/margin 就全乱,以后 prompt 里得先说清楚
2025/11/11 ~ 11/13(优惠券周)
- ✔ 未登录访问受限页面先提示再跳登录
- ✔ 优惠券一堆问题集中修:
- 停用的券仍然可用
- 发放记录多次发放会把记录叠在一起
- 折扣券的"优惠金额"和"实付金额"显示反了(库里数据是对的,展示算错了)
- 查库发现 order_item.discount 全是 0 → 价格计算与存储逻辑本身有问题
- ✔ 分类支持图标(表里没这列,后台也没这功能)
2025/11/15
- ✔ docker 镜像加速要配一整串 registry-mirrors,单靠一个源 node:18 都拉不下来,还会随机 pull 失败
- ⬜ 会员(VIP)功能评估:费时费力不好维护,当初给客户的报价单里根本没有它
- 💬 报价单里没有的东西,做完是情分,做砸是事故——该砍就砍
2025/11/22(安全自省)
- ⬜ 排查发现密钥管理不规范:凭据与
.env这类明文敏感信息不该出现在仓库里 - ⬜ 定下规矩:强口令、定期轮换、密钥永不进日志与仓库、生产环境用密钥管理服务、数据库端口只留本地
2025/11/29(缓存与并发)
- ✔ 媒体引用数统计不准:只统计了详情图没算媒体资源,改完又发现前后统计口径不一
- ✔ 详情页库存不刷新:后台改了库存,前台纹丝不动,只有手动保存一次才生效——Redis 缓存没失效
- ✔ 并发下单:用户快速连点提交按钮会同时生成多个订单,必须做防抖 + 时间戳校验
- 💬 缓存最难的不是加,是什么时候该失效
2025/12/12
- ✔
www.与裸域两个 base_url 表现不一致:H5 和小程序模拟器正常,真机体验版连不上——按平台区分域名 - ✔ mall 页在小程序里不显示商品,改 API 调用与页面重新加载
- ✔ 订单提交加防抖 + 时间戳双重防重复
- ✔ 会员卡详情页底部被遮挡,补 padding
2025/12/18 ~ 12/19(金额口径统一)
- ✔ 新增 money.js:所有金额运算以"分为最小单位",展示层再格式化成两位小数,杜绝浮点误差
- ✔ 运费规则前后端统一:到店自取免运费;配送到家满额包邮、否则收固定运费;实付 = 商品总额 + 运费 - 优惠券,不低于 0
- ✔ 订单详情/确认页/后台详情三处口径全部对齐(此前优惠金额与实付金额显示颠倒)
- ✔ 金额工具补上单元测试(运费、满减券、折扣券、实付边界)
- ✔ 后端响应补 deliveryMode 与运费,不再靠前端猜订单类型
- ✔ 取消/退款闭环:恢复库存 → 同步 Redis → 回滚优惠券 → 写状态历史
- ✔ 媒体物理文件删除闭环(以前只删数据库记录,磁盘上的图还在)
- ✔ 到店自取"自取完成"接口,避免走错发货流程
- ✔ 订单列表导出 CSV 显示 undefined 的问题修复(Blob 处理)
一天从早修到晚,全是金额。钱的显示错一次,客户信任就没了。
2025/12/23
- ✔ 请求层统一加默认超时 + 指数退避重试(只针对 GET 和瞬时抖动)
- ✔ 启动不再强制登录,只有 needLogin 页面才拦,先逛再登录
- ✔ 统一空态 / 错误提示组件,接入订单列表与地址页
- ✔ 地址表单校验完善:必填、手机号格式、基础 XSS 过滤,失败不清空已填内容
- ✔ 定位回退链:小程序原生定位 → 后端 IP 定位 → 保持默认城市并提示手动选店
2026/3/9(收尾)
- ✔ 接入微信支付 JSAPI v3:统一签名、回调验签、AES-GCM 解密,弃用旧版 XML/MD5
- ✔ 缺少真实商户参数时明确报错,不再假装支付成功
- ✔ 仓库敏感信息大扫除:明文口令改占位符、建库脚本删掉远程 root 初始化、
.env与证书私钥正式进 .gitignore、已入库的真实私钥删除 - ✔ 补两份文档:当前缺失内容清单、安全收敛后的开发调试流程
从"能跑"到"敢交付",中间隔着的全是这些不体面的活:缓存失效、金额取整、端口收口、密钥清库。
功能是一个个页面,交付是一整条链路——链路断在哪,客户就会在哪一天找上门。
Powered by Waline v3.6.0