From e8fe91ed6e43c87286857edcba3972519ab660e1 Mon Sep 17 00:00:00 2001 From: "20932067@zju.edu.cn" Date: Thu, 28 Jan 2021 16:53:55 +0800 Subject: [PATCH] 11 --- .../controller/InterTableController.java | 2 +- .../hchyun/generator/controller/SysTest.java | 5 +- .../com/hchyun/generator/entity/Apiclass.java | 4 + .../generator/service/InterTableService.java | 3 +- .../service/impl/InterTableServiceImpl.java | 19 +++-- .../generator/util/InterTableUtils.java | 85 ++++++++++++++++--- .../mapper/generator/InterTableMapper.xml | 5 +- 7 files changed, 99 insertions(+), 24 deletions(-) diff --git a/hchyun/hchyun-generator/src/main/java/com/hchyun/generator/controller/InterTableController.java b/hchyun/hchyun-generator/src/main/java/com/hchyun/generator/controller/InterTableController.java index 43a9e2e..e0813d7 100644 --- a/hchyun/hchyun-generator/src/main/java/com/hchyun/generator/controller/InterTableController.java +++ b/hchyun/hchyun-generator/src/main/java/com/hchyun/generator/controller/InterTableController.java @@ -104,7 +104,7 @@ public class InterTableController extends HcyBaseController { dataMap.put("Test02.java","Test02.java"); dataMap.put("Test03.java","Test03.java"); dataMap.put("Test04.java","Test04.java"); - ServerResult> serverResult = interTableService.previewCodeMoudle(id); + ServerResult> serverResult = interTableService.previewCodeMoudle(id); return AjaxResult.success(dataMap); }catch (RuntimeException e){ logger.error(e.getMessage()); diff --git a/hchyun/hchyun-generator/src/main/java/com/hchyun/generator/controller/SysTest.java b/hchyun/hchyun-generator/src/main/java/com/hchyun/generator/controller/SysTest.java index 1847232..07ad00e 100644 --- a/hchyun/hchyun-generator/src/main/java/com/hchyun/generator/controller/SysTest.java +++ b/hchyun/hchyun-generator/src/main/java/com/hchyun/generator/controller/SysTest.java @@ -36,6 +36,9 @@ public class SysTest { return interTableService.previewCodeCalss(3L).getData(); } - + @GetMapping("/4") + public Map test4(){ + return interTableService.previewCodeMoudle(3L).getData(); + } } diff --git a/hchyun/hchyun-generator/src/main/java/com/hchyun/generator/entity/Apiclass.java b/hchyun/hchyun-generator/src/main/java/com/hchyun/generator/entity/Apiclass.java index 464a9b9..e499f96 100644 --- a/hchyun/hchyun-generator/src/main/java/com/hchyun/generator/entity/Apiclass.java +++ b/hchyun/hchyun-generator/src/main/java/com/hchyun/generator/entity/Apiclass.java @@ -6,6 +6,7 @@ import io.swagger.annotations.ApiModel; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; +import java.util.ArrayList; import java.util.List; /** @@ -76,6 +77,9 @@ public class Apiclass extends BaseEntity { } public void setInterTables(List interTables) { + if (interTables == null){ + interTables = new ArrayList(); + } this.interTables = interTables; } diff --git a/hchyun/hchyun-generator/src/main/java/com/hchyun/generator/service/InterTableService.java b/hchyun/hchyun-generator/src/main/java/com/hchyun/generator/service/InterTableService.java index f93c394..d14c611 100644 --- a/hchyun/hchyun-generator/src/main/java/com/hchyun/generator/service/InterTableService.java +++ b/hchyun/hchyun-generator/src/main/java/com/hchyun/generator/service/InterTableService.java @@ -1,6 +1,5 @@ package com.hchyun.generator.service; -import java.util.List; import java.util.Map; import com.hchyun.common.utils.ServerResult; @@ -71,7 +70,7 @@ public interface InterTableService */ ServerResult> previewCodeCalss(Long cid); - ServerResult> previewCodeMoudle(Long mid); + ServerResult> previewCodeMoudle(Long mid); } \ No newline at end of file diff --git a/hchyun/hchyun-generator/src/main/java/com/hchyun/generator/service/impl/InterTableServiceImpl.java b/hchyun/hchyun-generator/src/main/java/com/hchyun/generator/service/impl/InterTableServiceImpl.java index 4a829fc..639b83f 100644 --- a/hchyun/hchyun-generator/src/main/java/com/hchyun/generator/service/impl/InterTableServiceImpl.java +++ b/hchyun/hchyun-generator/src/main/java/com/hchyun/generator/service/impl/InterTableServiceImpl.java @@ -213,18 +213,25 @@ public class InterTableServiceImpl implements InterTableService { } @Override - public ServerResult> previewCodeMoudle(Long mid) { + public ServerResult> previewCodeMoudle(Long mid) { try { - Map dataMap = new LinkedHashMap(); + Map dataMap = new LinkedHashMap(); List interTableList = interTableDao.selectInterTableModule(mid); VelocityInitializer.initVelocity(); - VelocityContext context = InterTableUtils.prepareMoudleContext(interTableList); - + List contextList = InterTableUtils.prepareMoudleContext(interTableList); + String templates = InterTableUtils.getTemplateList(1); + for (VelocityContext context : contextList){ + StringWriter sw = new StringWriter(); + Template template = Velocity.getTemplate(templates, Constants.UTF8); + template.merge(context,sw); + dataMap.put(getJavaClassName(context.get("ClassName")),sw.toString()); + } + dataMap.put("data",contextList); + return new ServerResult>(true,dataMap); }catch (RuntimeException e){ logger.error(e.getMessage()); - return new ServerResult>(false,ReturnConstants.DB_EX); + return new ServerResult>(false,ReturnConstants.DB_EX); } - return null; } public String getJavaClassName(String cName){ diff --git a/hchyun/hchyun-generator/src/main/java/com/hchyun/generator/util/InterTableUtils.java b/hchyun/hchyun-generator/src/main/java/com/hchyun/generator/util/InterTableUtils.java index abe0976..bd294f3 100644 --- a/hchyun/hchyun-generator/src/main/java/com/hchyun/generator/util/InterTableUtils.java +++ b/hchyun/hchyun-generator/src/main/java/com/hchyun/generator/util/InterTableUtils.java @@ -9,24 +9,83 @@ import java.util.ArrayList; import java.util.List; public class InterTableUtils { - public static VelocityContext prepareMoudleContext(List interTableList){ + public static List prepareMoudleContext(List interTableList) { + List apiclassList = new ArrayList(); + for (int i = 0; i < interTableList.size(); i++) { + InterTable interTable = interTableList.get(i); + if (apiclassList.size() == 0) { + Apiclass apiclass = interTable.getApiclass(); + List interTables = new ArrayList(); + interTable.setApiclass(null); + interTables.add(interTable); + apiclass.setInterTables(interTables); + apiclassList.add(apiclass); + } else { + boolean start = true; + for (int j = 0; j < apiclassList.size(); j++) { + Apiclass api = apiclassList.get(j); + if (interTable.getcId() == api.getId()) { + List interTableList1 = api.getInterTables(); + interTable.setApiclass(null); + interTableList1.add(interTable); + api.setInterTables(interTableList1); + apiclassList.set(j, api); + start = false; + break; + } + } + if (start) { + Apiclass apiclass = interTable.getApiclass(); + List interTables = new ArrayList(); + interTable.setApiclass(null); + interTables.add(interTable); + apiclass.setInterTables(interTables); + apiclassList.add(apiclass); + } + } + } + List contextList = new ArrayList(); + for (int i = 0; i < apiclassList.size(); i++){ + Apiclass apiclass = apiclassList.get(i); + VelocityContext velocityContext = new VelocityContext(); + String module = apiclass.getInterTables().get(0).getmName(); + String className = apiclass.getcName(); + boolean permission = false; + for (InterTable interTable : apiclass.getInterTables()) { + if (interTable.getIsPermission().equals("1")) { + permission = true; + } + } + velocityContext.put("Permission", permission); + velocityContext.put("packageName", "com.huhyun."+module); + velocityContext.put("prefix",module+":"+getLowerCase(className)); + velocityContext.put("ClassName",getUpperCase(className)); + velocityContext.put("columns", apiclass.getInterTables()); + velocityContext.put("reqMapping","/"+module+"/"+getLowerCase(className)); + velocityContext.put("functionName",apiclass.getcDescribe()); + velocityContext.put("author", apiclass.getAuthor()); + velocityContext.put("emali", apiclass.getEmail()); + velocityContext.put("time", DateUtils.getTime()); + contextList.add(velocityContext); - return new VelocityContext(); + } + return contextList; } + public static VelocityContext prepareClassContext(Apiclass apiclass) { VelocityContext velocityContext = new VelocityContext(); boolean permission = false; - for (InterTable interTable: apiclass.getInterTables() ) { - if (interTable.getIsPermission().equals("1")){ + for (InterTable interTable : apiclass.getInterTables()) { + if (interTable.getIsPermission().equals("1")) { permission = true; } } - velocityContext.put("Permission",permission); + velocityContext.put("Permission", permission); velocityContext.put("packageName", apiclass.getPackageName()); velocityContext.put("ClassName", getUpperCase(apiclass.getcName())); velocityContext.put("columns", apiclass.getInterTables()); velocityContext.put("prefix", apiclass.getPrefix()); - velocityContext.put("reqMapping", getClassUrl(apiclass.getcName(),apiclass.getModule().getmName())); + velocityContext.put("reqMapping", getClassUrl(apiclass.getcName(), apiclass.getModule().getmName())); velocityContext.put("functionName", apiclass.getcDescribe()); velocityContext.put("author", apiclass.getAuthor()); velocityContext.put("emali", apiclass.getEmail()); @@ -34,9 +93,10 @@ public class InterTableUtils { return velocityContext; } - public static String getClassUrl(String cname,String mname){ - return "/"+getLowerCase(mname)+"/"+getLowerCase(cname); + public static String getClassUrl(String cname, String mname) { + return "/" + getLowerCase(mname) + "/" + getLowerCase(cname); } + public static String getTemplateList(Integer type) { String templates = "vm/java/class.java.vm"; if (type == 1) { @@ -45,10 +105,11 @@ public class InterTableUtils { return templates; } - public static String getUpperCase(String str){ - return str.substring(0,1).toUpperCase() + str.substring(1); + public static String getUpperCase(String str) { + return str.substring(0, 1).toUpperCase() + str.substring(1); } - public static String getLowerCase(String str){ - return str.substring(0,1).toLowerCase()+str.substring(1); + + public static String getLowerCase(String str) { + return str.substring(0, 1).toLowerCase() + str.substring(1); } } diff --git a/hchyun/hchyun-generator/src/main/resources/mapper/generator/InterTableMapper.xml b/hchyun/hchyun-generator/src/main/resources/mapper/generator/InterTableMapper.xml index 1588645..fa67313 100644 --- a/hchyun/hchyun-generator/src/main/resources/mapper/generator/InterTableMapper.xml +++ b/hchyun/hchyun-generator/src/main/resources/mapper/generator/InterTableMapper.xml @@ -21,7 +21,7 @@ - + @@ -85,7 +85,8 @@