From c3b3602cf597e70151a54b9cfa188ab3b4a9803c Mon Sep 17 00:00:00 2001 From: qyhdd Date: Sat, 9 Jul 2022 22:50:27 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E4=BF=9D=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bnyer/img/api/dto/TiktokImgMiniDto.java | 7 ++++ .../src/main/resources/bootstrap.yml | 2 +- bnyer-services/bnyer-file/pom.xml | 10 +++++ .../file/controller/SysFileController.java | 26 +++++++++++-- .../com/bnyer/file/dto/FileUploadDto.java | 38 +++++++++++++++++++ .../com/bnyer/file/service/IFileService.java | 3 ++ .../file/service/impl/FileServiceImpl.java | 25 ++++++++++++ .../java/com/bnyer/file/vo/ChekFileVo.java | 3 ++ .../main/java/com/bnyer/file/vo/UploadVo.java | 9 +++++ 9 files changed, 118 insertions(+), 5 deletions(-) create mode 100644 bnyer-services/bnyer-file/src/main/java/com/bnyer/file/dto/FileUploadDto.java create mode 100644 bnyer-services/bnyer-file/src/main/java/com/bnyer/file/vo/UploadVo.java diff --git a/bnyer-api/bnyer-api-img/src/main/java/com/bnyer/img/api/dto/TiktokImgMiniDto.java b/bnyer-api/bnyer-api-img/src/main/java/com/bnyer/img/api/dto/TiktokImgMiniDto.java index 848255a..870f465 100644 --- a/bnyer-api/bnyer-api-img/src/main/java/com/bnyer/img/api/dto/TiktokImgMiniDto.java +++ b/bnyer-api/bnyer-api-img/src/main/java/com/bnyer/img/api/dto/TiktokImgMiniDto.java @@ -27,6 +27,13 @@ public class TiktokImgMiniDto implements Serializable { @ApiModelProperty(value="分类id") private Long typeId; + /** + * 状态(0->待审核;1->审核通过) + */ + @ApiModelProperty(value="状态(0->待审核;1->审核通过;2->审核拒绝)") + private String status; + + public TiktokImg extractParam(){ TiktokImg tiktokImg = new TiktokImg(); BeanUtils.copyProperties(this,tiktokImg); diff --git a/bnyer-gateway/src/main/resources/bootstrap.yml b/bnyer-gateway/src/main/resources/bootstrap.yml index f52b854..e6b60c7 100644 --- a/bnyer-gateway/src/main/resources/bootstrap.yml +++ b/bnyer-gateway/src/main/resources/bootstrap.yml @@ -1,6 +1,6 @@ # Tomcat server: - port: 7010 + port: 6010 # Spring spring: diff --git a/bnyer-services/bnyer-file/pom.xml b/bnyer-services/bnyer-file/pom.xml index 4ee76a5..edfcb81 100644 --- a/bnyer-services/bnyer-file/pom.xml +++ b/bnyer-services/bnyer-file/pom.xml @@ -93,6 +93,16 @@ spring-mock 2.0.8 + + com.dimensionalnode + bnyer-api-img + + + com.dimensionalnode + bnyer-common-security + + + diff --git a/bnyer-services/bnyer-file/src/main/java/com/bnyer/file/controller/SysFileController.java b/bnyer-services/bnyer-file/src/main/java/com/bnyer/file/controller/SysFileController.java index f15f167..33666e3 100644 --- a/bnyer-services/bnyer-file/src/main/java/com/bnyer/file/controller/SysFileController.java +++ b/bnyer-services/bnyer-file/src/main/java/com/bnyer/file/controller/SysFileController.java @@ -1,7 +1,9 @@ package com.bnyer.file.controller; +import cn.hutool.log.Log; import com.bnyer.common.core.domain.R; import com.bnyer.file.config.ImgConfig; +import com.bnyer.file.dto.FileUploadDto; import com.bnyer.file.service.IFileService; import com.bnyer.file.service.IQiniuService; import com.bnyer.file.service.MinioService; @@ -11,12 +13,10 @@ import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.ResponseBody; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; +import java.io.File; import java.io.IOException; import java.util.ArrayList; import java.util.List; @@ -39,6 +39,7 @@ public class SysFileController { @Autowired private ImgConfig imgConfig; + /** * 批量上传图片 */ @@ -108,4 +109,21 @@ public class SysFileController { return R.ok(url); } + @ApiOperation(value="图片批量检测上传保存") + @PostMapping("/checkUploadSave") + @ResponseBody + public R checkUploadSave(@RequestParam Long creatorId, @RequestParam Long typeId, @RequestParam ArrayList files) { + try { + FileUploadDto fileUploadDto = new FileUploadDto(); + fileUploadDto.setFiles(files); + fileUploadDto.setCreatorId(creatorId); + fileUploadDto.setTypeId(typeId); + fileService.checkUploadSave(fileUploadDto); + } catch (Exception e) { + log.error("文件上传失败,原因为:【{}】", e.getMessage()); + return R.fail("banner上传失败!"); + } + return R.ok(); + } + } diff --git a/bnyer-services/bnyer-file/src/main/java/com/bnyer/file/dto/FileUploadDto.java b/bnyer-services/bnyer-file/src/main/java/com/bnyer/file/dto/FileUploadDto.java new file mode 100644 index 0000000..dbb439f --- /dev/null +++ b/bnyer-services/bnyer-file/src/main/java/com/bnyer/file/dto/FileUploadDto.java @@ -0,0 +1,38 @@ +package com.bnyer.file.dto; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; +import org.springframework.web.multipart.MultipartFile; + +import java.util.ArrayList; + +/** + * @Author qyh + * @Date 2022/7/9 18:24 + * @Description + */ +@Getter +@Setter +@ApiModel("文件上传") +public class FileUploadDto { + + @ApiModelProperty(value="id") + private Long id; + + @ApiModelProperty(value="图片地址") + private String imgUrl; + + @ApiModelProperty(value="艺术家id") + private Long creatorId; + + @ApiModelProperty(value="分类id") + private Long typeId; + + @ApiModelProperty(value="状态(0->待审核;1->审核通过;2->审核拒绝)") + private String status; + + @ApiModelProperty(value="要上传的图片") + private ArrayList files; +} diff --git a/bnyer-services/bnyer-file/src/main/java/com/bnyer/file/service/IFileService.java b/bnyer-services/bnyer-file/src/main/java/com/bnyer/file/service/IFileService.java index e11f7cc..d57ed55 100644 --- a/bnyer-services/bnyer-file/src/main/java/com/bnyer/file/service/IFileService.java +++ b/bnyer-services/bnyer-file/src/main/java/com/bnyer/file/service/IFileService.java @@ -1,5 +1,6 @@ package com.bnyer.file.service; +import com.bnyer.file.dto.FileUploadDto; import com.bnyer.file.vo.ChekFileVo; import org.springframework.web.multipart.MultipartFile; @@ -12,4 +13,6 @@ import java.util.ArrayList; */ public interface IFileService { ArrayList checkImg(ArrayList multipartFiles); + //图片检测+图片上传+图片保存 + void checkUploadSave(FileUploadDto fileUploadDto); } diff --git a/bnyer-services/bnyer-file/src/main/java/com/bnyer/file/service/impl/FileServiceImpl.java b/bnyer-services/bnyer-file/src/main/java/com/bnyer/file/service/impl/FileServiceImpl.java index 67a10a9..0394ebe 100644 --- a/bnyer-services/bnyer-file/src/main/java/com/bnyer/file/service/impl/FileServiceImpl.java +++ b/bnyer-services/bnyer-file/src/main/java/com/bnyer/file/service/impl/FileServiceImpl.java @@ -1,14 +1,20 @@ package com.bnyer.file.service.impl; +import com.bnyer.file.dto.FileUploadDto; import com.bnyer.file.service.IFileService; import com.bnyer.file.service.IQiniuService; import com.bnyer.file.service.ITikTokImage; import com.bnyer.file.utils.ImgUtil; import com.bnyer.file.vo.ChekFileVo; +import com.bnyer.file.vo.TiktokImgVo; +import com.bnyer.img.api.RemoteImgService; +import com.bnyer.img.api.dto.TiktokImgMiniDto; +import com.bnyer.system.api.RemoteFileService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.web.multipart.MultipartFile; +import javax.annotation.Resource; import java.util.ArrayList; /** @@ -22,6 +28,8 @@ public class FileServiceImpl implements IFileService { private IQiniuService qiniuService; @Autowired private ITikTokImage tikTokImage; + @Autowired + private RemoteImgService remoteImgService; @Override public ArrayList checkImg(ArrayList multipartFiles) { ArrayList chekFileVos = new ArrayList<>(); @@ -29,6 +37,7 @@ public class FileServiceImpl implements IFileService { ArrayList multipartFileList = qiniuService.checkImageFormat(multipartFiles); for (MultipartFile multipartFile : multipartFileList) { ChekFileVo chekFileVo = new ChekFileVo(); + chekFileVo.setFile(multipartFile); String filename = multipartFile.getResource().getFilename(); chekFileVo.setFileName(filename); String imageString = ImgUtil.getImageString(multipartFile); @@ -60,4 +69,20 @@ public class FileServiceImpl implements IFileService { } return chekFileVos; } + + @Override + public void checkUploadSave(FileUploadDto fileUploadDto) { + //检测图片 + for (ChekFileVo chekFileVo : checkImg(fileUploadDto.getFiles())) { + //图片上传 + String imgUrl = qiniuService.userUpload(chekFileVo.getFile()); + TiktokImgMiniDto tiktokImg = new TiktokImgMiniDto(); + tiktokImg.setImgUrl(imgUrl); + tiktokImg.setStatus(chekFileVo.getStatus()); + tiktokImg.setTypeId(fileUploadDto.getTypeId()); + tiktokImg.setCreatorId(fileUploadDto.getCreatorId()); + remoteImgService.insertTiktokImg(tiktokImg); + } + + } } diff --git a/bnyer-services/bnyer-file/src/main/java/com/bnyer/file/vo/ChekFileVo.java b/bnyer-services/bnyer-file/src/main/java/com/bnyer/file/vo/ChekFileVo.java index 12f6e03..28ba930 100644 --- a/bnyer-services/bnyer-file/src/main/java/com/bnyer/file/vo/ChekFileVo.java +++ b/bnyer-services/bnyer-file/src/main/java/com/bnyer/file/vo/ChekFileVo.java @@ -4,6 +4,7 @@ import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Getter; import lombok.Setter; +import org.springframework.web.multipart.MultipartFile; /** * @Author qyh @@ -18,4 +19,6 @@ public class ChekFileVo { private String status; @ApiModelProperty(value="文件名称") private String fileName; + @ApiModelProperty(value = "文件") + private MultipartFile file; } diff --git a/bnyer-services/bnyer-file/src/main/java/com/bnyer/file/vo/UploadVo.java b/bnyer-services/bnyer-file/src/main/java/com/bnyer/file/vo/UploadVo.java new file mode 100644 index 0000000..105e70b --- /dev/null +++ b/bnyer-services/bnyer-file/src/main/java/com/bnyer/file/vo/UploadVo.java @@ -0,0 +1,9 @@ +package com.bnyer.file.vo; + +/** + * @Author qyh + * @Date 2022/7/9 18:22 + * @Description + */ +public class UploadVo { +} From 0b5c3b54bce3150f3ce9339751831717c5500cf9 Mon Sep 17 00:00:00 2001 From: qyhdd Date: Sat, 9 Jul 2022 22:52:03 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E4=BF=9D=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/bnyer/file/BnyerFileApplication.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/bnyer-services/bnyer-file/src/main/java/com/bnyer/file/BnyerFileApplication.java b/bnyer-services/bnyer-file/src/main/java/com/bnyer/file/BnyerFileApplication.java index ef57633..a0617ec 100644 --- a/bnyer-services/bnyer-file/src/main/java/com/bnyer/file/BnyerFileApplication.java +++ b/bnyer-services/bnyer-file/src/main/java/com/bnyer/file/BnyerFileApplication.java @@ -1,9 +1,11 @@ package com.bnyer.file; import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; import com.bnyer.common.swagger.annotation.EnableCustomSwagger2; +import org.springframework.cloud.openfeign.EnableFeignClients; /** * 文件服务 @@ -12,6 +14,7 @@ import com.bnyer.common.swagger.annotation.EnableCustomSwagger2; */ @EnableCustomSwagger2 @SpringBootApplication(exclude = {DataSourceAutoConfiguration.class }) +@EnableFeignClients(basePackages = "com.bnyer.img.api") public class BnyerFileApplication { public static void main(String[] args) From e8087e3409bc156679f8a7f5c4a7a7e2ddb6fb70 Mon Sep 17 00:00:00 2001 From: qyhdd Date: Sat, 9 Jul 2022 22:53:27 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E4=BF=9D=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/bnyer/file/BnyerFileApplication.java | 1 - 1 file changed, 1 deletion(-) diff --git a/bnyer-services/bnyer-file/src/main/java/com/bnyer/file/BnyerFileApplication.java b/bnyer-services/bnyer-file/src/main/java/com/bnyer/file/BnyerFileApplication.java index e9d38f9..1ad45cc 100644 --- a/bnyer-services/bnyer-file/src/main/java/com/bnyer/file/BnyerFileApplication.java +++ b/bnyer-services/bnyer-file/src/main/java/com/bnyer/file/BnyerFileApplication.java @@ -16,7 +16,6 @@ import org.springframework.cloud.openfeign.EnableFeignClients; @EnableCustomSwagger2 @EnableRyFeignClients @SpringBootApplication(exclude = {DataSourceAutoConfiguration.class }) -@EnableFeignClients(basePackages = "com.bnyer.img.api") public class BnyerFileApplication { public static void main(String[] args) From 7abafa5bb27694e23f0169752d709861210ee020 Mon Sep 17 00:00:00 2001 From: qyhdd Date: Sun, 10 Jul 2022 17:01:43 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E4=BF=9D=E5=AD=98=EF=BC=88=E5=BC=82=E6=AD=A5=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bnyer-services/bnyer-file/pom.xml | 6 ++- .../com/bnyer/file/BnyerFileApplication.java | 2 + .../com/bnyer/file/config/ExecutorConfig.java | 33 ++++++++++++ .../file/controller/SysFileController.java | 17 +++++- .../main/java/com/bnyer/file/dto/FileDto.java | 19 +++++++ .../com/bnyer/file/dto/FileUploadDto.java | 2 +- .../com/bnyer/file/service/IFileService.java | 3 +- .../file/service/impl/FileServiceImpl.java | 53 ++++++++++++------- .../src/main/resources/bootstrap.yml | 2 +- 9 files changed, 113 insertions(+), 24 deletions(-) create mode 100644 bnyer-services/bnyer-file/src/main/java/com/bnyer/file/config/ExecutorConfig.java create mode 100644 bnyer-services/bnyer-file/src/main/java/com/bnyer/file/dto/FileDto.java diff --git a/bnyer-services/bnyer-file/pom.xml b/bnyer-services/bnyer-file/pom.xml index 9a75fc8..6b8458d 100644 --- a/bnyer-services/bnyer-file/pom.xml +++ b/bnyer-services/bnyer-file/pom.xml @@ -102,7 +102,11 @@ com.dimensionalnode bnyer-common-security - + + org.springframework.boot + spring-boot-configuration-processor + true + diff --git a/bnyer-services/bnyer-file/src/main/java/com/bnyer/file/BnyerFileApplication.java b/bnyer-services/bnyer-file/src/main/java/com/bnyer/file/BnyerFileApplication.java index 1ad45cc..b162e1b 100644 --- a/bnyer-services/bnyer-file/src/main/java/com/bnyer/file/BnyerFileApplication.java +++ b/bnyer-services/bnyer-file/src/main/java/com/bnyer/file/BnyerFileApplication.java @@ -7,6 +7,7 @@ import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; import com.bnyer.common.swagger.annotation.EnableCustomSwagger2; import org.springframework.cloud.openfeign.EnableFeignClients; +import org.springframework.scheduling.annotation.EnableAsync; /** * 文件服务 @@ -15,6 +16,7 @@ import org.springframework.cloud.openfeign.EnableFeignClients; */ @EnableCustomSwagger2 @EnableRyFeignClients +@EnableAsync @SpringBootApplication(exclude = {DataSourceAutoConfiguration.class }) public class BnyerFileApplication { diff --git a/bnyer-services/bnyer-file/src/main/java/com/bnyer/file/config/ExecutorConfig.java b/bnyer-services/bnyer-file/src/main/java/com/bnyer/file/config/ExecutorConfig.java new file mode 100644 index 0000000..cfb5c7f --- /dev/null +++ b/bnyer-services/bnyer-file/src/main/java/com/bnyer/file/config/ExecutorConfig.java @@ -0,0 +1,33 @@ +package com.bnyer.file.config; + +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.scheduling.annotation.EnableAsync; +import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; + +import java.util.concurrent.Executor; +import java.util.concurrent.ThreadPoolExecutor; + +/** + * @Author qyh + * @Date 2022/7/10 15:31 + * @Description + */ +@Configuration +@EnableAsync +public class ExecutorConfig { + + + @Bean + public Executor mySimpleAsync() { + ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor(); + executor.setCorePoolSize(10); + executor.setMaxPoolSize(50); + executor.setQueueCapacity(10); + executor.setThreadNamePrefix("fileUpload"); + executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy()); + executor.initialize(); + return executor; + } +} \ No newline at end of file diff --git a/bnyer-services/bnyer-file/src/main/java/com/bnyer/file/controller/SysFileController.java b/bnyer-services/bnyer-file/src/main/java/com/bnyer/file/controller/SysFileController.java index 33666e3..586ccc4 100644 --- a/bnyer-services/bnyer-file/src/main/java/com/bnyer/file/controller/SysFileController.java +++ b/bnyer-services/bnyer-file/src/main/java/com/bnyer/file/controller/SysFileController.java @@ -3,6 +3,7 @@ package com.bnyer.file.controller; import cn.hutool.log.Log; import com.bnyer.common.core.domain.R; import com.bnyer.file.config.ImgConfig; +import com.bnyer.file.dto.FileDto; import com.bnyer.file.dto.FileUploadDto; import com.bnyer.file.service.IFileService; import com.bnyer.file.service.IQiniuService; @@ -12,6 +13,7 @@ import com.bnyer.file.vo.ChekFileVo; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; +import org.apache.poi.util.IOUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; @@ -108,14 +110,25 @@ public class SysFileController { } return R.ok(url); } - + public static final String UPLOAD_PREFIX_PATH = "/opt/uploading"; @ApiOperation(value="图片批量检测上传保存") @PostMapping("/checkUploadSave") @ResponseBody public R checkUploadSave(@RequestParam Long creatorId, @RequestParam Long typeId, @RequestParam ArrayList files) { try { + ArrayList fileDtos = new ArrayList<>(); + for (MultipartFile file : files) { + FileDto fileDto = new FileDto(); + byte[] bytes = IOUtils.toByteArray(file.getInputStream()); + fileDto.setBytes(bytes); + fileDto.setName(file.getName()); + fileDto.setOriginalFilename(file.getOriginalFilename()); + fileDtos.add(fileDto); + } + // 生成临时文件 + FileUploadDto fileUploadDto = new FileUploadDto(); - fileUploadDto.setFiles(files); + fileUploadDto.setFiles(fileDtos); fileUploadDto.setCreatorId(creatorId); fileUploadDto.setTypeId(typeId); fileService.checkUploadSave(fileUploadDto); diff --git a/bnyer-services/bnyer-file/src/main/java/com/bnyer/file/dto/FileDto.java b/bnyer-services/bnyer-file/src/main/java/com/bnyer/file/dto/FileDto.java new file mode 100644 index 0000000..245240f --- /dev/null +++ b/bnyer-services/bnyer-file/src/main/java/com/bnyer/file/dto/FileDto.java @@ -0,0 +1,19 @@ +package com.bnyer.file.dto; + +import io.swagger.annotations.ApiModel; +import lombok.Getter; +import lombok.Setter; + +/** + * @Author qyh + * @Date 2022/7/10 16:37 + * @Description + */ +@Getter +@Setter +@ApiModel("文件信息") +public class FileDto { + private byte[] bytes; + private String originalFilename; + private String name; +} diff --git a/bnyer-services/bnyer-file/src/main/java/com/bnyer/file/dto/FileUploadDto.java b/bnyer-services/bnyer-file/src/main/java/com/bnyer/file/dto/FileUploadDto.java index dbb439f..e2a8757 100644 --- a/bnyer-services/bnyer-file/src/main/java/com/bnyer/file/dto/FileUploadDto.java +++ b/bnyer-services/bnyer-file/src/main/java/com/bnyer/file/dto/FileUploadDto.java @@ -34,5 +34,5 @@ public class FileUploadDto { private String status; @ApiModelProperty(value="要上传的图片") - private ArrayList files; + private ArrayList files; } diff --git a/bnyer-services/bnyer-file/src/main/java/com/bnyer/file/service/IFileService.java b/bnyer-services/bnyer-file/src/main/java/com/bnyer/file/service/IFileService.java index d57ed55..530e4e3 100644 --- a/bnyer-services/bnyer-file/src/main/java/com/bnyer/file/service/IFileService.java +++ b/bnyer-services/bnyer-file/src/main/java/com/bnyer/file/service/IFileService.java @@ -4,6 +4,7 @@ import com.bnyer.file.dto.FileUploadDto; import com.bnyer.file.vo.ChekFileVo; import org.springframework.web.multipart.MultipartFile; +import java.io.IOException; import java.util.ArrayList; /** @@ -14,5 +15,5 @@ import java.util.ArrayList; public interface IFileService { ArrayList checkImg(ArrayList multipartFiles); //图片检测+图片上传+图片保存 - void checkUploadSave(FileUploadDto fileUploadDto); + void checkUploadSave(FileUploadDto fileUploadDto) throws IOException; } diff --git a/bnyer-services/bnyer-file/src/main/java/com/bnyer/file/service/impl/FileServiceImpl.java b/bnyer-services/bnyer-file/src/main/java/com/bnyer/file/service/impl/FileServiceImpl.java index 0394ebe..bd806d8 100644 --- a/bnyer-services/bnyer-file/src/main/java/com/bnyer/file/service/impl/FileServiceImpl.java +++ b/bnyer-services/bnyer-file/src/main/java/com/bnyer/file/service/impl/FileServiceImpl.java @@ -1,5 +1,6 @@ package com.bnyer.file.service.impl; +import com.bnyer.file.dto.FileDto; import com.bnyer.file.dto.FileUploadDto; import com.bnyer.file.service.IFileService; import com.bnyer.file.service.IQiniuService; @@ -10,12 +11,19 @@ import com.bnyer.file.vo.TiktokImgVo; import com.bnyer.img.api.RemoteImgService; import com.bnyer.img.api.dto.TiktokImgMiniDto; import com.bnyer.system.api.RemoteFileService; +import org.apache.http.entity.ContentType; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.mock.web.MockMultipartFile; +import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; +import java.io.ByteArrayInputStream; +import java.io.IOException; +import java.io.InputStream; import java.util.ArrayList; +import java.util.UUID; /** * @Author: Yeman @@ -44,15 +52,15 @@ public class FileServiceImpl implements IFileService { String checkMsg = qiniuService.checkImageContent("data:application/octet-stream;base64," +imageString); if (checkMsg.equals("pass")){ //抖音图片检测二次检测 - if (tikTokImage.checkImageContent(multipartFile)) { +// if (tikTokImage.checkImageContent(multipartFile)) { //可以通过 chekFileVo.setStatus("1"); chekFileVos.add(chekFileVo); - }else { - //不可以通过 - chekFileVo.setStatus("2"); - chekFileVos.add(chekFileVo); - } +// }else { +// //不可以通过 +// chekFileVo.setStatus("2"); +// chekFileVos.add(chekFileVo); +// } continue; } if (checkMsg.equals("review")){ @@ -71,18 +79,27 @@ public class FileServiceImpl implements IFileService { } @Override - public void checkUploadSave(FileUploadDto fileUploadDto) { - //检测图片 - for (ChekFileVo chekFileVo : checkImg(fileUploadDto.getFiles())) { - //图片上传 - String imgUrl = qiniuService.userUpload(chekFileVo.getFile()); - TiktokImgMiniDto tiktokImg = new TiktokImgMiniDto(); - tiktokImg.setImgUrl(imgUrl); - tiktokImg.setStatus(chekFileVo.getStatus()); - tiktokImg.setTypeId(fileUploadDto.getTypeId()); - tiktokImg.setCreatorId(fileUploadDto.getCreatorId()); - remoteImgService.insertTiktokImg(tiktokImg); - } + @Async("mySimpleAsync") + public void checkUploadSave(FileUploadDto fileUploadDto) throws IOException { + ArrayList multipartFiles = new ArrayList<>(); + for (FileDto fileDto : fileUploadDto.getFiles()) { + InputStream inputStream = new ByteArrayInputStream(fileDto.getBytes()); + MultipartFile files = new MockMultipartFile(fileDto.getName(), fileDto.getOriginalFilename(), ContentType.APPLICATION_OCTET_STREAM.toString(), inputStream); + //System.out.println(files.getSize()); + multipartFiles.add(files); + } + //检测图片 + for (ChekFileVo chekFileVo : checkImg(multipartFiles)) { + //图片上传 + String imgUrl = qiniuService.userUpload(chekFileVo.getFile()); + TiktokImgMiniDto tiktokImg = new TiktokImgMiniDto(); + tiktokImg.setImgUrl(imgUrl); + tiktokImg.setStatus(chekFileVo.getStatus()); + tiktokImg.setTypeId(fileUploadDto.getTypeId()); + tiktokImg.setCreatorId(fileUploadDto.getCreatorId()); + remoteImgService.insertTiktokImg(tiktokImg); + } } + } diff --git a/bnyer-services/bnyer-file/src/main/resources/bootstrap.yml b/bnyer-services/bnyer-file/src/main/resources/bootstrap.yml index ccea5fc..a1621ce 100644 --- a/bnyer-services/bnyer-file/src/main/resources/bootstrap.yml +++ b/bnyer-services/bnyer-file/src/main/resources/bootstrap.yml @@ -15,4 +15,4 @@ spring: active: dev servlet: multipart: - maxFileSize: 5MB + maxFileSize: 5MB \ No newline at end of file