前端: - 新增 EmptyLayout 空壳布局(无侧边栏/导航) - 新增 requestNoAuth Axios 实例(不注入 token) - 新增 integralExternal 路由模块(/integral-external/*) - permission.js 加入 whiteListPrefixes 前缀白名单跳过登录 - 新增 phoneDesensitize 手机号脱敏过滤器 - 新增三个免认证页面: · 积分订单页(/integral-external/order) · 用户积分页(/integral-external/user,手机号脱敏) · 用户积分明细子页(/integral-external/user/integral-detail) 后端: - 新增 ExternalIntegralController(无 @PreAuthorize) · GET /api/external/integral/order/list · GET /api/external/integral/user/list · POST /api/external/integral/log/list - WebSecurityConfig 加入 /api/external/integral/** permitAll 文档与工具: - 新增 coding plan、schedule、测试报告 - 新增 start-backend.sh / start-frontend.sh 本地启动脚本 - 新增 .mvn/wrapper/maven-wrapper.properties Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
5.0 KiB
5.0 KiB
积分模块新增页面 — 2 小时极速排期
关联文档:integral-pages-coding-plan.md 开发人员:1 人(全栈) 时间窗口:2026-03-30 20:35 ~ 22:35(共 120 分钟)
1. 时间线总览
20:35 20:55 21:25 21:55 22:15 22:25 22:35
├─────────────┼─────────────┼─────────────┼──────────────┼────────┼────────┤
│ Phase 1 │ Phase 2 │ Phase 3 │ Phase 4 │Phase 5 │ 收尾 │
│ 基础设施 │ 积分订单页 │ 用户积分页 │ 积分明细页 │ 联调 │ 提交 │
│ 20min │ 30min │ 30min │ 20min │ 10min │ 10min │
└─────────────┴─────────────┴─────────────┴──────────────┴────────┴────────┘
2. 分段任务明细
Phase 1:基础设施(20:35 ~ 20:55,20 min)
| 时间 | 任务 | 产出物 |
|---|---|---|
| 20:35 ~ 20:40 | 创建 EmptyLayout.vue + requestNoAuth.js |
布局组件 + 免认证请求实例 |
| 20:40 ~ 20:45 | 创建路由模块 integralExternal.js,注册到 constantRoutes |
路由配置 |
| 20:45 ~ 20:50 | 修改 permission.js 白名单为前缀匹配 |
免登录机制生效 |
| 20:50 ~ 20:55 | 创建 API 文件 integralExternal.js + 快速冒烟验证(访问空页面不跳登录) |
API 框架 + 冒烟通过 |
20:55 检查点:无 token 访问 /integral-external/order 不跳转登录页 ✅
Phase 2:积分订单页面(20:55 ~ 21:25,30 min)
| 时间 | 任务 | 产出物 |
|---|---|---|
| 20:55 ~ 21:10 | 从 order/index.vue 裁剪:只保留表格 + 筛选 + 分页,删除权限指令/操作列/导出 |
页面主体 |
| 21:10 ~ 21:20 | 替换 API 为 requestNoAuth,去除 Vuex 依赖 |
接口对接完成 |
| 21:20 ~ 21:25 | 快速自测:列表加载、状态筛选、分页切换 | 自测通过 |
21:25 检查点:积分订单页数据可正常展示和筛选 ✅
Phase 3:用户积分页面(21:25 ~ 21:55,30 min)
| 时间 | 任务 | 产出物 |
|---|---|---|
| 21:25 ~ 21:35 | 从 user/list/index.vue 裁剪:删除高级筛选/Tab/权限/操作按钮 |
页面主体 |
| 21:35 ~ 21:45 | 增加 wa_users 字段列(积分、个人奖金、余额等),实现数据合并 | 字段展示 |
| 21:45 ~ 21:50 | 添加"查看积分明细"跳转按钮,替换 API | 跳转功能 |
| 21:50 ~ 21:55 | 快速自测:列表加载、wa_users 字段、跳转明细 | 自测通过 |
21:55 检查点:用户积分页含 wa_users 字段,点击可跳转明细页 ✅
Phase 4:用户积分明细子页面(21:55 ~ 22:15,20 min)
| 时间 | 任务 | 产出物 |
|---|---|---|
| 21:55 ~ 22:05 | 复制 user/integral/index.vue,从 URL query 读取 uid 注入搜索参数 |
页面主体 |
| 22:05 ~ 22:10 | 添加顶部概览卡片(积分 from eb_user + 个人奖金 from wa_users)+ 返回按钮 | 概览卡片 |
| 22:10 ~ 22:15 | 替换 API,快速自测:明细列表、分页、返回跳转 | 自测通过 |
22:15 检查点:积分明细页带 uid 参数可正常展示,概览卡片数据正确 ✅
Phase 5:联调验证 + 提交(22:15 ~ 22:35,20 min)
| 时间 | 任务 | 产出物 |
|---|---|---|
| 22:15 ~ 22:25 | 无 token 全流程走查:订单页 → 用户页 → 点击明细 → 返回 | 流程通过 |
| 22:25 ~ 22:30 | 修复走查发现的问题 | Bug Fix |
| 22:30 ~ 22:35 | 清理 console.log,git commit | 代码提交 |
22:35 完成:全部三个页面开发完成并提交 ✅
3. 极速开发策略
为了在 2 小时内完成,采取以下策略:
- 大量复制-裁剪:不从零编写,直接复制原页面再删减,效率最高
- 跳过样式美化:使用原页面样式,不做额外 UI 调整
- 后端接口先复用:直接调用原有
/admin/接口,免认证改造延后处理 - 数据合并从简:wa_users 字段优先用前端逐行查询方式,性能优化后续迭代
- 测试精简:每个页面只做核心功能冒烟,全量测试用例留给后续回归
4. 关键检查点
| 时间 | 检查项 | 不通过时的应对 |
|---|---|---|
| 20:55 | 免登录链路跑通 | 停下排查 permission.js,这是后续一切的前提 |
| 21:25 | 订单页可展示数据 | 若裁剪受阻,直接用最小化表格(5 列 + 分页) |
| 21:55 | 用户页含 wa_users 字段 | 若合并逻辑复杂,先只展示 CRMEB 字段,wa_users 留 TODO |
| 22:15 | 明细页 uid 传参正常 | 原页面仅 242 行,风险最低 |
| 22:35 | 代码提交 | 即使有小问题也先提交,记录 TODO 后续修复 |