MCPcopy Create free account

hub / github.com/Pandlagon/IELTS-Studio / functions

Functions952 in github.com/Pandlagon/IELTS-Studio

↓ 1 callersMethodcorsConfigurationSource
CORS 跨域配置 <p>仅允许本地开发地址(localhost / 127.0.0.1 / IPv6 回环)。 <strong>生产环境部署时,请将此处替换为你的实际前端域名。</strong>
backend/src/main/java/com/ieltsstudio/config/SecurityConfig.java:96
↓ 1 callersMethodcountByUserId
(Long userId)
backend/src/main/java/com/ieltsstudio/mapper/StudyCheckinMapper.java:17
↓ 1 callersMethodcountByUserIdFiltered
(@Param("userId") Long userId, @Param("type") String type,
backend/src/main/java/com/ieltsstudio/mapper/ExamMapper.java:30
↓ 1 callersMethodcreateCollection
(Long userId, String title, String description)
backend/src/main/java/com/ieltsstudio/service/ExamCollectionService.java:32
↓ 1 callersFunctioncreateDefaultReviewState
()
frontend/src/stores/word.js:25
↓ 1 callersMethodcurrentPeriod
当前自然周:周一 00:00:00 到下周一 00:00:00(基于服务器默认时区)
backend/src/main/java/com/ieltsstudio/ai/service/AiUsageQueryService.java:132
↓ 1 callersMethoddeleteCollection
(Long userId, Long id)
backend/src/main/java/com/ieltsstudio/service/ExamCollectionService.java:55
↓ 1 callersMethodderiveKey
由 secret 派生 AES-256 密钥(SHA-256 → 32 字节)。
backend/src/main/java/com/ieltsstudio/ai/util/AiApiKeyCrypto.java:171
↓ 1 callersMethoddetectParagraphLetters
Detect lettered paragraphs (A, B, C, ...) from passages and raw text.
backend/src/main/java/com/ieltsstudio/service/AiParseService.java:1413
↓ 1 callersMethoddisable
禁用用户(deleted = 1)。 <p>权限:{@link AdminPermission#ADMIN_USERS_MANAGE}</p> <p>保护:不能禁用自己、不能禁用最后一个 ADMIN。</p>
backend/src/main/java/com/ieltsstudio/controller/AdminUserController.java:147
↓ 1 callersMethodensureExampleTranslationColumn
()
backend/src/main/java/com/ieltsstudio/config/DatabaseMigrationRunner.java:43
↓ 1 callersMethodensureFillHasBlank
(String questionText, String answer)
backend/src/main/java/com/ieltsstudio/service/AsyncParseService.java:1308
↓ 1 callersMethodensureHttpScheme
(String baseUrl, com.ieltsstudio.ai.AiProviderType provider)
backend/src/main/java/com/ieltsstudio/ai/client/OpenAiCompatibleClient.java:185
↓ 1 callersMethodensureRootMemoryColumn
()
backend/src/main/java/com/ieltsstudio/config/DatabaseMigrationRunner.java:23
↓ 1 callersMethodensureSequentialQuestionNumbers
(List<Map<String, Object>> questions)
backend/src/main/java/com/ieltsstudio/service/AsyncParseService.java:1292
↓ 1 callersMethodensureWordStudyStatesTable
()
backend/src/main/java/com/ieltsstudio/config/DatabaseMigrationRunner.java:63
↓ 1 callersMethodextractAnswerKey
(String text)
backend/src/main/java/com/ieltsstudio/service/FileParseService.java:112
↓ 1 callersMethodextractClientIp
提取客户端真实 IP。 <p>优先读 {@code X-Forwarded-For} 第一个 IP(反向代理场景), 其次 {@code X-Real-IP},最后 {@code request.getRemoteAddr()}。</p>
backend/src/main/java/com/ieltsstudio/service/AdminAuditLogService.java:268
↓ 1 callersMethodextractFromDoc
(InputStream is)
backend/src/main/java/com/ieltsstudio/service/FileParseService.java:67
↓ 1 callersMethodextractFromDocx
(InputStream is)
backend/src/main/java/com/ieltsstudio/service/FileParseService.java:57
↓ 1 callersMethodextractFromPassage
(String text, int passageIndex, List<Map<String, Object>> charts,
backend/src/main/java/com/ieltsstudio/service/VisualBlockConverter.java:35
↓ 1 callersMethodextractFromPdf
(InputStream is)
backend/src/main/java/com/ieltsstudio/service/FileParseService.java:44
↓ 1 callersMethodextractHeadingDescriptions
Extract heading list from raw text, e.g.: i Avoiding an overcrowded centre ii A successful exercise in people power Returns map like {"i": "A
backend/src/main/java/com/ieltsstudio/service/AiParseService.java:1271
↓ 1 callersMethodextractHeadingsWithAi
Phase 5C-3:使用 AI 抽取 heading 列表的 fallback。 <p>流程:{@code AiSettingsService.resolve(userId, TEXT)} → {@code AiUsageGuard.checkBeforeCall(userId, HEADING
backend/src/main/java/com/ieltsstudio/service/AiParseService.java:1492
↓ 1 callersMethodextractInstructionLines
(String text, StringBuilder out)
backend/src/main/java/com/ieltsstudio/service/AsyncParseService.java:1335
↓ 1 callersMethodextractPassageFromRawText
Extract the reading passage from raw text by stripping question sections. Looks for where questions start (e.g. "Questions 1-8", numbered items like "
backend/src/main/java/com/ieltsstudio/service/AsyncParseService.java:1582
↓ 1 callersMethodextractSharedOptionsFromQuestions
Extract shared options from question explanations. AI often writes "Option E: 'Without rainforests...'" in the explanation.
backend/src/main/java/com/ieltsstudio/service/AsyncParseService.java:1435
↓ 1 callersMethodextractSharedOptionsFromText
(List<String> texts)
backend/src/main/java/com/ieltsstudio/service/AsyncParseService.java:1414
↓ 1 callersMethodextractToken
从请求头 Authorization 中提取 Bearer Token @param request HTTP 请求 @return Token 字符串;若不存在或格式不符则返回 null
backend/src/main/java/com/ieltsstudio/security/JwtAuthenticationFilter.java:75
↓ 1 callersMethodextractWordLimit
(String questionText)
backend/src/main/java/com/ieltsstudio/service/AsyncParseService.java:1381
↓ 1 callersMethodfilterQuestionContent
Filter out question-like content from passage text. This removes lines that look like questions to prevent mixing article and questions.
backend/src/main/java/com/ieltsstudio/service/QwenAiParseService.java:652
↓ 1 callersMethodfindBestMatch
Find the substring in `text` that best matches `target` using word-overlap scoring. Returns the best matching window of similar word count, or null if
backend/src/main/java/com/ieltsstudio/service/AiParseService.java:1577
↓ 1 callersMethodfindByBookId
(Long bookId)
backend/src/main/java/com/ieltsstudio/mapper/WordEntryMapper.java:13
↓ 1 callersMethodfindByIdWithExam
(Long id)
backend/src/main/java/com/ieltsstudio/mapper/ExamRecordMapper.java:18
↓ 1 callersMethodfindByUserId
(Long userId)
backend/src/main/java/com/ieltsstudio/service/UserAiSettingsService.java:134
↓ 1 callersMethodfindByUserIdPaged
(@Param("userId") Long userId, @Param("type") String type,
backend/src/main/java/com/ieltsstudio/mapper/ExamMapper.java:18
↓ 1 callersMethodfindDatesFrom
(Long userId, LocalDate fromDate)
backend/src/main/java/com/ieltsstudio/mapper/StudyCheckinMapper.java:23
↓ 1 callersMethodfindDefaultBook
(Long userId)
backend/src/main/java/com/ieltsstudio/mapper/WordBookMapper.java:16
↓ 1 callersMethodfindUnmasteredByUserId
(Long userId)
backend/src/main/java/com/ieltsstudio/mapper/ErrorBookMapper.java:14
↓ 1 callersMethodfindUserSettings
(Long userId)
backend/src/main/java/com/ieltsstudio/ai/service/AiSettingsService.java:72
↓ 1 callersMethodfindWordsByBookId
(Long bookId)
backend/src/main/java/com/ieltsstudio/mapper/WordEntryMapper.java:19
↓ 1 callersMethodgenerateTags
Generate tags based on exam type, title, and question content. Includes: type label, Academic/General, Task 1/Task 2, Cambridge source, etc.
backend/src/main/java/com/ieltsstudio/service/AsyncParseService.java:1530
↓ 1 callersMethodgenerateToken
生成 JWT Token @param userId 用户 ID @param username 用户名 @param role 用户角色 @return 签名后的 JWT 字符串
backend/src/main/java/com/ieltsstudio/util/JwtUtil.java:51
↓ 1 callersFunctiongetAccuracyFactor
(accuracy)
frontend/src/stores/word.js:69
↓ 1 callersMethodgetCollectionDetail
(Long collectionId)
backend/src/main/java/com/ieltsstudio/service/ExamCollectionService.java:70
↓ 1 callersFunctiongetDueScore
(state, now)
frontend/src/stores/word.js:76
↓ 1 callersMethodgetExamById
根据 ID 获取试卷详情
backend/src/main/java/com/ieltsstudio/service/ExamService.java:71
↓ 1 callersMethodgetExamQuestions
获取试卷下的所有题目
backend/src/main/java/com/ieltsstudio/service/ExamService.java:76
↓ 1 callersMethodgetJobStatus
(String jobId)
backend/src/main/java/com/ieltsstudio/service/LlamaParseService.java:102
↓ 1 callersMethodgetMaxSortOrder
(Long collectionId)
backend/src/main/java/com/ieltsstudio/mapper/ExamCollectionItemMapper.java:30
↓ 1 callersMethodgetOrCreateCurrentQuota
获取或创建当前周期的 quota 行。 <p>并发插入会因 unique key (user_id, period_start) 冲突,捕获后重新查询。</p>
backend/src/main/java/com/ieltsstudio/ai/service/AiUsageGuard.java:203
↓ 1 callersMethodgetProfile
获取当前用户个人信息 @param userId 用户 ID(从 JWT Token 解析) @return 用户信息 Map(不含密码)
backend/src/main/java/com/ieltsstudio/service/AuthService.java:89
↓ 1 callersMethodgetRecentDates
(Long userId, int days)
backend/src/main/java/com/ieltsstudio/service/StudyCheckinService.java:74
↓ 1 callersMethodgetRecordById
获取单次考试记录详情(含 AI 写作反馈) @param recordId 记录 ID @param userId 当前用户 ID(用于鉴权,只能查自己的记录) @return 记录详情 Map;记录不存在或无权限时返回 null
backend/src/main/java/com/ieltsstudio/service/ExamService.java:274
↓ 1 callersMethodgetResult
(String jobId)
backend/src/main/java/com/ieltsstudio/service/LlamaParseService.java:114
↓ 1 callersFunctiongetReviewPriority
(state, now)
frontend/src/stores/word.js:86
↓ 1 callersFunctiongetSpeedFactor
(reactionMs)
frontend/src/stores/word.js:61
↓ 1 callersMethodgetState
(Long userId, String bookId)
backend/src/main/java/com/ieltsstudio/service/WordStudyStateService.java:18
↓ 1 callersFunctiongetSystemDark
()
frontend/src/stores/theme.js:17
↓ 1 callersMethodgetUser
查询单个用户详情(包含已禁用用户)。 @param id 用户 ID @return 用户 DTO(不包含 password) @throws RuntimeException 用户不存在时
backend/src/main/java/com/ieltsstudio/service/AdminUserService.java:137
↓ 1 callersMethodgetUserBooks
(Long userId)
backend/src/main/java/com/ieltsstudio/service/WordBookService.java:44
↓ 1 callersMethodgetUserCollections
(Long userId)
backend/src/main/java/com/ieltsstudio/service/ExamCollectionService.java:24
↓ 1 callersMethodgetUserErrorBook
获取用户未掌握的错题列表
backend/src/main/java/com/ieltsstudio/service/ExamService.java:408
↓ 1 callersMethodgetUserExamsPaged
分页获取试卷列表(支持按类型、关键词筛选)
backend/src/main/java/com/ieltsstudio/service/ExamService.java:54
↓ 1 callersMethodgetUserHistory
获取用户所有的考试历史记录
backend/src/main/java/com/ieltsstudio/service/ExamService.java:403
↓ 1 callersMethodhandleMultiSection
(Long userId, Long examId, String text)
backend/src/main/java/com/ieltsstudio/service/AsyncParseService.java:505
↓ 1 callersMethodhgetAll
(String key)
backend/src/main/java/com/ieltsstudio/infra/RedisOps.java:14
↓ 1 callersMethodhsetAll
(String key, Map<String, Object> map)
backend/src/main/java/com/ieltsstudio/infra/RedisOps.java:12
↓ 1 callersMethodinsertBatch
(List<ErrorBook> list)
backend/src/main/java/com/ieltsstudio/mapper/ErrorBookMapper.java:20
↓ 1 callersMethodisConfigured
()
backend/src/main/java/com/ieltsstudio/service/LlamaParseService.java:37
↓ 1 callersMethodisLetterOnlyOptions
(Object opts)
backend/src/main/java/com/ieltsstudio/service/AiParseService.java:1087
↓ 1 callersMethodisTokenExpired
判断 Token 是否已过期 @return true 表示已过期或解析失败
backend/src/main/java/com/ieltsstudio/util/JwtUtil.java:100
↓ 1 callersMethodisValid
判断字符串是否为合法的 {@link AdminPermission} 枚举名。 @param value 待校验的字符串 @return true=合法权限值;false=非法或 null
backend/src/main/java/com/ieltsstudio/entity/AdminPermission.java:47
↓ 1 callersMethodlistAllPermissions
列出所有合法权限枚举名(按 {@link AdminPermission#values()} 顺序)。
backend/src/main/java/com/ieltsstudio/service/AdminPermissionService.java:57
↓ 1 callersMethodlistPresets
列出所有 preset(含自定义模板)。
backend/src/main/java/com/ieltsstudio/ai/service/AiProviderRegistry.java:107
↓ 1 callersFunctionloadPdfjs
()
frontend/src/utils/pdfExtract.js:4
↓ 1 callersMethodloadRecentRecords
查询最近 {@link #RECENT_RECORD_LIMIT} 条 usage records,按 createdAt 倒序
backend/src/main/java/com/ieltsstudio/ai/service/AiUsageQueryService.java:99
↓ 1 callersMethodlogin
用户登录 <p>支持使用用户名或邮箱登录,密码使用 BCrypt 比对。 @param req 登录请求(用户名/邮箱 + 密码) @return 包含 token 和 user 信息的 Map @throws RuntimeException 用户不存在或密码错误时抛出
backend/src/main/java/com/ieltsstudio/service/AuthService.java:39
↓ 1 callersFunctionmarkKnown
(payload)
frontend/src/stores/word.js:601
↓ 1 callersFunctionmarkUnknown
(payload)
frontend/src/stores/word.js:615
↓ 1 callersMethodmimoUserCreds
()
backend/src/test/java/com/ieltsstudio/service/QwenAiParseServiceProviderTest.java:82
↓ 1 callersFunctionmockLogin
* Mock 登录:从 localStorage 的模拟用户列表中匹配账号密码
frontend/src/api/auth.js:18
↓ 1 callersFunctionmockRegister
* Mock 注册:将新用户存入 localStorage 的模拟用户列表
frontend/src/api/auth.js:31
↓ 1 callersFunctionnextAfterCurrent
(candidates, base, currentId)
frontend/src/stores/word.js:119
↓ 1 callersMethodnormalizeBaseUrl
(String baseUrl)
backend/src/main/java/com/ieltsstudio/ai/client/OpenAiCompatibleClient.java:174
↓ 1 callersMethodnormalizeParsedResult
(Map<String, Object> parsed)
backend/src/main/java/com/ieltsstudio/service/QwenAiParseService.java:608
↓ 1 callersMethodnormalizeReadingInstructionsAndSplit
(Map<String, Object> data)
backend/src/main/java/com/ieltsstudio/service/AsyncParseService.java:1228
↓ 1 callersFunctionnormalizeText
(text)
frontend/src/stores/exam.js:76
↓ 1 callersFunctionocrImages
(files, onProgress)
frontend/src/utils/pdfExtract.js:24
↓ 1 callersFunctionocrPdf
* OCR all pages of a loaded pdf.js document using tesseract.js. * @param {PDFDocumentProxy} pdf * @param {function} onProgress optional callback(pa
frontend/src/utils/pdfExtract.js:59
↓ 1 callersMethodopenAiResponseJson
构造 OpenAI-compatible 响应:{"choices":[{"message":{"content":"<content>"}}]}
backend/src/test/java/com/ieltsstudio/service/AiParseServiceLocalProviderTest.java:74
↓ 1 callersMethodopenAiResponseJson
构造 OpenAI-compatible 响应:{"choices":[{"message":{"content":"<content>"}}]}
backend/src/test/java/com/ieltsstudio/service/QwenAiParseServiceLocalProviderTest.java:79
↓ 1 callersMethodparseInlineOptionString
(String optionsText)
backend/src/main/java/com/ieltsstudio/service/AiParseService.java:1031
↓ 1 callersMethodparseKeyMode
(String keyMode)
backend/src/main/java/com/ieltsstudio/service/UserAiSettingsService.java:232
↓ 1 callersMethodparseMarkdownRow
(String line)
backend/src/main/java/com/ieltsstudio/service/VisualBlockConverter.java:295
↓ 1 callersFunctionparseOptionItem
(item)
frontend/src/stores/exam.js:66
↓ 1 callersMethodparseOptionsTextToMap
Parse a multi-line string of options in "A: text\nB: text\n..." or "A text\nB text\n..." format into a map of letter -> description text.
backend/src/main/java/com/ieltsstudio/service/AsyncParseService.java:1612
↓ 1 callersMethodparseProvider
(String provider)
backend/src/main/java/com/ieltsstudio/service/UserAiSettingsService.java:243
↓ 1 callersMethodparseStatus
将 status 参数映射为 deleted 字段值。 <ul> <li>null/空/ALL → null(不过滤)</li> <li>ACTIVE → 0</li> <li>DISABLED → 1</li> <li>其他 → 抛 IllegalArgumentExceptio
backend/src/main/java/com/ieltsstudio/service/AdminUserService.java:258
↓ 1 callersMethodparseStatus
(String status)
backend/src/main/java/com/ieltsstudio/service/AdminQuotaService.java:238
← previousnext →301–400 of 952, ranked by callers