feat: expand EasyCode software factory workflows

This commit is contained in:
王鹏
2026-07-15 12:48:50 +08:00
parent fcfa4374d7
commit 79dea897bc
1108 changed files with 163774 additions and 21593 deletions

View File

@@ -0,0 +1,69 @@
# 在线运行预览实施计划
> **给智能体执行者:** 必须使用 `superpowers:subagent-driven-development`(推荐)或 `superpowers:executing-plans`,按任务逐项执行。本计划使用复选框(`- [ ]`)跟踪进度。
**目标:** 为 EasyCode 生成出来的项目增加第一期本机在线运行预览能力。
**架构:** 新增一个内存态运行预览服务,负责导出生成源码、解压到本地工作目录、初始化 MySQL、启动后端/前端子进程,并暴露状态查询和停止接口。在现有项目预览页增加一个紧凑的运行预览控制区。
**技术栈:** Spring Boot 2.5、Java 8、JUnit 4、Mockito、Vue 3、Element Plus、Vite。
---
### 任务 1后端运行预览核心能力
**文件:**
- 新建:`ruoyi-generator/src/main/java/com/ruoyi/generator/domain/front/dto/ProjectRunPreviewStatus.java`
- 新建:`ruoyi-generator/src/main/java/com/ruoyi/generator/service/front/IFrontProjectRunPreviewService.java`
- 新建:`ruoyi-generator/src/main/java/com/ruoyi/generator/service/front/RunPreviewPortAllocator.java`
- 新建:`ruoyi-generator/src/main/java/com/ruoyi/generator/service/front/RunPreviewDatabaseInitializer.java`
- 新建:`ruoyi-generator/src/main/java/com/ruoyi/generator/service/front/RunPreviewProcessRunner.java`
- 新建:`ruoyi-generator/src/main/java/com/ruoyi/generator/service/front/FrontProjectRunPreviewServiceImpl.java`
- 测试:`ruoyi-generator/src/test/java/com/ruoyi/generator/service/front/FrontProjectRunPreviewServiceImplTest.java`
- [ ] 编写失败测试:启动预览后返回后端/前端 URL创建工作目录初始化数据库并启动两个进程。
- [ ] 编写失败测试:停止预览会终止两个进程,并返回 `STOPPED`
- [ ] 实现最小可用的服务、辅助类和 DTO。
- [ ] 运行 `mvn -pl ruoyi-generator -Dtest=FrontProjectRunPreviewServiceImplTest test`
### 任务 2后端控制器接口
**文件:**
- 修改:`ruoyi-admin/src/main/java/com/ruoyi/web/controller/front/FrontProjectController.java`
- [ ] 增加启动、状态查询和停止预览接口。
- [ ] 每个接口通过 `SecurityUtils.getUserId()` 获取当前用户,并委托给 `IFrontProjectRunPreviewService`
- [ ] 运行 `mvn -pl ruoyi-admin -am -DskipTests package`
### 任务 3生成模板运行时配置
**文件:**
- 修改:`ruoyi-generator/src/main/resources/qing/application.yml.vm`
- 修改:`ruoyi-generator/src/main/resources/qing/vue-config.js.vm`
- [ ] 后端端口和数据源通过环境变量配置。
- [ ] Vue 开发服务端口和后端代理地址通过环境变量配置。
- [ ] 如已有 qing 模板测试,则运行相关测试。
### 任务 4前端预览页控制区
**文件:**
- 修改:`easycode-web/src/api/project.js`
- 修改:`easycode-web/src/views/PreviewView.vue`
- 测试:`easycode-web/src/views/previewView.test.mjs`
- [ ] 编写失败的源码级测试,覆盖运行预览控件和 API 调用。
- [ ] 增加 `startRunPreview``getRunPreviewStatus``stopRunPreview` API 方法。
- [ ] 在预览页增加运行预览按钮、状态文本、预览链接和日志展示。
- [ ] 运行前端单元/源码测试,并使用 Node 20 执行 `npm run build`
### 任务 5验证
**文件:**
- 预计不新增文件。
- [ ] 运行目标后端测试。
- [ ] 运行目标前端测试。
- [ ] 运行后端打包构建。
- [ ] 使用 Node 20 运行前端生产构建。
- [ ] 说明限制:第一期依赖本机可用的 MySQL、Maven、Node/npm。