# 更改文档 — 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**。后续编辑遵循此约定。