diff --git a/src/main/java/xyz/wbsite/dbtool/javafx/manger/callable/SpringBootCallable.java b/src/main/java/xyz/wbsite/dbtool/javafx/manger/callable/SpringBootCallable.java index 2ddede74..5e82b5e5 100644 --- a/src/main/java/xyz/wbsite/dbtool/javafx/manger/callable/SpringBootCallable.java +++ b/src/main/java/xyz/wbsite/dbtool/javafx/manger/callable/SpringBootCallable.java @@ -5,13 +5,15 @@ import xyz.wbsite.dbtool.javafx.manger.FreeMarkerManager; import xyz.wbsite.dbtool.javafx.manger.ManagerFactory; import xyz.wbsite.dbtool.javafx.manger.ProjectManager; import xyz.wbsite.dbtool.javafx.manger.XmlManager; -import xyz.wbsite.dbtool.javafx.po.*; +import xyz.wbsite.dbtool.javafx.po.AbstractDBmapper; +import xyz.wbsite.dbtool.javafx.po.Module; +import xyz.wbsite.dbtool.javafx.po.Project; +import xyz.wbsite.dbtool.javafx.po.Table; import xyz.wbsite.dbtool.javafx.tool.Tool; import java.io.File; import java.util.Date; import java.util.HashMap; -import java.util.UUID; import java.util.concurrent.Callable; public class SpringBootCallable implements Callable { @@ -525,45 +527,61 @@ public class SpringBootCallable implements Callable { ctx.put("author", md.getProjectAuthor()); ctx.put("date", new Date()); - freeMarkerManager.outputTemp(new File(ent.getAbsolutePath(),"Dict.java"), option + "/java/module/system/ent/Dict.java", ctx); - freeMarkerManager.outputTemp(new File(ent.getAbsolutePath(),"DictItem.java"), option + "/java/module/system/ent/DictItem.java", ctx); - - freeMarkerManager.outputTemp(new File(mgr.getAbsolutePath(),"DictItemManager.java"), option + "/java/module/system/mgr/DictItemManager.java", ctx); - freeMarkerManager.outputTemp(new File(mgr.getAbsolutePath(),"DictItemManagerImpl.java"), option + "/java/module/system/mgr/DictItemManagerImpl.java", ctx); - freeMarkerManager.outputTemp(new File(mgr.getAbsolutePath(),"DictManager.java"), option + "/java/module/system/mgr/DictManager.java", ctx); - freeMarkerManager.outputTemp(new File(mgr.getAbsolutePath(),"DictManagerImpl.java"), option + "/java/module/system/mgr/DictManagerImpl.java", ctx); - - freeMarkerManager.outputTemp(new File(mpr.getAbsolutePath(),"DictItemMapper.java"), option + "/java/module/system/mpr/DictItemMapper.java", ctx); - freeMarkerManager.outputTemp(new File(mpr.getAbsolutePath(),"DictItemMapper.xml"), option + "/java/module/system/mpr/DictItemMapper.xml", ctx); - freeMarkerManager.outputTemp(new File(mpr.getAbsolutePath(),"DictMapper.java"), option + "/java/module/system/mpr/DictMapper.java", ctx); - freeMarkerManager.outputTemp(new File(mpr.getAbsolutePath(),"DictMapper.xml"), option + "/java/module/system/mpr/DictMapper.xml", ctx); - - freeMarkerManager.outputTemp(new File(req.getAbsolutePath(),"AuthLoginRequest.java"), option + "/java/module/system/req/AuthLoginRequest.java", ctx); - freeMarkerManager.outputTemp(new File(req.getAbsolutePath(),"DictCreateRequest.java"), option + "/java/module/system/req/DictCreateRequest.java", ctx); - freeMarkerManager.outputTemp(new File(req.getAbsolutePath(),"DictDeleteRequest.java"), option + "/java/module/system/req/DictDeleteRequest.java", ctx); - freeMarkerManager.outputTemp(new File(req.getAbsolutePath(),"DictFindRequest.java"), option + "/java/module/system/req/DictFindRequest.java", ctx); - freeMarkerManager.outputTemp(new File(req.getAbsolutePath(),"DictGetRequest.java"), option + "/java/module/system/req/DictGetRequest.java", ctx); - freeMarkerManager.outputTemp(new File(req.getAbsolutePath(),"DictItemCreateRequest.java"), option + "/java/module/system/req/DictItemCreateRequest.java", ctx); - freeMarkerManager.outputTemp(new File(req.getAbsolutePath(),"DictItemDeleteRequest.java"), option + "/java/module/system/req/DictItemDeleteRequest.java", ctx); - freeMarkerManager.outputTemp(new File(req.getAbsolutePath(),"DictItemFindRequest.java"), option + "/java/module/system/req/DictItemFindRequest.java", ctx); - freeMarkerManager.outputTemp(new File(req.getAbsolutePath(),"DictItemGetRequest.java"), option + "/java/module/system/req/DictItemGetRequest.java", ctx); - freeMarkerManager.outputTemp(new File(req.getAbsolutePath(),"DictItemUpdateRequest.java"), option + "/java/module/system/req/DictItemUpdateRequest.java", ctx); - freeMarkerManager.outputTemp(new File(req.getAbsolutePath(),"DictLoadRequest.java"), option + "/java/module/system/req/DictLoadRequest.java", ctx); - freeMarkerManager.outputTemp(new File(req.getAbsolutePath(),"DictUpdateRequest.java"), option + "/java/module/system/req/DictUpdateRequest.java", ctx); - - freeMarkerManager.outputTemp(new File(rsp.getAbsolutePath(),"AuthLoginResponse.java"), option + "/java/module/system/rsp/AuthLoginResponse.java", ctx); - freeMarkerManager.outputTemp(new File(rsp.getAbsolutePath(),"DictCreateResponse.java"), option + "/java/module/system/rsp/DictCreateResponse.java", ctx); - freeMarkerManager.outputTemp(new File(rsp.getAbsolutePath(),"DictDeleteResponse.java"), option + "/java/module/system/rsp/DictDeleteResponse.java", ctx); - freeMarkerManager.outputTemp(new File(rsp.getAbsolutePath(),"DictFindResponse.java"), option + "/java/module/system/rsp/DictFindResponse.java", ctx); - freeMarkerManager.outputTemp(new File(rsp.getAbsolutePath(),"DictGetResponse.java"), option + "/java/module/system/rsp/DictGetResponse.java", ctx); - freeMarkerManager.outputTemp(new File(rsp.getAbsolutePath(),"DictItemCreateResponse.java"), option + "/java/module/system/rsp/DictItemCreateResponse.java", ctx); - freeMarkerManager.outputTemp(new File(rsp.getAbsolutePath(),"DictItemDeleteResponse.java"), option + "/java/module/system/rsp/DictItemDeleteResponse.java", ctx); - freeMarkerManager.outputTemp(new File(rsp.getAbsolutePath(),"DictItemFindResponse.java"), option + "/java/module/system/rsp/DictItemFindResponse.java", ctx); - freeMarkerManager.outputTemp(new File(rsp.getAbsolutePath(),"DictItemGetResponse.java"), option + "/java/module/system/rsp/DictItemGetResponse.java", ctx); - freeMarkerManager.outputTemp(new File(rsp.getAbsolutePath(),"DictItemUpdateResponse.java"), option + "/java/module/system/rsp/DictItemUpdateResponse.java", ctx); - freeMarkerManager.outputTemp(new File(rsp.getAbsolutePath(),"DictLoadResponse.java"), option + "/java/module/system/rsp/DictLoadResponse.java", ctx); - freeMarkerManager.outputTemp(new File(rsp.getAbsolutePath(),"DictUpdateResponse.java"), option + "/java/module/system/rsp/DictUpdateResponse.java", ctx); - + freeMarkerManager.outputTemp(new File(ent.getAbsolutePath(), "Dict.java"), option + "/java/module/system/ent/Dict.java", ctx); + freeMarkerManager.outputTemp(new File(ent.getAbsolutePath(), "DictItem.java"), option + "/java/module/system/ent/DictItem.java", ctx); + freeMarkerManager.outputTemp(new File(ent.getAbsolutePath(), "File.java"), option + "/java/module/system/ent/File.java", ctx); + + freeMarkerManager.outputTemp(new File(mgr.getAbsolutePath(), "DictItemManager.java"), option + "/java/module/system/mgr/DictItemManager.java", ctx); + freeMarkerManager.outputTemp(new File(mgr.getAbsolutePath(), "DictItemManagerImpl.java"), option + "/java/module/system/mgr/DictItemManagerImpl.java", ctx); + freeMarkerManager.outputTemp(new File(mgr.getAbsolutePath(), "DictManager.java"), option + "/java/module/system/mgr/DictManager.java", ctx); + freeMarkerManager.outputTemp(new File(mgr.getAbsolutePath(), "DictManagerImpl.java"), option + "/java/module/system/mgr/DictManagerImpl.java", ctx); + freeMarkerManager.outputTemp(new File(mgr.getAbsolutePath(), "FileManager.java"), option + "/java/module/system/mgr/FileManager.java", ctx); + freeMarkerManager.outputTemp(new File(mgr.getAbsolutePath(), "FileManagerImpl.java"), option + "/java/module/system/mgr/FileManagerImpl.java", ctx); + + freeMarkerManager.outputTemp(new File(mpr.getAbsolutePath(), "DictItemMapper.java"), option + "/java/module/system/mpr/DictItemMapper.java", ctx); + freeMarkerManager.outputTemp(new File(mpr.getAbsolutePath(), "DictItemMapper.xml"), option + "/java/module/system/mpr/DictItemMapper.xml", ctx); + freeMarkerManager.outputTemp(new File(mpr.getAbsolutePath(), "DictMapper.java"), option + "/java/module/system/mpr/DictMapper.java", ctx); + freeMarkerManager.outputTemp(new File(mpr.getAbsolutePath(), "DictMapper.xml"), option + "/java/module/system/mpr/DictMapper.xml", ctx); + freeMarkerManager.outputTemp(new File(mpr.getAbsolutePath(), "FileMapper.java"), option + "/java/module/system/mpr/FileMapper.java", ctx); + freeMarkerManager.outputTemp(new File(mpr.getAbsolutePath(), "FileMapper.xml"), option + "/java/module/system/mpr/FileMapper.xml", ctx); + + freeMarkerManager.outputTemp(new File(req.getAbsolutePath(), "AuthLoginRequest.java"), option + "/java/module/system/req/AuthLoginRequest.java", ctx); + freeMarkerManager.outputTemp(new File(req.getAbsolutePath(), "DictCreateRequest.java"), option + "/java/module/system/req/DictCreateRequest.java", ctx); + freeMarkerManager.outputTemp(new File(req.getAbsolutePath(), "DictDeleteRequest.java"), option + "/java/module/system/req/DictDeleteRequest.java", ctx); + freeMarkerManager.outputTemp(new File(req.getAbsolutePath(), "DictFindRequest.java"), option + "/java/module/system/req/DictFindRequest.java", ctx); + freeMarkerManager.outputTemp(new File(req.getAbsolutePath(), "DictGetRequest.java"), option + "/java/module/system/req/DictGetRequest.java", ctx); + freeMarkerManager.outputTemp(new File(req.getAbsolutePath(), "DictItemCreateRequest.java"), option + "/java/module/system/req/DictItemCreateRequest.java", ctx); + freeMarkerManager.outputTemp(new File(req.getAbsolutePath(), "DictItemDeleteRequest.java"), option + "/java/module/system/req/DictItemDeleteRequest.java", ctx); + freeMarkerManager.outputTemp(new File(req.getAbsolutePath(), "DictItemFindRequest.java"), option + "/java/module/system/req/DictItemFindRequest.java", ctx); + freeMarkerManager.outputTemp(new File(req.getAbsolutePath(), "DictItemGetRequest.java"), option + "/java/module/system/req/DictItemGetRequest.java", ctx); + freeMarkerManager.outputTemp(new File(req.getAbsolutePath(), "DictItemUpdateRequest.java"), option + "/java/module/system/req/DictItemUpdateRequest.java", ctx); + freeMarkerManager.outputTemp(new File(req.getAbsolutePath(), "DictLoadRequest.java"), option + "/java/module/system/req/DictLoadRequest.java", ctx); + freeMarkerManager.outputTemp(new File(req.getAbsolutePath(), "DictUpdateRequest.java"), option + "/java/module/system/req/DictUpdateRequest.java", ctx); + freeMarkerManager.outputTemp(new File(req.getAbsolutePath(), "FileCreateRequest.java"), option + "/java/module/system/req/FileCreateRequest.java", ctx); + freeMarkerManager.outputTemp(new File(req.getAbsolutePath(), "FileDeleteRequest.java"), option + "/java/module/system/req/FileDeleteRequest.java", ctx); + freeMarkerManager.outputTemp(new File(req.getAbsolutePath(), "FileDownloadRequest.java"), option + "/java/module/system/req/FileDownloadRequest.java", ctx); + freeMarkerManager.outputTemp(new File(req.getAbsolutePath(), "FileFindRequest.java"), option + "/java/module/system/req/FileFindRequest.java", ctx); + freeMarkerManager.outputTemp(new File(req.getAbsolutePath(), "FileGetRequest.java"), option + "/java/module/system/req/FileGetRequest.java", ctx); + freeMarkerManager.outputTemp(new File(req.getAbsolutePath(), "FileUploadRequest.java"), option + "/java/module/system/req/FileUploadRequest.java", ctx); + + freeMarkerManager.outputTemp(new File(rsp.getAbsolutePath(), "AuthLoginResponse.java"), option + "/java/module/system/rsp/AuthLoginResponse.java", ctx); + freeMarkerManager.outputTemp(new File(rsp.getAbsolutePath(), "DictCreateResponse.java"), option + "/java/module/system/rsp/DictCreateResponse.java", ctx); + freeMarkerManager.outputTemp(new File(rsp.getAbsolutePath(), "DictDeleteResponse.java"), option + "/java/module/system/rsp/DictDeleteResponse.java", ctx); + freeMarkerManager.outputTemp(new File(rsp.getAbsolutePath(), "DictFindResponse.java"), option + "/java/module/system/rsp/DictFindResponse.java", ctx); + freeMarkerManager.outputTemp(new File(rsp.getAbsolutePath(), "DictGetResponse.java"), option + "/java/module/system/rsp/DictGetResponse.java", ctx); + freeMarkerManager.outputTemp(new File(rsp.getAbsolutePath(), "DictItemCreateResponse.java"), option + "/java/module/system/rsp/DictItemCreateResponse.java", ctx); + freeMarkerManager.outputTemp(new File(rsp.getAbsolutePath(), "DictItemDeleteResponse.java"), option + "/java/module/system/rsp/DictItemDeleteResponse.java", ctx); + freeMarkerManager.outputTemp(new File(rsp.getAbsolutePath(), "DictItemFindResponse.java"), option + "/java/module/system/rsp/DictItemFindResponse.java", ctx); + freeMarkerManager.outputTemp(new File(rsp.getAbsolutePath(), "DictItemGetResponse.java"), option + "/java/module/system/rsp/DictItemGetResponse.java", ctx); + freeMarkerManager.outputTemp(new File(rsp.getAbsolutePath(), "DictItemUpdateResponse.java"), option + "/java/module/system/rsp/DictItemUpdateResponse.java", ctx); + freeMarkerManager.outputTemp(new File(rsp.getAbsolutePath(), "DictLoadResponse.java"), option + "/java/module/system/rsp/DictLoadResponse.java", ctx); + freeMarkerManager.outputTemp(new File(rsp.getAbsolutePath(), "DictUpdateResponse.java"), option + "/java/module/system/rsp/DictUpdateResponse.java", ctx); + freeMarkerManager.outputTemp(new File(rsp.getAbsolutePath(), "FileCreateResponse.java"), option + "/java/module/system/rsp/FileCreateResponse.java", ctx); + freeMarkerManager.outputTemp(new File(rsp.getAbsolutePath(), "FileDeleteResponse.java"), option + "/java/module/system/rsp/FileDeleteResponse.java", ctx); + freeMarkerManager.outputTemp(new File(rsp.getAbsolutePath(), "FileDownloadResponse.java"), option + "/java/module/system/rsp/FileDownloadResponse.java", ctx); + freeMarkerManager.outputTemp(new File(rsp.getAbsolutePath(), "FileFindResponse.java"), option + "/java/module/system/rsp/FileFindResponse.java", ctx); + freeMarkerManager.outputTemp(new File(rsp.getAbsolutePath(), "FileGetResponse.java"), option + "/java/module/system/rsp/FileGetResponse.java", ctx); + freeMarkerManager.outputTemp(new File(rsp.getAbsolutePath(), "FileUploadResponse.java"), option + "/java/module/system/rsp/FileUploadResponse.java", ctx); } /** @@ -618,7 +636,6 @@ public class SpringBootCallable implements Callable { freeMarkerManager.outputTemp(new File(base.getAbsolutePath(), "Control.java"), option + "/java/frame/base/Control.java", ctx); freeMarkerManager.outputTemp(new File(base.getAbsolutePath(), "Error.java"), option + "/java/frame/base/Error.java", ctx); freeMarkerManager.outputTemp(new File(base.getAbsolutePath(), "ErrorType.java"), option + "/java/frame/base/ErrorType.java", ctx); - freeMarkerManager.outputTemp(new File(base.getAbsolutePath(), "FileUploadResponse.java"), option + "/java/frame/base/FileUploadResponse.java", ctx); freeMarkerManager.outputTemp(new File(base.getAbsolutePath(), "Screen.java"), option + "/java/frame/base/Screen.java", ctx); freeMarkerManager.outputTemp(new File(base.getAbsolutePath(), "SortType.java"), option + "/java/frame/base/SortType.java", ctx); freeMarkerManager.outputTemp(new File(base.getAbsolutePath(), "Token.java"), option + "/java/frame/base/Token.java", ctx); @@ -758,6 +775,7 @@ public class SpringBootCallable implements Callable { freeMarkerManager.outputTemp(new File(system.getAbsolutePath(), "DICT.sql"), option + "/resources/dbtool/system/DICT.sql", ctx); freeMarkerManager.outputTemp(new File(system.getAbsolutePath(), "DICT_ITEM.sql"), option + "/resources/dbtool/system/DICT_ITEM.sql", ctx); + freeMarkerManager.outputTemp(new File(system.getAbsolutePath(), "FILE.sql"), option + "/resources/dbtool/system/FILE.sql", ctx); } @@ -874,6 +892,7 @@ public class SpringBootCallable implements Callable { Tool.outputResource(option + "/resources/templates/screen/module/system/dict.ftl", new File(system.getAbsolutePath(), "dict.ftl")); Tool.outputResource(option + "/resources/templates/screen/module/system/dictItem.ftl", new File(system.getAbsolutePath(), "dictItem.ftl")); + Tool.outputResource(option + "/resources/templates/screen/module/system/file.ftl", new File(system.getAbsolutePath(), "file.ftl")); { HashMap ctx = new HashMap(); diff --git a/src/main/resources/modules/SpringBoot/java/action/ajax/system/FileAjax.java b/src/main/resources/modules/SpringBoot/java/action/ajax/system/FileAjax.java index b6f369f4..aae9f45a 100644 --- a/src/main/resources/modules/SpringBoot/java/action/ajax/system/FileAjax.java +++ b/src/main/resources/modules/SpringBoot/java/action/ajax/system/FileAjax.java @@ -1,20 +1,94 @@ package ${basePackage}.action.ajax.system; +import ${basePackage}.frame.auth.LocalData; +import ${basePackage}.frame.base.BaseResponse; +import ${basePackage}.frame.base.ErrorType; +import ${basePackage}.frame.excel.WSheet; +import ${basePackage}.frame.excel.exception.ReadErrorException; +import ${basePackage}.frame.excel.exception.TemplateNotMatchException; +import ${basePackage}.frame.utils.LogUtil; +import ${basePackage}.frame.utils.MapperUtil; +import ${basePackage}.frame.utils.ResponseUtil; +import ${basePackage}.frame.utils.ValidationUtil; +import ${basePackage}.module.system.ent.File; +import ${basePackage}.module.system.mgr.FileManager; +import ${basePackage}.module.system.req.*; +import ${basePackage}.module.system.rsp.*; +import com.fasterxml.jackson.core.TreeNode; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpHeaders; import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; import org.springframework.web.multipart.MultipartFile; -import ${basePackage}.frame.base.BaseResponse; -import ${basePackage}.frame.base.ErrorType; -import ${basePackage}.frame.base.FileUploadResponse; -import javax.swing.tree.TreeNode; import java.io.IOException; import java.net.URLEncoder; +import java.util.List; public class FileAjax { + @Autowired + private FileManager fileManager; + + public FileCreateResponse create(FileCreateRequest request) { + return fileManager.create(request, LocalData.getToken()); + } + + public FileDeleteResponse delete(FileDeleteRequest request) { + return fileManager.delete(request, LocalData.getToken()); + } + + public FileFindResponse find(FileFindRequest request) { + return fileManager.find(request, LocalData.getToken()); + } + + public FileGetResponse get(FileGetRequest request) { + return fileManager.get(request, LocalData.getToken()); + } + + public Object template(){ + return ResponseUtil.apply(new WSheet<>(File.class)); + } + + public Object exports(TreeNode jsonParam) { + FileFindRequest request = MapperUtil.toJava(jsonParam, FileFindRequest.class); + FileFindResponse response = fileManager.find(request, LocalData.getToken()); + if (response.hasError()) { + return response; + } else if (response.getTotalCount() == 0) { + response.addError(ErrorType.BUSINESS_ERROR, "导出数据为空"); + return response; + } + return ResponseUtil.apply(new WSheet<>(response.getResult())); + } + + public Object imports(MultipartFile file) { + BaseResponse baseResponse = new BaseResponse(); + try { + WSheet sheet = new WSheet<>(file.getBytes(), File.class, new WSheet.Validator() { + @Override + public List validate(File o) { + FileCreateRequest request = MapperUtil.map(o, FileCreateRequest.class); + return ValidationUtil.validate(request); + } + }); + + if (sheet.hasError()) { + return ResponseUtil.apply(sheet.getBytes(), sheet.getName() + "-检查.xlsx"); + } else { + return baseResponse; + } + } catch (IOException e) { + e.printStackTrace(); + LogUtil.dumpException(e); + baseResponse.addError(ErrorType.BUSINESS_ERROR, "上传文件出错"); + } catch (TemplateNotMatchException | ReadErrorException e) { + baseResponse.addError(ErrorType.BUSINESS_ERROR, e.getMessage()); + } + return baseResponse; + } + public FileUploadResponse upload(MultipartFile file) { FileUploadResponse fileUploadResponse = new FileUploadResponse(); String fileName = file.getOriginalFilename(); @@ -24,7 +98,7 @@ public class FileAjax { //======== fileUploadResponse.setId(1L); fileUploadResponse.setUrl("example.com\\img\\1.jpg"); - fileUploadResponse.setDownloadUrl("example.com\\img\\1.jpg"); + fileUploadResponse.setUrlDownload("example.com\\img\\1.jpg"); if (file != null) { fileUploadResponse.addError(ErrorType.BUSINESS_ERROR, "文件上传成功,但未处理文件[" + fileName + "]!"); diff --git a/src/main/resources/modules/SpringBoot/java/action/api/system/FileApi.java b/src/main/resources/modules/SpringBoot/java/action/api/system/FileApi.java index cc6578d8..aa410484 100644 --- a/src/main/resources/modules/SpringBoot/java/action/api/system/FileApi.java +++ b/src/main/resources/modules/SpringBoot/java/action/api/system/FileApi.java @@ -1,32 +1,51 @@ package ${basePackage}.action.api.system; -import org.springframework.http.HttpHeaders; -import org.springframework.http.HttpStatus; -import org.springframework.http.MediaType; -import org.springframework.http.ResponseEntity; -import org.springframework.web.multipart.MultipartFile; -import ${basePackage}.frame.base.BaseResponse; +import ${basePackage}.frame.auth.LocalData; import ${basePackage}.frame.base.ErrorType; -import ${basePackage}.frame.base.FileUploadResponse; +import ${basePackage}.frame.utils.MapperUtil; +import ${basePackage}.frame.utils.Base64Util; +import ${basePackage}.module.system.mgr.FileManager; +import ${basePackage}.module.system.req.*; +import ${basePackage}.module.system.rsp.*; +import org.springframework.beans.factory.annotation.Autowired; -import javax.swing.tree.TreeNode; import java.io.IOException; import java.net.URLEncoder; public class FileApi { - public FileUploadResponse upload(MultipartFile file) { + @Autowired + private FileManager fileManager; + + public FileCreateResponse create(FileCreateRequest request) { + return fileManager.create(request, LocalData.getToken()); + } + + public FileDeleteResponse delete(FileDeleteRequest request) { + return fileManager.delete(request, LocalData.getToken()); + } + + public FileFindResponse find(FileFindRequest request) { + return fileManager.find(request, LocalData.getToken()); + } + + public FileGetResponse get(FileGetRequest request) { + return fileManager.get(request, LocalData.getToken()); + } + + public FileUploadResponse upload(FileUploadRequest request) { FileUploadResponse fileUploadResponse = new FileUploadResponse(); - String fileName = file.getOriginalFilename(); + String fileName = request.getFileName(); + String dataBase64 = request.getDataBase64(); //======== // todo 处理文件 //======== fileUploadResponse.setId(1L); fileUploadResponse.setUrl("example.com\\img\\1.jpg"); - fileUploadResponse.setDownloadUrl("example.com\\img\\1.jpg"); + fileUploadResponse.setUrlDownload("example.com\\img\\1.jpg"); - if (file != null) { + if (dataBase64 != null) { fileUploadResponse.addError(ErrorType.BUSINESS_ERROR, "文件上传成功,但未处理文件[" + fileName + "]!"); } else { fileUploadResponse.addError(ErrorType.BUSINESS_ERROR, "文件上传失败!"); @@ -35,20 +54,20 @@ public class FileApi { return fileUploadResponse; } - public Object download(TreeNode jsonParam) { - try { - //======== - // todo 下载示例 - //======== - byte[] bytes = "test".getBytes(); - HttpHeaders headers = new HttpHeaders(); - headers.setContentType(MediaType.APPLICATION_OCTET_STREAM); - headers.setContentDispositionFormData("attachment", URLEncoder.encode("example.test", "utf-8")); - return new ResponseEntity<>(bytes, headers, HttpStatus.OK); - } catch (IOException e) { - BaseResponse baseResponse = new BaseResponse(); - baseResponse.addError(ErrorType.BUSINESS_ERROR, ""); - return baseResponse; + public FileDownloadResponse download(FileDownloadRequest request) { + FileDownloadResponse response = new FileDownloadResponse(); + + FileGetRequest fileGetRequest = MapperUtil.map(request, FileGetRequest.class); + FileGetResponse fileGetResponse = fileManager.get(fileGetRequest, LocalData.getToken()); + if (fileGetResponse.hasError() || null == fileGetResponse.getFile()) { + response.addErrors(fileGetResponse.getErrors()); + response.addError(ErrorType.BUSINESS_ERROR, "未找到文件"); + return response; } + + response.setFile(fileGetResponse.getFile()); + // todo 实例文件字节转Base64 + response.setBase64(Base64Util.encodeToString("".getBytes())); + return response; } } diff --git a/src/main/resources/modules/SpringBoot/java/frame/base/FileUploadResponse.java b/src/main/resources/modules/SpringBoot/java/frame/base/FileUploadResponse.java deleted file mode 100644 index 52d5af96..00000000 --- a/src/main/resources/modules/SpringBoot/java/frame/base/FileUploadResponse.java +++ /dev/null @@ -1,34 +0,0 @@ -package ${basePackage}.frame.base; - -public class FileUploadResponse extends BaseResponse { - - private Long id; - - private String url; - - private String downloadUrl; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getUrl() { - return url; - } - - public void setUrl(String url) { - this.url = url; - } - - public String getDownloadUrl() { - return downloadUrl; - } - - public void setDownloadUrl(String downloadUrl) { - this.downloadUrl = downloadUrl; - } -} diff --git a/src/main/resources/modules/SpringBoot/java/module/system/ent/File.java b/src/main/resources/modules/SpringBoot/java/module/system/ent/File.java new file mode 100644 index 00000000..f93ad898 --- /dev/null +++ b/src/main/resources/modules/SpringBoot/java/module/system/ent/File.java @@ -0,0 +1,116 @@ +package ${basePackage}.module.system.ent; + +import ${basePackage}.frame.excel.annotation.ColumnDescription; +import ${basePackage}.frame.excel.annotation.ColumnName; +import ${basePackage}.frame.excel.annotation.SheetName; +import ${basePackage}.frame.base.BaseEntity; + +/** + * FILE - 文件 + * + * @author author + * @version 0.0.1 + * @since 2019-11-29 + */ +@SheetName("文件") +public class File extends BaseEntity { + + /** + * NAME - 文件名称 + */ + @ColumnName("文件名称") + @ColumnDescription("文件名称") + private String name; + /** + * FILE_TYPE - 文件类型 + */ + @ColumnName("文件类型") + @ColumnDescription("文件类型") + private String fileType; + /** + * ATTRIBUTE1 - 扩展属性1 + */ + @ColumnName("扩展属性1") + @ColumnDescription("扩展属性1") + private String attribute1; + /** + * ATTRIBUTE2 - 扩展属性2 + */ + @ColumnName("扩展属性2") + @ColumnDescription("扩展属性2") + private String attribute2; + /** + * LOCATION - 存放地址 + */ + @ColumnName("存放地址") + @ColumnDescription("存放地址") + private String location; + /** + * URL - 访问地址 + */ + @ColumnName("访问地址") + @ColumnDescription("访问地址") + private String url; + /** + * URL_DOWNLOAD - 下载地址 + */ + @ColumnName("下载地址") + @ColumnDescription("下载地址") + private String urlDownload; + + public String getName() { + return this.name; + } + + public void setName(String name) { + this.name = name; + } + + public String getFileType() { + return this.fileType; + } + + public void setFileType(String fileType) { + this.fileType = fileType; + } + + public String getAttribute1() { + return this.attribute1; + } + + public void setAttribute1(String attribute1) { + this.attribute1 = attribute1; + } + + public String getAttribute2() { + return this.attribute2; + } + + public void setAttribute2(String attribute2) { + this.attribute2 = attribute2; + } + + public String getLocation() { + return this.location; + } + + public void setLocation(String location) { + this.location = location; + } + + public String getUrl() { + return this.url; + } + + public void setUrl(String url) { + this.url = url; + } + + public String getUrlDownload() { + return this.urlDownload; + } + + public void setUrlDownload(String urlDownload) { + this.urlDownload = urlDownload; + } +} \ No newline at end of file diff --git a/src/main/resources/modules/SpringBoot/java/module/system/mgr/DictItemManager.java b/src/main/resources/modules/SpringBoot/java/module/system/mgr/DictItemManager.java index 5323ed60..e59d5112 100644 --- a/src/main/resources/modules/SpringBoot/java/module/system/mgr/DictItemManager.java +++ b/src/main/resources/modules/SpringBoot/java/module/system/mgr/DictItemManager.java @@ -9,7 +9,7 @@ import ${basePackage}.module.system.rsp.*; * * @author wangbing * @version 0.0.1 - * @since 2019-07-20 + * @since 2017-01-01 */ public interface DictItemManager { diff --git a/src/main/resources/modules/SpringBoot/java/module/system/mgr/DictItemManagerImpl.java b/src/main/resources/modules/SpringBoot/java/module/system/mgr/DictItemManagerImpl.java index 2211d59d..2ae4678a 100644 --- a/src/main/resources/modules/SpringBoot/java/module/system/mgr/DictItemManagerImpl.java +++ b/src/main/resources/modules/SpringBoot/java/module/system/mgr/DictItemManagerImpl.java @@ -22,7 +22,7 @@ import ${basePackage}.module.system.rsp.*; * * @author wangbing * @version 0.0.1 - * @since 2019-07-20 + * @since 2017-01-01 */ @Transactional @Service diff --git a/src/main/resources/modules/SpringBoot/java/module/system/mgr/DictManager.java b/src/main/resources/modules/SpringBoot/java/module/system/mgr/DictManager.java index 1a14a921..6f4dbd0a 100644 --- a/src/main/resources/modules/SpringBoot/java/module/system/mgr/DictManager.java +++ b/src/main/resources/modules/SpringBoot/java/module/system/mgr/DictManager.java @@ -9,7 +9,7 @@ import ${basePackage}.module.system.rsp.*; * * @author wangbing * @version 0.0.1 - * @since 2019-07-20 + * @since 2017-01-01 */ public interface DictManager { diff --git a/src/main/resources/modules/SpringBoot/java/module/system/mgr/DictManagerImpl.java b/src/main/resources/modules/SpringBoot/java/module/system/mgr/DictManagerImpl.java index 008cbc60..7b31b06b 100644 --- a/src/main/resources/modules/SpringBoot/java/module/system/mgr/DictManagerImpl.java +++ b/src/main/resources/modules/SpringBoot/java/module/system/mgr/DictManagerImpl.java @@ -24,7 +24,7 @@ import java.util.List; * * @author wangbing * @version 0.0.1 - * @since 2019-07-20 + * @since 2017-01-01 */ @Transactional @Service diff --git a/src/main/resources/modules/SpringBoot/java/module/system/mgr/FileManager.java b/src/main/resources/modules/SpringBoot/java/module/system/mgr/FileManager.java new file mode 100644 index 00000000..77e06b00 --- /dev/null +++ b/src/main/resources/modules/SpringBoot/java/module/system/mgr/FileManager.java @@ -0,0 +1,51 @@ +package ${basePackage}.module.system.mgr; + +import ${basePackage}.module.system.req.*; +import ${basePackage}.module.system.rsp.*; +import ${basePackage}.frame.base.Token; + +/** + * 文件 + * + * @author wangbing + * @version 0.0.1 + * @since 2017-01-01 + */ +public interface FileManager { + + /** + * 插入 + * + * @param request 请求对象 + * @param token 令牌 + * @return + */ + FileCreateResponse create(FileCreateRequest request, Token token); + + /** + * 逻辑删除 + * + * @param request 请求对象 + * @param token 令牌 + * @return + */ + FileDeleteResponse delete(FileDeleteRequest request, Token token); + + /** + * 查询 + * + * @param request 请求对象 + * @param token 令牌 + * @return + */ + FileFindResponse find(FileFindRequest request, Token token); + + /** + * 获得对象 + * + * @param request 请求对象 + * @param token 令牌 + * @return + */ + FileGetResponse get(FileGetRequest request, Token token); +} diff --git a/src/main/resources/modules/SpringBoot/java/module/system/mgr/FileManagerImpl.java b/src/main/resources/modules/SpringBoot/java/module/system/mgr/FileManagerImpl.java new file mode 100644 index 00000000..29dc01cf --- /dev/null +++ b/src/main/resources/modules/SpringBoot/java/module/system/mgr/FileManagerImpl.java @@ -0,0 +1,142 @@ +package ${basePackage}.module.system.mgr; + +import ${basePackage}.frame.utils.IDgenerator; +import ${basePackage}.frame.utils.Message; +import ${basePackage}.frame.base.ErrorType; +import ${basePackage}.frame.base.Token; +import ${basePackage}.frame.utils.MapperUtil; +import ${basePackage}.frame.utils.ValidationUtil; +import ${basePackage}.module.system.ent.File; +import ${basePackage}.module.system.mpr.FileMapper; +import ${basePackage}.module.system.req.*; +import ${basePackage}.module.system.rsp.*; +import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; +import com.github.pagehelper.util.StringUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +/** + * FILE - 文件 + * + * @author wangbing + * @version 0.0.1 + * @since 2017-01-01 + */ +@Transactional +@Service +public class FileManagerImpl implements FileManager { + + @Autowired + private FileMapper fileMapper; + + /** + * 插入 + * + * @param request 请求对象 + * @param token 令牌 + * @return 响应 + */ + public FileCreateResponse create(FileCreateRequest request, Token token) { + FileCreateResponse response = new FileCreateResponse(); + + ValidationUtil.validate(request, response); + if (response.hasError()) { + return response; + } + + long id = IDgenerator.nextId(); + File entity = MapperUtil.map(request, File.class); + entity.setId(id); + + long result = fileMapper.insert(entity, token); + if (1L != result) { + response.addError(ErrorType.BUSINESS_ERROR, Message.CREATE_FAILURE); + return response; + } + response.setId(id); + + return response; + } + + /** + * 逻辑删除 + * + * @param request 请求对象 + * @param token 令牌 + * @return 响应 + */ + public FileDeleteResponse delete(FileDeleteRequest request, Token token) { + FileDeleteResponse response = new FileDeleteResponse(); + + ValidationUtil.validate(request, response); + if (response.hasError()) { + return response; + } + + long result = fileMapper.delete(request, token); + if (1L != result) { + response.addError(ErrorType.BUSINESS_ERROR, Message.DELETE_FAILURE); + return response; + } + response.setResult(result); + + return response; + } + + /** + * 查询 + * + * @param request 请求对象 + * @param token 令牌 + * @return 响应 + */ + @Transactional(readOnly = true) + public FileFindResponse find(FileFindRequest request, Token token) { + FileFindResponse response = new FileFindResponse(); + + ValidationUtil.validate(request, response); + if (response.hasError()) { + return response; + } + + PageHelper.startPage(request.getPageNumber(), request.getPageSize()); + if (StringUtil.isNotEmpty(request.getSortKey())) { + PageHelper.orderBy(request.getSortKey() + " " + request.getSortType()); + } + PageInfo pageInfo = new PageInfo<>(fileMapper.find(request, token)); + + response.setResult(pageInfo.getList()); + response.setTotalCount(pageInfo.getTotal()); + + return response; + } + + /** + * 获得对象 + * + * @param request 请求对象 + * @param token 令牌 + * @return 响应 + */ + @Transactional(readOnly = true) + public FileGetResponse get(FileGetRequest request, Token token) { + FileGetResponse response = new FileGetResponse(); + + ValidationUtil.validate(request, response); + if (response.hasError()) { + return response; + } + + File po = fileMapper.get(request, token); + + if (po != null) { + response.setFile(po); + } else { + response.addError(ErrorType.BUSINESS_ERROR, Message.GET_FAILURE); + } + + return response; + } +} diff --git a/src/main/resources/modules/SpringBoot/java/module/system/mpr/FileMapper.java b/src/main/resources/modules/SpringBoot/java/module/system/mpr/FileMapper.java new file mode 100644 index 00000000..b87da09e --- /dev/null +++ b/src/main/resources/modules/SpringBoot/java/module/system/mpr/FileMapper.java @@ -0,0 +1,65 @@ +package ${basePackage}.module.system.mpr; + +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +import ${basePackage}.module.system.ent.File; +import ${basePackage}.module.system.req.*; +import ${basePackage}.frame.base.Token; + +/** + * FILE - 文件 + * + * @author author + * @date 2019-11-29 + */ +@Mapper +public interface FileMapper { + + /** + * 插入 + * + * @param request 请求对象 + * @param token 令牌 + * @return 返回数量 + */ + long insert(@Param("request") File request, @Param("token") Token token); + + /** + * 批量插入 + * + * @param request 请求对象 + * @param token 令牌 + * @return 返回数量 + */ + long insertBatch(@Param("list") List request, @Param("token") Token token); + + /** + * 逻辑删除 + * + * @param request 请求对象 + * @param token 令牌 + * @return 返回数量 + */ + long delete(@Param("request") FileDeleteRequest request, @Param("token") Token token); + + /** + * 查询 + * + * @param request 请求对象 + * @param token 令牌 + * @return 返回对象 + */ + List find(@Param("request") FileFindRequest request, @Param("token") Token token); + + /** + * 获得对象 + * + * @param request 请求对象 + * @param token 令牌 + * @return 返回对象 + */ + File get(@Param("request") FileGetRequest request, @Param("token") Token token); +} diff --git a/src/main/resources/modules/SpringBoot/java/module/system/mpr/FileMapper.xml b/src/main/resources/modules/SpringBoot/java/module/system/mpr/FileMapper.xml new file mode 100644 index 00000000..8a7c0584 --- /dev/null +++ b/src/main/resources/modules/SpringBoot/java/module/system/mpr/FileMapper.xml @@ -0,0 +1,161 @@ + + + + + `SYSFILE` + + + `ID`,`NAME`,`FILE_TYPE`,`ATTRIBUTE1`,`ATTRIBUTE2`,`LOCATION`,`URL`,`URL_DOWNLOAD`,`ROW_VERSION`,`IS_DELETED`,`CREATE_BY`,`CREATE_TIME`,`LAST_UPDATE_BY`,`LAST_UPDATE_TIME` + + + + + + + + + + + + + + + + + + + + + + + + + INSERT INTO + + ( + + ) + VALUES + ( + ${r"#"}{request.id}, + ${r"#"}{request.name,jdbcType=VARCHAR}, + ${r"#"}{request.fileType,jdbcType=VARCHAR}, + ${r"#"}{request.attribute1,jdbcType=VARCHAR}, + ${r"#"}{request.attribute2,jdbcType=VARCHAR}, + ${r"#"}{request.location,jdbcType=VARCHAR}, + ${r"#"}{request.url,jdbcType=VARCHAR}, + ${r"#"}{request.urlDownload,jdbcType=VARCHAR}, + 0, + 0, + ${r"#"}{token.userId,jdbcType=NUMERIC}, + sysdate(), + NULL, + NULL + ) + + + + INSERT INTO + + ( + + ) + VALUES + + ( + ${r"#"}{item.id}, + ${r"#"}{item.name,jdbcType=VARCHAR}, + ${r"#"}{item.fileType,jdbcType=VARCHAR}, + ${r"#"}{item.attribute1,jdbcType=VARCHAR}, + ${r"#"}{item.attribute2,jdbcType=VARCHAR}, + ${r"#"}{item.location,jdbcType=VARCHAR}, + ${r"#"}{item.url,jdbcType=VARCHAR}, + ${r"#"}{item.urlDownload,jdbcType=VARCHAR}, + 0, + 0, + ${r"#"}{token.userId,jdbcType=NUMERIC}, + sysdate(), + NULL, + NULL + ) + + + + + UPDATE + + SET `IS_DELETED` = 1 + WHERE `IS_DELETED` = 0 + AND `ID` = ${r"#"}{request.id} + + + + UPDATE + + SET + `NAME` = ${r"#"}{request.name,jdbcType=VARCHAR}, + `FILE_TYPE` = ${r"#"}{request.fileType,jdbcType=VARCHAR}, + `ATTRIBUTE1` = ${r"#"}{request.attribute1,jdbcType=VARCHAR}, + `ATTRIBUTE2` = ${r"#"}{request.attribute2,jdbcType=VARCHAR}, + `LOCATION` = ${r"#"}{request.location,jdbcType=VARCHAR}, + `URL` = ${r"#"}{request.url,jdbcType=VARCHAR}, + `URL_DOWNLOAD` = ${r"#"}{request.urlDownload,jdbcType=VARCHAR}, + `ROW_VERSION` = `ROW_VERSION` + 1, + `LAST_UPDATE_BY` = ${r"#"}{token.userId}, + `LAST_UPDATE_TIME` = sysdate() + WHERE + `IS_DELETED` = 0 + AND `ID` = ${r"#"}{request.id} + AND `ROW_VERSION` = ${r"#"}{request.rowVersion} + + + + + + \ No newline at end of file diff --git a/src/main/resources/modules/SpringBoot/java/module/system/req/FileCreateRequest.java b/src/main/resources/modules/SpringBoot/java/module/system/req/FileCreateRequest.java new file mode 100644 index 00000000..ea85c0fa --- /dev/null +++ b/src/main/resources/modules/SpringBoot/java/module/system/req/FileCreateRequest.java @@ -0,0 +1,116 @@ +package ${basePackage}.module.system.req; + +import ${basePackage}.frame.validation.Dict; +import ${basePackage}.frame.base.BaseRequest; +import javax.validation.constraints.NotNull; +import javax.validation.constraints.NotEmpty; +import org.hibernate.validator.constraints.Length; + +/** + * FileCreateRequest - 文件新增 + * + * @author wangbing + * @version 0.0.1 + * @since 2017-01-01 + */ +public class FileCreateRequest extends BaseRequest { + + /** + * 文件名称 + */ + @NotEmpty(message = "文件名称不能为空") + @Length(min = 0, max = 255, message = "文件名称长度不合法(0-255)") + private String name; + + /** + * 文件类型 + */ + @Dict(name = "fileType") + private String fileType; + + /** + * 扩展属性1 + */ + @Length(min = 0, max = 50, message = "扩展属性1长度不合法(0-50)") + private String attribute1; + + /** + * 扩展属性2 + */ + @Length(min = 0, max = 50, message = "扩展属性2长度不合法(0-50)") + private String attribute2; + + /** + * 存放地址 + */ + @Length(min = 0, max = 500, message = "存放地址长度不合法(0-500)") + private String location; + + /** + * 访问地址 + */ + @Length(min = 0, max = 500, message = "访问地址长度不合法(0-500)") + private String url; + + /** + * 下载地址 + */ + @Length(min = 0, max = 500, message = "下载地址长度不合法(0-500)") + private String urlDownload; + + public String getName() { + return this.name; + } + + public void setName(String name) { + this.name = name; + } + + public String getFileType() { + return this.fileType; + } + + public void setFileType(String fileType) { + this.fileType = fileType; + } + + public String getAttribute1() { + return this.attribute1; + } + + public void setAttribute1(String attribute1) { + this.attribute1 = attribute1; + } + + public String getAttribute2() { + return this.attribute2; + } + + public void setAttribute2(String attribute2) { + this.attribute2 = attribute2; + } + + public String getLocation() { + return this.location; + } + + public void setLocation(String location) { + this.location = location; + } + + public String getUrl() { + return this.url; + } + + public void setUrl(String url) { + this.url = url; + } + + public String getUrlDownload() { + return this.urlDownload; + } + + public void setUrlDownload(String urlDownload) { + this.urlDownload = urlDownload; + } +} diff --git a/src/main/resources/modules/SpringBoot/java/module/system/req/FileDeleteRequest.java b/src/main/resources/modules/SpringBoot/java/module/system/req/FileDeleteRequest.java new file mode 100644 index 00000000..19b6d4a9 --- /dev/null +++ b/src/main/resources/modules/SpringBoot/java/module/system/req/FileDeleteRequest.java @@ -0,0 +1,28 @@ +package ${basePackage}.module.system.req; + +import ${basePackage}.frame.base.BaseUpdateRequest; +import javax.validation.constraints.NotNull; + +/** + * FileDeleteRequest - 文件删除 + * + * @author wangbing + * @version 0.0.1 + * @since 2017-01-01 + */ +public class FileDeleteRequest extends BaseUpdateRequest { + + /** + * 主键 + */ + @NotNull(message = "主键不能为空") + private long id; + + public long getId() { + return this.id; + } + + public void setId(long id) { + this.id = id; + } +} diff --git a/src/main/resources/modules/SpringBoot/java/module/system/req/FileDownloadRequest.java b/src/main/resources/modules/SpringBoot/java/module/system/req/FileDownloadRequest.java new file mode 100644 index 00000000..1c92e935 --- /dev/null +++ b/src/main/resources/modules/SpringBoot/java/module/system/req/FileDownloadRequest.java @@ -0,0 +1,29 @@ +package ${basePackage}.module.system.req; + +import ${basePackage}.frame.base.BaseRequest; + +import javax.validation.constraints.NotNull; + +/** + * FileDownloadRequest - 文件下载 + * + * @author wangbing + * @version 0.0.1 + * @since 2017-01-01 + */ +public class FileDownloadRequest extends BaseRequest { + + /** + * 文件ID + */ + @NotNull(message = "文件ID不能为空") + private Long fileId; + + public Long getFileId() { + return fileId; + } + + public void setFileId(Long fileId) { + this.fileId = fileId; + } +} diff --git a/src/main/resources/modules/SpringBoot/java/module/system/req/FileFindRequest.java b/src/main/resources/modules/SpringBoot/java/module/system/req/FileFindRequest.java new file mode 100644 index 00000000..20e9fae5 --- /dev/null +++ b/src/main/resources/modules/SpringBoot/java/module/system/req/FileFindRequest.java @@ -0,0 +1,67 @@ +package ${basePackage}.module.system.req; + +import ${basePackage}.frame.base.BaseFindRequest; +import ${basePackage}.frame.validation.Dict; + +/** + * FileRequest - 文件查询 + * + * @author wangbing + * @version 0.0.1 + * @since 2017-01-01 + */ +public class FileFindRequest extends BaseFindRequest { + + /** + * 文件名称 + */ + private String name; + + /** + * 文件类型 + */ + @Dict(name = "fileType") + private String fileType; + + /** + * 扩展属性1 + */ + private String attribute1; + + /** + * 扩展属性2 + */ + private String attribute2; + + public String getName() { + return this.name; + } + + public void setName(String name) { + this.name = name; + } + + public String getFileType() { + return this.fileType; + } + + public void setFileType(String fileType) { + this.fileType = fileType; + } + + public String getAttribute1() { + return this.attribute1; + } + + public void setAttribute1(String attribute1) { + this.attribute1 = attribute1; + } + + public String getAttribute2() { + return this.attribute2; + } + + public void setAttribute2(String attribute2) { + this.attribute2 = attribute2; + } +} diff --git a/src/main/resources/modules/SpringBoot/java/module/system/req/FileGetRequest.java b/src/main/resources/modules/SpringBoot/java/module/system/req/FileGetRequest.java new file mode 100644 index 00000000..3d9c455c --- /dev/null +++ b/src/main/resources/modules/SpringBoot/java/module/system/req/FileGetRequest.java @@ -0,0 +1,29 @@ +package ${basePackage}.module.system.req; + + import ${basePackage}.frame.base.BaseRequest; + + import javax.validation.constraints.NotNull; + +/** + * FileDownloadRequest - 文件下载 + * + * @author wangbing + * @version 0.0.1 + * @since 2017-01-01 + */ +public class FileGetRequest extends BaseRequest { + + /** + * 文件ID + */ + @NotNull(message = "文件ID不能为空") + private Long id; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } +} diff --git a/src/main/resources/modules/SpringBoot/java/module/system/req/FileUploadRequest.java b/src/main/resources/modules/SpringBoot/java/module/system/req/FileUploadRequest.java new file mode 100644 index 00000000..0c447b42 --- /dev/null +++ b/src/main/resources/modules/SpringBoot/java/module/system/req/FileUploadRequest.java @@ -0,0 +1,56 @@ +package ${basePackage}.module.system.req; + +import ${basePackage}.frame.base.BaseRequest; + +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.Pattern; + +/** + * FileUploadRequest - 文件上传 + * + * @author wangbing + * @version 0.0.1 + * @since 2017-01-01 + */ +public class FileUploadRequest extends BaseRequest { + + /** + * 文件名称(包含.) + */ + @NotEmpty(message = "文件名不能为空") + @Pattern(regexp = ".*\\.*$", message = "文件后缀错误") + private String fileName; + + /** + * 文件体(base64) + */ + private String dataBase64; + /** + * 文件体(字节数组) + */ + private byte dataBytes; + + public String getFileName() { + return fileName; + } + + public void setFileName(String fileName) { + this.fileName = fileName; + } + + public String getDataBase64() { + return dataBase64; + } + + public void setDataBase64(String dataBase64) { + this.dataBase64 = dataBase64; + } + + public byte getDataBytes() { + return dataBytes; + } + + public void setDataBytes(byte dataBytes) { + this.dataBytes = dataBytes; + } +} diff --git a/src/main/resources/modules/SpringBoot/java/module/system/rsp/FileCreateResponse.java b/src/main/resources/modules/SpringBoot/java/module/system/rsp/FileCreateResponse.java new file mode 100644 index 00000000..11483da4 --- /dev/null +++ b/src/main/resources/modules/SpringBoot/java/module/system/rsp/FileCreateResponse.java @@ -0,0 +1,26 @@ +package ${basePackage}.module.system.rsp; + +import ${basePackage}.frame.base.BaseResponse; + +/** + * FileCreateResponse - 文件 + * + * @author wangbing + * @version 0.0.1 + * @since 2017-01-01 + */ +public class FileCreateResponse extends BaseResponse { + + /** + * ID + */ + private Long id; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } +} diff --git a/src/main/resources/modules/SpringBoot/java/module/system/rsp/FileDeleteResponse.java b/src/main/resources/modules/SpringBoot/java/module/system/rsp/FileDeleteResponse.java new file mode 100644 index 00000000..332b227a --- /dev/null +++ b/src/main/resources/modules/SpringBoot/java/module/system/rsp/FileDeleteResponse.java @@ -0,0 +1,26 @@ +package ${basePackage}.module.system.rsp; + +import ${basePackage}.frame.base.BaseResponse; + +/** + * FileDeleteResponse - 文件 + * + * @author wangbing + * @version 0.0.1 + * @since 2017-01-01 + */ +public class FileDeleteResponse extends BaseResponse { + + /** + * 删除数目 + */ + private Long result; + + public Long getResult() { + return this.result; + } + + public void setResult(Long result) { + this.result = result; + } +} diff --git a/src/main/resources/modules/SpringBoot/java/module/system/rsp/FileDownloadResponse.java b/src/main/resources/modules/SpringBoot/java/module/system/rsp/FileDownloadResponse.java new file mode 100644 index 00000000..1f49201a --- /dev/null +++ b/src/main/resources/modules/SpringBoot/java/module/system/rsp/FileDownloadResponse.java @@ -0,0 +1,39 @@ +package ${basePackage}.module.system.rsp; + +import ${basePackage}.module.system.ent.File; +import ${basePackage}.frame.base.BaseResponse; + +/** + * FileDownloadResponse - 文件下载 + * + * @author wangbing + * @version 0.0.1 + * @since 2017-01-01 + */ +public class FileDownloadResponse extends BaseResponse { + + /** + * 文件 + */ + private File file; + /** + * 文件base64字符串 + */ + private String base64; + + public File getFile() { + return this.file; + } + + public void setFile(File file) { + this.file = file; + } + + public String getBase64() { + return base64; + } + + public void setBase64(String base64) { + this.base64 = base64; + } +} diff --git a/src/main/resources/modules/SpringBoot/java/module/system/rsp/FileFindResponse.java b/src/main/resources/modules/SpringBoot/java/module/system/rsp/FileFindResponse.java new file mode 100644 index 00000000..79f886e7 --- /dev/null +++ b/src/main/resources/modules/SpringBoot/java/module/system/rsp/FileFindResponse.java @@ -0,0 +1,14 @@ +package ${basePackage}.module.system.rsp; + +import ${basePackage}.frame.base.BaseFindResponse; +import ${basePackage}.module.system.ent.File; + +/** + * FileFindResponse - 文件 + * + * @author wangbing + * @version 0.0.1 + * @since 2017-01-01 + */ +public class FileFindResponse extends BaseFindResponse { +} \ No newline at end of file diff --git a/src/main/resources/modules/SpringBoot/java/module/system/rsp/FileGetResponse.java b/src/main/resources/modules/SpringBoot/java/module/system/rsp/FileGetResponse.java new file mode 100644 index 00000000..a573249f --- /dev/null +++ b/src/main/resources/modules/SpringBoot/java/module/system/rsp/FileGetResponse.java @@ -0,0 +1,27 @@ +package ${basePackage}.module.system.rsp; + +import ${basePackage}.module.system.ent.File; +import ${basePackage}.frame.base.BaseResponse; + +/** + * FileGetResponse - 文件 + * + * @author wangbing + * @version 0.0.1 + * @since 2017-01-01 + */ +public class FileGetResponse extends BaseResponse { + + /** + * 文件 + */ + private File file; + + public File getFile() { + return this.file; + } + + public void setFile(File file) { + this.file = file; + } +} diff --git a/src/main/resources/modules/SpringBoot/java/module/system/rsp/FileUploadResponse.java b/src/main/resources/modules/SpringBoot/java/module/system/rsp/FileUploadResponse.java new file mode 100644 index 00000000..a8c5a265 --- /dev/null +++ b/src/main/resources/modules/SpringBoot/java/module/system/rsp/FileUploadResponse.java @@ -0,0 +1,50 @@ +package ${basePackage}.module.system.rsp; + +import ${basePackage}.frame.base.BaseResponse; + +/** + * FileUploadResponse - 文件上传 + * + * @author wangbing + * @version 0.0.1 + * @since 2017-01-01 + */ +public class FileUploadResponse extends BaseResponse { + + /** + * 文件ID + */ + private Long id; + /** + * 文件访问URL + */ + private String url; + /** + * 文件ID + */ + private String urlDownload; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getUrl() { + return url; + } + + public void setUrl(String url) { + this.url = url; + } + + public String getUrlDownload() { + return urlDownload; + } + + public void setUrlDownload(String urlDownload) { + this.urlDownload = urlDownload; + } +} diff --git a/src/main/resources/modules/SpringBoot/resources/dbtool/system/FILE.sql b/src/main/resources/modules/SpringBoot/resources/dbtool/system/FILE.sql new file mode 100644 index 00000000..49ad37a9 --- /dev/null +++ b/src/main/resources/modules/SpringBoot/resources/dbtool/system/FILE.sql @@ -0,0 +1,27 @@ +/* +Target : MYSQL +Author +Date: 2019-11-29 +*/ + +-- ---------------------------- +-- Table structure for FILE - 文件 +-- ---------------------------- + +CREATE TABLE `SYSFILE` ( + `ID` BIGINT(20) NOT NULL COMMENT '主键', + `NAME` VARCHAR(250) NOT NULL COMMENT '文件名称', + `FILE_TYPE` VARCHAR(10) COMMENT '文件类型', + `ATTRIBUTE1` VARCHAR(50) COMMENT '扩展属性1', + `ATTRIBUTE2` VARCHAR(50) COMMENT '扩展属性2', + `LOCATION` VARCHAR(500) COMMENT '存放地址', + `URL` VARCHAR(500) COMMENT '访问地址', + `URL_DOWNLOAD` VARCHAR(500) COMMENT '下载地址', + `ROW_VERSION` BIGINT(20) NOT NULL DEFAULT 0 COMMENT '行版本', + `IS_DELETED` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '是否已删除', + `CREATE_BY` BIGINT(20) NOT NULL COMMENT '创建用户', + `CREATE_TIME` DATETIME NOT NULL COMMENT '创建时间', + `LAST_UPDATE_BY` BIGINT(20) DEFAULT NULL COMMENT '最后更新用户', + `LAST_UPDATE_TIME` DATETIME DEFAULT NULL COMMENT '最后更新时间', +PRIMARY KEY (`ID`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='文件'; diff --git a/src/main/resources/modules/SpringBoot/resources/templates/screen/index.ftl b/src/main/resources/modules/SpringBoot/resources/templates/screen/index.ftl index c12b9398..c5f95f21 100644 --- a/src/main/resources/modules/SpringBoot/resources/templates/screen/index.ftl +++ b/src/main/resources/modules/SpringBoot/resources/templates/screen/index.ftl @@ -17,6 +17,7 @@ 系统设置 字典管理 + 文件管理 <#list modules as item> diff --git a/src/main/resources/modules/SpringBoot/resources/templates/screen/module/mgr.ftl b/src/main/resources/modules/SpringBoot/resources/templates/screen/module/mgr.ftl index e587d95c..4be34163 100644 --- a/src/main/resources/modules/SpringBoot/resources/templates/screen/module/mgr.ftl +++ b/src/main/resources/modules/SpringBoot/resources/templates/screen/module/mgr.ftl @@ -184,8 +184,14 @@ type="selection" width="40"> + + <#list fields as item> -<#if item.isQuery && !item.isSystem> +<#if !item.isSystem> + + + + + + + + + + + + + + + + 搜索 + 重置 + + + + + + + + 新增 + + 导出 + + + + + + + + + + + + + + + + + + + + + + + + + + + 取 消 + 保存 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +