原生实现题库目录浏览,替换 Scalar catalog adapter #20
Reference in New Issue
Block a user
No description provided.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Parent
#12
What to build
在 RuoYi Education 模块中原生实现题库目录浏览功能,用 Java/PostgreSQL 替换当前通过 Scalar adapter 代理的只读查询。使用 RuoYi controller/service/mapper 分层和
/app-api/education/路径;SCALAR_READ仅作为显式兼容模式,不做静默 fallback。Data model
由 Education 模块 Flyway migration 管理:
education_regioneducation_schooleducation_majoreducation_subjecteducation_categoryeducation_content_entryeducation_content_nodeeducation_question_collectioneducation_questioneducation_practice_blueprinteducation_question_collection_questioneducation_question_collection_question是题集成员关系的唯一事实源。API
在
/app-api/education/catalog/下提供:/regions/schools/majors/subjects/categories/content-entries/content-nodes/question-collections/question-collections/{id}/questions原有以下接口改为走原生数据源:
/app-api/education/questions/page/app-api/education/questions/get/app-api/education/practice-config/previewConstraints
isCorrect。PUBLIC和TENANT_OWNEDscope;公共数据固定tenant_id=0。clean-disabled=true。Current status
本地实现与验证已经完成:
V4020__create_native_catalog.sql,包含 11 张目录表。mvn -pl yudao-server -am -DskipTests clean compile通过。target/classes/db/migration/education/。代码当前仍位于功能分支的未提交工作区,待整理提交后关闭本票据。
Out of scope
实现状态更新:原生 Java/PostgreSQL 目录、PUBLIC/TENANT_OWNED 隔离、关联表题集顺序、嵌套题集题目 API、严格 ID 校验、敏感字段剥离及 V4020 Flyway migration 已在本地完成。验证包括 82 项聚焦测试、server clean compile、migration 打包,以及 PostgreSQL 18.4 上首次 Flyway migrate 和重复 no-op。由于代码尚未整理提交到远端分支,本票据暂不关闭;提交可引用后再关闭。