Skip to content

项目架构 ​

工作区分工 ​

包技术职责
@alang/siteVue 3、Vite、Vant、Element PlusVue 前台
@alang/manageReact、TypeScript、Vite、Semi UI管理后台与前端测试
@alang/serviceJDK 21、Spring Boot 3.5、Gradle、wuli3HTTP API、业务与数据访问
@alang/docsVitePress开发者文档

Turbo 调度包内 scripts;pnpm 管理 JavaScript 依赖;后端使用原有 Gradle Wrapper。 原始项目按源文件复制导入,三个相邻目录保留,不作为运行时依赖。

后端模块 ​

alang-bootstrap 是唯一可执行模块,alang-common 提供共享能力。 用户、商品、资金、交易、合同、IM 与能力支持模块各拆为 -api 与 -service。 跨模块消费方只依赖 -api;bootstrap 组装 -service。

调用方向为 controller → service → repository → model,事务边界位于 service。 数据由归属模块写入,禁止直接操作其他模块的表或依赖其他模块的 -service。 SQL 使用 MyBatis XML,遵循后端 AGENTS.md 的仓储与 Mapper 约定。

前后端联调 ​

浏览器访问后台 Vite 5602,业务 API 通过 /admin-api 代理至后端 5600。 请求携带 Authorization: Bearer <accessToken> 和 X-Wuli3-Principal-Permission-Token。 API 地址只使用路径前缀,生产通过 Nginx 代理维持同源。

演示页面的图片上传先调用 /admin-api/sts/credential 获取临时凭证和上传目标,再由浏览器直传 OSS。 对象路径使用返回的 directory,图片访问地址由 prefixUrl 与对象 key 拼接;OSS 上传不经过后端文件代理。 临时目录及过期清理约定见 部署指南。

文档与规格 ​

docs/ 面向使用者,说明现状和操作步骤。openspec/specs/ 描述长期能力; openspec/changes/ 记录本次变更;openspec/rules/ 保存项目约束; openspec/state/ 记录已验证状态,openspec/design/ 记录设计原因。

Vue 前台在 5604 启动,保留上游脚本,由 Turbo @alang/site#dev 调用包级转发脚本,5604 端口仍在根 web:dev 维护;其 API 配置仍来自上游环境。