From ecdc015c2f9340e5eb70cf33322ac134c6d3f46e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E9=B9=8F?= Date: Sat, 23 May 2026 16:49:02 +0800 Subject: [PATCH] Persist front project requirement keyword --- .../easycode-web/src/views/GenerateView.vue | 12 +++++++----- .../easycode-web/src/views/ProjectListView.vue | 2 +- .../generator/domain/front/FrontProject.java | 3 +++ .../front/dto/FrontProjectCreateRequest.java | 3 +++ .../front/dto/FrontProjectUpdateRequest.java | 3 +++ .../service/front/AiGenerateServiceImpl.java | 14 ++++++++++---- .../service/front/FrontProjectServiceImpl.java | 2 ++ .../mapper/front/FrontProjectMapper.xml | 6 +++++- .../front/AiGenerateServiceImplTest.java | 16 ++++++++++++++++ .../front/FrontProjectServiceImplTest.java | 3 +++ RuoYi-Vue/sql/db.sql | 1 + RuoYi-Vue/sql/front_requirement_keyword.sql | 17 +++++++++++++++++ RuoYi-Vue/sql/front_workbench.sql | 1 + 13 files changed, 72 insertions(+), 11 deletions(-) create mode 100644 RuoYi-Vue/sql/front_requirement_keyword.sql diff --git a/RuoYi-Vue/easycode-web/src/views/GenerateView.vue b/RuoYi-Vue/easycode-web/src/views/GenerateView.vue index 4b611e9..be838db 100644 --- a/RuoYi-Vue/easycode-web/src/views/GenerateView.vue +++ b/RuoYi-Vue/easycode-web/src/views/GenerateView.vue @@ -296,6 +296,7 @@ async function loadProjectDraft(value) { projectId.value = id projectForm.projectName = project.projectName || '' projectForm.projectDesc = project.projectDesc || '' + projectForm.keyword = project.requirementKeyword || projectForm.keyword || '' projectForm.industryTemplate = project.industryTemplate || '' appBlueprint.value = normalizeAppBlueprint(project.appBlueprint) syncAppBlueprintJson() @@ -314,6 +315,7 @@ async function ensureProject() { const result = await createProject({ projectName: projectForm.projectName, projectDesc: projectForm.projectDesc, + requirementKeyword: projectForm.keyword, industryTemplate: projectForm.industryTemplate }) const data = unwrap(result) @@ -360,10 +362,9 @@ async function handleGenerateAppBlueprint() { const id = await ensureProject() const result = await generateAppBlueprint(id, { projectName: projectForm.projectName, - projectDesc: projectForm.projectDesc || projectForm.keyword, + projectDesc: projectForm.projectDesc, industryTemplate: projectForm.industryTemplate, - extraRequirements: projectForm.keyword, - appBlueprint: appBlueprintJson.value + extraRequirements: projectForm.keyword }) appBlueprint.value = normalizeAppBlueprint(result) syncAppBlueprintJson() @@ -401,9 +402,10 @@ async function handleGenerateDatabase() { const id = await ensureProject() const result = await generateDatabase(id, { projectName: projectForm.projectName, - projectDesc: projectForm.projectDesc || projectForm.keyword, + projectDesc: projectForm.projectDesc, industryTemplate: projectForm.industryTemplate, - extraRequirements: projectForm.keyword + extraRequirements: projectForm.keyword, + appBlueprint: appBlueprintJson.value }) database.value = normalizeDatabase(result) diff --git a/RuoYi-Vue/easycode-web/src/views/ProjectListView.vue b/RuoYi-Vue/easycode-web/src/views/ProjectListView.vue index a2f1648..9fa8b9a 100644 --- a/RuoYi-Vue/easycode-web/src/views/ProjectListView.vue +++ b/RuoYi-Vue/easycode-web/src/views/ProjectListView.vue @@ -17,7 +17,7 @@ diff --git a/RuoYi-Vue/ruoyi-generator/src/main/java/com/ruoyi/generator/domain/front/FrontProject.java b/RuoYi-Vue/ruoyi-generator/src/main/java/com/ruoyi/generator/domain/front/FrontProject.java index 60a387c..272572b 100644 --- a/RuoYi-Vue/ruoyi-generator/src/main/java/com/ruoyi/generator/domain/front/FrontProject.java +++ b/RuoYi-Vue/ruoyi-generator/src/main/java/com/ruoyi/generator/domain/front/FrontProject.java @@ -14,6 +14,7 @@ public class FrontProject extends BaseEntity private String packageName; private String version; private String projectDesc; + private String requirementKeyword; private String industryTemplate; private String frontFramework; private String backFramework; @@ -39,6 +40,8 @@ public class FrontProject extends BaseEntity public void setVersion(String version) { this.version = version; } public String getProjectDesc() { return projectDesc; } public void setProjectDesc(String projectDesc) { this.projectDesc = projectDesc; } + public String getRequirementKeyword() { return requirementKeyword; } + public void setRequirementKeyword(String requirementKeyword) { this.requirementKeyword = requirementKeyword; } public String getIndustryTemplate() { return industryTemplate; } public void setIndustryTemplate(String industryTemplate) { this.industryTemplate = industryTemplate; } public String getFrontFramework() { return frontFramework; } diff --git a/RuoYi-Vue/ruoyi-generator/src/main/java/com/ruoyi/generator/domain/front/dto/FrontProjectCreateRequest.java b/RuoYi-Vue/ruoyi-generator/src/main/java/com/ruoyi/generator/domain/front/dto/FrontProjectCreateRequest.java index c8bc838..16cefe4 100644 --- a/RuoYi-Vue/ruoyi-generator/src/main/java/com/ruoyi/generator/domain/front/dto/FrontProjectCreateRequest.java +++ b/RuoYi-Vue/ruoyi-generator/src/main/java/com/ruoyi/generator/domain/front/dto/FrontProjectCreateRequest.java @@ -4,6 +4,7 @@ public class FrontProjectCreateRequest { private String projectName; private String projectDesc; + private String requirementKeyword; private String industryTemplate; private String packageName; private String version; @@ -12,6 +13,8 @@ public class FrontProjectCreateRequest public void setProjectName(String projectName) { this.projectName = projectName; } public String getProjectDesc() { return projectDesc; } public void setProjectDesc(String projectDesc) { this.projectDesc = projectDesc; } + public String getRequirementKeyword() { return requirementKeyword; } + public void setRequirementKeyword(String requirementKeyword) { this.requirementKeyword = requirementKeyword; } public String getIndustryTemplate() { return industryTemplate; } public void setIndustryTemplate(String industryTemplate) { this.industryTemplate = industryTemplate; } public String getPackageName() { return packageName; } diff --git a/RuoYi-Vue/ruoyi-generator/src/main/java/com/ruoyi/generator/domain/front/dto/FrontProjectUpdateRequest.java b/RuoYi-Vue/ruoyi-generator/src/main/java/com/ruoyi/generator/domain/front/dto/FrontProjectUpdateRequest.java index 71ffcc0..41740eb 100644 --- a/RuoYi-Vue/ruoyi-generator/src/main/java/com/ruoyi/generator/domain/front/dto/FrontProjectUpdateRequest.java +++ b/RuoYi-Vue/ruoyi-generator/src/main/java/com/ruoyi/generator/domain/front/dto/FrontProjectUpdateRequest.java @@ -4,6 +4,7 @@ public class FrontProjectUpdateRequest { private String projectName; private String projectDesc; + private String requirementKeyword; private String industryTemplate; private String packageName; private String version; @@ -12,6 +13,8 @@ public class FrontProjectUpdateRequest public void setProjectName(String projectName) { this.projectName = projectName; } public String getProjectDesc() { return projectDesc; } public void setProjectDesc(String projectDesc) { this.projectDesc = projectDesc; } + public String getRequirementKeyword() { return requirementKeyword; } + public void setRequirementKeyword(String requirementKeyword) { this.requirementKeyword = requirementKeyword; } public String getIndustryTemplate() { return industryTemplate; } public void setIndustryTemplate(String industryTemplate) { this.industryTemplate = industryTemplate; } public String getPackageName() { return packageName; } diff --git a/RuoYi-Vue/ruoyi-generator/src/main/java/com/ruoyi/generator/service/front/AiGenerateServiceImpl.java b/RuoYi-Vue/ruoyi-generator/src/main/java/com/ruoyi/generator/service/front/AiGenerateServiceImpl.java index b07eea8..21a4982 100644 --- a/RuoYi-Vue/ruoyi-generator/src/main/java/com/ruoyi/generator/service/front/AiGenerateServiceImpl.java +++ b/RuoYi-Vue/ruoyi-generator/src/main/java/com/ruoyi/generator/service/front/AiGenerateServiceImpl.java @@ -76,7 +76,7 @@ public class AiGenerateServiceImpl implements IAiGenerateService String aiContent = deepSeekClient.chat(prompt); AppBlueprintDesign blueprint = parseAppBlueprintResponse(aiContent); normalizeAppBlueprint(blueprint); - markAppBlueprintGenerated(projectId, blueprint); + markAppBlueprintGenerated(projectId, blueprint, request); generation.setResponsePayload(aiContent); generation.setSuccess("1"); generation.setElapsedMs(System.currentTimeMillis() - start); @@ -113,7 +113,7 @@ public class AiGenerateServiceImpl implements IAiGenerateService validator.validate(response, maxTables(), maxColumnsPerTable()); businessBlueprintValidator.validate(response); persistDatabase(userId, projectId, response); - markDatabaseGenerated(projectId, response, confirmedAppBlueprint); + markDatabaseGenerated(projectId, response, confirmedAppBlueprint, request); generation.setResponsePayload(aiContent); generation.setSuccess("1"); generation.setElapsedMs(System.currentTimeMillis() - start); @@ -1068,7 +1068,7 @@ public class AiGenerateServiceImpl implements IAiGenerateService } } - private void markDatabaseGenerated(Long projectId, DatabaseDesignResponse response, String confirmedAppBlueprint) + private void markDatabaseGenerated(Long projectId, DatabaseDesignResponse response, String confirmedAppBlueprint, GenerateDatabaseRequest request) { FrontProject project = new FrontProject(); project.setProjectId(projectId); @@ -1078,17 +1078,23 @@ public class AiGenerateServiceImpl implements IAiGenerateService { project.setAppBlueprint(confirmedAppBlueprint); } + project.setRequirementKeyword(request == null ? null : request.getExtraRequirements()); + project.setProjectDesc(request == null ? null : request.getProjectDesc()); + project.setIndustryTemplate(request == null ? null : request.getIndustryTemplate()); project.setBusinessBlueprint(JSON.toJSONString(response.getBusinessActions())); frontProjectMapper.updateFrontProject(project); } - private void markAppBlueprintGenerated(Long projectId, AppBlueprintDesign blueprint) + private void markAppBlueprintGenerated(Long projectId, AppBlueprintDesign blueprint, GenerateAppBlueprintRequest request) { FrontProject project = new FrontProject(); project.setProjectId(projectId); project.setGenerateStatus("0"); project.setPreviewStatus("0"); project.setAppBlueprint(JSON.toJSONString(blueprint)); + project.setRequirementKeyword(request == null ? null : request.getExtraRequirements()); + project.setProjectDesc(request == null ? null : request.getProjectDesc()); + project.setIndustryTemplate(request == null ? null : request.getIndustryTemplate()); frontProjectMapper.updateFrontProject(project); } diff --git a/RuoYi-Vue/ruoyi-generator/src/main/java/com/ruoyi/generator/service/front/FrontProjectServiceImpl.java b/RuoYi-Vue/ruoyi-generator/src/main/java/com/ruoyi/generator/service/front/FrontProjectServiceImpl.java index eff2c9d..8ece6e5 100644 --- a/RuoYi-Vue/ruoyi-generator/src/main/java/com/ruoyi/generator/service/front/FrontProjectServiceImpl.java +++ b/RuoYi-Vue/ruoyi-generator/src/main/java/com/ruoyi/generator/service/front/FrontProjectServiceImpl.java @@ -62,6 +62,7 @@ public class FrontProjectServiceImpl implements IFrontProjectService project.setUserId(userId); project.setProjectName(request.getProjectName()); project.setProjectDesc(request.getProjectDesc()); + project.setRequirementKeyword(request.getRequirementKeyword()); project.setIndustryTemplate(request.getIndustryTemplate()); project.setPackageName(StringUtils.defaultIfEmpty(request.getPackageName(), "com.easycode.generated")); project.setVersion(StringUtils.defaultIfEmpty(request.getVersion(), "1.0.0")); @@ -110,6 +111,7 @@ public class FrontProjectServiceImpl implements IFrontProjectService project.setUserId(userId); project.setProjectName(request.getProjectName()); project.setProjectDesc(request.getProjectDesc()); + project.setRequirementKeyword(request.getRequirementKeyword()); project.setIndustryTemplate(request.getIndustryTemplate()); project.setPackageName(request.getPackageName()); project.setVersion(request.getVersion()); diff --git a/RuoYi-Vue/ruoyi-generator/src/main/resources/mapper/front/FrontProjectMapper.xml b/RuoYi-Vue/ruoyi-generator/src/main/resources/mapper/front/FrontProjectMapper.xml index 31a8843..2b77b57 100644 --- a/RuoYi-Vue/ruoyi-generator/src/main/resources/mapper/front/FrontProjectMapper.xml +++ b/RuoYi-Vue/ruoyi-generator/src/main/resources/mapper/front/FrontProjectMapper.xml @@ -12,6 +12,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + @@ -27,7 +28,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - select project_id, user_id, project_name, project_file_name, package_name, version, project_desc, industry_template, front_framework, back_framework, generate_status, preview_status, app_blueprint, er_diagram, business_blueprint, status, create_time, update_time, remark from front_project + select project_id, user_id, project_name, project_file_name, package_name, version, project_desc, requirement_keyword, industry_template, front_framework, back_framework, generate_status, preview_status, app_blueprint, er_diagram, business_blueprint, status, create_time, update_time, remark from front_project