feat: 新增积分外部页面(免认证三页 + 配套基础设施)
前端: - 新增 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>
This commit is contained in:
89
docs/phase4-checkpoint-report.md
Normal file
89
docs/phase4-checkpoint-report.md
Normal file
@@ -0,0 +1,89 @@
|
||||
# Phase 4 检查点报告 — 18:50 自动检查
|
||||
|
||||
> 生成时间:2026-03-30 18:50
|
||||
> 检查范围:`backend-adminend/src`
|
||||
|
||||
---
|
||||
|
||||
## 检查结果汇总
|
||||
|
||||
| # | 检查项 | 状态 | 说明 |
|
||||
|---|--------|------|------|
|
||||
| 1 | 积分明细页面(从 `user/integral/index.vue` 复制并修改) | ❌ **未完成** | `views/integral/external/detail/` 目录不存在,未创建任何外部页面 |
|
||||
| 2 | URL query 参数 `uid` 自动注入搜索参数 | ❌ **未完成** | 外部积分明细页面未创建,无法验证 uid 参数读取 |
|
||||
| 3 | 顶部概览卡片(`eb_user.integral` + `wa_users.selfBonus`) | ❌ **未完成** | 无新增页面,概览卡片不存在 |
|
||||
| 4 | 返回按钮跳回用户积分列表 | ❌ **未完成** | 页面未创建 |
|
||||
| 5 | 分页和时间筛选 | ❌ **未完成** | 页面未创建 |
|
||||
|
||||
---
|
||||
|
||||
## ⚠️ 根因分析
|
||||
|
||||
**Phase 4 的全部 5 项检查均未通过,根本原因是 Phase 1 基础设施仍未搭建。**
|
||||
|
||||
截至本次检查,以下前置依赖均不存在:
|
||||
|
||||
| 前置项 | 状态 |
|
||||
|--------|------|
|
||||
| `src/layout/EmptyLayout.vue` | ❌ 未创建 |
|
||||
| `src/utils/requestNoAuth.js` | ❌ 未创建 |
|
||||
| `src/router/modules/integralExternal.js` | ❌ 未创建 |
|
||||
| `src/api/integralExternal.js` | ❌ 未创建 |
|
||||
| `permission.js` 白名单前缀匹配改造 | ❌ 未修改 |
|
||||
| `router/index.js` 注册 constantRoutes | ❌ 未修改 |
|
||||
|
||||
Phase 1 → Phase 2 → Phase 3 → Phase 4 均为顺序依赖,无法跳过。
|
||||
|
||||
---
|
||||
|
||||
## 源文件就绪情况
|
||||
|
||||
积分明细源页面 `src/views/user/integral/index.vue` 存在(242 行),结构清晰:
|
||||
|
||||
- ✅ 已有 `searchForm.uid` 字段 — 可直接从 `$route.query.uid` 注入
|
||||
- ✅ 已有时间选择器 `daterange` — 分页和时间筛选逻辑可复用
|
||||
- ✅ 已有 `integralListApi` 数据请求 — 需替换为 `requestNoAuth` 版本
|
||||
- ⬜ 需新增:顶部概览卡片(调用用户详情接口获取 `integral` 和 `selfBonus`)
|
||||
- ⬜ 需新增:返回按钮(`this.$router.push('/integral-external/user')`)
|
||||
|
||||
改造量确实很小(~50 行修改),**确认源页面仅 242 行,风险最低**。
|
||||
|
||||
---
|
||||
|
||||
## 能否进入 Phase 5?
|
||||
|
||||
**❌ 不能进入 Phase 5(联调验证 + 提交)。**
|
||||
|
||||
Phase 5 的前提是 Phase 1~4 全部完成。当前连 Phase 1 都未完成。
|
||||
|
||||
---
|
||||
|
||||
## 建议行动
|
||||
|
||||
### 方案 A:快速补救(推荐)
|
||||
|
||||
如果用户仍有时间,建议按以下**压缩顺序**一次性完成 Phase 1 + Phase 4:
|
||||
|
||||
1. **创建 `EmptyLayout.vue`**(1 分钟)
|
||||
2. **创建 `requestNoAuth.js`**(2 分钟)
|
||||
3. **修改 `permission.js` 白名单**(2 分钟)
|
||||
4. **创建路由模块 + 注册 constantRoutes**(3 分钟)
|
||||
5. **复制 `user/integral/index.vue` → 外部积分明细页面**(5 分钟)
|
||||
- 注入 `$route.query.uid`
|
||||
- 替换 API 为免认证版本
|
||||
- 添加概览卡片和返回按钮
|
||||
6. **冒烟测试**(5 分钟)
|
||||
|
||||
预计总耗时:~18 分钟
|
||||
|
||||
### 方案 B:仅完成基础设施
|
||||
|
||||
如果时间紧张,优先完成 Phase 1 基础设施,确保免登录链路畅通,Phase 4 积分明细页面留到下次。
|
||||
|
||||
---
|
||||
|
||||
## 参考文档
|
||||
|
||||
- 开发计划:`docs/integral-pages-schedule.md`
|
||||
- 技术方案:`docs/integral-pages-coding-plan.md`
|
||||
- Phase 1 检查报告:`docs/phase1-checkpoint-report.md`(17:30 生成,全部未通过)
|
||||
Reference in New Issue
Block a user