From b16866d43e91eee9f09da6ed22c9177fb1bbe03a Mon Sep 17 00:00:00 2001 From: "20932067@zju.edu.cn" Date: Wed, 27 Jan 2021 16:53:18 +0800 Subject: [PATCH] 11 --- hchyun-ui/.env.development | 4 +-- .../controller/InterTableController.java | 24 +++++++++++++ .../hchyun/generator/controller/SysTest.java | 17 +++++++-- .../generator/service/InterTableService.java | 2 ++ .../service/impl/InterTableServiceImpl.java | 28 +++++++++++++++ .../generator/util/InterTableUtils.java | 35 +++++++++++++++++++ .../src/main/resources/vm/java/class.java.vm | 11 ++++++ 7 files changed, 117 insertions(+), 4 deletions(-) create mode 100644 hchyun/hchyun-generator/src/main/resources/vm/java/class.java.vm diff --git a/hchyun-ui/.env.development b/hchyun-ui/.env.development index 3246ca5..a916e78 100644 --- a/hchyun-ui/.env.development +++ b/hchyun-ui/.env.development @@ -3,8 +3,8 @@ ENV = 'development' # 宏驰云管理系统/开发环境 #VUE_APP_BASE_API = '/dev-api' -VUE_APP_BASE_API = 'http://localhost:8085/dev-api' -#VUE_APP_BASE_API = 'http://apibase.hchyun.com/dev-api' +#VUE_APP_BASE_API = 'http://localhost:8085/dev-api' +VUE_APP_BASE_API = 'http://apibase.hchyun.com/dev-api' # 路由懒加载 VUE_CLI_BABEL_TRANSPILE_MODULES = true 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 a19955a..234dd73 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 @@ -12,6 +12,8 @@ import com.hchyun.common.utils.ServerResult; import com.hchyun.generator.dto.InterTableDto; import com.hchyun.generator.entity.Apiclass; import com.hchyun.generator.service.ApiclassService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.security.access.prepost.PreAuthorize; @@ -38,6 +40,8 @@ import com.hchyun.common.utils.poi.ExcelUtil; * @author hchyun * @date 2021-01-25 */ + +@Api("接口信息") @RestController @RequestMapping("/generator/intertable") public class InterTableController extends HcyBaseController { @@ -67,6 +71,26 @@ public class InterTableController extends HcyBaseController { } } + /** + * 预览代码(工作流) + */ + + @ApiOperation("预览代码测试") + @GetMapping("/classpreview/{id}") + public AjaxResult classPreview(@PathVariable("id") Long id){ + try { + ServerResult> serverResult = interTableService.previewCodeCalss(id); + if (serverResult.isStart()){ + return AjaxResult.success(serverResult.getData()); + }else { + return AjaxResult.error(serverResult.getMsg()); + } + }catch (RuntimeException e){ + logger.error(e.getMessage()); + return AjaxResult.error(ReturnConstants.SYS_ERROR); + } + } + // /** // * 导出接口信息列表 // */ 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 13afb76..1847232 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 @@ -4,25 +4,38 @@ import com.hchyun.generator.dao.ApiclassDao; import com.hchyun.generator.dao.InterTableDao; import com.hchyun.generator.entity.Apiclass; import com.hchyun.generator.entity.InterTable; +import com.hchyun.generator.service.InterTableService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.util.List; +import java.util.Map; @RestController @RequestMapping("/test") public class SysTest { @Autowired private InterTableDao interTableDao; + @Autowired + private InterTableService interTableService; @GetMapping("/1") - public Apiclass test(){ + public Apiclass test() { return interTableDao.selectInterTableClass(3L); } + @GetMapping("/2") - public List test2(){ + public List test2() { return interTableDao.selectInterTableModule(3L); } + + @GetMapping("/3") + public Map test3(){ + return interTableService.previewCodeCalss(3L).getData(); + } + + + } 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 fbc6632..04b6897 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 @@ -62,4 +62,6 @@ public interface InterTableService * @return 结果 */ ServerResult deleteInterTableById(Long id); + + ServerResult> previewCodeCalss(Long cid); } \ 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 7712e73..b8e6a80 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 @@ -1,9 +1,12 @@ package com.hchyun.generator.service.impl; +import java.io.StringWriter; import java.util.HashMap; +import java.util.LinkedHashMap; import java.util.List; import java.util.Map; +import com.hchyun.common.constant.Constants; import com.hchyun.common.constant.ReturnConstants; import com.hchyun.common.utils.SecurityUtils; import com.hchyun.common.utils.ServerResult; @@ -12,6 +15,12 @@ import com.hchyun.generator.dao.ModuleDao; import com.hchyun.generator.dto.InterTableDto; import com.hchyun.generator.entity.Apiclass; import com.hchyun.generator.entity.Module; +import com.hchyun.generator.util.InterTableUtils; +import com.hchyun.generator.util.VelocityInitializer; +import com.sun.org.apache.regexp.internal.RE; +import org.apache.velocity.Template; +import org.apache.velocity.VelocityContext; +import org.apache.velocity.app.Velocity; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -184,4 +193,23 @@ public class InterTableServiceImpl implements InterTableService { return new ServerResult(false, ReturnConstants.DB_EX); } } + + @Override + public ServerResult> previewCodeCalss(Long cid) { + try { + Map dataMap = new LinkedHashMap(); + Apiclass apiclass = interTableDao.selectInterTableClass(cid); + VelocityInitializer.initVelocity(); + VelocityContext context = InterTableUtils.prepareClassContext(apiclass); + String templates = InterTableUtils.getTemplateList(2); + StringWriter sw = new StringWriter(); + Template template = Velocity.getTemplate(templates, Constants.UTF8); + template.merge(context,sw); + dataMap.put(templates,sw.toString()); + return new ServerResult>(true,dataMap); + }catch (RuntimeException e){ + logger.error(e.getMessage()); + return new ServerResult>(false,ReturnConstants.DB_EX); + } + } } \ No newline at end of file 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 d944db9..65882c9 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 @@ -1,4 +1,39 @@ package com.hchyun.generator.util; +import com.hchyun.common.utils.DateUtils; +import com.hchyun.generator.entity.Apiclass; +import org.apache.velocity.VelocityContext; + +import java.util.ArrayList; +import java.util.List; + public class InterTableUtils { + public static VelocityContext prepareClassContext(Apiclass apiclass) { + VelocityContext velocityContext = new VelocityContext(); + velocityContext.put("packageName", apiclass.getPackageName()); + velocityContext.put("ClassName", getUpperCase(apiclass.getcName())); + velocityContext.put("columns", apiclass.getInterTables()); + velocityContext.put("prefix", apiclass.getPrefix()); + velocityContext.put("reqMapping", getLowerCase(apiclass.getcName())); + velocityContext.put("functionName", apiclass.getcDescribe()); + velocityContext.put("author", apiclass.getAuthor()); + velocityContext.put("emali", apiclass.getEmail()); + velocityContext.put("time", DateUtils.getTime()); + return velocityContext; + } + + public static String getTemplateList(Integer type) { + String templates = "vm/java/class.java.vm"; + if (type == 1) { + templates = "vm/java/module.java.vm"; + } + return templates; + } + + 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).toUpperCase()+str.substring(1); + } } diff --git a/hchyun/hchyun-generator/src/main/resources/vm/java/class.java.vm b/hchyun/hchyun-generator/src/main/resources/vm/java/class.java.vm new file mode 100644 index 0000000..4ab778d --- /dev/null +++ b/hchyun/hchyun-generator/src/main/resources/vm/java/class.java.vm @@ -0,0 +1,11 @@ +package ${packageName}controller; + +/** + * ${ClassName} ${functionName} + * + * @Author ${author} + * @Email ${emali} + * @Date ${time} +*/ + +