From 5070e42c09561aae70a250074a78384252803dae Mon Sep 17 00:00:00 2001 From: cuizhibin Date: Tue, 20 May 2025 14:20:18 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=80=9A=E7=94=A8=E4=B8=8A?= =?UTF-8?q?=E4=BC=A0=EF=BC=8C=E6=94=AF=E6=8C=81=E5=8D=95=E5=9B=BE=E7=89=87?= =?UTF-8?q?=E5=92=8C=E6=89=B9=E9=87=8F=E4=B8=8A=E4=BC=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/dite/znpt/service/ImageService.java | 2 +- .../znpt/service/impl/ImageServiceImpl.java | 17 +++++++++----- .../znpt/web/controller/CommonController.java | 23 ++++++++++++++++++- 3 files changed, 34 insertions(+), 8 deletions(-) diff --git a/core/src/main/java/com/dite/znpt/service/ImageService.java b/core/src/main/java/com/dite/znpt/service/ImageService.java index 69d89cc..15d902b 100644 --- a/core/src/main/java/com/dite/znpt/service/ImageService.java +++ b/core/src/main/java/com/dite/znpt/service/ImageService.java @@ -25,7 +25,7 @@ public interface ImageService extends IService { List batchUploadDefectImage(String partId, String imageSource, MultipartFile[] files); - String uploadCommonImage(String imageSource, ImageWorkReq imageWorkReq, MultipartFile file) throws IOException; + List batchUploadCommonImage(String imageSource, ImageWorkReq imageWorkReq, MultipartFile[] file) throws IOException; void delete(String imageId); } diff --git a/core/src/main/java/com/dite/znpt/service/impl/ImageServiceImpl.java b/core/src/main/java/com/dite/znpt/service/impl/ImageServiceImpl.java index d86bd10..bc25def 100644 --- a/core/src/main/java/com/dite/znpt/service/impl/ImageServiceImpl.java +++ b/core/src/main/java/com/dite/znpt/service/impl/ImageServiceImpl.java @@ -147,8 +147,9 @@ public class ImageServiceImpl extends ServiceImpl impl } @Override - public String uploadCommonImage(String imageSource, ImageWorkReq imageWorkReq, MultipartFile file) throws IOException { - if(null == file){ + @Transactional(rollbackFor = Exception.class) + public List batchUploadCommonImage(String imageSource, ImageWorkReq imageWorkReq, MultipartFile[] files) throws IOException { + if(null == files || files.length == 0){ throw new ServiceException(Message.IMAGE_IS_EMPTY); } String dateStr = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd")); @@ -167,10 +168,14 @@ public class ImageServiceImpl extends ServiceImpl impl if (!FileUtil.exist(path_prefix)) { FileUtil.mkdir(path_prefix); } - String path = path_prefix + file.getOriginalFilename(); - FileUtil.writeBytes(file.getBytes(),path); - String url = FileUtil.FILE_SEPARATOR.concat("static").concat(FileUtil.FILE_SEPARATOR).concat("image").concat(StrUtil.SLASH).concat(StrUtil.removePrefix(path, permPath)); - return StrUtil.replace(url, FileUtil.FILE_SEPARATOR, StrUtil.SLASH); + List result = new ArrayList<>(files.length); + for (MultipartFile multipartFile : files) { + String path = path_prefix + multipartFile.getOriginalFilename(); + FileUtil.writeBytes(multipartFile.getBytes(),path); + String url = FileUtil.FILE_SEPARATOR.concat("static").concat(FileUtil.FILE_SEPARATOR).concat("image").concat(StrUtil.SLASH).concat(StrUtil.removePrefix(path, permPath)); + result.add(StrUtil.replace(url, FileUtil.FILE_SEPARATOR, StrUtil.SLASH)); + } + return result; } @Transactional(rollbackFor = Exception.class) diff --git a/web/src/main/java/com/dite/znpt/web/controller/CommonController.java b/web/src/main/java/com/dite/znpt/web/controller/CommonController.java index 21174b2..c9620f7 100644 --- a/web/src/main/java/com/dite/znpt/web/controller/CommonController.java +++ b/web/src/main/java/com/dite/znpt/web/controller/CommonController.java @@ -1,8 +1,10 @@ package com.dite.znpt.web.controller; +import com.dite.znpt.constant.Message; import com.dite.znpt.domain.Result; import com.dite.znpt.domain.vo.ImageWorkReq; import com.dite.znpt.enums.*; +import com.dite.znpt.exception.ServiceException; import com.dite.znpt.service.ImageService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -109,12 +111,31 @@ public class CommonController { @Parameter(description = "纬度")@RequestParam(required = false) String latitude, @Parameter(description = "海拔")@RequestParam(required = false) String altitude, MultipartFile file) throws IOException { + if(null == file){ + throw new ServiceException(Message.IMAGE_IS_EMPTY); + } ImageWorkReq workReq = new ImageWorkReq(); workReq.setUploadUser(uploadUser); workReq.setLongitude(longitude); workReq.setLatitude(latitude); workReq.setAltitude(altitude); - return Result.ok(imageService.uploadCommonImage(imageSource, workReq, file)); + return Result.ok(imageService.batchUploadCommonImage(imageSource, workReq, new MultipartFile[]{file}).get(0)); + } + + @ApiOperation(value = "批量上传图片", httpMethod = "POST") + @PostMapping("/batch-upload-image/{imageSource}") + public Result batchUploadImage(@PathVariable String imageSource, + @Parameter(description = "上传用户") @RequestParam(required = false) String uploadUser, + @Parameter(description = "经度") @RequestParam(required = false) String longitude, + @Parameter(description = "纬度") @RequestParam(required = false) String latitude, + @Parameter(description = "海拔") @RequestParam(required = false) String altitude, + @RequestParam("file") MultipartFile[] files) throws IOException { + ImageWorkReq workReq = new ImageWorkReq(); + workReq.setUploadUser(uploadUser); + workReq.setLongitude(longitude); + workReq.setLatitude(latitude); + workReq.setAltitude(altitude); + return Result.ok(imageService.batchUploadCommonImage(imageSource, workReq, files)); } }