Code
Hub
Workspaces
Following
Trending
Connect
MCP
copy
Create free account
hub
/
github.com/Pandlagon/IELTS-Studio
/ functions
Functions
952 in github.com/Pandlagon/IELTS-Studio
⨍
Functions
952
◇
Types & classes
177
↓ 1 callers
Method
parseTableBlock
(String block, int passageIndex)
backend/src/main/java/com/ieltsstudio/service/VisualBlockConverter.java:252
↓ 1 callers
Function
parseTags
(tagsJson, type)
frontend/src/stores/exam.js:780
↓ 1 callers
Method
pdfToDataUrls
(byte[] fileBytes)
backend/src/main/java/com/ieltsstudio/service/QwenAiParseService.java:973
↓ 1 callers
Method
physicalDeleteById
(@Param("id") Long id, @Param("userId") Long userId)
backend/src/main/java/com/ieltsstudio/mapper/ExamMapper.java:45
↓ 1 callers
Method
processWordFile
(Long userId, Long bookId, byte[] fileBytes, String filename)
backend/src/main/java/com/ieltsstudio/service/AsyncWordService.java:37
↓ 1 callers
Method
providerName
仅返回 provider 枚举名或 null,避免在 usage record 中暴露 baseUrl / model / API Key
backend/src/main/java/com/ieltsstudio/service/QwenAiParseService.java:604
↓ 1 callers
Method
quickAddWords
POST /words/books/default/quick-add — 快速批量添加单词到默认词书(异步) <p>请求体:{@code { "words": ["apple", "banana", ...] }} <p>后台自动查询释义并保存,接口立即返回处理数量。
backend/src/main/java/com/ieltsstudio/controller/WordBookController.java:194
↓ 1 callers
Method
readJsonMap
(String content)
backend/src/main/java/com/ieltsstudio/service/QwenAiParseService.java:955
↓ 1 callers
Method
recordFailure
记录一条失败写操作审计日志。 <p>调用方应在 catch 块中调用本方法。{@code summary} 可包含异常类名 / 简短消息, 但禁止包含密码/key/token/provider body。</p> <p>写入失败不会抛异常(仅 warn log),避免影响主业务的异常传播。</p
backend/src/main/java/com/ieltsstudio/service/AdminAuditLogService.java:133
↓ 1 callers
Method
refundBuiltin
回滚预扣的 credits:GREATEST 防止越界减为负数
backend/src/main/java/com/ieltsstudio/ai/service/AiUsageGuard.java:188
↓ 1 callers
Method
register
用户注册 <p>注册成功后自动创建默认词书,并直接返回登录态(免去二次登录)。 @param req 注册请求(用户名 + 邮箱 + 密码) @return 包含 token 和 user 信息的 Map @throws RuntimeException 用户名或邮箱已被占用时抛出
backend/src/main/java/com/ieltsstudio/service/AuthService.java:60
↓ 1 callers
Method
removeAllByCollection
(Long collectionId)
backend/src/main/java/com/ieltsstudio/mapper/ExamCollectionItemMapper.java:27
↓ 1 callers
Method
removeByCollectionAndExam
(Long collectionId, Long examId)
backend/src/main/java/com/ieltsstudio/mapper/ExamCollectionItemMapper.java:24
↓ 1 callers
Method
removeInstructionLines
(String passage, StringBuilder extractedInstruction)
backend/src/main/java/com/ieltsstudio/service/AsyncParseService.java:1347
↓ 1 callers
Function
renderPageToCanvas
* Render a single PDF page to an HTMLCanvasElement.
frontend/src/utils/pdfExtract.js:45
↓ 1 callers
Method
renumberHeadingQuestions
Re-number heading matching questions to be sequential.
backend/src/main/java/com/ieltsstudio/service/AiParseService.java:1448
↓ 1 callers
Method
reorderItems
(Long collectionId, List<Long> examIds)
backend/src/main/java/com/ieltsstudio/service/ExamCollectionService.java:99
↓ 1 callers
Method
requireAdmin
防御性 ADMIN 校验 + 精细权限校验(Phase 8C)。 <p>Spring Security 已在路由层做 {@code hasRole("ADMIN")} 拦截, 此处做二次校验防止配置遗漏,并要求精细权限以兼容模式/显式模式规则判断。</p>
backend/src/main/java/com/ieltsstudio/controller/AdminAuditLogController.java:80
↓ 1 callers
Method
resetPassword
重置用户密码。 <p>安全:使用 {@link PasswordEncoder#encode(CharSequence)} 存储 BCrypt 哈希, 不记录明文密码日志,不返回 password。 @param targetUserId 目标用户 ID @param newPassword
backend/src/main/java/com/ieltsstudio/service/AdminUserService.java:225
↓ 1 callers
Method
resolveDeepseek
(Long userId)
backend/src/main/java/com/ieltsstudio/ai/service/AiSettingsService.java:160
↓ 1 callers
Function
resolveIsDark
()
frontend/src/stores/theme.js:21
↓ 1 callers
Method
resolveKeyMode
解析用户当前 keyMode;无设置或为空视为 BUILTIN(与扣费路径回退逻辑一致)
backend/src/main/java/com/ieltsstudio/ai/service/AiUsageQueryService.java:88
↓ 1 callers
Method
resolveUser
解析 USER 模式凭据。任何字段缺失 / 解密失败抛 {@link IllegalStateException}, 异常信息<b>不</b>包含 key 或密文。
backend/src/main/java/com/ieltsstudio/ai/service/AiSettingsService.java:82
↓ 1 callers
Method
resolveVision
(Long userId)
backend/src/main/java/com/ieltsstudio/ai/service/AiSettingsService.java:178
↓ 1 callers
Method
resolveVisionMaxTokens
根据 provider 决定 vision 任务的 maxTokens。 USER 模式下自定义 provider(OPENAI_COMPATIBLE)默认使用 {@link #aiMaxTokens}。
backend/src/main/java/com/ieltsstudio/service/QwenAiParseService.java:579
↓ 1 callers
Method
safeRemaining
计算剩余额度,下限 0,兼容 null 字段
backend/src/main/java/com/ieltsstudio/ai/service/AiUsageQueryService.java:125
↓ 1 callers
Method
sanitize
脱敏:去除 API Key / Authorization / Bearer,并截断到 500 字符 (与 {@code ai_usage_records.error_message} 的 VARCHAR(500) 对齐)。
backend/src/main/java/com/ieltsstudio/ai/service/AiUsageGuard.java:320
↓ 1 callers
Method
saveState
(Long userId, String bookId, Map<String, Object> body)
backend/src/main/java/com/ieltsstudio/service/WordStudyStateService.java:23
↓ 1 callers
Method
segmentContent
(List<String> lines, List<String> passages, Li
backend/src/main/java/com/ieltsstudio/service/FileParseService.java:156
↓ 1 callers
Method
sismember
(String key, String member)
backend/src/main/java/com/ieltsstudio/infra/RedisOps.java:18
↓ 1 callers
Method
splitBySectionMarkers
Split raw text into sections by common IELTS markers. Each returned chunk contains one passage + its questions.
backend/src/main/java/com/ieltsstudio/service/AsyncParseService.java:484
↓ 1 callers
Method
splitLines
(String text)
backend/src/main/java/com/ieltsstudio/service/FileParseService.java:141
↓ 1 callers
Method
startUpload
Kick off async word processing — returns immediately with status "processing".
backend/src/main/java/com/ieltsstudio/service/WordBookService.java:100
↓ 1 callers
Method
stripCodeFence
(String content)
backend/src/main/java/com/ieltsstudio/service/QwenAiParseService.java:586
↓ 1 callers
Method
stripVisualBlocksFromText
Remove visual/table blocks and inline chart/table lines from question text to keep prompt clean.
backend/src/main/java/com/ieltsstudio/service/QwenAiParseService.java:915
↓ 1 callers
Method
summarize
异常摘要:类名 + 简短 message,后续由 {@link #sanitize} 脱敏
backend/src/main/java/com/ieltsstudio/ai/service/AiUsageGuard.java:297
↓ 1 callers
Function
switchBook
(bookId)
frontend/src/stores/word.js:545
↓ 1 callers
Method
toJpegBytes
(BufferedImage image)
backend/src/main/java/com/ieltsstudio/service/QwenAiParseService.java:993
↓ 1 callers
Method
updateCollection
(Long userId, Long id, String title, String description)
backend/src/main/java/com/ieltsstudio/service/ExamCollectionService.java:46
↓ 1 callers
Method
updateExam
更新试卷信息
backend/src/main/java/com/ieltsstudio/service/ExamService.java:81
↓ 1 callers
Function
updateParsedExam
(id, examData, questions)
frontend/src/stores/exam.js:629
↓ 1 callers
Method
uploadExamImages
(Long userId, MultipartFile[] files, String title, String type, Integer durat
backend/src/main/java/com/ieltsstudio/service/ExamService.java:130
↓ 1 callers
Method
uploadFile
(byte[] fileBytes, String filename)
backend/src/main/java/com/ieltsstudio/service/LlamaParseService.java:69
↓ 1 callers
Method
validateBaseUrl
(String baseUrl)
backend/src/main/java/com/ieltsstudio/service/UserAiSettingsService.java:224
↓ 1 callers
Method
validateToken
校验 Token 是否有效(签名正确且未过期) @return true 表示 Token 可用
backend/src/main/java/com/ieltsstudio/util/JwtUtil.java:113
↓ 1 callers
Method
workflowStep1
Workflow Step 1 (legacy combined): Extract passages and question group skeleton (no answers).
backend/src/main/java/com/ieltsstudio/service/AiParseService.java:743
↓ 1 callers
Method
workflowStep1A
Workflow Step 1A: Extract passages only (focused, short prompt).
backend/src/main/java/com/ieltsstudio/service/AiParseService.java:778
Method
AiApiKeyCrypto
Spring 构造注入:从 {@code app.ai.key-encryption-secret} 读取密钥, 缺失时回退到 {@link #FALLBACK_DEV_SECRET}。 @param secret 配置中的加密密钥(可为空)
backend/src/main/java/com/ieltsstudio/ai/util/AiApiKeyCrypto.java:75
Method
AiFeature
(AiTaskType taskType, int builtinCost)
backend/src/main/java/com/ieltsstudio/ai/AiFeature.java:50
Method
AiLogSanitizer
()
backend/src/main/java/com/ieltsstudio/ai/util/AiLogSanitizer.java:34
Method
AiParseService
(ObjectMapper objectMapper, AiSettingsService aiSettingsService,
backend/src/main/java/com/ieltsstudio/service/AiParseService.java:528
Method
AiUsageGuard
构造函数注入 {@link ObjectProvider},使 {@link AiRedisRateLimiter} 成为可选依赖。 <p>当 {@code app.redis.enabled=false} 时 {@link AiRedisRateLimiter} bean 不存在, {@code
backend/src/main/java/com/ieltsstudio/ai/service/AiUsageGuard.java:78
Method
ClozeService
(ObjectMapper objectMapper, AiSettingsService aiSettingsService,
backend/src/main/java/com/ieltsstudio/service/ClozeService.java:48
Method
Datum
(String label, double value, String unit)
backend/src/main/java/com/ieltsstudio/service/VisualBlockConverter.java:354
Method
RateWindow
(long minute)
backend/src/main/java/com/ieltsstudio/ai/service/AiUsageGuard.java:346
Method
RedisOpsRedisImpl
(RedisTemplate<String, Object> redisTemplate)
backend/src/main/java/com/ieltsstudio/infra/RedisOpsRedisImpl.java:13
Function
addExam
(exam)
frontend/src/stores/exam.js:595
Method
addExam
POST /exam-collections/{id}/exams — 添加试卷到试卷集
backend/src/main/java/com/ieltsstudio/controller/ExamCollectionController.java:77
Method
addExam
(Long collectionId, Long examId)
backend/src/main/java/com/ieltsstudio/service/ExamCollectionService.java:80
Function
addManualWord
(entry)
frontend/src/stores/word.js:507
Function
addPendingExam
(id, title, type, duration = 60)
frontend/src/stores/exam.js:613
Method
addToDefault
POST /words/books/default/entries — 添加单词到默认词书 <p>请求体:{@code { "word": "单词", "meaning": "释义", "example": "例句(可选)" }}
backend/src/main/java/com/ieltsstudio/controller/WordBookController.java:116
Function
addToDefaultBook
(entry)
frontend/src/stores/word.js:520
Method
adminBootstrapRunner
( @Value("${app.init-admin.username:}") String username, @Value("${app.init-admin.emai
backend/src/main/java/com/ieltsstudio/config/AdminBootstrapConfig.java:48
Method
adminShouldHaveAllPermissionsWhenExplicitModeDisabled
()
backend/src/test/java/com/ieltsstudio/service/AdminPermissionServiceTest.java:50
Method
adminShouldUseExplicitPermissionsWhenModeEnabled
()
backend/src/test/java/com/ieltsstudio/service/AdminPermissionServiceTest.java:90
Method
aiChat
POST /exams/ai-chat — AI assistant chat based on exam context body: { "examContext": "...", "question": "..." }
backend/src/main/java/com/ieltsstudio/controller/ExamController.java:215
Method
aiChatShouldBeTextCost1
()
backend/src/test/java/com/ieltsstudio/ai/AiFeatureTest.java:21
Method
asyncParseExecutor
()
backend/src/main/java/com/ieltsstudio/config/AsyncConfig.java:20
Method
avgBandByUserId
(Long userId)
backend/src/main/java/com/ieltsstudio/mapper/ExamRecordMapper.java:23
Method
builtinMarkFailureShouldRefundAndWriteFailedRecord
()
backend/src/test/java/com/ieltsstudio/ai/service/AiUsageGuardTest.java:182
Method
builtinMarkSuccessShouldWriteSuccessRecord
()
backend/src/test/java/com/ieltsstudio/ai/service/AiUsageGuardTest.java:161
Method
builtinModeShouldResolveSiteConfig
()
backend/src/test/java/com/ieltsstudio/ai/service/AiSettingsServiceUserModeTest.java:68
Method
builtinRejectedRecordShouldIncludeProvider
()
backend/src/test/java/com/ieltsstudio/ai/service/AiUsageGuardTest.java:281
Method
builtinShouldCreateQuotaAndReserveCredits
()
backend/src/test/java/com/ieltsstudio/ai/service/AiUsageGuardTest.java:64
Method
builtinShouldRejectWhenCreditsInsufficient
()
backend/src/test/java/com/ieltsstudio/ai/service/AiUsageGuardTest.java:132
Method
builtinShouldReloadQuotaWhenInsertedIdNotReturned
()
backend/src/test/java/com/ieltsstudio/ai/service/AiUsageGuardTest.java:92
Method
builtinShouldThrowWhenInsertedQuotaCannotBeReloaded
()
backend/src/test/java/com/ieltsstudio/ai/service/AiUsageGuardTest.java:116
Method
cacheManager
(RedisConnectionFactory connectionFactory, GenericJackson2JsonRedisSerial
backend/src/main/java/com/ieltsstudio/config/RedisConfig.java:54
Method
cacheManager
()
backend/src/main/java/com/ieltsstudio/config/RedisConfig.java:81
Method
changePassword
PUT /users/me/password — 修改密码 <p>请求体:{@code { "oldPassword": "旧密码", "newPassword": "新密码(至少8位)" }} <p>需要先验证旧密码正确后,才允许设置新密码。
backend/src/main/java/com/ieltsstudio/controller/UserController.java:70
Method
chatFailureShouldMarkFailureAndNotLeakKey
()
backend/src/test/java/com/ieltsstudio/service/AiParseServiceTextProviderTest.java:125
Method
chatShouldPostOpenAiCompatibleRequestToLocalServer
()
backend/src/test/java/com/ieltsstudio/ai/client/OpenAiCompatibleClientLocalServerTest.java:106
Method
chatShouldRejectEmptyQuestion
()
backend/src/test/java/com/ieltsstudio/service/AiParseServiceTextProviderTest.java:229
Method
chatShouldRejectOverlongQuestion
()
backend/src/test/java/com/ieltsstudio/service/AiParseServiceTextProviderTest.java:239
Method
chatShouldThrowSanitizedErrorWhenProviderReturnsError
()
backend/src/test/java/com/ieltsstudio/ai/client/OpenAiCompatibleClientLocalServerTest.java:178
Method
chatShouldThrowWhenApiKeyEmpty
()
backend/src/test/java/com/ieltsstudio/ai/client/OpenAiCompatibleClientTest.java:34
Method
chatShouldThrowWhenApiKeyNull
()
backend/src/test/java/com/ieltsstudio/ai/client/OpenAiCompatibleClientTest.java:45
Method
chatShouldThrowWhenCredentialsNull
()
backend/src/test/java/com/ieltsstudio/ai/client/OpenAiCompatibleClientTest.java:26
Method
chatShouldThrowWhenRequestNull
()
backend/src/test/java/com/ieltsstudio/ai/client/OpenAiCompatibleClientTest.java:21
Method
chatShouldUseMaxCompletionTokensForMimo
()
backend/src/test/java/com/ieltsstudio/ai/client/OpenAiCompatibleClientLocalServerTest.java:150
Method
checkCloze
POST /words/cloze/check — AI 批改完形填空 <p>请求体:{@code { "passage": "...", "blanks": [...], "userAnswers": {"1":"A","2":"C"} }}
backend/src/main/java/com/ieltsstudio/controller/WordBookController.java:249
Method
checkShouldHandleMissingOptionsSafely
()
backend/src/test/java/com/ieltsstudio/service/ClozeServiceProviderTest.java:246
Method
checkShouldMarkFailureWhenClientThrows
()
backend/src/test/java/com/ieltsstudio/service/ClozeServiceProviderTest.java:170
Method
checkShouldRejectEmptyBlanks
()
backend/src/test/java/com/ieltsstudio/service/ClozeServiceProviderTest.java:226
Method
checkShouldRejectEmptyPassage
()
backend/src/test/java/com/ieltsstudio/service/ClozeServiceProviderTest.java:208
Method
checkShouldRejectEmptyUserAnswers
()
backend/src/test/java/com/ieltsstudio/service/ClozeServiceProviderTest.java:234
Method
checkShouldRejectOverlongPassage
()
backend/src/test/java/com/ieltsstudio/service/ClozeServiceProviderTest.java:218
Method
checkShouldUseTextCredentialsAndMarkSuccess
()
backend/src/test/java/com/ieltsstudio/service/ClozeServiceProviderTest.java:150
Function
checkinToday
()
frontend/src/api/checkin.js:14
← previous
next →
401–500 of 952, ranked by callers