diff --git a/eladmin-common/pom.xml b/eladmin-common/pom.xml
index ba40e4c9..1a1291fc 100644
--- a/eladmin-common/pom.xml
+++ b/eladmin-common/pom.xml
@@ -9,7 +9,7 @@
4.0.0
- [4.1.12,)
+ 5.0.6
eladmin-common
diff --git a/eladmin-common/src/main/java/me/zhengjie/utils/FileUtil.java b/eladmin-common/src/main/java/me/zhengjie/utils/FileUtil.java
index 3ce35cc8..1aa922d7 100644
--- a/eladmin-common/src/main/java/me/zhengjie/utils/FileUtil.java
+++ b/eladmin-common/src/main/java/me/zhengjie/utils/FileUtil.java
@@ -6,9 +6,11 @@ import cn.hutool.core.util.IdUtil;
import cn.hutool.poi.excel.BigExcelWriter;
import cn.hutool.poi.excel.ExcelUtil;
import me.zhengjie.exception.BadRequestException;
+import org.apache.poi.util.IOUtils;
import org.springframework.web.multipart.MultipartFile;
import javax.activation.MimetypesFileTypeMap;
import javax.servlet.ServletOutputStream;
+import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.*;
import java.security.MessageDigest;
@@ -273,6 +275,37 @@ public class FileUtil extends cn.hutool.core.io.FileUtil {
return null;
}
+ /**
+ * 下载文件
+ * @param request /
+ * @param response /
+ * @param file /
+ */
+ public static void downloadFile(HttpServletRequest request, HttpServletResponse response, File file, boolean deleteOnExit){
+ response.setCharacterEncoding(request.getCharacterEncoding());
+ response.setContentType("application/octet-stream");
+ FileInputStream fis = null;
+ try {
+ fis = new FileInputStream(file);
+ response.setHeader("Content-Disposition", "attachment; filename="+file.getName());
+ IOUtils.copy(fis,response.getOutputStream());
+ response.flushBuffer();
+ } catch (Exception e) {
+ e.printStackTrace();
+ } finally {
+ if (fis != null) {
+ try {
+ fis.close();
+ if(deleteOnExit){
+ file.deleteOnExit();
+ }
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+ }
+ }
+
public static String getMd5(File file) {
return getMd5(getByte(file));
}
diff --git a/eladmin-generator/src/main/java/me/zhengjie/rest/GeneratorController.java b/eladmin-generator/src/main/java/me/zhengjie/rest/GeneratorController.java
index 17c0c36e..26988e71 100644
--- a/eladmin-generator/src/main/java/me/zhengjie/rest/GeneratorController.java
+++ b/eladmin-generator/src/main/java/me/zhengjie/rest/GeneratorController.java
@@ -11,6 +11,8 @@ import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
import java.util.List;
/**
@@ -67,9 +69,9 @@ public class GeneratorController {
@ApiOperation("生成代码")
@PostMapping(value = "/{tableName}/{type}")
- public ResponseEntity generator(@PathVariable String tableName, @PathVariable Integer type){
- if(!generatorEnabled){
- throw new BadRequestException("此环境不允许生成代码!");
+ public ResponseEntity generator(@PathVariable String tableName, @PathVariable Integer type, HttpServletRequest request, HttpServletResponse response){
+ if(!generatorEnabled && type == 0){
+ throw new BadRequestException("此环境不允许生成代码,请选择预览或者下载查看!");
}
switch (type){
// 生成代码
@@ -77,7 +79,10 @@ public class GeneratorController {
break;
// 预览
case 1: return generatorService.preview(genConfigService.find(tableName), generatorService.getColumns(tableName));
- default: break;
+ // 打包
+ case 2: generatorService.download(genConfigService.find(tableName), generatorService.getColumns(tableName), request, response);
+ break;
+ default: throw new BadRequestException("没有这个选项");
}
return new ResponseEntity(HttpStatus.OK);
}
diff --git a/eladmin-generator/src/main/java/me/zhengjie/service/GeneratorService.java b/eladmin-generator/src/main/java/me/zhengjie/service/GeneratorService.java
index 18d731f6..860d1afa 100644
--- a/eladmin-generator/src/main/java/me/zhengjie/service/GeneratorService.java
+++ b/eladmin-generator/src/main/java/me/zhengjie/service/GeneratorService.java
@@ -4,7 +4,8 @@ import me.zhengjie.domain.GenConfig;
import me.zhengjie.domain.ColumnInfo;
import org.springframework.http.ResponseEntity;
import org.springframework.scheduling.annotation.Async;
-
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
import java.util.List;
/**
@@ -61,4 +62,13 @@ public interface GeneratorService {
* @return /
*/
ResponseEntity preview(GenConfig genConfig, List columns);
+
+ /**
+ * 打包下载
+ * @param genConfig 配置信息
+ * @param columns 字段信息
+ * @param request
+ * @param response
+ */
+ void download(GenConfig genConfig, List columns, HttpServletRequest request, HttpServletResponse response);
}
diff --git a/eladmin-generator/src/main/java/me/zhengjie/service/impl/GeneratorServiceImpl.java b/eladmin-generator/src/main/java/me/zhengjie/service/impl/GeneratorServiceImpl.java
index 42707aa6..bff73357 100644
--- a/eladmin-generator/src/main/java/me/zhengjie/service/impl/GeneratorServiceImpl.java
+++ b/eladmin-generator/src/main/java/me/zhengjie/service/impl/GeneratorServiceImpl.java
@@ -2,12 +2,14 @@ package me.zhengjie.service.impl;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.core.util.ZipUtil;
import me.zhengjie.domain.GenConfig;
import me.zhengjie.domain.ColumnInfo;
import me.zhengjie.domain.vo.TableInfo;
import me.zhengjie.exception.BadRequestException;
import me.zhengjie.repository.ColumnInfoRepository;
import me.zhengjie.service.GeneratorService;
+import me.zhengjie.utils.FileUtil;
import me.zhengjie.utils.GenUtil;
import me.zhengjie.utils.PageUtil;
import me.zhengjie.utils.StringUtils;
@@ -17,6 +19,9 @@ import org.springframework.stereotype.Service;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
@@ -136,4 +141,19 @@ public class GeneratorServiceImpl implements GeneratorService {
List