Files
past-go/past-go/deploy

20261008 原权限兼容与抽烟功能

当前行为

  • 日记、相册、记忆日、歌曲和普通打卡恢复原版按情侣成员作者查询;历史 couple_id 不再成为新增过滤条件。未绑定展示方式恢复原版。
  • 姨姨继续使用 period_records、period_daily_records、period_sex_records,恢复原版共享记录、来源选择和可见开关。启动不复制或切换姨姨表。此前创建的 personal_period_* 表保留,但本版不读写。
  • 照片响应保持原始 uploads/... 路径,不签名、不改成 /backend/uploads/...;上传静态文件恢复原访问方式,兼容正式版小程序。
  • 抽烟使用独立的 smoking_wallets 和 smoking_entries;消耗一支扣一支、买烟和别人递烟加库存、撤销操作保持事务和幂等。库存随账号保留。
  • 72 小时解绑冷静期继续保留:双方同意后开始计时,期间可取消,到期解除绑定且保留记录。其他数据权限按原版运行。

部署

  1. 在宝塔备份当前数据库和 uploads,保存原可运行 exe;停止现有 Go 服务。
  2. 仅替换 past-server.exe,保留现有 config.yaml、data_dir、uploads、data 和数据库。无需重新配置 Nginx,已正常工作的 uploads 转发继续使用。
  3. 启动时补齐抽烟表和冷静期字段;仅迁移旧抽烟库存与流水。smoking_records_v1=done 后不会重复;已经完成 account_records_v1 的环境也不会重新导入库存。不存在姨姨数据迁移。
  4. 先验证正式版日记、相册、照片、记忆日、歌曲、普通打卡和姨姨记录,再用新版小程序验证抽烟。
  5. 新版小程序的姨姨页面已同步恢复共享方式;抽烟需要上传新版小程序才能显示。

Go 全套和前端回归在本机执行;尚未在生产数据库或微信真机运行本版。历史 binlog 和检查报告显示原记录在库,不应通过清表或倒放日志部署本版。

以下为 20261005 历史说明,当前部署以以上步骤为准。


20261005 UI 精修与驼峰 API 更新

部署顺序

  1. 停止现有服务,备份原程序;用新 Windows AMD64 past-server.exe 替换程序。保留当前 config.yaml、uploads、data 和数据库。示例配置仅供参考,不要覆盖现有配置。
  2. 启动新程序。本次没有新增数据库迁移,保留此前生理期共享功能的数据结构。
  3. 如果上一版 /api、/api/ 转发已配置并能访问,这次无需再改 Nginx:驼峰路径继续走同一段转发。附带配置已按你提供的 Nginx 使用 127.0.0.1:8081;保留现有 /backend/ 与 uploads 缓存配置。
  4. 检查并重新加载 Nginx,已有配置不变时可以跳过。若调整配置,在你当前 Nginx 机器上检查后重新加载。
  5. 浏览器访问 https://past.sundynix.cn/api 应返回 API 名称与版本。未登录访问 /api/coupleInfo 应返回 401 JSON,不能是 Nginx HTML 404。
  6. 管理后台仍从 /backend/admin/ 进入,新后台已嵌入程序,刷新页面、重新登录后确认 Network 请求为 /api/adminStats 等驼峰路径。
  7. 微信开发者工具打开包里的 weapp;request/uploadFile 合法域名仍为 https://past.sundynix.cn。重新编译、真机预览,再上传小程序新版本。

接口规则

  • 请求地址:/api/接口名,例如 /api/periodList、/api/diaryList?page=1&pageSize=20。
  • 小程序、管理后台、上传统一使用新路径;不再附加 GET _t。
  • 例:POST /api/periodUpdate,JSON { "id": "314", "cycleLength": 25, "periodLength": 5, "startDate": "2026-09-27", "endDate": "2026-10-01" }。
  • 路径、查询参数、JSON 请求与响应字段统一 lowerCamelCase,例如 cycleLength、periodVisible、canAccess。Multipart 表单字段同样为驼峰。字段值、请求方法和鉴权延续原业务约定。
  • 后端及两个客户端在网络边界转换字段名,内部数据库和页面数据模型保持既有结构。旧 PHP 入口与带下划线的旧路径继续兼容。API 响应 Cache-Control: no-store;后台请求使用 cache: no-store。
  • Bearer、上传 token 与后台同源 Cookie 仍有效。上传继续携带兼容 Android 的 token/action 表单项。
  • 原 PHP 风格入口继续兼容已发布旧小程序。媒体与后台静态地址仍在 /backend/ 下。

小程序验证

  • Android 与 iPhone:标题与微信胶囊不重叠,首屏和底部内容不被遮挡。
  • 首页:未绑定显示注册天数和邀请入口,绑定后显示在一起天数;解绑后首页、我的立即按接口更新。
  • 三个底部入口:首页、记录、我的;详情返回与发布、编辑流程正常。
  • 日记和相册:首次加载、空列表、网络失败分别展示;创建相册与上传照片正常。
  • 姨姨:对方可见单独操作;关闭自己的开关不能把自己锁住,权限由 API 判断。双方都有绑定前数据时仍选择唯一记录。
  • 改周期、持续天数、开始和结束日期保存后,重新进入展示服务端最新值。

本地已检查 WXML/WXSS 编译、JS 语法、请求/上传 URL 与导航尺寸、Go 测试与管理后台构建;未替代真实微信设备和线上数据库联调。

本次 UI 精修

小程序首页聚焦双人天数、四个入口和最近记录;记录页分组;日记、相册使用标题旁操作按钮;姨姨选中日期后展开当天操作;个人中心与设置分组。管理后台统一侧栏、页头、统计卡、列表、表格、弹层与登录页,沿用现有组件库。