From 1d6e7763f4a30272cc0818ea12f83697b7375c45 Mon Sep 17 00:00:00 2001 From: shikeying <shikeying@163.com> Date: 星期五, 23 二月 2024 15:17:19 +0800 Subject: [PATCH] 测试了aws oss,另外 mybatis模块还未完成 --- iplatform-base-admin/src/main/java/com/iplatform/base/controller/GenController.java | 117 ++++++++++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 97 insertions(+), 20 deletions(-) diff --git a/iplatform-base-admin/src/main/java/com/iplatform/base/controller/GenController.java b/iplatform-base-admin/src/main/java/com/iplatform/base/controller/GenController.java index 9d59fed..425c2d2 100644 --- a/iplatform-base-admin/src/main/java/com/iplatform/base/controller/GenController.java +++ b/iplatform-base-admin/src/main/java/com/iplatform/base/controller/GenController.java @@ -1,17 +1,24 @@ package com.iplatform.base.controller; -import com.insurance.common.annotation.Log; -import com.insurance.common.core.domain.AjaxResult; -import com.insurance.common.core.page.TableDataInfo; -import com.insurance.common.enums.BusinessType; import com.iplatform.base.SystemController; +import com.iplatform.core.util.CharsetKit; import com.iplatform.core.util.Convert; import com.iplatform.mybatis.domain.GenTable; import com.iplatform.mybatis.domain.GenTableColumn; +import com.iplatform.mybatis.domain.TableDataInfo; import com.iplatform.mybatis.service.IGenTableColumnService; import com.iplatform.mybatis.service.IGenTableService; +import com.iplatform.mybatis.service.MetaDataServiceImpl; +import com.iplatform.mybatis.util.VelocityInitializer; +import com.iplatform.mybatis.util.VelocityUtils; +import com.walker.infrastructure.utils.StringUtils; +import com.walker.web.ResponseValue; import org.apache.commons.io.IOUtils; +import org.apache.velocity.Template; +import org.apache.velocity.VelocityContext; +import org.apache.velocity.app.Velocity; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.GetMapping; @@ -23,10 +30,14 @@ import org.springframework.web.bind.annotation.RestController; import javax.servlet.http.HttpServletResponse; +import java.io.ByteArrayOutputStream; import java.io.IOException; +import java.io.StringWriter; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.zip.ZipEntry; +import java.util.zip.ZipOutputStream; /** * 浠g爜鐢熸垚 鎿嶄綔澶勭悊銆� @@ -41,7 +52,7 @@ */ //@Api(value = "浠g爜鐢熸垚绠$悊", tags = {"浠g爜鐢熸垚绠$悊"}) @RestController -@RequestMapping("/tool/gen") +@RequestMapping("/tool/generate") public class GenController extends SystemController { @Autowired @@ -49,6 +60,9 @@ @Autowired private IGenTableColumnService genTableColumnService; + + @Autowired + private MetaDataServiceImpl metaDataService; /** * 鏌ヨ浠g爜鐢熸垚鍒楄〃 @@ -67,7 +81,7 @@ */ // @PreAuthorize("@ss.hasPermi('tool:gen:query')") @GetMapping(value = "/{tableId}") - public AjaxResult getInfo(@PathVariable Long tableId) + public ResponseValue getInfo(@PathVariable Long tableId) { GenTable table = genTableService.selectGenTableById(tableId); List<GenTable> tables = genTableService.selectGenTableAll(); @@ -76,7 +90,8 @@ map.put("info", table); map.put("rows", list); map.put("tables", tables); - return success(map); +// return success(map); + return ResponseValue.success(map); } /** @@ -111,13 +126,13 @@ // @PreAuthorize("@ss.hasPermi('tool:gen:import')") // @Log(title = "浠g爜鐢熸垚", businessType = BusinessType.IMPORT) @PostMapping("/importTable") - public AjaxResult importTableSave(String tables) + public ResponseValue importTableSave(String tables) { String[] tableNames = Convert.toStrArray(tables); // 鏌ヨ琛ㄤ俊鎭� List<GenTable> tableList = genTableService.selectDbTableListByNames(tableNames); genTableService.importGenTable(tableList); - return success(); + return ResponseValue.success(); } /** @@ -126,11 +141,11 @@ // @PreAuthorize("@ss.hasPermi('tool:gen:edit')") // @Log(title = "浠g爜鐢熸垚", businessType = BusinessType.UPDATE) @PutMapping - public AjaxResult editSave(@Validated @RequestBody GenTable genTable) + public ResponseValue editSave(@Validated @RequestBody GenTable genTable) { genTableService.validateEdit(genTable); genTableService.updateGenTable(genTable); - return success(); + return ResponseValue.success(); } /** @@ -139,10 +154,10 @@ // @PreAuthorize("@ss.hasPermi('tool:gen:remove')") // @Log(title = "浠g爜鐢熸垚", businessType = BusinessType.DELETE) @DeleteMapping("/{tableIds}") - public AjaxResult remove(@PathVariable Long[] tableIds) + public ResponseValue remove(@PathVariable Long[] tableIds) { genTableService.deleteGenTableByIds(tableIds); - return success(); + return ResponseValue.success(); } /** @@ -150,17 +165,17 @@ */ // @PreAuthorize("@ss.hasPermi('tool:gen:preview')") @GetMapping("/preview/{tableId}") - public AjaxResult preview(@PathVariable("tableId") Long tableId) throws IOException + public ResponseValue preview(@PathVariable("tableId") Long tableId) throws IOException { Map<String, String> dataMap = genTableService.previewCode(tableId); - return success(dataMap); + return ResponseValue.success(dataMap); } /** * 鐢熸垚浠g爜锛堜笅杞芥柟寮忥級 */ // @PreAuthorize("@ss.hasPermi('tool:gen:code')") - @Log(title = "浠g爜鐢熸垚", businessType = BusinessType.GENCODE) +// @Log(title = "浠g爜鐢熸垚", businessType = BusinessType.GENCODE) @GetMapping("/download/{tableName}") public void download(HttpServletResponse response, @PathVariable("tableName") String tableName) throws IOException { @@ -174,10 +189,10 @@ // @PreAuthorize("@ss.hasPermi('tool:gen:code')") // @Log(title = "浠g爜鐢熸垚", businessType = BusinessType.GENCODE) @GetMapping("/genCode/{tableName}") - public AjaxResult genCode(@PathVariable("tableName") String tableName) + public ResponseValue genCode(@PathVariable("tableName") String tableName) { genTableService.generatorCode(tableName); - return success(); + return ResponseValue.success(); } /** @@ -186,10 +201,10 @@ // @PreAuthorize("@ss.hasPermi('tool:gen:edit')") // @Log(title = "浠g爜鐢熸垚", businessType = BusinessType.UPDATE) @GetMapping("/synchDb/{tableName}") - public AjaxResult synchDb(@PathVariable("tableName") String tableName) + public ResponseValue synchDb(@PathVariable("tableName") String tableName) { genTableService.synchDb(tableName); - return success(); + return ResponseValue.success(); } /** @@ -218,4 +233,66 @@ response.setContentType("application/octet-stream; charset=UTF-8"); IOUtils.write(data, response.getOutputStream()); } + + /** + * 鍝嶅簲璇锋眰鍒嗛〉鏁版嵁 + */ + @SuppressWarnings({ "rawtypes"}) + protected TableDataInfo getDataTable(List<?> list) + { + TableDataInfo rspData = new TableDataInfo(); + rspData.setCode(HttpStatus.OK.value()); + rspData.setMsg("鏌ヨ鎴愬姛"); + rspData.setRows(list); +// rspData.setTotal(page.getTotal()); + rspData.setTotal(0); + return rspData; + } + + /** + * 鐢熸垚鎸囧畾琛ㄧ粨鏋勪唬鐮侊紝鏀寔澶氭暟鎹簱銆� + * @param response + * @param tableName 琛ㄥ悕锛屽彲浠ユ槸绮剧‘鐨勮〃鍚嶏紝濡傦細s_ment锛屼篃鍙互鏄墠缂�锛屽锛歴_ + * @param isPrecision 鏄惁绮剧‘鏌ヨ锛堝崟琛級 + * @param packageName + * @throws IOException + * @date 2024-02-20 + */ + @GetMapping("/batchDownloadGenCode") + public void batchDownloadGenCode(HttpServletResponse response, String tableName, boolean isPrecision, String packageName) throws IOException{ + List<GenTable> list = this.metaDataService.queryDatabaseTableInfo(tableName, isPrecision, packageName, null, null, null); + if(StringUtils.isEmptyList(list)){ + logger.error("鏈煡鎵惧埌浠讳綍琛ㄤ俊鎭紝鏃犳硶鐢熷瓨浠g爜锛宼ableName={}", tableName); + return; + } + ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); + ZipOutputStream zip = new ZipOutputStream(outputStream); + for(GenTable table : list){ + VelocityInitializer.initVelocity(); + VelocityContext context = VelocityUtils.prepareContext(table); + + // 鑾峰彇妯℃澘鍒楄〃 + List<String> templates = VelocityUtils.getTemplateList(table.getTplCategory()); + for (String template : templates) { + // 娓叉煋妯℃澘 + StringWriter sw = new StringWriter(); + Template tpl = Velocity.getTemplate(template, CharsetKit.UTF_8); + tpl.merge(context, sw); + try { + // 娣诲姞鍒皕ip + zip.putNextEntry(new ZipEntry(VelocityUtils.getFileName(template, table))); + IOUtils.write(sw.toString(), zip, CharsetKit.UTF_8); + IOUtils.closeQuietly(sw); + zip.flush(); + zip.closeEntry(); + } + catch (IOException e) { + logger.error("娓叉煋妯℃澘澶辫触锛岃〃鍚嶏細" + table.getTableName(), e); + } + } + } + IOUtils.closeQuietly(zip); + byte[] data = outputStream.toByteArray(); + genCode(response, data); + } } -- Gitblit v1.9.1