diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 0a949120..ea02b561 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://downloads.gradle-dn.com/distributions/gradle-6.9-bin.zip +distributionUrl=./gradle-6.9-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/src/main/java/com/sjhy/plugin/dto/TableInfoDTO.java b/src/main/java/com/sjhy/plugin/dto/TableInfoDTO.java index ec77edeb..04131f85 100644 --- a/src/main/java/com/sjhy/plugin/dto/TableInfoDTO.java +++ b/src/main/java/com/sjhy/plugin/dto/TableInfoDTO.java @@ -47,6 +47,7 @@ private TableInfoDTO(PsiClass psiClass) { this.savePackageName = ""; this.savePath = ""; this.saveModelName = ""; + this.referenceBean = ""; this.fullColumn = new ArrayList(); for (PsiField field : psiClass.getAllFields()) { this.fullColumn.add(new ColumnInfoDTO(field)); @@ -61,6 +62,7 @@ private TableInfoDTO(DbTable dbTable) { this.savePackageName = ""; this.savePath = ""; this.saveModelName = ""; + this.referenceBean = ""; this.fullColumn = new ArrayList(); // 处理所有列 JBIterable columns = DasUtil.getColumns(dbTable); @@ -73,6 +75,9 @@ private static void merge(TableInfoDTO oldData, TableInfoDTO newData) { if (oldData == null || CollectionUtil.isEmpty(oldData.getFullColumn())) { return; } + if (!StringUtils.isEmpty(oldData.getReferenceBean())) { + newData.referenceBean = oldData.getReferenceBean(); + } if (!StringUtils.isEmpty(oldData.getPreName())) { newData.preName = oldData.getPreName(); } @@ -187,6 +192,10 @@ private static void merge(TableInfoDTO oldData, TableInfoDTO newData) { * 保存的model名称 */ private String saveModelName; + /** + * 参考的bean名 + */ + private String referenceBean; public TableInfo toTableInfo(PsiClass psiClass) { TableInfo tableInfo = new TableInfo(); @@ -235,6 +244,7 @@ public TableInfo toTableInfo(DbTable dbTable) { tableInfo.setFullColumn(new ArrayList()); tableInfo.setPkColumn(new ArrayList()); tableInfo.setOtherColumn(new ArrayList()); + tableInfo.setReferenceBean(this.getReferenceBean()); // 列 JBIterable columns = DasUtil.getColumns(dbTable); Map nameToObj = new HashMap(columns.size()); @@ -271,6 +281,7 @@ public static TableInfoDTO valueOf(TableInfo tableInfo) { dto.setComment(tableInfo.getComment()); dto.setSavePackageName(tableInfo.getSavePackageName()); dto.setSaveModelName(tableInfo.getSaveModelName()); + dto.setReferenceBean(tableInfo.getReferenceBean()); dto.setFullColumn(new ArrayList()); // 处理列 for (ColumnInfo columnInfo : tableInfo.getFullColumn()) { diff --git a/src/main/java/com/sjhy/plugin/entity/TableInfo.java b/src/main/java/com/sjhy/plugin/entity/TableInfo.java index 169ad13c..ce2a1b5f 100644 --- a/src/main/java/com/sjhy/plugin/entity/TableInfo.java +++ b/src/main/java/com/sjhy/plugin/entity/TableInfo.java @@ -69,4 +69,13 @@ public class TableInfo { * 保存的model名称 */ private String saveModelName; + /** + * 参考的bean名 + */ + private String referenceBean; + /** + * 保存的包名称 + */ + private String saveFullPackageName; + } diff --git a/src/main/java/com/sjhy/plugin/service/impl/CodeGenerateServiceImpl.java b/src/main/java/com/sjhy/plugin/service/impl/CodeGenerateServiceImpl.java index de41c397..3f641988 100644 --- a/src/main/java/com/sjhy/plugin/service/impl/CodeGenerateServiceImpl.java +++ b/src/main/java/com/sjhy/plugin/service/impl/CodeGenerateServiceImpl.java @@ -21,6 +21,9 @@ import com.sjhy.plugin.service.TableInfoSettingsService; import com.sjhy.plugin.tool.*; +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Paths; import java.util.*; import java.util.stream.Collectors; @@ -46,6 +49,10 @@ public class CodeGenerateServiceImpl implements CodeGenerateService { * 缓存数据工具 */ private CacheDataUtils cacheDataUtils; + /** + * 名称工具 + */ + private NameUtils nameUtils; /** * 导入包时过滤的包前缀 */ @@ -54,6 +61,7 @@ public class CodeGenerateServiceImpl implements CodeGenerateService { public CodeGenerateServiceImpl(Project project) { this.project = project; this.moduleManager = ModuleManager.getInstance(project); + this.nameUtils = NameUtils.getInstance(); this.tableInfoService = TableInfoSettingsService.getInstance(); this.cacheDataUtils = CacheDataUtils.getInstance(); } @@ -76,6 +84,15 @@ public void generate(Collection