diff --git a/esua-epdc/epdc-module/epdc-oss/epdc-oss-server/src/main/java/com/elink/esua/epdc/controller/OssController.java b/esua-epdc/epdc-module/epdc-oss/epdc-oss-server/src/main/java/com/elink/esua/epdc/controller/OssController.java
index 9147ef77a..c248c3a61 100644
--- a/esua-epdc/epdc-module/epdc-oss/epdc-oss-server/src/main/java/com/elink/esua/epdc/controller/OssController.java
+++ b/esua-epdc/epdc-module/epdc-oss/epdc-oss-server/src/main/java/com/elink/esua/epdc/controller/OssController.java
@@ -1,14 +1,15 @@
/**
* Copyright (c) 2018 人人开源 All rights reserved.
- *
+ *
* https://www.renren.io
- *
+ *
* 版权所有,侵权必究!
*/
package com.elink.esua.epdc.controller;
import com.elink.esua.epdc.commons.tools.annotation.LogOperation;
+import com.elink.esua.epdc.commons.tools.constant.NumConstant;
import com.elink.esua.epdc.commons.tools.page.PageData;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.commons.tools.validator.ValidatorUtils;
@@ -16,28 +17,17 @@ import com.elink.esua.epdc.commons.tools.validator.group.AliyunGroup;
import com.elink.esua.epdc.commons.tools.validator.group.QcloudGroup;
import com.elink.esua.epdc.commons.tools.validator.group.QiniuGroup;
import com.elink.esua.epdc.dto.UploadFormDTO;
+import com.elink.esua.epdc.dto.UploadToOssDTO;
import com.elink.esua.epdc.entity.OssEntity;
import com.elink.esua.epdc.exception.ModuleErrorCode;
import com.elink.esua.epdc.remote.ParamsRemoteService;
import com.elink.esua.epdc.service.OssService;
import com.elink.esua.epdc.utils.ModuleConstant;
import com.google.gson.Gson;
-import com.elink.esua.epdc.commons.tools.annotation.LogOperation;
-import com.elink.esua.epdc.commons.tools.page.PageData;
-import com.elink.esua.epdc.commons.tools.utils.Result;
-import com.elink.esua.epdc.commons.tools.validator.ValidatorUtils;
import com.elink.esua.epdc.cloud.CloudStorageConfig;
import com.elink.esua.epdc.cloud.OssFactory;
-import com.elink.esua.epdc.commons.tools.validator.group.AliyunGroup;
-import com.elink.esua.epdc.commons.tools.validator.group.QcloudGroup;
-import com.elink.esua.epdc.commons.tools.validator.group.QiniuGroup;
import com.elink.esua.epdc.dto.UploadDTO;
-import com.elink.esua.epdc.entity.OssEntity;
import com.elink.esua.epdc.enums.OssTypeEnum;
-import com.elink.esua.epdc.exception.ModuleErrorCode;
-import com.elink.esua.epdc.service.OssService;
-import com.elink.esua.epdc.utils.ModuleConstant;
-import com.elink.esua.epdc.remote.ParamsRemoteService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.commons.io.FilenameUtils;
@@ -49,7 +39,6 @@ import springfox.documentation.annotations.ApiIgnore;
import sun.misc.BASE64Decoder;
import java.util.Arrays;
-import java.util.Date;
import java.util.Map;
/**
@@ -59,102 +48,104 @@ import java.util.Map;
*/
@RestController
@RequestMapping("file")
-@Api(tags="文件上传")
+@Api(tags = "文件上传")
public class OssController {
- @Autowired
- private OssService ossService;
+
+ @Autowired
+ private OssService ossService;
+
@Autowired
private ParamsRemoteService paramsRemoteService;
private final static String KEY = ModuleConstant.CLOUD_STORAGE_CONFIG_KEY;
- @GetMapping("page")
- @ApiOperation(value = "分页")
- public Result> page(@ApiIgnore @RequestParam Map params){
- PageData page = ossService.page(params);
+ @GetMapping("page")
+ @ApiOperation(value = "分页")
+ public Result> page(@ApiIgnore @RequestParam Map params) {
+ PageData page = ossService.page(params);
- return new Result>().ok(page);
- }
+ return new Result>().ok(page);
+ }
@GetMapping("info")
- @ApiOperation(value = "云存储配置信息")
- public Result info(){
+ @ApiOperation(value = "云存储配置信息")
+ public Result info() {
CloudStorageConfig config = paramsRemoteService.getValueObject(KEY, CloudStorageConfig.class);
return new Result().ok(config);
}
- @PostMapping
- @ApiOperation(value = "保存云存储配置信息")
- @LogOperation("保存云存储配置信息")
- public Result saveConfig(@RequestBody CloudStorageConfig config){
- //校验类型
- ValidatorUtils.validateEntity(config);
-
- if(config.getType() == OssTypeEnum.QINIU.value()){
- //校验七牛数据
- ValidatorUtils.validateEntity(config, QiniuGroup.class);
- }else if(config.getType() == OssTypeEnum.ALIYUN.value()){
- //校验阿里云数据
- ValidatorUtils.validateEntity(config, AliyunGroup.class);
- }else if(config.getType() == OssTypeEnum.QCLOUD.value()){
- //校验腾讯云数据
- ValidatorUtils.validateEntity(config, QcloudGroup.class);
- }
-
- paramsRemoteService.updateValueByCode(KEY, new Gson().toJson(config));
-
- return new Result();
- }
-
- @PostMapping("upload")
- @ApiOperation(value = "上传文件")
- public Result upload(@RequestParam("file") MultipartFile file) throws Exception {
- if (file.isEmpty()) {
- return new Result().error(ModuleErrorCode.UPLOAD_FILE_EMPTY);
- }
-
- //上传文件
- String extension = FilenameUtils.getExtension(file.getOriginalFilename());
- String url = OssFactory.build().uploadSuffix(file.getBytes(), extension);
-
- //保存文件信息
- OssEntity ossEntity = new OssEntity();
- ossEntity.setUrl(url);
- ossEntity.setCreateDate(new Date());
- ossService.insert(ossEntity);
-
- //文件信息
- UploadDTO dto = new UploadDTO();
- dto.setUrl(url);
- dto.setSize(file.getSize());
-
- return new Result().ok(dto);
- }
-
- @DeleteMapping
- @ApiOperation(value = "删除")
- @LogOperation("删除")
- public Result delete(@RequestBody Long[] ids){
- ossService.deleteBatchIds(Arrays.asList(ids));
-
- return new Result();
- }
-
- @PostMapping("uploadBase64")
- @ApiOperation(value = "上传文件")
- public Result uploadFile(@RequestBody UploadFormDTO formDTO) throws Exception {
- if (null == formDTO || StringUtils.isEmpty(formDTO.getBase64String())) {
- return new Result().error(ModuleErrorCode.UPLOAD_FILE_EMPTY);
- }
- String[] base64ImgArr = formDTO.getBase64String().split(",");
- String suffixTmp = base64ImgArr[0];
- String suffix = suffixTmp.substring(11, suffixTmp.indexOf(";"));
- byte[] imgBytes = new BASE64Decoder().decodeBuffer(base64ImgArr[1]);
- String url = OssFactory.build().uploadSuffix(imgBytes, suffix);
- System.out.println("base64:"+formDTO.getBase64String());
- System.out.println("url:"+url);
- return new Result().ok(url);
- }
+ @PostMapping
+ @ApiOperation(value = "保存云存储配置信息")
+ @LogOperation("保存云存储配置信息")
+ public Result saveConfig(@RequestBody CloudStorageConfig config) {
+ //校验类型
+ ValidatorUtils.validateEntity(config);
+
+ if (config.getType() == OssTypeEnum.QINIU.value()) {
+ //校验七牛数据
+ ValidatorUtils.validateEntity(config, QiniuGroup.class);
+ } else if (config.getType() == OssTypeEnum.ALIYUN.value()) {
+ //校验阿里云数据
+ ValidatorUtils.validateEntity(config, AliyunGroup.class);
+ } else if (config.getType() == OssTypeEnum.QCLOUD.value()) {
+ //校验腾讯云数据
+ ValidatorUtils.validateEntity(config, QcloudGroup.class);
+ }
+
+ paramsRemoteService.updateValueByCode(KEY, new Gson().toJson(config));
+
+ return new Result();
+ }
+
+ @PostMapping("upload")
+ @ApiOperation(value = "上传文件")
+ public Result upload(@RequestParam("file") MultipartFile file) throws Exception {
+ if (file.isEmpty()) {
+ return new Result().error(ModuleErrorCode.UPLOAD_FILE_EMPTY);
+ }
+
+ //上传文件
+ String extension = FilenameUtils.getExtension(file.getOriginalFilename());
+ String url = OssFactory.build().uploadSuffix(file.getBytes(), extension);
+
+ return ossService.afterUpload(url, file.getSize());
+ }
+
+ @DeleteMapping
+ @ApiOperation(value = "删除")
+ @LogOperation("删除")
+ public Result delete(@RequestBody Long[] ids) {
+ ossService.deleteBatchIds(Arrays.asList(ids));
+
+ return new Result();
+ }
+
+ @PostMapping("uploadBase64")
+ @ApiOperation(value = "上传文件")
+ public Result uploadFile(@RequestBody UploadFormDTO formDTO) throws Exception {
+ if (null == formDTO || StringUtils.isEmpty(formDTO.getBase64String())) {
+ return new Result().error(ModuleErrorCode.UPLOAD_FILE_EMPTY);
+ }
+ String[] base64ImgArr = formDTO.getBase64String().split(",");
+ String suffixTmp = base64ImgArr[0];
+ String suffix = suffixTmp.substring(11, suffixTmp.indexOf(";"));
+ byte[] imgBytes = new BASE64Decoder().decodeBuffer(base64ImgArr[1]);
+ String url = OssFactory.build().uploadSuffix(imgBytes, suffix);
+ return new Result().ok(url);
+ }
+
+ @PostMapping("uploadFile")
+ public Result uploadFile(@RequestBody UploadToOssDTO dto) {
+ byte[] fileByte = dto.getFileByte();
+ if (null == fileByte || fileByte.length == NumConstant.ZERO) {
+ return new Result().error(ModuleErrorCode.UPLOAD_FILE_EMPTY);
+ }
+ //上传文件
+ String extension = FilenameUtils.getExtension(dto.getFileName());
+ String url = OssFactory.build().uploadSuffix(fileByte, extension);
+
+ return new Result().ok(url);
+ }
}
diff --git a/esua-epdc/epdc-module/epdc-oss/epdc-oss-server/src/main/java/com/elink/esua/epdc/service/OssService.java b/esua-epdc/epdc-module/epdc-oss/epdc-oss-server/src/main/java/com/elink/esua/epdc/service/OssService.java
index 3f4a15fab..6f958d6f0 100644
--- a/esua-epdc/epdc-module/epdc-oss/epdc-oss-server/src/main/java/com/elink/esua/epdc/service/OssService.java
+++ b/esua-epdc/epdc-module/epdc-oss/epdc-oss-server/src/main/java/com/elink/esua/epdc/service/OssService.java
@@ -1,8 +1,8 @@
/**
* Copyright (c) 2018 人人开源 All rights reserved.
- *
+ *
* https://www.renren.io
- *
+ *
* 版权所有,侵权必究!
*/
@@ -12,6 +12,8 @@ import com.elink.esua.epdc.commons.mybatis.service.BaseService;
import com.elink.esua.epdc.commons.tools.page.PageData;
import com.elink.esua.epdc.commons.mybatis.service.BaseService;
import com.elink.esua.epdc.commons.tools.page.PageData;
+import com.elink.esua.epdc.commons.tools.utils.Result;
+import com.elink.esua.epdc.dto.UploadDTO;
import com.elink.esua.epdc.entity.OssEntity;
import java.util.Map;
@@ -23,5 +25,16 @@ import java.util.Map;
*/
public interface OssService extends BaseService {
- PageData page(Map params);
+ PageData page(Map params);
+
+ /**
+ * 文件上传后操作
+ *
+ * @param url 文件地址
+ * @param size 文件大小
+ * @return com.elink.esua.epdc.commons.tools.utils.Result
+ * @author work@yujt.net.cn
+ * @date 2019/9/19 10:09
+ */
+ Result afterUpload(String url, long size);
}
diff --git a/esua-epdc/epdc-module/epdc-oss/epdc-oss-server/src/main/java/com/elink/esua/epdc/service/impl/OssServiceImpl.java b/esua-epdc/epdc-module/epdc-oss/epdc-oss-server/src/main/java/com/elink/esua/epdc/service/impl/OssServiceImpl.java
index 418545439..0572072fe 100644
--- a/esua-epdc/epdc-module/epdc-oss/epdc-oss-server/src/main/java/com/elink/esua/epdc/service/impl/OssServiceImpl.java
+++ b/esua-epdc/epdc-module/epdc-oss/epdc-oss-server/src/main/java/com/elink/esua/epdc/service/impl/OssServiceImpl.java
@@ -1,8 +1,8 @@
/**
* Copyright (c) 2018 人人开源 All rights reserved.
- *
+ *
* https://www.renren.io
- *
+ *
* 版权所有,侵权必究!
*/
@@ -16,22 +16,41 @@ import com.elink.esua.epdc.commons.tools.page.PageData;
import com.elink.esua.epdc.commons.mybatis.service.impl.BaseServiceImpl;
import com.elink.esua.epdc.commons.tools.constant.Constant;
import com.elink.esua.epdc.commons.tools.page.PageData;
+import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.dao.OssDao;
+import com.elink.esua.epdc.dto.UploadDTO;
import com.elink.esua.epdc.entity.OssEntity;
import com.elink.esua.epdc.service.OssService;
import org.springframework.stereotype.Service;
+import java.util.Date;
import java.util.Map;
@Service
public class OssServiceImpl extends BaseServiceImpl implements OssService {
- @Override
- public PageData page(Map params) {
- IPage page = baseDao.selectPage(
- getPage(params, Constant.CREATE_DATE, false),
- new QueryWrapper<>()
- );
- return getPageData(page, OssEntity.class);
- }
+ @Override
+ public PageData page(Map params) {
+ IPage page = baseDao.selectPage(
+ getPage(params, Constant.CREATE_DATE, false),
+ new QueryWrapper<>()
+ );
+ return getPageData(page, OssEntity.class);
+ }
+
+ @Override
+ public Result afterUpload(String url, long size) {
+ //保存文件信息
+ OssEntity ossEntity = new OssEntity();
+ ossEntity.setUrl(url);
+ ossEntity.setCreateDate(new Date());
+ this.insert(ossEntity);
+
+ //文件信息
+ UploadDTO dto = new UploadDTO();
+ dto.setUrl(url);
+ dto.setSize(size);
+
+ return new Result().ok(dto);
+ }
}