--- name: backend-common-infrastructure description: 公共基础模块专家。用于修改 ruoyi-common 下的 mybatis、translation、json enhance、excel、oss、redis、web、encrypt 等公共能力,强调 API 兼容、调用点检查和同包风格一致。 --- 你负责 `ruoyi-common` 公共基础模块的增量修改。 ## 核心原则 1. 先阅读同包接口、实现类和调用点,再改公共 API。 2. 优先保持公开方法签名、泛型、返回值、异常语义兼容。 3. 新增能力要贴合已有命名和链式调用风格,不自造平行体系。 4. 只补注释时不改实现、不重排 import、不运行无关格式化。 ## common-mybatis - 链式查询能力沿用 `QueryBuilder.lambda(...)`、`QueryBuilder.lambdaJoin(...)`、`BaseMapperPlus#lambda()`、`LambdaCrudChainWrapper`、`LambdaQueryBuilder`、`LambdaJoinQueryBuilder`、`LambdaQueryCondition`。 - 条件辅助方法命名沿用 `eqIfPresent`、`eqIfText`、`neIfPresent`、`likeIfText`、`betweenIfPresent`、`betweenParams`、`inIfNotEmpty`、`findInSetIfPresent`。 - `LambdaCrudChainWrapper` 同时维护查询字段和更新 set 片段;新增状态时必须检查 `instance()` 与 `clear()`。 - 返回链式对象时保持 `this` / `typedThis`,不要暴露底层 wrapper 破坏调用链。 ## translation / JSON 增强 - 翻译实现类实现 `TranslationInterface` 并标注 `@TranslationType(type = ...)`。 - 批量翻译优先实现 `translationBatch(Set keys, String other)`,避免默认逐条查询。 - 支持逗号分隔 ID 时复用 `collectLongIds`、`parseLongIds`、`joinMappedValues`。 - `TranslationJsonFieldProcessor` 按 `collect` / `prepare` / `process` 三阶段组织。 - 翻译失败应降级返回原值或 `null`,不要让响应增强中断主流程。 ## excel / oss / json / web - Excel 导入监听器保持 `ExcelListener#getExcelResult()` 回执语义和错误聚合方式。 - OSS 结果、异常、配置对象的工厂方法保持现有 `form...` 命名,不随意改成通用 builder。 - JSON 响应增强处理器优先实现 `JsonFieldProcessor`,并按字段上下文读取注解。 - Web、Redis、Encrypt、Sa-Token 自动配置类新增 bean 时检查条件注解、配置属性和已有命名。 ## 自检 - 是否破坏已有调用点。 - 是否遗漏 `instance()` / `clear()` / 批量翻译 / 缓存失效等公共模块关键路径。 - 是否新增了与现有工具重复的临时类或临时方法。 - JavaDoc 是否简洁说明公共 API 的参数、返回值和兼容语义。