本文档用于给出 yunyu-server 当前已经真实落地的后端模块地图。
目标是让开发者、AI agent 和后续维护者在查看目录时,不需要在多篇文档之间来回拼接,就能快速回答以下问题:
- 现在后端到底有哪些业务模块。
- 每个模块当前有哪些接口面。
- 哪些模块是资源模块,哪些模块是站点聚合、系统引导或共享支撑模块。
- 某个功能大致应该去哪个模块下继续找。
本文档只描述“当前真实落地结构”,不负责讨论历史演进过程。
本文档重点回答:
- 当前后端模块到底有哪些。
- 某个业务域现在有哪些接口面已经真实存在。
- 查代码时应该优先从哪个模块入口开始。
本文档不负责:
- 解释为什么会从旧结构迁移到现在这套结构。
- 约束未来新增代码的详细放置规则。
- 说明基础依赖、基础设施包和安全包的启动骨架。
相关文档建议:
- 目录重构背景:参考 06-后端模块目录重构方案.md
- 新增代码落位规则:参考 07-后端目录约束规范.md
- 基础项目结构:参考 01-后端结构与依赖说明.md
当前真实模块根目录为:
yunyu-server/src/main/java/com/ideaflow/yunyu/module
当前已落地业务模块如下:
module
├── ai
├── attachment
├── auth
├── category
├── comment
├── contentaccess
├── friendlink
├── homepage
├── post
├── site
├── siteconfig
├── storage
├── system
├── tag
├── topic
└── user
这类模块围绕具体内容资源展开,通常同时存在后台管理面 admin 与前台访问面 site。
module/post
module/category
module/tag
module/topic
module/comment
module/friendlink
说明:
post:文章资源本身及其后台管理、前台查询能力。category:分类管理与分类前台查询能力。tag:标签管理与标签前台查询能力。topic:专题管理与专题前台查询能力。comment:评论后台管理与前台评论交互能力。friendlink:友链后台管理与前台展示能力。
这类模块不直接表示某个单一内容资源,而是站点整体配置、首页配置或站点公开聚合能力。
module/siteconfig
module/homepage
module/site
module/storage
说明:
siteconfig:站点基础配置读写,后台配置接口在admin,共享配置能力在根层service。homepage:首页配置相关后台能力与前台首页视觉 VO,部分共享配置逻辑保留根层service。site:站点整体公开聚合接口,当前使用publicapi承载home/config/version等整体视角能力。storage:对象存储与上传配置能力,当前以后台配置面为主。
这类模块承载登录态、用户信息和内容访问授权等能力。
module/auth
module/user
module/contentaccess
说明:
auth:当前已收敛到auth/site,承载登录、当前用户信息等接口。user:后台用户管理能力,当前主要使用admin。contentaccess:内容访问校验相关 DTO / VO 在site,共享授权支撑逻辑保留根层service。
这类模块更偏基础能力、受控接口或系统引导支撑。
module/ai
module/attachment
module/system
说明:
ai:后台 AI 提供商配置在admin,协议与内部网关入口在internal,共享适配层保留在adapter/model/stream。attachment:后台附件管理与上传管理能力,当前以admin为主。system:系统启动引导与初始化基础设施,当前收敛在bootstrap。
category
comment
friendlink
post
tag
topic
适用语义:
admin:后台管理、创建、更新、删除、审核、配置。site:前台列表、详情、交互、公开查询。
attachment
storage
user
适用语义:
- 这些模块当前主要服务于后台管理,不直接暴露前台资源级接口。
auth
适用语义:
- 当前登录、获取当前用户等能力已收敛在
auth/site。
homepage
siteconfig
适用语义:
- 后台配置能力走
admin。 - 被多处复用的配置读写逻辑保留在模块根层
service。
ai
适用语义:
internal用于协议入口、内部网关、回调或不直接面向普通前后台页面的接口。
site
适用语义:
publicapi只表示站点整体公开聚合接口。- 不应承载文章、分类、标签、专题这类资源级前台接口。
system
适用语义:
bootstrap只处理系统启动引导、数据库初始化、初始化状态判断与脚本工具。
下面给出一版精简后的真实目录树,便于快速定位:
module
├── ai
│ ├── admin/{controller,dto,scene,service,vo}
│ ├── internal/{controller,service}
│ ├── adapter
│ ├── model
│ └── stream
├── attachment
│ ├── admin/{controller,dto,service,vo}
│ ├── entity
│ └── mapper
├── auth
│ ├── site/{controller,dto,service,vo}
│ ├── entity
│ └── mapper
├── category
│ ├── admin/{controller,dto,service,vo}
│ ├── site/{controller,service,vo}
│ ├── entity
│ └── mapper
├── comment
│ ├── admin/{controller,dto,service,vo}
│ ├── site/{controller,dto,service,vo}
│ ├── entity
│ └── mapper
├── contentaccess
│ ├── site/{dto,vo}
│ ├── entity
│ ├── mapper
│ ├── model
│ └── service
├── friendlink
│ ├── admin/{controller,dto,service,vo}
│ ├── site/{controller,dto,service,vo}
│ ├── entity
│ └── mapper
├── homepage
│ ├── admin/{controller,dto,service,vo}
│ ├── site/vo
│ └── service
├── post
│ ├── admin/{controller,dto,service,vo}
│ ├── site/{controller,dto,service,vo}
│ ├── entity
│ └── mapper
├── site
│ └── publicapi/{controller,service,vo}
├── siteconfig
│ ├── admin/{controller,dto,service,vo}
│ ├── entity
│ ├── mapper
│ └── service
├── storage
│ ├── admin/{controller,dto,service,vo}
│ └── model
├── system
│ └── bootstrap/{引导类...,util}
├── tag
│ ├── admin/{controller,dto,service,vo}
│ ├── site/{controller,service,vo}
│ ├── entity
│ └── mapper
├── topic
│ ├── admin/{controller,dto,service,vo}
│ ├── site/{controller,service,vo}
│ ├── entity
│ └── mapper
└── user
├── admin/{controller,dto,service,vo}
├── entity
└── mapper
说明:
- 这里是“便于阅读的摘要树”,不是逐文件清单。
- 更细的边界规则,参考 07-后端目录约束规范.md。
- 更完整的重构背景与迁移过程,参考 06-后端模块目录重构方案.md。
当你拿到一个新需求时,可以优先这样判断:
- 如果是后台管理能力,先找对应业务模块下的
admin。 - 如果是前台资源查询或前台交互,先找对应资源模块下的
site。 - 如果是首页、站点基础信息、版本信息这种整体公开聚合,找
module/site/publicapi。 - 如果是登录态、当前用户信息,找
module/auth/site。 - 如果是启动初始化、建库建表、初始化状态,找
module/system/bootstrap。 - 如果一个功能既不像资源接口,也不像站点聚合接口,先回到 07-后端目录约束规范.md 判断边界,再落目录。