# AGENTS.md ## 项目概述 团队内部云资源与服务套餐台账系统,前后端分离架构。 ## 项目结构 ``` ├── backend/ # Spring Boot 3 + MyBatis-Plus 后端服务 ├── frontend/ # Vue 3 + Vite 前端应用 ├── sql/ # 数据库 schema 与迁移脚本 └── deploy/ # 部署配置(Nginx、systemd) ``` ## 核心模块 | 模块 | 职责 | |------|------| | resource | 资源管理(增删改查、到期刷新、邮件提醒) | | project | 项目管理(多项目关联) | | provider | 供应商管理 | | dashboard | 数据看板(工作台统计、费用分析) | | user | 用户管理(权限分级:管理员/普通用户、JWT 鉴权) | ## 技术栈 - **后端**: Java 17 · Spring Boot 3 · MyBatis-Plus · Spring Security (JWT) · MySQL 8+ - **前端**: Vue 3 · Vite · Element Plus · Pinia - **数据库**: MySQL 8.0+ ## 构建与启动命令 ```bash # 数据库初始化 # 执行 sql/schema.sql # 后端 cd backend mvn spring-boot:run # 前端 cd frontend npm install npm run dev ``` ## 测试与验证 变更代码后应运行测试确认无回归: ```bash # 前端单元测试(Vitest)——覆盖 API 层和路由守卫 cd frontend npx vitest run # 或 npm test # 后端单元测试(JUnit 5 + Mockito)——覆盖 ResourceServiceImpl 核心业务逻辑 cd backend # 注意:需要 JAVA_HOME 指向 JDK 17,当前环境 JAVA_HOME 默认为 1.8,需临时切换 $env:JAVA_HOME = "D:\Program Files\Java\jdk-17"; mvn test ``` **测试文件位置:** - 前端:`frontend/src/api/__tests__/`、`frontend/src/router/__tests__/` - 后端:`backend/src/test/java/com/example/resourceplatform/service/impl/ResourceServiceImplTest.java` **Agent 变更后可自动执行的验证命令:** ```bash # 前端 cd frontend && npx vitest run # 后端(Windows PowerShell,需先设置 JAVA_HOME) $env:JAVA_HOME = "D:\Program Files\Java\jdk-17"; cd backend; mvn test ``` ## 关键约定 - **Java 包路径**: `com.example.resourceplatform` - **后端源码**: `backend/src/main/java/com/example/resourceplatform/` - `controller/` — REST 接口层 - `service/` — 业务逻辑层 - `mapper/` — MyBatis-Plus Mapper 层 - `entity/` — 实体类 - `dto/` — 数据传输对象 / 视图对象 - `config/` — 配置类(Security、MyBatis-Plus) - `security/` — JWT 与认证相关 - `common/` — 通用枚举、异常处理、分页 - `task/` — 定时任务 - **前端 API 层**: `frontend/src/api/` — 按模块拆分的接口调用 - **前端路由**: `frontend/src/router/index.js` - **前端状态管理**: `frontend/src/store/` - **前端页面**: `frontend/src/views/` - **前端布局**: `frontend/src/layout/` - **前端公共组件**: `frontend/src/components/` - **SQL 脚本**: `sql/schema.sql`(建表)、`sql/migration_*.sql`(增量迁移)