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