团队内部云资源与服务套餐台账系统,前后端分离架构。
├── backend/ # Spring Boot 3 + MyBatis-Plus 后端服务
├── frontend/ # Vue 3 + Vite 前端应用
├── sql/ # 数据库 schema 与迁移脚本
└── deploy/ # 部署配置(Nginx、systemd)
| 模块 | 职责 |
|---|---|
| resource | 资源管理(增删改查、到期刷新、邮件提醒) |
| project | 项目管理(多项目关联) |
| provider | 供应商管理 |
| dashboard | 数据看板(工作台统计、费用分析) |
| user | 用户管理(权限分级:管理员/普通用户、JWT 鉴权) |
# 数据库初始化
# 执行 sql/schema.sql
# 后端(开发模式,热重载)
cd backend
mvn spring-boot:run
# 或打包后运行
mvn clean package -DskipTests
java -jar target/resource-platform.jar
cd backend
# 构建(自动基于最新 jar 递增版本号)
python build.py
# 指定版本号
python build.py --version 12
# 启动(自动检测最新版本)
bash start.sh
# 启动指定版本
bash start.sh 11
构建脚本说明:
build.py是统一入口,合并了历史版本 build_v6~v11 的全部逻辑(javac 编译 + fat jar 重打包 + 资源注入 + 新增类补打)。start.sh是统一启动脚本,支持PORT环境变量自定义端口。
cd frontend
npm install
npm run dev
变更代码后应运行测试确认无回归:
# 前端单元测试(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.javaAgent 变更后可自动执行的验证命令:
# 前端
cd frontend && npx vitest run
# 后端(Windows PowerShell,需先设置 JAVA_HOME)
$env:JAVA_HOME = "D:\Program Files\Java\jdk-17"; cd backend; mvn test
com.example.resourceplatformbackend/src/main/java/com/example/resourceplatform/
controller/ — REST 接口层service/ — 业务逻辑层mapper/ — MyBatis-Plus Mapper 层entity/ — 实体类dto/ — 数据传输对象 / 视图对象config/ — 配置类(Security、MyBatis-Plus)security/ — JWT 与认证相关common/ — 通用枚举、异常处理、分页task/ — 定时任务frontend/src/api/ — 按模块拆分的接口调用frontend/src/router/index.jsfrontend/src/store/frontend/src/views/frontend/src/layout/frontend/src/components/sql/schema.sql(建表)、sql/migration_*.sql(增量迁移)