From 98cd4f7df0b169b49675d5a43706b70ff86a76d7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E9=B9=8F?= Date: Thu, 21 May 2026 21:33:04 +0800 Subject: [PATCH] Add front project draft model --- .../generator/domain/front/FrontProject.java | 53 ++++ .../domain/front/FrontProjectColumn.java | 70 +++++ .../domain/front/FrontProjectFile.java | 37 +++ .../domain/front/FrontProjectGeneration.java | 46 ++++ .../domain/front/FrontProjectTable.java | 59 ++++ .../generator/domain/front/FrontUser.java | 38 +++ .../front/dto/DatabaseColumnDesign.java | 63 +++++ .../front/dto/DatabaseDesignResponse.java | 17 ++ .../domain/front/dto/DatabaseTableDesign.java | 47 ++++ .../domain/front/dto/FrontLoginBody.java | 12 + .../front/dto/FrontProjectCreateRequest.java | 21 ++ .../front/dto/FrontProjectUpdateRequest.java | 21 ++ .../domain/front/dto/FrontRegisterBody.java | 21 ++ .../front/dto/GenerateDatabaseRequest.java | 18 ++ .../domain/front/dto/PreviewFileRequest.java | 18 ++ .../front/dto/ProjectStructureResponse.java | 15 + .../front/FrontProjectColumnMapper.java | 15 + .../mapper/front/FrontProjectFileMapper.java | 17 ++ .../front/FrontProjectGenerationMapper.java | 14 + .../mapper/front/FrontProjectMapper.java | 16 ++ .../mapper/front/FrontProjectTableMapper.java | 15 + .../mapper/front/FrontUserMapper.java | 14 + .../service/front/FrontProjectConverter.java | 98 +++++++ .../front/FrontProjectServiceImpl.java | 257 ++++++++++++++++++ .../service/front/FrontUserServiceImpl.java | 77 ++++++ .../service/front/IFrontProjectService.java | 18 ++ .../service/front/IFrontUserService.java | 15 + .../mapper/front/FrontProjectColumnMapper.xml | 136 +++++++++ .../mapper/front/FrontProjectFileMapper.xml | 94 +++++++ .../front/FrontProjectGenerationMapper.xml | 95 +++++++ .../mapper/front/FrontProjectMapper.xml | 116 ++++++++ .../mapper/front/FrontProjectTableMapper.xml | 117 ++++++++ .../mapper/front/FrontUserMapper.xml | 95 +++++++ .../front/FrontProjectConverterTest.java | 56 ++++ 34 files changed, 1821 insertions(+) create mode 100644 RuoYi-Vue/ruoyi-generator/src/main/java/com/ruoyi/generator/domain/front/FrontProject.java create mode 100644 RuoYi-Vue/ruoyi-generator/src/main/java/com/ruoyi/generator/domain/front/FrontProjectColumn.java create mode 100644 RuoYi-Vue/ruoyi-generator/src/main/java/com/ruoyi/generator/domain/front/FrontProjectFile.java create mode 100644 RuoYi-Vue/ruoyi-generator/src/main/java/com/ruoyi/generator/domain/front/FrontProjectGeneration.java create mode 100644 RuoYi-Vue/ruoyi-generator/src/main/java/com/ruoyi/generator/domain/front/FrontProjectTable.java create mode 100644 RuoYi-Vue/ruoyi-generator/src/main/java/com/ruoyi/generator/domain/front/FrontUser.java create mode 100644 RuoYi-Vue/ruoyi-generator/src/main/java/com/ruoyi/generator/domain/front/dto/DatabaseColumnDesign.java create mode 100644 RuoYi-Vue/ruoyi-generator/src/main/java/com/ruoyi/generator/domain/front/dto/DatabaseDesignResponse.java create mode 100644 RuoYi-Vue/ruoyi-generator/src/main/java/com/ruoyi/generator/domain/front/dto/DatabaseTableDesign.java create mode 100644 RuoYi-Vue/ruoyi-generator/src/main/java/com/ruoyi/generator/domain/front/dto/FrontLoginBody.java create mode 100644 RuoYi-Vue/ruoyi-generator/src/main/java/com/ruoyi/generator/domain/front/dto/FrontProjectCreateRequest.java create mode 100644 RuoYi-Vue/ruoyi-generator/src/main/java/com/ruoyi/generator/domain/front/dto/FrontProjectUpdateRequest.java create mode 100644 RuoYi-Vue/ruoyi-generator/src/main/java/com/ruoyi/generator/domain/front/dto/FrontRegisterBody.java create mode 100644 RuoYi-Vue/ruoyi-generator/src/main/java/com/ruoyi/generator/domain/front/dto/GenerateDatabaseRequest.java create mode 100644 RuoYi-Vue/ruoyi-generator/src/main/java/com/ruoyi/generator/domain/front/dto/PreviewFileRequest.java create mode 100644 RuoYi-Vue/ruoyi-generator/src/main/java/com/ruoyi/generator/domain/front/dto/ProjectStructureResponse.java create mode 100644 RuoYi-Vue/ruoyi-generator/src/main/java/com/ruoyi/generator/mapper/front/FrontProjectColumnMapper.java create mode 100644 RuoYi-Vue/ruoyi-generator/src/main/java/com/ruoyi/generator/mapper/front/FrontProjectFileMapper.java create mode 100644 RuoYi-Vue/ruoyi-generator/src/main/java/com/ruoyi/generator/mapper/front/FrontProjectGenerationMapper.java create mode 100644 RuoYi-Vue/ruoyi-generator/src/main/java/com/ruoyi/generator/mapper/front/FrontProjectMapper.java create mode 100644 RuoYi-Vue/ruoyi-generator/src/main/java/com/ruoyi/generator/mapper/front/FrontProjectTableMapper.java create mode 100644 RuoYi-Vue/ruoyi-generator/src/main/java/com/ruoyi/generator/mapper/front/FrontUserMapper.java create mode 100644 RuoYi-Vue/ruoyi-generator/src/main/java/com/ruoyi/generator/service/front/FrontProjectConverter.java create mode 100644 RuoYi-Vue/ruoyi-generator/src/main/java/com/ruoyi/generator/service/front/FrontProjectServiceImpl.java create mode 100644 RuoYi-Vue/ruoyi-generator/src/main/java/com/ruoyi/generator/service/front/FrontUserServiceImpl.java create mode 100644 RuoYi-Vue/ruoyi-generator/src/main/java/com/ruoyi/generator/service/front/IFrontProjectService.java create mode 100644 RuoYi-Vue/ruoyi-generator/src/main/java/com/ruoyi/generator/service/front/IFrontUserService.java create mode 100644 RuoYi-Vue/ruoyi-generator/src/main/resources/mapper/front/FrontProjectColumnMapper.xml create mode 100644 RuoYi-Vue/ruoyi-generator/src/main/resources/mapper/front/FrontProjectFileMapper.xml create mode 100644 RuoYi-Vue/ruoyi-generator/src/main/resources/mapper/front/FrontProjectGenerationMapper.xml create mode 100644 RuoYi-Vue/ruoyi-generator/src/main/resources/mapper/front/FrontProjectMapper.xml create mode 100644 RuoYi-Vue/ruoyi-generator/src/main/resources/mapper/front/FrontProjectTableMapper.xml create mode 100644 RuoYi-Vue/ruoyi-generator/src/main/resources/mapper/front/FrontUserMapper.xml create mode 100644 RuoYi-Vue/ruoyi-generator/src/test/java/com/ruoyi/generator/service/front/FrontProjectConverterTest.java 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 new file mode 100644 index 0000000..f97248d --- /dev/null +++ b/RuoYi-Vue/ruoyi-generator/src/main/java/com/ruoyi/generator/domain/front/FrontProject.java @@ -0,0 +1,53 @@ +package com.ruoyi.generator.domain.front; + +import java.util.List; +import com.ruoyi.common.core.domain.BaseEntity; + +public class FrontProject extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + private Long projectId; + private Long userId; + private String projectName; + private String projectFileName; + private String packageName; + private String version; + private String projectDesc; + private String industryTemplate; + private String frontFramework; + private String backFramework; + private String generateStatus; + private String previewStatus; + private String status; + private List tables; + + public Long getProjectId() { return projectId; } + public void setProjectId(Long projectId) { this.projectId = projectId; } + public Long getUserId() { return userId; } + public void setUserId(Long userId) { this.userId = userId; } + public String getProjectName() { return projectName; } + public void setProjectName(String projectName) { this.projectName = projectName; } + public String getProjectFileName() { return projectFileName; } + public void setProjectFileName(String projectFileName) { this.projectFileName = projectFileName; } + public String getPackageName() { return packageName; } + public void setPackageName(String packageName) { this.packageName = packageName; } + public String getVersion() { return version; } + public void setVersion(String version) { this.version = version; } + public String getProjectDesc() { return projectDesc; } + public void setProjectDesc(String projectDesc) { this.projectDesc = projectDesc; } + public String getIndustryTemplate() { return industryTemplate; } + public void setIndustryTemplate(String industryTemplate) { this.industryTemplate = industryTemplate; } + public String getFrontFramework() { return frontFramework; } + public void setFrontFramework(String frontFramework) { this.frontFramework = frontFramework; } + public String getBackFramework() { return backFramework; } + public void setBackFramework(String backFramework) { this.backFramework = backFramework; } + public String getGenerateStatus() { return generateStatus; } + public void setGenerateStatus(String generateStatus) { this.generateStatus = generateStatus; } + public String getPreviewStatus() { return previewStatus; } + public void setPreviewStatus(String previewStatus) { this.previewStatus = previewStatus; } + public String getStatus() { return status; } + public void setStatus(String status) { this.status = status; } + public List getTables() { return tables; } + public void setTables(List tables) { this.tables = tables; } +} diff --git a/RuoYi-Vue/ruoyi-generator/src/main/java/com/ruoyi/generator/domain/front/FrontProjectColumn.java b/RuoYi-Vue/ruoyi-generator/src/main/java/com/ruoyi/generator/domain/front/FrontProjectColumn.java new file mode 100644 index 0000000..3c64aa2 --- /dev/null +++ b/RuoYi-Vue/ruoyi-generator/src/main/java/com/ruoyi/generator/domain/front/FrontProjectColumn.java @@ -0,0 +1,70 @@ +package com.ruoyi.generator.domain.front; + +import com.ruoyi.common.core.domain.BaseEntity; + +public class FrontProjectColumn extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + private Long columnId; + private Long tableId; + private Long projectId; + private String columnName; + private String columnComment; + private String columnType; + private String javaType; + private String javaField; + private String isPk; + private String isIncrement; + private String isRequired; + private String isInsert; + private String isEdit; + private String isList; + private String isQuery; + private String queryType; + private String htmlType; + private String dictType; + private String defaultValue; + private Integer sort; + + public Long getColumnId() { return columnId; } + public void setColumnId(Long columnId) { this.columnId = columnId; } + public Long getTableId() { return tableId; } + public void setTableId(Long tableId) { this.tableId = tableId; } + public Long getProjectId() { return projectId; } + public void setProjectId(Long projectId) { this.projectId = projectId; } + public String getColumnName() { return columnName; } + public void setColumnName(String columnName) { this.columnName = columnName; } + public String getColumnComment() { return columnComment; } + public void setColumnComment(String columnComment) { this.columnComment = columnComment; } + public String getColumnType() { return columnType; } + public void setColumnType(String columnType) { this.columnType = columnType; } + public String getJavaType() { return javaType; } + public void setJavaType(String javaType) { this.javaType = javaType; } + public String getJavaField() { return javaField; } + public void setJavaField(String javaField) { this.javaField = javaField; } + public String getIsPk() { return isPk; } + public void setIsPk(String isPk) { this.isPk = isPk; } + public String getIsIncrement() { return isIncrement; } + public void setIsIncrement(String isIncrement) { this.isIncrement = isIncrement; } + public String getIsRequired() { return isRequired; } + public void setIsRequired(String isRequired) { this.isRequired = isRequired; } + public String getIsInsert() { return isInsert; } + public void setIsInsert(String isInsert) { this.isInsert = isInsert; } + public String getIsEdit() { return isEdit; } + public void setIsEdit(String isEdit) { this.isEdit = isEdit; } + public String getIsList() { return isList; } + public void setIsList(String isList) { this.isList = isList; } + public String getIsQuery() { return isQuery; } + public void setIsQuery(String isQuery) { this.isQuery = isQuery; } + public String getQueryType() { return queryType; } + public void setQueryType(String queryType) { this.queryType = queryType; } + public String getHtmlType() { return htmlType; } + public void setHtmlType(String htmlType) { this.htmlType = htmlType; } + public String getDictType() { return dictType; } + public void setDictType(String dictType) { this.dictType = dictType; } + public String getDefaultValue() { return defaultValue; } + public void setDefaultValue(String defaultValue) { this.defaultValue = defaultValue; } + public Integer getSort() { return sort; } + public void setSort(Integer sort) { this.sort = sort; } +} diff --git a/RuoYi-Vue/ruoyi-generator/src/main/java/com/ruoyi/generator/domain/front/FrontProjectFile.java b/RuoYi-Vue/ruoyi-generator/src/main/java/com/ruoyi/generator/domain/front/FrontProjectFile.java new file mode 100644 index 0000000..6357f2d --- /dev/null +++ b/RuoYi-Vue/ruoyi-generator/src/main/java/com/ruoyi/generator/domain/front/FrontProjectFile.java @@ -0,0 +1,37 @@ +package com.ruoyi.generator.domain.front; + +import com.ruoyi.common.core.domain.BaseEntity; + +public class FrontProjectFile extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + private Long fileId; + private Long projectId; + private String templateType; + private String nodeId; + private Long tableId; + private String fileName; + private String filePath; + private String fileContent; + private String contentHash; + + public Long getFileId() { return fileId; } + public void setFileId(Long fileId) { this.fileId = fileId; } + public Long getProjectId() { return projectId; } + public void setProjectId(Long projectId) { this.projectId = projectId; } + public String getTemplateType() { return templateType; } + public void setTemplateType(String templateType) { this.templateType = templateType; } + public String getNodeId() { return nodeId; } + public void setNodeId(String nodeId) { this.nodeId = nodeId; } + public Long getTableId() { return tableId; } + public void setTableId(Long tableId) { this.tableId = tableId; } + public String getFileName() { return fileName; } + public void setFileName(String fileName) { this.fileName = fileName; } + public String getFilePath() { return filePath; } + public void setFilePath(String filePath) { this.filePath = filePath; } + public String getFileContent() { return fileContent; } + public void setFileContent(String fileContent) { this.fileContent = fileContent; } + public String getContentHash() { return contentHash; } + public void setContentHash(String contentHash) { this.contentHash = contentHash; } +} diff --git a/RuoYi-Vue/ruoyi-generator/src/main/java/com/ruoyi/generator/domain/front/FrontProjectGeneration.java b/RuoYi-Vue/ruoyi-generator/src/main/java/com/ruoyi/generator/domain/front/FrontProjectGeneration.java new file mode 100644 index 0000000..802cb29 --- /dev/null +++ b/RuoYi-Vue/ruoyi-generator/src/main/java/com/ruoyi/generator/domain/front/FrontProjectGeneration.java @@ -0,0 +1,46 @@ +package com.ruoyi.generator.domain.front; + +import com.ruoyi.common.core.domain.BaseEntity; + +public class FrontProjectGeneration extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + private Long generationId; + private Long projectId; + private Long userId; + private String generateType; + private String provider; + private String promptSummary; + private String requestPayload; + private String responsePayload; + private String success; + private String errorMessage; + private Integer tokenUsage; + private Long elapsedMs; + + public Long getGenerationId() { return generationId; } + public void setGenerationId(Long generationId) { this.generationId = generationId; } + public Long getProjectId() { return projectId; } + public void setProjectId(Long projectId) { this.projectId = projectId; } + public Long getUserId() { return userId; } + public void setUserId(Long userId) { this.userId = userId; } + public String getGenerateType() { return generateType; } + public void setGenerateType(String generateType) { this.generateType = generateType; } + public String getProvider() { return provider; } + public void setProvider(String provider) { this.provider = provider; } + public String getPromptSummary() { return promptSummary; } + public void setPromptSummary(String promptSummary) { this.promptSummary = promptSummary; } + public String getRequestPayload() { return requestPayload; } + public void setRequestPayload(String requestPayload) { this.requestPayload = requestPayload; } + public String getResponsePayload() { return responsePayload; } + public void setResponsePayload(String responsePayload) { this.responsePayload = responsePayload; } + public String getSuccess() { return success; } + public void setSuccess(String success) { this.success = success; } + public String getErrorMessage() { return errorMessage; } + public void setErrorMessage(String errorMessage) { this.errorMessage = errorMessage; } + public Integer getTokenUsage() { return tokenUsage; } + public void setTokenUsage(Integer tokenUsage) { this.tokenUsage = tokenUsage; } + public Long getElapsedMs() { return elapsedMs; } + public void setElapsedMs(Long elapsedMs) { this.elapsedMs = elapsedMs; } +} diff --git a/RuoYi-Vue/ruoyi-generator/src/main/java/com/ruoyi/generator/domain/front/FrontProjectTable.java b/RuoYi-Vue/ruoyi-generator/src/main/java/com/ruoyi/generator/domain/front/FrontProjectTable.java new file mode 100644 index 0000000..abe0486 --- /dev/null +++ b/RuoYi-Vue/ruoyi-generator/src/main/java/com/ruoyi/generator/domain/front/FrontProjectTable.java @@ -0,0 +1,59 @@ +package com.ruoyi.generator.domain.front; + +import java.util.List; +import com.ruoyi.common.core.domain.BaseEntity; + +public class FrontProjectTable extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + private Long tableId; + private Long projectId; + private Long userId; + private String tableName; + private String tableComment; + private String className; + private String moduleName; + private String businessName; + private String functionName; + private String tplCategory; + private String tplWebType; + private String options; + private String createTableSql; + private Integer sort; + private String status; + private List columns; + + public Long getTableId() { return tableId; } + public void setTableId(Long tableId) { this.tableId = tableId; } + public Long getProjectId() { return projectId; } + public void setProjectId(Long projectId) { this.projectId = projectId; } + public Long getUserId() { return userId; } + public void setUserId(Long userId) { this.userId = userId; } + public String getTableName() { return tableName; } + public void setTableName(String tableName) { this.tableName = tableName; } + public String getTableComment() { return tableComment; } + public void setTableComment(String tableComment) { this.tableComment = tableComment; } + public String getClassName() { return className; } + public void setClassName(String className) { this.className = className; } + public String getModuleName() { return moduleName; } + public void setModuleName(String moduleName) { this.moduleName = moduleName; } + public String getBusinessName() { return businessName; } + public void setBusinessName(String businessName) { this.businessName = businessName; } + public String getFunctionName() { return functionName; } + public void setFunctionName(String functionName) { this.functionName = functionName; } + public String getTplCategory() { return tplCategory; } + public void setTplCategory(String tplCategory) { this.tplCategory = tplCategory; } + public String getTplWebType() { return tplWebType; } + public void setTplWebType(String tplWebType) { this.tplWebType = tplWebType; } + public String getOptions() { return options; } + public void setOptions(String options) { this.options = options; } + public String getCreateTableSql() { return createTableSql; } + public void setCreateTableSql(String createTableSql) { this.createTableSql = createTableSql; } + public Integer getSort() { return sort; } + public void setSort(Integer sort) { this.sort = sort; } + public String getStatus() { return status; } + public void setStatus(String status) { this.status = status; } + public List getColumns() { return columns; } + public void setColumns(List columns) { this.columns = columns; } +} diff --git a/RuoYi-Vue/ruoyi-generator/src/main/java/com/ruoyi/generator/domain/front/FrontUser.java b/RuoYi-Vue/ruoyi-generator/src/main/java/com/ruoyi/generator/domain/front/FrontUser.java new file mode 100644 index 0000000..7804769 --- /dev/null +++ b/RuoYi-Vue/ruoyi-generator/src/main/java/com/ruoyi/generator/domain/front/FrontUser.java @@ -0,0 +1,38 @@ +package com.ruoyi.generator.domain.front; + +import java.util.Date; +import com.ruoyi.common.core.domain.BaseEntity; + +public class FrontUser extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + private Long userId; + private String username; + private String password; + private String nickname; + private String email; + private String phone; + private String status; + private String delFlag; + private Date lastLoginTime; + + public Long getUserId() { return userId; } + public void setUserId(Long userId) { this.userId = userId; } + public String getUsername() { return username; } + public void setUsername(String username) { this.username = username; } + public String getPassword() { return password; } + public void setPassword(String password) { this.password = password; } + public String getNickname() { return nickname; } + public void setNickname(String nickname) { this.nickname = nickname; } + public String getEmail() { return email; } + public void setEmail(String email) { this.email = email; } + public String getPhone() { return phone; } + public void setPhone(String phone) { this.phone = phone; } + public String getStatus() { return status; } + public void setStatus(String status) { this.status = status; } + public String getDelFlag() { return delFlag; } + public void setDelFlag(String delFlag) { this.delFlag = delFlag; } + public Date getLastLoginTime() { return lastLoginTime; } + public void setLastLoginTime(Date lastLoginTime) { this.lastLoginTime = lastLoginTime; } +} diff --git a/RuoYi-Vue/ruoyi-generator/src/main/java/com/ruoyi/generator/domain/front/dto/DatabaseColumnDesign.java b/RuoYi-Vue/ruoyi-generator/src/main/java/com/ruoyi/generator/domain/front/dto/DatabaseColumnDesign.java new file mode 100644 index 0000000..0986fc2 --- /dev/null +++ b/RuoYi-Vue/ruoyi-generator/src/main/java/com/ruoyi/generator/domain/front/dto/DatabaseColumnDesign.java @@ -0,0 +1,63 @@ +package com.ruoyi.generator.domain.front.dto; + +public class DatabaseColumnDesign +{ + private Long columnId; + private Long tableId; + private String columnName; + private String columnComment; + private String columnType; + private String javaType; + private String javaField; + private String isPk; + private String isIncrement; + private String isRequired; + private String isInsert; + private String isEdit; + private String isList; + private String isQuery; + private String queryType; + private String htmlType; + private String dictType; + private String defaultValue; + private Integer sort; + + public Long getColumnId() { return columnId; } + public void setColumnId(Long columnId) { this.columnId = columnId; } + public Long getTableId() { return tableId; } + public void setTableId(Long tableId) { this.tableId = tableId; } + public String getColumnName() { return columnName; } + public void setColumnName(String columnName) { this.columnName = columnName; } + public String getColumnComment() { return columnComment; } + public void setColumnComment(String columnComment) { this.columnComment = columnComment; } + public String getColumnType() { return columnType; } + public void setColumnType(String columnType) { this.columnType = columnType; } + public String getJavaType() { return javaType; } + public void setJavaType(String javaType) { this.javaType = javaType; } + public String getJavaField() { return javaField; } + public void setJavaField(String javaField) { this.javaField = javaField; } + public String getIsPk() { return isPk; } + public void setIsPk(String isPk) { this.isPk = isPk; } + public String getIsIncrement() { return isIncrement; } + public void setIsIncrement(String isIncrement) { this.isIncrement = isIncrement; } + public String getIsRequired() { return isRequired; } + public void setIsRequired(String isRequired) { this.isRequired = isRequired; } + public String getIsInsert() { return isInsert; } + public void setIsInsert(String isInsert) { this.isInsert = isInsert; } + public String getIsEdit() { return isEdit; } + public void setIsEdit(String isEdit) { this.isEdit = isEdit; } + public String getIsList() { return isList; } + public void setIsList(String isList) { this.isList = isList; } + public String getIsQuery() { return isQuery; } + public void setIsQuery(String isQuery) { this.isQuery = isQuery; } + public String getQueryType() { return queryType; } + public void setQueryType(String queryType) { this.queryType = queryType; } + public String getHtmlType() { return htmlType; } + public void setHtmlType(String htmlType) { this.htmlType = htmlType; } + public String getDictType() { return dictType; } + public void setDictType(String dictType) { this.dictType = dictType; } + public String getDefaultValue() { return defaultValue; } + public void setDefaultValue(String defaultValue) { this.defaultValue = defaultValue; } + public Integer getSort() { return sort; } + public void setSort(Integer sort) { this.sort = sort; } +} diff --git a/RuoYi-Vue/ruoyi-generator/src/main/java/com/ruoyi/generator/domain/front/dto/DatabaseDesignResponse.java b/RuoYi-Vue/ruoyi-generator/src/main/java/com/ruoyi/generator/domain/front/dto/DatabaseDesignResponse.java new file mode 100644 index 0000000..777a171 --- /dev/null +++ b/RuoYi-Vue/ruoyi-generator/src/main/java/com/ruoyi/generator/domain/front/dto/DatabaseDesignResponse.java @@ -0,0 +1,17 @@ +package com.ruoyi.generator.domain.front.dto; + +import java.util.List; + +public class DatabaseDesignResponse +{ + private Long projectId; + private List tables; + private String sql; + + public Long getProjectId() { return projectId; } + public void setProjectId(Long projectId) { this.projectId = projectId; } + public List getTables() { return tables; } + public void setTables(List tables) { this.tables = tables; } + public String getSql() { return sql; } + public void setSql(String sql) { this.sql = sql; } +} diff --git a/RuoYi-Vue/ruoyi-generator/src/main/java/com/ruoyi/generator/domain/front/dto/DatabaseTableDesign.java b/RuoYi-Vue/ruoyi-generator/src/main/java/com/ruoyi/generator/domain/front/dto/DatabaseTableDesign.java new file mode 100644 index 0000000..c304e7d --- /dev/null +++ b/RuoYi-Vue/ruoyi-generator/src/main/java/com/ruoyi/generator/domain/front/dto/DatabaseTableDesign.java @@ -0,0 +1,47 @@ +package com.ruoyi.generator.domain.front.dto; + +import java.util.List; + +public class DatabaseTableDesign +{ + private Long tableId; + private String tableName; + private String tableComment; + private String className; + private String moduleName; + private String businessName; + private String functionName; + private String tplCategory; + private String tplWebType; + private String options; + private String createTableSql; + private Integer sort; + private List columns; + + public Long getTableId() { return tableId; } + public void setTableId(Long tableId) { this.tableId = tableId; } + public String getTableName() { return tableName; } + public void setTableName(String tableName) { this.tableName = tableName; } + public String getTableComment() { return tableComment; } + public void setTableComment(String tableComment) { this.tableComment = tableComment; } + public String getClassName() { return className; } + public void setClassName(String className) { this.className = className; } + public String getModuleName() { return moduleName; } + public void setModuleName(String moduleName) { this.moduleName = moduleName; } + public String getBusinessName() { return businessName; } + public void setBusinessName(String businessName) { this.businessName = businessName; } + public String getFunctionName() { return functionName; } + public void setFunctionName(String functionName) { this.functionName = functionName; } + public String getTplCategory() { return tplCategory; } + public void setTplCategory(String tplCategory) { this.tplCategory = tplCategory; } + public String getTplWebType() { return tplWebType; } + public void setTplWebType(String tplWebType) { this.tplWebType = tplWebType; } + public String getOptions() { return options; } + public void setOptions(String options) { this.options = options; } + public String getCreateTableSql() { return createTableSql; } + public void setCreateTableSql(String createTableSql) { this.createTableSql = createTableSql; } + public Integer getSort() { return sort; } + public void setSort(Integer sort) { this.sort = sort; } + public List getColumns() { return columns; } + public void setColumns(List columns) { this.columns = columns; } +} diff --git a/RuoYi-Vue/ruoyi-generator/src/main/java/com/ruoyi/generator/domain/front/dto/FrontLoginBody.java b/RuoYi-Vue/ruoyi-generator/src/main/java/com/ruoyi/generator/domain/front/dto/FrontLoginBody.java new file mode 100644 index 0000000..34aad06 --- /dev/null +++ b/RuoYi-Vue/ruoyi-generator/src/main/java/com/ruoyi/generator/domain/front/dto/FrontLoginBody.java @@ -0,0 +1,12 @@ +package com.ruoyi.generator.domain.front.dto; + +public class FrontLoginBody +{ + private String username; + private String password; + + public String getUsername() { return username; } + public void setUsername(String username) { this.username = username; } + public String getPassword() { return password; } + public void setPassword(String password) { this.password = password; } +} 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 new file mode 100644 index 0000000..c8bc838 --- /dev/null +++ b/RuoYi-Vue/ruoyi-generator/src/main/java/com/ruoyi/generator/domain/front/dto/FrontProjectCreateRequest.java @@ -0,0 +1,21 @@ +package com.ruoyi.generator.domain.front.dto; + +public class FrontProjectCreateRequest +{ + private String projectName; + private String projectDesc; + private String industryTemplate; + private String packageName; + private String version; + + public String getProjectName() { return projectName; } + public void setProjectName(String projectName) { this.projectName = projectName; } + public String getProjectDesc() { return projectDesc; } + public void setProjectDesc(String projectDesc) { this.projectDesc = projectDesc; } + public String getIndustryTemplate() { return industryTemplate; } + public void setIndustryTemplate(String industryTemplate) { this.industryTemplate = industryTemplate; } + public String getPackageName() { return packageName; } + public void setPackageName(String packageName) { this.packageName = packageName; } + public String getVersion() { return version; } + public void setVersion(String version) { this.version = version; } +} 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 new file mode 100644 index 0000000..71ffcc0 --- /dev/null +++ b/RuoYi-Vue/ruoyi-generator/src/main/java/com/ruoyi/generator/domain/front/dto/FrontProjectUpdateRequest.java @@ -0,0 +1,21 @@ +package com.ruoyi.generator.domain.front.dto; + +public class FrontProjectUpdateRequest +{ + private String projectName; + private String projectDesc; + private String industryTemplate; + private String packageName; + private String version; + + public String getProjectName() { return projectName; } + public void setProjectName(String projectName) { this.projectName = projectName; } + public String getProjectDesc() { return projectDesc; } + public void setProjectDesc(String projectDesc) { this.projectDesc = projectDesc; } + public String getIndustryTemplate() { return industryTemplate; } + public void setIndustryTemplate(String industryTemplate) { this.industryTemplate = industryTemplate; } + public String getPackageName() { return packageName; } + public void setPackageName(String packageName) { this.packageName = packageName; } + public String getVersion() { return version; } + public void setVersion(String version) { this.version = version; } +} diff --git a/RuoYi-Vue/ruoyi-generator/src/main/java/com/ruoyi/generator/domain/front/dto/FrontRegisterBody.java b/RuoYi-Vue/ruoyi-generator/src/main/java/com/ruoyi/generator/domain/front/dto/FrontRegisterBody.java new file mode 100644 index 0000000..0a2474a --- /dev/null +++ b/RuoYi-Vue/ruoyi-generator/src/main/java/com/ruoyi/generator/domain/front/dto/FrontRegisterBody.java @@ -0,0 +1,21 @@ +package com.ruoyi.generator.domain.front.dto; + +public class FrontRegisterBody +{ + private String username; + private String password; + private String nickname; + private String email; + private String phone; + + public String getUsername() { return username; } + public void setUsername(String username) { this.username = username; } + public String getPassword() { return password; } + public void setPassword(String password) { this.password = password; } + public String getNickname() { return nickname; } + public void setNickname(String nickname) { this.nickname = nickname; } + public String getEmail() { return email; } + public void setEmail(String email) { this.email = email; } + public String getPhone() { return phone; } + public void setPhone(String phone) { this.phone = phone; } +} diff --git a/RuoYi-Vue/ruoyi-generator/src/main/java/com/ruoyi/generator/domain/front/dto/GenerateDatabaseRequest.java b/RuoYi-Vue/ruoyi-generator/src/main/java/com/ruoyi/generator/domain/front/dto/GenerateDatabaseRequest.java new file mode 100644 index 0000000..73e1d10 --- /dev/null +++ b/RuoYi-Vue/ruoyi-generator/src/main/java/com/ruoyi/generator/domain/front/dto/GenerateDatabaseRequest.java @@ -0,0 +1,18 @@ +package com.ruoyi.generator.domain.front.dto; + +public class GenerateDatabaseRequest +{ + private String projectName; + private String projectDesc; + private String industryTemplate; + private String extraRequirements; + + public String getProjectName() { return projectName; } + public void setProjectName(String projectName) { this.projectName = projectName; } + public String getProjectDesc() { return projectDesc; } + public void setProjectDesc(String projectDesc) { this.projectDesc = projectDesc; } + public String getIndustryTemplate() { return industryTemplate; } + public void setIndustryTemplate(String industryTemplate) { this.industryTemplate = industryTemplate; } + public String getExtraRequirements() { return extraRequirements; } + public void setExtraRequirements(String extraRequirements) { this.extraRequirements = extraRequirements; } +} diff --git a/RuoYi-Vue/ruoyi-generator/src/main/java/com/ruoyi/generator/domain/front/dto/PreviewFileRequest.java b/RuoYi-Vue/ruoyi-generator/src/main/java/com/ruoyi/generator/domain/front/dto/PreviewFileRequest.java new file mode 100644 index 0000000..f1dbc37 --- /dev/null +++ b/RuoYi-Vue/ruoyi-generator/src/main/java/com/ruoyi/generator/domain/front/dto/PreviewFileRequest.java @@ -0,0 +1,18 @@ +package com.ruoyi.generator.domain.front.dto; + +public class PreviewFileRequest +{ + private String templateType; + private String nodeId; + private Long tableId; + private String category; + + public String getTemplateType() { return templateType; } + public void setTemplateType(String templateType) { this.templateType = templateType; } + public String getNodeId() { return nodeId; } + public void setNodeId(String nodeId) { this.nodeId = nodeId; } + public Long getTableId() { return tableId; } + public void setTableId(Long tableId) { this.tableId = tableId; } + public String getCategory() { return category; } + public void setCategory(String category) { this.category = category; } +} diff --git a/RuoYi-Vue/ruoyi-generator/src/main/java/com/ruoyi/generator/domain/front/dto/ProjectStructureResponse.java b/RuoYi-Vue/ruoyi-generator/src/main/java/com/ruoyi/generator/domain/front/dto/ProjectStructureResponse.java new file mode 100644 index 0000000..810e8b8 --- /dev/null +++ b/RuoYi-Vue/ruoyi-generator/src/main/java/com/ruoyi/generator/domain/front/dto/ProjectStructureResponse.java @@ -0,0 +1,15 @@ +package com.ruoyi.generator.domain.front.dto; + +import java.util.List; +import java.util.Map; + +public class ProjectStructureResponse +{ + private String templateType; + private List> structure; + + public String getTemplateType() { return templateType; } + public void setTemplateType(String templateType) { this.templateType = templateType; } + public List> getStructure() { return structure; } + public void setStructure(List> structure) { this.structure = structure; } +} diff --git a/RuoYi-Vue/ruoyi-generator/src/main/java/com/ruoyi/generator/mapper/front/FrontProjectColumnMapper.java b/RuoYi-Vue/ruoyi-generator/src/main/java/com/ruoyi/generator/mapper/front/FrontProjectColumnMapper.java new file mode 100644 index 0000000..d233a00 --- /dev/null +++ b/RuoYi-Vue/ruoyi-generator/src/main/java/com/ruoyi/generator/mapper/front/FrontProjectColumnMapper.java @@ -0,0 +1,15 @@ +package com.ruoyi.generator.mapper.front; + +import java.util.List; +import com.ruoyi.generator.domain.front.FrontProjectColumn; + +public interface FrontProjectColumnMapper +{ + public FrontProjectColumn selectFrontProjectColumnById(Long columnId); + public List selectFrontProjectColumnList(FrontProjectColumn frontProjectColumn); + public List selectColumnsByTableId(Long tableId); + public int insertFrontProjectColumn(FrontProjectColumn frontProjectColumn); + public int updateFrontProjectColumn(FrontProjectColumn frontProjectColumn); + public int deleteFrontProjectColumnById(Long columnId); + public int deleteColumnsByProjectId(Long projectId); +} diff --git a/RuoYi-Vue/ruoyi-generator/src/main/java/com/ruoyi/generator/mapper/front/FrontProjectFileMapper.java b/RuoYi-Vue/ruoyi-generator/src/main/java/com/ruoyi/generator/mapper/front/FrontProjectFileMapper.java new file mode 100644 index 0000000..ff9b1e5 --- /dev/null +++ b/RuoYi-Vue/ruoyi-generator/src/main/java/com/ruoyi/generator/mapper/front/FrontProjectFileMapper.java @@ -0,0 +1,17 @@ +package com.ruoyi.generator.mapper.front; + +import java.util.List; +import org.apache.ibatis.annotations.Param; +import com.ruoyi.generator.domain.front.FrontProjectFile; + +public interface FrontProjectFileMapper +{ + public FrontProjectFile selectFrontProjectFileById(Long fileId); + public List selectFrontProjectFileList(FrontProjectFile frontProjectFile); + public FrontProjectFile selectFrontProjectFileByLookup(@Param("projectId") Long projectId, + @Param("templateType") String templateType, @Param("tableId") Long tableId, @Param("nodeId") String nodeId); + public int insertFrontProjectFile(FrontProjectFile frontProjectFile); + public int updateFrontProjectFile(FrontProjectFile frontProjectFile); + public int deleteFrontProjectFileById(Long fileId); + public int deleteFilesByProjectId(Long projectId); +} diff --git a/RuoYi-Vue/ruoyi-generator/src/main/java/com/ruoyi/generator/mapper/front/FrontProjectGenerationMapper.java b/RuoYi-Vue/ruoyi-generator/src/main/java/com/ruoyi/generator/mapper/front/FrontProjectGenerationMapper.java new file mode 100644 index 0000000..3b6e932 --- /dev/null +++ b/RuoYi-Vue/ruoyi-generator/src/main/java/com/ruoyi/generator/mapper/front/FrontProjectGenerationMapper.java @@ -0,0 +1,14 @@ +package com.ruoyi.generator.mapper.front; + +import java.util.List; +import com.ruoyi.generator.domain.front.FrontProjectGeneration; + +public interface FrontProjectGenerationMapper +{ + public FrontProjectGeneration selectFrontProjectGenerationById(Long generationId); + public List selectFrontProjectGenerationList(FrontProjectGeneration frontProjectGeneration); + public List selectGenerationsByProjectId(Long projectId); + public int insertFrontProjectGeneration(FrontProjectGeneration frontProjectGeneration); + public int updateFrontProjectGeneration(FrontProjectGeneration frontProjectGeneration); + public int deleteFrontProjectGenerationById(Long generationId); +} diff --git a/RuoYi-Vue/ruoyi-generator/src/main/java/com/ruoyi/generator/mapper/front/FrontProjectMapper.java b/RuoYi-Vue/ruoyi-generator/src/main/java/com/ruoyi/generator/mapper/front/FrontProjectMapper.java new file mode 100644 index 0000000..85a661e --- /dev/null +++ b/RuoYi-Vue/ruoyi-generator/src/main/java/com/ruoyi/generator/mapper/front/FrontProjectMapper.java @@ -0,0 +1,16 @@ +package com.ruoyi.generator.mapper.front; + +import java.util.List; +import org.apache.ibatis.annotations.Param; +import com.ruoyi.generator.domain.front.FrontProject; + +public interface FrontProjectMapper +{ + public FrontProject selectFrontProjectById(Long projectId); + public List selectFrontProjectList(FrontProject frontProject); + public int insertFrontProject(FrontProject frontProject); + public int updateFrontProject(FrontProject frontProject); + public int deleteFrontProjectById(Long projectId); + public FrontProject selectFrontProjectByUserAndId(@Param("userId") Long userId, @Param("projectId") Long projectId); + public int deleteFrontProjectByUserAndId(@Param("userId") Long userId, @Param("projectId") Long projectId); +} diff --git a/RuoYi-Vue/ruoyi-generator/src/main/java/com/ruoyi/generator/mapper/front/FrontProjectTableMapper.java b/RuoYi-Vue/ruoyi-generator/src/main/java/com/ruoyi/generator/mapper/front/FrontProjectTableMapper.java new file mode 100644 index 0000000..150009f --- /dev/null +++ b/RuoYi-Vue/ruoyi-generator/src/main/java/com/ruoyi/generator/mapper/front/FrontProjectTableMapper.java @@ -0,0 +1,15 @@ +package com.ruoyi.generator.mapper.front; + +import java.util.List; +import com.ruoyi.generator.domain.front.FrontProjectTable; + +public interface FrontProjectTableMapper +{ + public FrontProjectTable selectFrontProjectTableById(Long tableId); + public List selectFrontProjectTableList(FrontProjectTable frontProjectTable); + public List selectTablesByProjectId(Long projectId); + public int insertFrontProjectTable(FrontProjectTable frontProjectTable); + public int updateFrontProjectTable(FrontProjectTable frontProjectTable); + public int deleteFrontProjectTableById(Long tableId); + public int deleteTablesByProjectId(Long projectId); +} diff --git a/RuoYi-Vue/ruoyi-generator/src/main/java/com/ruoyi/generator/mapper/front/FrontUserMapper.java b/RuoYi-Vue/ruoyi-generator/src/main/java/com/ruoyi/generator/mapper/front/FrontUserMapper.java new file mode 100644 index 0000000..36cdfd2 --- /dev/null +++ b/RuoYi-Vue/ruoyi-generator/src/main/java/com/ruoyi/generator/mapper/front/FrontUserMapper.java @@ -0,0 +1,14 @@ +package com.ruoyi.generator.mapper.front; + +import java.util.List; +import com.ruoyi.generator.domain.front.FrontUser; + +public interface FrontUserMapper +{ + public FrontUser selectFrontUserById(Long userId); + public FrontUser selectFrontUserByUsername(String username); + public List selectFrontUserList(FrontUser frontUser); + public int insertFrontUser(FrontUser frontUser); + public int updateFrontUser(FrontUser frontUser); + public int deleteFrontUserById(Long userId); +} diff --git a/RuoYi-Vue/ruoyi-generator/src/main/java/com/ruoyi/generator/service/front/FrontProjectConverter.java b/RuoYi-Vue/ruoyi-generator/src/main/java/com/ruoyi/generator/service/front/FrontProjectConverter.java new file mode 100644 index 0000000..b7b096f --- /dev/null +++ b/RuoYi-Vue/ruoyi-generator/src/main/java/com/ruoyi/generator/service/front/FrontProjectConverter.java @@ -0,0 +1,98 @@ +package com.ruoyi.generator.service.front; + +import java.util.ArrayList; +import java.util.List; +import com.ruoyi.generator.domain.GenProject; +import com.ruoyi.generator.domain.GenTable; +import com.ruoyi.generator.domain.GenTableColumn; +import com.ruoyi.generator.domain.front.FrontProject; +import com.ruoyi.generator.domain.front.FrontProjectColumn; +import com.ruoyi.generator.domain.front.FrontProjectTable; + +public class FrontProjectConverter +{ + public static GenProject toGenProject(FrontProject project) + { + if (project == null) + { + return null; + } + GenProject genProject = new GenProject(); + genProject.setProjectId(project.getProjectId()); + genProject.setProjectName(project.getProjectName()); + genProject.setProjectFileName(project.getProjectFileName()); + genProject.setPackageName(project.getPackageName()); + genProject.setVersion(project.getVersion()); + genProject.setProjectDesc(project.getProjectDesc()); + genProject.setFrontFramework(project.getFrontFramework()); + genProject.setBackFramework(project.getBackFramework()); + genProject.setStatus(project.getStatus()); + genProject.setTables(toGenTables(project.getTables())); + return genProject; + } + + private static List toGenTables(List tables) + { + List genTables = new ArrayList(); + if (tables == null) + { + return genTables; + } + for (FrontProjectTable table : tables) + { + genTables.add(toGenTable(table)); + } + return genTables; + } + + private static GenTable toGenTable(FrontProjectTable table) + { + GenTable genTable = new GenTable(); + genTable.setTableId(table.getTableId()); + genTable.setTableName(table.getTableName()); + genTable.setTableComment(table.getTableComment()); + genTable.setClassName(table.getClassName()); + genTable.setModuleName(table.getModuleName()); + genTable.setBusinessName(table.getBusinessName()); + genTable.setFunctionName(table.getFunctionName()); + genTable.setTplCategory(table.getTplCategory()); + genTable.setTplWebType(table.getTplWebType()); + genTable.setOptions(table.getOptions()); + genTable.setCreateTableSql(table.getCreateTableSql()); + genTable.setColumns(toGenColumns(table.getColumns())); + return genTable; + } + + private static List toGenColumns(List columns) + { + List genColumns = new ArrayList(); + if (columns == null) + { + return genColumns; + } + for (FrontProjectColumn column : columns) + { + GenTableColumn genColumn = new GenTableColumn(); + genColumn.setColumnId(column.getColumnId()); + genColumn.setTableId(column.getTableId()); + genColumn.setColumnName(column.getColumnName()); + genColumn.setColumnComment(column.getColumnComment()); + genColumn.setColumnType(column.getColumnType()); + genColumn.setJavaType(column.getJavaType()); + genColumn.setJavaField(column.getJavaField()); + genColumn.setIsPk(column.getIsPk()); + genColumn.setIsIncrement(column.getIsIncrement()); + genColumn.setIsRequired(column.getIsRequired()); + genColumn.setIsInsert(column.getIsInsert()); + genColumn.setIsEdit(column.getIsEdit()); + genColumn.setIsList(column.getIsList()); + genColumn.setIsQuery(column.getIsQuery()); + genColumn.setQueryType(column.getQueryType()); + genColumn.setHtmlType(column.getHtmlType()); + genColumn.setDictType(column.getDictType()); + genColumn.setSort(column.getSort()); + genColumns.add(genColumn); + } + return genColumns; + } +} 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 new file mode 100644 index 0000000..895b39d --- /dev/null +++ b/RuoYi-Vue/ruoyi-generator/src/main/java/com/ruoyi/generator/service/front/FrontProjectServiceImpl.java @@ -0,0 +1,257 @@ +package com.ruoyi.generator.service.front; + +import java.util.ArrayList; +import java.util.List; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import com.ruoyi.common.exception.ServiceException; +import com.ruoyi.common.utils.StringUtils; +import com.ruoyi.generator.domain.front.FrontProject; +import com.ruoyi.generator.domain.front.FrontProjectColumn; +import com.ruoyi.generator.domain.front.FrontProjectTable; +import com.ruoyi.generator.domain.front.dto.DatabaseColumnDesign; +import com.ruoyi.generator.domain.front.dto.DatabaseDesignResponse; +import com.ruoyi.generator.domain.front.dto.DatabaseTableDesign; +import com.ruoyi.generator.domain.front.dto.FrontProjectCreateRequest; +import com.ruoyi.generator.domain.front.dto.FrontProjectUpdateRequest; +import com.ruoyi.generator.mapper.front.FrontProjectColumnMapper; +import com.ruoyi.generator.mapper.front.FrontProjectMapper; +import com.ruoyi.generator.mapper.front.FrontProjectTableMapper; + +@Service +public class FrontProjectServiceImpl implements IFrontProjectService +{ + @Autowired + private FrontProjectMapper frontProjectMapper; + @Autowired + private FrontProjectTableMapper frontProjectTableMapper; + @Autowired + private FrontProjectColumnMapper frontProjectColumnMapper; + + @Override + public FrontProject createProject(Long userId, FrontProjectCreateRequest request) + { + if (userId == null || request == null || StringUtils.isEmpty(request.getProjectName())) + { + throw new ServiceException("项目名称不能为空"); + } + FrontProject project = new FrontProject(); + project.setUserId(userId); + project.setProjectName(request.getProjectName()); + project.setProjectDesc(request.getProjectDesc()); + project.setIndustryTemplate(request.getIndustryTemplate()); + project.setPackageName(StringUtils.defaultIfEmpty(request.getPackageName(), "com.easycode.generated")); + project.setVersion(StringUtils.defaultIfEmpty(request.getVersion(), "1.0.0")); + project.setProjectFileName(toProjectFileName(request.getProjectName())); + project.setFrontFramework("Vue3 + Element Plus"); + project.setBackFramework("Spring Boot + MyBatis"); + project.setGenerateStatus("0"); + project.setPreviewStatus("0"); + project.setStatus("0"); + frontProjectMapper.insertFrontProject(project); + return project; + } + + @Override + public List listProjects(Long userId) + { + FrontProject query = new FrontProject(); + query.setUserId(userId); + return frontProjectMapper.selectFrontProjectList(query); + } + + @Override + public FrontProject getProject(Long userId, Long projectId) + { + FrontProject project = frontProjectMapper.selectFrontProjectByUserAndId(userId, projectId); + if (project == null) + { + throw new ServiceException("项目不存在"); + } + return project; + } + + @Override + public int updateProject(Long userId, Long projectId, FrontProjectUpdateRequest request) + { + if (request == null) + { + throw new ServiceException("项目参数不能为空"); + } + getProject(userId, projectId); + FrontProject project = new FrontProject(); + project.setProjectId(projectId); + project.setUserId(userId); + project.setProjectName(request.getProjectName()); + project.setProjectDesc(request.getProjectDesc()); + project.setIndustryTemplate(request.getIndustryTemplate()); + project.setPackageName(request.getPackageName()); + project.setVersion(request.getVersion()); + return frontProjectMapper.updateFrontProject(project); + } + + @Override + @Transactional + public int deleteProject(Long userId, Long projectId) + { + getProject(userId, projectId); + frontProjectColumnMapper.deleteColumnsByProjectId(projectId); + frontProjectTableMapper.deleteTablesByProjectId(projectId); + return frontProjectMapper.deleteFrontProjectByUserAndId(userId, projectId); + } + + @Override + public DatabaseDesignResponse getDatabase(Long userId, Long projectId) + { + getProject(userId, projectId); + DatabaseDesignResponse response = new DatabaseDesignResponse(); + response.setProjectId(projectId); + List tables = new ArrayList(); + List projectTables = frontProjectTableMapper.selectTablesByProjectId(projectId); + if (projectTables == null) + { + projectTables = new ArrayList(); + } + for (FrontProjectTable table : projectTables) + { + List columns = frontProjectColumnMapper.selectColumnsByTableId(table.getTableId()); + table.setColumns(columns); + tables.add(toTableDesign(table)); + } + response.setTables(tables); + return response; + } + + @Override + @Transactional + public DatabaseDesignResponse saveDatabase(Long userId, Long projectId, DatabaseDesignResponse request) + { + getProject(userId, projectId); + frontProjectColumnMapper.deleteColumnsByProjectId(projectId); + frontProjectTableMapper.deleteTablesByProjectId(projectId); + if (request != null && request.getTables() != null) + { + for (DatabaseTableDesign tableDesign : request.getTables()) + { + if (tableDesign == null) + { + continue; + } + FrontProjectTable table = toFrontProjectTable(projectId, userId, tableDesign); + frontProjectTableMapper.insertFrontProjectTable(table); + if (tableDesign.getColumns() != null) + { + for (DatabaseColumnDesign columnDesign : tableDesign.getColumns()) + { + FrontProjectColumn column = toFrontProjectColumn(projectId, table.getTableId(), columnDesign); + frontProjectColumnMapper.insertFrontProjectColumn(column); + } + } + } + } + return getDatabase(userId, projectId); + } + + private String toProjectFileName(String projectName) + { + return StringUtils.defaultString(projectName).trim().replaceAll("\\s+", "-").toLowerCase(); + } + + private FrontProjectTable toFrontProjectTable(Long projectId, Long userId, DatabaseTableDesign source) + { + FrontProjectTable table = new FrontProjectTable(); + table.setProjectId(projectId); + table.setUserId(userId); + table.setTableName(source.getTableName()); + table.setTableComment(source.getTableComment()); + table.setClassName(source.getClassName()); + table.setModuleName(source.getModuleName()); + table.setBusinessName(source.getBusinessName()); + table.setFunctionName(source.getFunctionName()); + table.setTplCategory(StringUtils.defaultIfEmpty(source.getTplCategory(), "crud")); + table.setTplWebType(StringUtils.defaultIfEmpty(source.getTplWebType(), "element-plus")); + table.setOptions(source.getOptions()); + table.setCreateTableSql(source.getCreateTableSql()); + table.setSort(source.getSort()); + table.setStatus("0"); + return table; + } + + private FrontProjectColumn toFrontProjectColumn(Long projectId, Long tableId, DatabaseColumnDesign source) + { + FrontProjectColumn column = new FrontProjectColumn(); + column.setProjectId(projectId); + column.setTableId(tableId); + column.setColumnName(source.getColumnName()); + column.setColumnComment(source.getColumnComment()); + column.setColumnType(source.getColumnType()); + column.setJavaType(source.getJavaType()); + column.setJavaField(source.getJavaField()); + column.setIsPk(source.getIsPk()); + column.setIsIncrement(source.getIsIncrement()); + column.setIsRequired(source.getIsRequired()); + column.setIsInsert(source.getIsInsert()); + column.setIsEdit(source.getIsEdit()); + column.setIsList(source.getIsList()); + column.setIsQuery(source.getIsQuery()); + column.setQueryType(source.getQueryType()); + column.setHtmlType(source.getHtmlType()); + column.setDictType(source.getDictType()); + column.setDefaultValue(source.getDefaultValue()); + column.setSort(source.getSort()); + return column; + } + + private DatabaseTableDesign toTableDesign(FrontProjectTable source) + { + DatabaseTableDesign table = new DatabaseTableDesign(); + table.setTableId(source.getTableId()); + table.setTableName(source.getTableName()); + table.setTableComment(source.getTableComment()); + table.setClassName(source.getClassName()); + table.setModuleName(source.getModuleName()); + table.setBusinessName(source.getBusinessName()); + table.setFunctionName(source.getFunctionName()); + table.setTplCategory(source.getTplCategory()); + table.setTplWebType(source.getTplWebType()); + table.setOptions(source.getOptions()); + table.setCreateTableSql(source.getCreateTableSql()); + table.setSort(source.getSort()); + List columns = new ArrayList(); + if (source.getColumns() != null) + { + for (FrontProjectColumn column : source.getColumns()) + { + columns.add(toColumnDesign(column)); + } + } + table.setColumns(columns); + return table; + } + + private DatabaseColumnDesign toColumnDesign(FrontProjectColumn source) + { + DatabaseColumnDesign column = new DatabaseColumnDesign(); + column.setColumnId(source.getColumnId()); + column.setTableId(source.getTableId()); + column.setColumnName(source.getColumnName()); + column.setColumnComment(source.getColumnComment()); + column.setColumnType(source.getColumnType()); + column.setJavaType(source.getJavaType()); + column.setJavaField(source.getJavaField()); + column.setIsPk(source.getIsPk()); + column.setIsIncrement(source.getIsIncrement()); + column.setIsRequired(source.getIsRequired()); + column.setIsInsert(source.getIsInsert()); + column.setIsEdit(source.getIsEdit()); + column.setIsList(source.getIsList()); + column.setIsQuery(source.getIsQuery()); + column.setQueryType(source.getQueryType()); + column.setHtmlType(source.getHtmlType()); + column.setDictType(source.getDictType()); + column.setDefaultValue(source.getDefaultValue()); + column.setSort(source.getSort()); + return column; + } +} diff --git a/RuoYi-Vue/ruoyi-generator/src/main/java/com/ruoyi/generator/service/front/FrontUserServiceImpl.java b/RuoYi-Vue/ruoyi-generator/src/main/java/com/ruoyi/generator/service/front/FrontUserServiceImpl.java new file mode 100644 index 0000000..b8ef1d5 --- /dev/null +++ b/RuoYi-Vue/ruoyi-generator/src/main/java/com/ruoyi/generator/service/front/FrontUserServiceImpl.java @@ -0,0 +1,77 @@ +package com.ruoyi.generator.service.front; + +import java.util.Date; +import java.util.List; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.ruoyi.common.exception.ServiceException; +import com.ruoyi.common.utils.StringUtils; +import com.ruoyi.generator.domain.front.FrontUser; +import com.ruoyi.generator.domain.front.dto.FrontLoginBody; +import com.ruoyi.generator.domain.front.dto.FrontRegisterBody; +import com.ruoyi.generator.mapper.front.FrontUserMapper; + +@Service +public class FrontUserServiceImpl implements IFrontUserService +{ + @Autowired + private FrontUserMapper frontUserMapper; + + @Override + public FrontUser login(FrontLoginBody loginBody) + { + if (loginBody == null || StringUtils.isEmpty(loginBody.getUsername()) || StringUtils.isEmpty(loginBody.getPassword())) + { + throw new ServiceException("用户名或密码不能为空"); + } + FrontUser user = frontUserMapper.selectFrontUserByUsername(loginBody.getUsername()); + if (user == null || !StringUtils.equals(user.getPassword(), loginBody.getPassword())) + { + throw new ServiceException("用户名或密码错误"); + } + user.setLastLoginTime(new Date()); + frontUserMapper.updateFrontUser(user); + return user; + } + + @Override + public FrontUser register(FrontRegisterBody registerBody) + { + if (registerBody == null || StringUtils.isEmpty(registerBody.getUsername()) || StringUtils.isEmpty(registerBody.getPassword())) + { + throw new ServiceException("用户名或密码不能为空"); + } + if (frontUserMapper.selectFrontUserByUsername(registerBody.getUsername()) != null) + { + throw new ServiceException("用户名已存在"); + } + FrontUser user = new FrontUser(); + user.setUsername(registerBody.getUsername()); + user.setPassword(registerBody.getPassword()); + user.setNickname(registerBody.getNickname()); + user.setEmail(registerBody.getEmail()); + user.setPhone(registerBody.getPhone()); + user.setStatus("0"); + user.setDelFlag("0"); + frontUserMapper.insertFrontUser(user); + return user; + } + + @Override + public FrontUser selectFrontUserById(Long userId) + { + return frontUserMapper.selectFrontUserById(userId); + } + + @Override + public FrontUser selectFrontUserByUsername(String username) + { + return frontUserMapper.selectFrontUserByUsername(username); + } + + @Override + public List selectFrontUserList(FrontUser frontUser) + { + return frontUserMapper.selectFrontUserList(frontUser); + } +} diff --git a/RuoYi-Vue/ruoyi-generator/src/main/java/com/ruoyi/generator/service/front/IFrontProjectService.java b/RuoYi-Vue/ruoyi-generator/src/main/java/com/ruoyi/generator/service/front/IFrontProjectService.java new file mode 100644 index 0000000..618fbeb --- /dev/null +++ b/RuoYi-Vue/ruoyi-generator/src/main/java/com/ruoyi/generator/service/front/IFrontProjectService.java @@ -0,0 +1,18 @@ +package com.ruoyi.generator.service.front; + +import java.util.List; +import com.ruoyi.generator.domain.front.FrontProject; +import com.ruoyi.generator.domain.front.dto.DatabaseDesignResponse; +import com.ruoyi.generator.domain.front.dto.FrontProjectCreateRequest; +import com.ruoyi.generator.domain.front.dto.FrontProjectUpdateRequest; + +public interface IFrontProjectService +{ + public FrontProject createProject(Long userId, FrontProjectCreateRequest request); + public List listProjects(Long userId); + public FrontProject getProject(Long userId, Long projectId); + public int updateProject(Long userId, Long projectId, FrontProjectUpdateRequest request); + public int deleteProject(Long userId, Long projectId); + public DatabaseDesignResponse getDatabase(Long userId, Long projectId); + public DatabaseDesignResponse saveDatabase(Long userId, Long projectId, DatabaseDesignResponse request); +} diff --git a/RuoYi-Vue/ruoyi-generator/src/main/java/com/ruoyi/generator/service/front/IFrontUserService.java b/RuoYi-Vue/ruoyi-generator/src/main/java/com/ruoyi/generator/service/front/IFrontUserService.java new file mode 100644 index 0000000..dffebbb --- /dev/null +++ b/RuoYi-Vue/ruoyi-generator/src/main/java/com/ruoyi/generator/service/front/IFrontUserService.java @@ -0,0 +1,15 @@ +package com.ruoyi.generator.service.front; + +import java.util.List; +import com.ruoyi.generator.domain.front.FrontUser; +import com.ruoyi.generator.domain.front.dto.FrontLoginBody; +import com.ruoyi.generator.domain.front.dto.FrontRegisterBody; + +public interface IFrontUserService +{ + public FrontUser login(FrontLoginBody loginBody); + public FrontUser register(FrontRegisterBody registerBody); + public FrontUser selectFrontUserById(Long userId); + public FrontUser selectFrontUserByUsername(String username); + public List selectFrontUserList(FrontUser frontUser); +} diff --git a/RuoYi-Vue/ruoyi-generator/src/main/resources/mapper/front/FrontProjectColumnMapper.xml b/RuoYi-Vue/ruoyi-generator/src/main/resources/mapper/front/FrontProjectColumnMapper.xml new file mode 100644 index 0000000..94b06da --- /dev/null +++ b/RuoYi-Vue/ruoyi-generator/src/main/resources/mapper/front/FrontProjectColumnMapper.xml @@ -0,0 +1,136 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + select column_id, table_id, project_id, column_name, column_comment, column_type, java_type, java_field, is_pk, is_increment, is_required, is_insert, is_edit, is_list, is_query, query_type, html_type, dict_type, default_value, sort, create_time, update_time from front_project_column + + + + + + + + + + insert into front_project_column + + table_id, + project_id, + column_name, + column_comment, + column_type, + java_type, + java_field, + is_pk, + is_increment, + is_required, + is_insert, + is_edit, + is_list, + is_query, + query_type, + html_type, + dict_type, + default_value, + sort, + create_time, + + + #{tableId}, + #{projectId}, + #{columnName}, + #{columnComment}, + #{columnType}, + #{javaType}, + #{javaField}, + #{isPk}, + #{isIncrement}, + #{isRequired}, + #{isInsert}, + #{isEdit}, + #{isList}, + #{isQuery}, + #{queryType}, + #{htmlType}, + #{dictType}, + #{defaultValue}, + #{sort}, + sysdate(), + + + + + update front_project_column + + column_name = #{columnName}, + column_comment = #{columnComment}, + column_type = #{columnType}, + java_type = #{javaType}, + java_field = #{javaField}, + is_pk = #{isPk}, + is_increment = #{isIncrement}, + is_required = #{isRequired}, + is_insert = #{isInsert}, + is_edit = #{isEdit}, + is_list = #{isList}, + is_query = #{isQuery}, + query_type = #{queryType}, + html_type = #{htmlType}, + dict_type = #{dictType}, + default_value = #{defaultValue}, + sort = #{sort}, + update_time = sysdate(), + + where column_id = #{columnId} + + + + delete from front_project_column where column_id = #{columnId} + + + + delete from front_project_column where project_id = #{projectId} + + diff --git a/RuoYi-Vue/ruoyi-generator/src/main/resources/mapper/front/FrontProjectFileMapper.xml b/RuoYi-Vue/ruoyi-generator/src/main/resources/mapper/front/FrontProjectFileMapper.xml new file mode 100644 index 0000000..5e106f7 --- /dev/null +++ b/RuoYi-Vue/ruoyi-generator/src/main/resources/mapper/front/FrontProjectFileMapper.xml @@ -0,0 +1,94 @@ + + + + + + + + + + + + + + + + + + + + select file_id, project_id, template_type, node_id, table_id, file_name, file_path, file_content, content_hash, create_time, update_time from front_project_file + + + + + + + + + + insert into front_project_file + + project_id, + template_type, + node_id, + table_id, + file_name, + file_path, + file_content, + content_hash, + create_time, + + + #{projectId}, + #{templateType}, + #{nodeId}, + #{tableId}, + #{fileName}, + #{filePath}, + #{fileContent}, + #{contentHash}, + sysdate(), + + + + + update front_project_file + + file_name = #{fileName}, + file_path = #{filePath}, + file_content = #{fileContent}, + content_hash = #{contentHash}, + update_time = sysdate(), + + where file_id = #{fileId} + + + + delete from front_project_file where file_id = #{fileId} + + + + delete from front_project_file where project_id = #{projectId} + + diff --git a/RuoYi-Vue/ruoyi-generator/src/main/resources/mapper/front/FrontProjectGenerationMapper.xml b/RuoYi-Vue/ruoyi-generator/src/main/resources/mapper/front/FrontProjectGenerationMapper.xml new file mode 100644 index 0000000..c0c0bb9 --- /dev/null +++ b/RuoYi-Vue/ruoyi-generator/src/main/resources/mapper/front/FrontProjectGenerationMapper.xml @@ -0,0 +1,95 @@ + + + + + + + + + + + + + + + + + + + + + + select generation_id, project_id, user_id, generate_type, provider, prompt_summary, request_payload, response_payload, success, error_message, token_usage, elapsed_ms, create_time from front_project_generation + + + + + + + + + + insert into front_project_generation + + project_id, + user_id, + generate_type, + provider, + prompt_summary, + request_payload, + response_payload, + success, + error_message, + token_usage, + elapsed_ms, + create_time, + + + #{projectId}, + #{userId}, + #{generateType}, + #{provider}, + #{promptSummary}, + #{requestPayload}, + #{responsePayload}, + #{success}, + #{errorMessage}, + #{tokenUsage}, + #{elapsedMs}, + sysdate(), + + + + + update front_project_generation + + response_payload = #{responsePayload}, + success = #{success}, + error_message = #{errorMessage}, + token_usage = #{tokenUsage}, + elapsed_ms = #{elapsedMs}, + + where generation_id = #{generationId} + + + + delete from front_project_generation where generation_id = #{generationId} + + 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 new file mode 100644 index 0000000..7a7a60e --- /dev/null +++ b/RuoYi-Vue/ruoyi-generator/src/main/resources/mapper/front/FrontProjectMapper.xml @@ -0,0 +1,116 @@ + + + + + + + + + + + + + + + + + + + + + + + + + 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, status, create_time, update_time, remark from front_project + + + + + + + + + + insert into front_project + + user_id, + project_name, + project_file_name, + package_name, + version, + project_desc, + industry_template, + front_framework, + back_framework, + generate_status, + preview_status, + status, + create_time, + remark, + + + #{userId}, + #{projectName}, + #{projectFileName}, + #{packageName}, + #{version}, + #{projectDesc}, + #{industryTemplate}, + #{frontFramework}, + #{backFramework}, + #{generateStatus}, + #{previewStatus}, + #{status}, + sysdate(), + #{remark}, + + + + + update front_project + + project_name = #{projectName}, + project_file_name = #{projectFileName}, + package_name = #{packageName}, + version = #{version}, + project_desc = #{projectDesc}, + industry_template = #{industryTemplate}, + front_framework = #{frontFramework}, + back_framework = #{backFramework}, + generate_status = #{generateStatus}, + preview_status = #{previewStatus}, + status = #{status}, + update_time = sysdate(), + remark = #{remark}, + + where project_id = #{projectId} + + + + delete from front_project where project_id = #{projectId} + + + + delete from front_project where user_id = #{userId} and project_id = #{projectId} + + diff --git a/RuoYi-Vue/ruoyi-generator/src/main/resources/mapper/front/FrontProjectTableMapper.xml b/RuoYi-Vue/ruoyi-generator/src/main/resources/mapper/front/FrontProjectTableMapper.xml new file mode 100644 index 0000000..92ffcc2 --- /dev/null +++ b/RuoYi-Vue/ruoyi-generator/src/main/resources/mapper/front/FrontProjectTableMapper.xml @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + select table_id, project_id, user_id, table_name, table_comment, class_name, module_name, business_name, function_name, tpl_category, tpl_web_type, options, create_table_sql, sort, status, create_time, update_time from front_project_table + + + + + + + + + + insert into front_project_table + + project_id, + user_id, + table_name, + table_comment, + class_name, + module_name, + business_name, + function_name, + tpl_category, + tpl_web_type, + options, + create_table_sql, + sort, + status, + create_time, + + + #{projectId}, + #{userId}, + #{tableName}, + #{tableComment}, + #{className}, + #{moduleName}, + #{businessName}, + #{functionName}, + #{tplCategory}, + #{tplWebType}, + #{options}, + #{createTableSql}, + #{sort}, + #{status}, + sysdate(), + + + + + update front_project_table + + table_name = #{tableName}, + table_comment = #{tableComment}, + class_name = #{className}, + module_name = #{moduleName}, + business_name = #{businessName}, + function_name = #{functionName}, + tpl_category = #{tplCategory}, + tpl_web_type = #{tplWebType}, + options = #{options}, + create_table_sql = #{createTableSql}, + sort = #{sort}, + status = #{status}, + update_time = sysdate(), + + where table_id = #{tableId} + + + + delete from front_project_table where table_id = #{tableId} + + + + delete from front_project_table where project_id = #{projectId} + + diff --git a/RuoYi-Vue/ruoyi-generator/src/main/resources/mapper/front/FrontUserMapper.xml b/RuoYi-Vue/ruoyi-generator/src/main/resources/mapper/front/FrontUserMapper.xml new file mode 100644 index 0000000..93a7d88 --- /dev/null +++ b/RuoYi-Vue/ruoyi-generator/src/main/resources/mapper/front/FrontUserMapper.xml @@ -0,0 +1,95 @@ + + + + + + + + + + + + + + + + + + + + + select user_id, username, password, nickname, email, phone, status, del_flag, last_login_time, create_time, update_time, remark from front_user + + + + + + + + + + insert into front_user + + username, + password, + nickname, + email, + phone, + status, + del_flag, + last_login_time, + create_time, + remark, + + + #{username}, + #{password}, + #{nickname}, + #{email}, + #{phone}, + #{status}, + #{delFlag}, + #{lastLoginTime}, + sysdate(), + #{remark}, + + + + + update front_user + + password = #{password}, + nickname = #{nickname}, + email = #{email}, + phone = #{phone}, + status = #{status}, + del_flag = #{delFlag}, + last_login_time = #{lastLoginTime}, + update_time = sysdate(), + remark = #{remark}, + + where user_id = #{userId} + + + + delete from front_user where user_id = #{userId} + + diff --git a/RuoYi-Vue/ruoyi-generator/src/test/java/com/ruoyi/generator/service/front/FrontProjectConverterTest.java b/RuoYi-Vue/ruoyi-generator/src/test/java/com/ruoyi/generator/service/front/FrontProjectConverterTest.java new file mode 100644 index 0000000..bfba641 --- /dev/null +++ b/RuoYi-Vue/ruoyi-generator/src/test/java/com/ruoyi/generator/service/front/FrontProjectConverterTest.java @@ -0,0 +1,56 @@ +package com.ruoyi.generator.service.front; + +import com.ruoyi.generator.domain.GenProject; +import com.ruoyi.generator.domain.front.FrontProject; +import com.ruoyi.generator.domain.front.FrontProjectColumn; +import com.ruoyi.generator.domain.front.FrontProjectTable; +import org.junit.Test; + +import java.util.Collections; + +import static org.junit.Assert.assertEquals; + +public class FrontProjectConverterTest +{ + @Test + public void convertsFrontDraftToGenProject() + { + FrontProject project = new FrontProject(); + project.setProjectId(10L); + project.setProjectName("车辆管理系统"); + project.setProjectFileName("vehicle-system"); + project.setPackageName("com.easycode.vehicle"); + project.setVersion("1.0.0"); + project.setFrontFramework("Vue3 + Element Plus"); + project.setBackFramework("Spring Boot + MyBatis"); + + FrontProjectTable table = new FrontProjectTable(); + table.setTableId(20L); + table.setTableName("car_info"); + table.setTableComment("车辆信息表"); + table.setClassName("CarInfo"); + table.setModuleName("vehicle"); + table.setBusinessName("car"); + table.setFunctionName("车辆信息"); + + FrontProjectColumn column = new FrontProjectColumn(); + column.setColumnId(30L); + column.setColumnName("car_id"); + column.setColumnComment("车辆ID"); + column.setColumnType("bigint(20)"); + column.setJavaType("Long"); + column.setJavaField("carId"); + column.setIsPk("1"); + column.setIsIncrement("1"); + table.setColumns(Collections.singletonList(column)); + project.setTables(Collections.singletonList(table)); + + GenProject genProject = FrontProjectConverter.toGenProject(project); + + assertEquals("车辆管理系统", genProject.getProjectName()); + assertEquals("com.easycode.vehicle", genProject.getPackageName()); + assertEquals(1, genProject.getTables().size()); + assertEquals("car_info", genProject.getTables().get(0).getTableName()); + assertEquals("carId", genProject.getTables().get(0).getColumns().get(0).getJavaField()); + } +}