wbd.aixgn.cn 积分中心 · 技术Changelog
内部技术文档 · 不对外导航 · 最后更新:2026-09-10
部署信息:主文件 /opt/site/wbd/public/index.html | 积分服务 B机 /opt/ixgn_points/server.js (systemd: ixgn-points)
回滚:cp index.html.bak_rN index.html && nginx -s reload
R9 · 安全与数据一致性 安全
- 新增
escapeHtml() XSS转义函数,应用于身份显示、消费备注、跟进记录等用户输入渲染点
- 积分对账逻辑:loadAll()中校验 earned-spent 与 balance 差异,>1分时显示"数据同步中"提示
- 写操作鉴权说明:前端API经nginx反代注入 x-consume-key,前端不持钥
- 新增
<meta http-equiv="X-Content-Type-Options" content="nosniff">
- 安全扫描:无硬编码密码/密钥/token/内部IP/私钥
R8 · 性能与体验 性能
- 首屏加载优化:380-533ms (移动端UA)
- 统一toast:alToast()合并到主toast(),底部胶囊样式+淡入淡出动画
- scrollTo优化:增加80px顶部偏移,避免被固定元素遮挡
- 新增 btnLoading()/btnReset() 防重复点击
- 移动端适配:@media(max-width:640px) 按钮最小44px触控区域
- JS健壮性:MODULE_ALIAS兜底变量、renderSections参数默认值、loadAll空安全
R7 · API健壮性 安全 修复
B机 server.js
- 全局限流:同一IP 1分钟最多60次,超限返回429
- 请求日志:[REQ]开始 + [RESP]结束(含耗时ms)
- DB操作加固:runSQL()增加try/catch + 15秒超时 + 错误上下文日志
- 幂等校验:earn按biz_order_no查重(已有txnExists)
- 限流记录自动清理(每5分钟)
wbd前端
- api()/apiPost()重构为apiFetch():10秒AbortController超时 + 失败自动重试1次(间隔1秒) + 缓存降级
- 新增 showLoading() 骨架动画 + showError() 重试按钮
- 任务/规则/消费档案/闭环列表增加loading态和失败重试链接
R6 · 版块联动修复 修复
- 检测6个版块页widget注入状态
- charging:积分链接从 /points.html 改为 wbd.aixgn.cn (2处)
- wrj:main-nav和mobile-menu增加"⭐ 积分"链接 (2处)
- energy:登录前增加"⭐ 积分中心"链接 (1处)
- www:nav增加"⭐ 积分中心"链接 (1处)
- 结果:7站点(parking/charging/property/wrj/energy/www/wbd)全部可跳转积分中心
R5 · 四维闭环强化 新功能
- 绑定闭环:prompt()改为可视化表单弹窗(版块按钮组+动态资源类型下拉+datetime-local+事件+关联物)
- 闭环列表:改为时间轴样式(左侧竖线+圆点),按时间排序
- 智能建议:改为"停车→充电→周边消费→AI学习"四步链路,每步可点击跳转
- 今日闭环概览:3格统计(已绑定数/覆盖版块数/预计节省金额)
- 绑定成功自动刷新闭环列表+智能建议+概览
- API失败降级:闭环数据存localStorage
R4 · 任务中心优化 新功能
- 今日任务积分汇总条:SVG进度环 + 已完成/总数 + 目标积分
- 每任务进度条:当前/目标(签到3/7天、消费¥50/¥200),未达成显示差距
- 签到日历组件:当月日历弹窗,已签到打✓,今日高亮,连续签到天数+累计积分
- 签到调用 /api/points/tasks/claim (code=daily_checkin),失败降级localStorage
- 积分飞入动画:领取成功 +N分 从中心向上飞出淡出
- 已领取任务置灰(opacity:.6) + "今日已领"按钮
- 30秒setInterval轮询 + visibilitychange切回页面自动刷新
R3 · 周边优惠深化 新功能
- 找优惠:搜索框(商家名/地址) + 6类筛选chip(全部/餐饮/酒店/汽修/零售/停车场) + 距离/积分排序
- 商家从2个扩到10个JS数组(MERCHANTS):正荣/保利/泰禾/万达嘉华/途虎/东百/香格里拉/大丰收/特来电/永辉
- 商家卡片:名称+类型标签+地址+距离+优惠+高德导航+积分抵扣标识+收藏按钮
- 入驻/需求表单:oninput实时校验(绿/红边框) + 提交成功✓动画 + 申请编号(AL+时间戳)
- L0-L3权益:点击标题展开详细说明
- 表单仍提交 https://www.aixgn.cn/api/lead/alloc
R2 · 个人中心补全 新功能
- 消费档案卡片扩展为个人中心,5 Tab:消费档案/我的订单/我的卡券/我的收藏/设置
- 我的订单:从 /api/consume/habits 的 recent 映射,支持全部/待核销/已完成/已退款筛选
- 我的卡券:调用 /api/points/merchant/coupons,显示券名/面额/有效期/状态,已用置灰
- 我的收藏:localStorage存储,与商家广场⭐收藏联动,可取消
- 设置:通知开关/短信开关/清除缓存/关于新概念AIv2.0/退出登录
- 底部tabbar"我的":从跳转consumer-center.html改为scrollTo('habitCard')
- 全局"豆包工作"→"新概念AI" (3处)
- API不可用时降级显示模拟数据+标注"演示数据"
备份清单
| 文件 | 大小 | 说明 |
| index.html.bak_r2 | 84KB | R2部署前(v10基线) |
| index.html.bak_r3 | 97KB | R3部署前 |
| index.html.bak_r4 | 108KB | R4部署前 |
| index.html.bak_r5 | 117KB | R5部署前 |
| index.html.bak_r7 | 128KB | R7部署前 |
| index.html.bak_r8 | 130KB | R8部署前 |
| index.html.bak_r9 | 131KB | R9部署前(最新) |
| server.js.bak_r7 (B机) | 65KB | 积分服务R7加固前 |
已知限制
- AI教育页(ai.aixgn.cn) chattr+i 锁死,无法注入widget,wbd内已有AI教育入口
- 4点自迭代定时任务可能覆盖wbd页面,如被覆盖用 bak_r9 恢复
- 订单/卡券在API无返回时降级为模拟数据并标注"演示数据"
- 签到数据在API失败时存localStorage,可能与服务端不同步
- B机限流为内存级(重启清零),非分布式限流
- 测试手机号:13800000999