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); + } }