# 更改文档 — 2026-07-30
日期: 2026-07-30
编译: ✓ BUILD SUCCESS (JDK 21)
范围: 7 文件修改
一、分析模块 — 事件类型切换
新增 GET /api/v1/analytics/event-types
- AnalyticsController.java — 新增端点、添加 java.util.List import
- AnalyticsService.java — getEventTypes() 方法,返回所有 distinct 事件类型
- UserEventRepository.java — indDistinctEventTypes() JPQL 查询
已有 GET /events?eventType=xxx 过滤保持不变。前端调用 /event-types 获取选项列表渲染切换控件。
二、JWT 鉴权解析(不强鉴权)
JwtAuthFilter.java — doFilterInternal
- 从 Authorization: Bearer header 提取 JWT,jwtUtil.getSubject() 解析
- 校验通过 → SecurityContextHolder.getContext().setAuthentication()
- 无 token 或解析失败 → 直接放行
- inally 中 SecurityContextHolder.clearContext() 防泄漏
- AnalyticsController.getCurrentUserKey() 无需改动,现在能正确获取 token 对应用户
三、快捷提问 — SQL 层 LIMIT + 管理端分页
QuickAskRepository.java
- indByIsActiveTrueOrderBySortOrderAscIdAsc() 改为 @Query + Pageable,SQL 层加 LIMIT
- 添加 Page import
- indAllByOrderBySortOrderAscIdAsc() 同样改为 Pageable 分页版本
AdminKnowledgeService.java
- listQuickAsks() — 去掉 subList 截断,传 PageRequest.of(0,6) 在 SQL 层限制
- listAllQuickAsks() — 改为 listAllQuickAsks(page, pageSize),返回 Map (items/total/page/page_size/total_pages)
-
eorderQuickAsks() — sort_order → sortOrder(camelCase)
- 添加 PageRequest import
AdminKnowledgeController.java
- GET /quick-asks 添加 page (默认1) 和 pageSize (默认20) 参数
四、编码规范
全文件 UTF-8 without BOM,换行 LF。后续编辑遵循此约定。