From f585ea56e4816698b53b268c14d020bb34c284a4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B1=AA=E4=BA=91=E6=98=8A?= Date: Thu, 27 Jun 2019 18:08:36 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=87=E4=BB=B6=E4=B8=8A=E4=BC=A0=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=20excel=E9=80=9A=E7=94=A8=E5=AF=BC=E5=87=BA=E4=BC=98?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/api/iservice/busi/ISysFileService.java | 7 ++++ .../controller/busi/SysFileController.java | 38 +++++++++++++++++++ .../serviceimpl/busi/SysFileServiceImpl.java | 44 +++++++++++++++++++--- .../i3plus/core/apiservice/util/MailUtil.java | 2 +- 4 files changed, 84 insertions(+), 7 deletions(-) diff --git a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysFileService.java b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysFileService.java index dc3940f..3d93785 100644 --- a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysFileService.java +++ b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysFileService.java @@ -76,6 +76,13 @@ public interface ISysFileService { SysFile uploadFile(Object file) throws Exception; /** + * 上传文件资源,并设置文件代码 + * @param file + */ + @ApiOperation(value = "上传文件资源",notes = "上传文件资源") + SysFile uploadFile(Object file,SysFile sysFile) throws Exception; + + /** * 根据文件代码获取文件信息 * @param fileCode * @return diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysFileController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysFileController.java index 16a16c6..38af197 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysFileController.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysFileController.java @@ -18,6 +18,7 @@ import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder; import cn.estsh.impp.framework.boot.fastdfs.FastDFSClient; import cn.estsh.impp.framework.boot.util.ResultBean; import cn.estsh.impp.framework.boot.util.ValidatorBean; +import com.alibaba.fastjson.JSON; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.slf4j.Logger; @@ -224,7 +225,44 @@ public class SysFileController extends CoreBaseController{ } SysFile fileDb = sysFileService.uploadFile(file); + return ResultBean.success("上传成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setResultObject(fileDb); + }catch(ImppBusiException busExcep){ + return ResultBean.fail(busExcep); + }catch(Exception e){ + return ImppExceptionBuilder.newInstance().buildExceptionResult(e); + } + } + + /** + * 文件上传至fastdfs并保存数据 + * @param file 文件 + * @return 处理结果 + */ + @PostMapping("/upload-fastdfs") + @ApiOperation(value = "文件上传至fastdfs并保存数据", notes = "文件上传至fastdfs并保存数据") + public ResultBean singleFileUpload(@RequestParam("file") MultipartFile file, SysFile sysFile) { + try { + startMultiService(); + + if(file.isEmpty()){ + throw ImppExceptionBuilder.newInstance() + .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode()) + .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode()) + .setErrorDetail("请选择需要上传的文件。") + .build(); + } + + boolean checkFileN = dictionaryService.checkFileName(file.getOriginalFilename()); + if(!checkFileN){ + throw ImppExceptionBuilder.newInstance() + .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode()) + .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION_FORMAT.getCode()) + .setErrorDetail("文件格式不支持") + .setErrorSolution("请到字典管理中添加文件类型") + .build(); + } + SysFile fileDb = sysFileService.uploadFile(file,sysFile); return ResultBean.success("上传成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setResultObject(fileDb); }catch(ImppBusiException busExcep){ return ResultBean.fail(busExcep); diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysFileServiceImpl.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysFileServiceImpl.java index e5de0ef..bad01e6 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysFileServiceImpl.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysFileServiceImpl.java @@ -15,6 +15,7 @@ import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder; import cn.estsh.impp.framework.boot.exception.ImppExceptionEnum; import cn.estsh.impp.framework.boot.fastdfs.FastDFSClient; import cn.estsh.impp.framework.boot.fastdfs.FastDFSFile; +import com.mchange.lang.IntegerUtils; import io.swagger.annotations.ApiOperation; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -61,7 +62,7 @@ public class SysFileServiceImpl implements ISysFileService { } } - return sysFileRDao.insert(sysFile); + return sysFileRDao.save(sysFile); } @Override @@ -127,18 +128,49 @@ public class SysFileServiceImpl implements ISysFileService { @Override @ApiOperation(value = "上传文件资源", notes = "上传文件资源") public SysFile uploadFile(Object file) throws Exception { + SysFile sysFile = uploadFastDfs(file, null); + return insertSysFile(sysFile); + } + + @Override + @ApiOperation(value = "上传文件资源", notes = "上传文件资源") + public SysFile uploadFile(Object file,SysFile sysFile) throws Exception { + sysFile = uploadFastDfs(file, sysFile); + return insertSysFile(sysFile); + } + + /** + * 上传文件至fastdfs + * @param file + * @param sysFile + * @return + * @throws Exception + */ + private SysFile uploadFastDfs(Object file,SysFile sysFile) throws Exception { + if(sysFile == null){ + sysFile = new SysFile(); + } + // 设置文件默认所属模块 + if(sysFile.getFileSoftTypeVal() == 0){ + sysFile.setFileSoftType(CommonEnumUtil.SOFT_TYPE.CORE.getValue()); + } + FastDFSFile fastDFSFile; + SysFile uploadFile; // 判断参数类型 if (file instanceof File) { - fastDFSFile = new FastDFSFile((( File ) file).getName(), FileTool.file2Byte((( File ) file).getPath()), - StringTool.getStringFileSuffix((( File ) file).getName(), true)); + fastDFSFile = new FastDFSFile(((File) file).getName(), FileTool.file2Byte(((File) file).getPath()), + StringTool.getStringFileSuffix(((File) file).getName(), true)); + uploadFile = dfsClient.upload(fastDFSFile, sysFile.getFileSoftTypeVal()); } else { - fastDFSFile = dfsClient.saveFile(( MultipartFile ) file); + uploadFile = dfsClient.saveFile((MultipartFile) file, sysFile.getFileSoftTypeVal()); } - SysFile sysFile = dfsClient.upload(fastDFSFile,CommonEnumUtil.SOFT_TYPE.CORE.getValue()); + uploadFile.setId(sysFile.getId()); + // 设置文件代码 + uploadFile.setFileCode(sysFile.getFileCode()); - return insertSysFile(sysFile); + return uploadFile; } @Override diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/util/MailUtil.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/util/MailUtil.java index 98ceaf0..f4b504c 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/util/MailUtil.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/util/MailUtil.java @@ -190,7 +190,7 @@ public class MailUtil { try { a[i] = new InternetAddress(add[i]); } catch (AddressException ex) { - ex.printStackTrace(); + LOGGER.error("邮箱地址错误!",ex.getMessage()); } } return a;