From 36754ba47da7a3277d5be183a523c912a1dc4cef Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期四, 31 三月 2022 15:07:08 +0800 Subject: [PATCH] service服务bug修复 --- src/main/java/com/ks/codegenerator/utils/ServiceBuilder.java | 95 ++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 89 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/ks/codegenerator/utils/ServiceBuilder.java b/src/main/java/com/ks/codegenerator/utils/ServiceBuilder.java index 9381e47..6261ea2 100644 --- a/src/main/java/com/ks/codegenerator/utils/ServiceBuilder.java +++ b/src/main/java/com/ks/codegenerator/utils/ServiceBuilder.java @@ -1,12 +1,19 @@ package com.ks.codegenerator.utils; +import org.w3c.dom.Document; +import org.w3c.dom.Node; +import org.w3c.dom.NodeList; import org.yeshi.utils.FileUtil; import org.yeshi.utils.StringUtil; +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; +import javax.xml.transform.Transformer; +import javax.xml.transform.TransformerFactory; +import javax.xml.transform.dom.DOMSource; +import javax.xml.transform.stream.StreamResult; import java.io.File; -import java.io.IOException; import java.util.ArrayList; -import java.util.Arrays; import java.util.List; /** @@ -22,6 +29,11 @@ private String pks; private String subpks; private String cacheDir; + + private String projectChineseName; + private String sqlTablePrefix; + private String sqlDatabaseName; + private String mongoDatabaseName; public ServiceBuilder setName(String name) { @@ -41,6 +53,26 @@ public ServiceBuilder setCacheDir(String cacheDir) { this.cacheDir = cacheDir; + return this; + } + + public ServiceBuilder setProjectChineseName(String projectChineseName) { + this.projectChineseName = projectChineseName; + return this; + } + + public ServiceBuilder setSqlTablePrefix(String sqlTablePrefix) { + this.sqlTablePrefix = sqlTablePrefix; + return this; + } + + public ServiceBuilder setSqlDatabaseName(String sqlDatabaseName) { + this.sqlDatabaseName = sqlDatabaseName; + return this; + } + + public ServiceBuilder setMongoDatabaseName(String mongoDatabaseName) { + this.mongoDatabaseName = mongoDatabaseName; return this; } @@ -66,7 +98,7 @@ //淇敼鏂囦欢鍚嶇О涓庢枃浠跺す鍚嶇О renameDir(destPath); //閲嶆柊鍛藉悕鍖呭悕 - renamePackage(destPath + "/app/src/main/java/com/ks/app"); + renamePackage(destPath + "/app/src/main/java/" + subpks.replace(".", "/")); replaceSettings(destPath); //鍘嬬缉鏂囦欢澶� File zip = new File(new File(destPath).getParent(), new File(destPath).getName() + ".zip"); @@ -81,11 +113,62 @@ FileUtils.replaceFileContent(path + "/pom.xml", "<groupId>com.ks</groupId>", String.format("<groupId>%s</groupId>", getGroupId(pks))); FileUtils.replaceFileContent(path + "/pom.xml", "<artifactId>demo</artifactId>", String.format("<artifactId>%s</artifactId>", getArtifactId(pks))); - FileUtils.replaceFileContent(path + "/app/pom.xml", "<groupId>com.ks</groupId>", String.format("<groupId>%s</groupId>", getGroupId(subpks))); - FileUtils.replaceFileContent(path + "/app/pom.xml", "<artifactId>demo</artifactId>", String.format("<artifactId>%s</artifactId>", getArtifactId(subpks))); + + //鏇存敼parent浠ュ強artifactId + DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); + DocumentBuilder db = dbf.newDocumentBuilder(); + Document doc = db.parse(path + "/app/pom.xml"); + NodeList list = doc.getElementsByTagName("project").item(0).getChildNodes(); + for (int i = 0; i < list.getLength(); i++) { + if (list.item(i).getNodeName().equalsIgnoreCase("parent")) { + NodeList parent = list.item(i).getChildNodes(); + for (int j = 0; j < parent.getLength(); j++) { + Node node = parent.item(j); + switch (node.getNodeName()) { + case "artifactId": + node.setTextContent(getArtifactId(pks)); + break; + case "groupId": + node.setTextContent(getGroupId(pks)); + break; + } + } + } else if (list.item(i).getNodeName().equalsIgnoreCase("artifactId")) { + list.item(i).setTextContent(getArtifactId(subpks)); + } + } + + //淇濆瓨 + Transformer ts = TransformerFactory.newInstance().newTransformer(); + ts.transform(new DOMSource(doc), new StreamResult(path + "/app/pom.xml")); + FileUtils.replaceFileContent(path + "/app/src/main/resources/application-dev.yml", "com.ks.app", subpks); + FileUtils.replaceFileContent(path + "/app/src/main/resources/application-dev.yml", "${mongoDataBaseName}", mongoDatabaseName); + FileUtils.replaceFileContent(path + "/app/src/main/resources/application-dev.yml", "${sqlDataBaseName}", sqlDatabaseName); + FileUtils.replaceFileContent(path + "/app/src/main/resources/application-dev.yml", "${projectName}", name); + FileUtils.replaceFileContent(path + "/app/src/main/resources/application-pro.yml", "com.ks.app", subpks); + FileUtils.replaceFileContent(path + "/app/src/main/resources/application-pro.yml", "${mongoDataBaseName}", mongoDatabaseName); + FileUtils.replaceFileContent(path + "/app/src/main/resources/application-pro.yml", "${sqlDataBaseName}", sqlDatabaseName); + FileUtils.replaceFileContent(path + "/app/src/main/resources/application-pro.yml", "${projectName}", name); + + //鏇挎崲Mapper涓嬬殑琛ㄥ墠缂� + String mapperDir = path + "/app/src/main/resources/mapper"; + File mapperFiles = new File(mapperDir); + for (File f : mapperFiles.listFiles()) { + FileUtils.replaceFileContent(f.getAbsolutePath(), "com.ks.app", subpks); + FileUtils.replaceFileContent(f.getAbsolutePath(), "lt_", sqlTablePrefix); + } + + FileUtils.replaceFileContent(path + "/app/src/main/resources/mysql.sql", "${sqlDataBaseName}", sqlDatabaseName); + FileUtils.replaceFileContent(path + "/app/src/main/resources/mysql.sql", "${sqlTablePrefix}", sqlTablePrefix); + FileUtils.replaceFileContent(path + "/app/src/main/resources/static/index.html", "${projectChineseName}", projectChineseName); + + FileUtils.replaceFileContent(path + "/app/src/main/java/"+subpks.replace(".","/")+"/aop/AdminApiFilter.java", "com.ks.app", subpks); + FileUtils.replaceFileContent(path + "/app/src/main/java/"+subpks.replace(".","/")+"/aop/SignValidate.java", "com.ks.app", subpks); + FileUtils.replaceFileContent(path + "/app/src/main/java/"+subpks.replace(".","/")+"/aop/UserLoginValid.java", "com.ks.app", subpks); + FileUtils.replaceFileContent(path + "/app/src/main/java/"+subpks.replace(".","/")+"/Application.java", "com.ks.app", subpks); } //閲嶆柊鍛藉悕鏂囦欢澶逛笌鏂囦欢 @@ -93,7 +176,7 @@ FileUtils.renameFile(path + "/service.iml", name + ".iml"); //鏇存敼java鏂囦欢鐨勮矾寰� FileUtils.copyFileDir(path + "/app/src/main/java/com/ks/app", path + "/app/src/main/java/" + subpks.replace(".", "/")); - new File(path + "/app/src/main/java/com/ks/app").delete(); + FileUtil.deleteFileDir(new File(path + "/app/src/main/java/com/ks/app")); } -- Gitblit v1.8.0