From e94e5bd0b31741a35e04de31f5da1178ddb69c76 Mon Sep 17 00:00:00 2001 From: attiya <2413103649@qq.com> Date: Thu, 8 May 2025 09:43:28 +0800 Subject: [PATCH] =?UTF-8?q?=E7=AB=99=E7=82=B9=E9=99=84=E4=BB=B6=E3=80=81?= =?UTF-8?q?=E5=8F=8A=E5=85=B6=E7=9B=B8=E5=85=B3=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/EbikeRegionController.java | 12 ++++ .../model/dto/request/ReqSiteRegionDto.java | 5 ++ .../service/EbikeSiteRegionService.java | 9 +++ .../impl/EbikeSiteRegionServiceImpl.java | 61 +++++++++---------- 4 files changed, 56 insertions(+), 31 deletions(-) diff --git a/ebike-operate/src/main/java/com/cdzy/ebikeoperate/controller/EbikeRegionController.java b/ebike-operate/src/main/java/com/cdzy/ebikeoperate/controller/EbikeRegionController.java index 910240f9..6bb2d979 100644 --- a/ebike-operate/src/main/java/com/cdzy/ebikeoperate/controller/EbikeRegionController.java +++ b/ebike-operate/src/main/java/com/cdzy/ebikeoperate/controller/EbikeRegionController.java @@ -29,6 +29,7 @@ import jakarta.annotation.Resource; import jakarta.validation.constraints.NotNull; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; import java.util.List; import java.util.Objects; @@ -382,4 +383,15 @@ public class EbikeRegionController { List levels = levelMapper.selectListByQuery(queryWrapper); return JsonResult.success(levels); } + + /** + * 站点附件上传 + * + * @return 等级列表 + */ + @PostMapping("siteImagesUpload") + public JsonResult siteImagesUpload(MultipartFile file) throws Exception { + Long imageId = siteRegionService.saveImages(file); + return JsonResult.success(imageId); + } } diff --git a/ebike-operate/src/main/java/com/cdzy/ebikeoperate/model/dto/request/ReqSiteRegionDto.java b/ebike-operate/src/main/java/com/cdzy/ebikeoperate/model/dto/request/ReqSiteRegionDto.java index cf191a4c..5b0aaef0 100644 --- a/ebike-operate/src/main/java/com/cdzy/ebikeoperate/model/dto/request/ReqSiteRegionDto.java +++ b/ebike-operate/src/main/java/com/cdzy/ebikeoperate/model/dto/request/ReqSiteRegionDto.java @@ -79,4 +79,9 @@ public class ReqSiteRegionDto { @Size(min = 3, message = "顶点列表至少需要4个点(含闭合点)") private List points; + /** + * 图片id + */ + private List imageIds; + } diff --git a/ebike-operate/src/main/java/com/cdzy/ebikeoperate/service/EbikeSiteRegionService.java b/ebike-operate/src/main/java/com/cdzy/ebikeoperate/service/EbikeSiteRegionService.java index 94008a29..74a9ee47 100644 --- a/ebike-operate/src/main/java/com/cdzy/ebikeoperate/service/EbikeSiteRegionService.java +++ b/ebike-operate/src/main/java/com/cdzy/ebikeoperate/service/EbikeSiteRegionService.java @@ -8,7 +8,9 @@ import com.cdzy.ebikeoperate.model.dto.response.ResEbikeSiteRegionPageDto; import com.cdzy.ebikeoperate.model.pojo.EbikeSiteRegion; import com.mybatisflex.core.paginate.Page; import com.mybatisflex.core.service.IService; +import org.springframework.web.multipart.MultipartFile; +import java.io.IOException; import java.util.List; /** @@ -60,4 +62,11 @@ public interface EbikeSiteRegionService extends IService { * @return 分页列表 */ Page pageSite(PageParam pageParam, Long operationRegionId, String zoneId, String siteName); + + /** + * 站点附件上传 + * @param file 附件 + * @return + */ + Long saveImages(MultipartFile file) throws Exception; } diff --git a/ebike-operate/src/main/java/com/cdzy/ebikeoperate/service/impl/EbikeSiteRegionServiceImpl.java b/ebike-operate/src/main/java/com/cdzy/ebikeoperate/service/impl/EbikeSiteRegionServiceImpl.java index 1a87f8f3..55c3fa34 100644 --- a/ebike-operate/src/main/java/com/cdzy/ebikeoperate/service/impl/EbikeSiteRegionServiceImpl.java +++ b/ebike-operate/src/main/java/com/cdzy/ebikeoperate/service/impl/EbikeSiteRegionServiceImpl.java @@ -24,6 +24,7 @@ import com.ebike.feign.clients.StaffFeignClient; import com.ebike.feign.model.rsp.StaffFeign; import com.mybatisflex.core.paginate.Page; import com.mybatisflex.core.query.QueryWrapper; +import com.mybatisflex.core.update.UpdateChain; import com.mybatisflex.core.util.StringUtil; import com.mybatisflex.spring.service.impl.ServiceImpl; import jakarta.annotation.Resource; @@ -89,47 +90,39 @@ public class EbikeSiteRegionServiceImpl extends ServiceImpl points = regionDto.getPoints(); this.mapper.insert(siteRegion); -// saveImages(files, siteRegion.getSiteRegionId()); + List imageIds = regionDto.getImageIds(); + if (imageIds != null && !imageIds.isEmpty()) { + UpdateChain.of(EbikeSiteImages.class) + .set(EBIKE_SITE_IMAGES.SITE_REGION_ID, siteRegion.getSiteRegionId()) + .where(EBIKE_SITE_IMAGES.IMAGE_ID.in(imageIds)); + } savePoints(points, operationRegionId, siteRegion.getSiteRegionId()); } - private void saveImages(List files, Long siteRegionId) throws Exception { - List images = new ArrayList<>(); - for (MultipartFile file : files) { - EbikeSiteImages image = new EbikeSiteImages(); - InputStream inputStream = file.getInputStream(); - String fileName = file.getOriginalFilename(); - String fileUniqueKey = UUID.randomUUID() + fileName.substring(fileName.lastIndexOf(".")); - image.setImageName(fileUniqueKey); - image.setImageBucket(MinioUtil.BUCKET_SIT); - image.setSiteRegionId(siteRegionId); - images.add(image); - minioUtil.uploadFile(inputStream, MinioUtil.BUCKET_SIT, fileUniqueKey); - } - siteImagesMapper.insertBatch(images); + @Override + public Long saveImages(MultipartFile file) throws Exception { + + EbikeSiteImages image = new EbikeSiteImages(); + InputStream inputStream = file.getInputStream(); + String fileName = file.getOriginalFilename(); + String fileUniqueKey = UUID.randomUUID() + fileName.substring(fileName.lastIndexOf(".")); + image.setImageName(fileUniqueKey); + image.setImageBucket(MinioUtil.BUCKET_SIT); +// image.setSiteRegionId(siteRegionId); + minioUtil.uploadFile(inputStream, MinioUtil.BUCKET_SIT, fileUniqueKey); + + siteImagesMapper.insert(image); + return image.getImageId(); } - private void updateImages(List files, Long siteRegionId) throws Exception { - List images = new ArrayList<>(); - for (MultipartFile file : files) { - EbikeSiteImages image = new EbikeSiteImages(); - InputStream inputStream = file.getInputStream(); - String fileName = file.getOriginalFilename(); - String fileUniqueKey = UUID.randomUUID() + fileName.substring(fileName.lastIndexOf(".")); - image.setImageName(fileUniqueKey); - image.setImageBucket(MinioUtil.BUCKET_SIT); - image.setSiteRegionId(siteRegionId); - images.add(image); - minioUtil.uploadFile(inputStream, MinioUtil.BUCKET_SIT, fileUniqueKey); - } + private void delImages(Long siteRegionId) throws Exception { QueryWrapper queryWrapper = QueryWrapper.create() .where(EBIKE_SITE_IMAGES.SITE_REGION_ID.eq(siteRegionId)); List list = siteImagesMapper.selectListByQuery(queryWrapper); for (EbikeSiteImages image : list) { minioUtil.deleteObject(image.getImageBucket(), image.getImageName()); } - siteImagesMapper.selectListByQuery(queryWrapper); - siteImagesMapper.insertBatch(images); + siteImagesMapper.deleteByQuery(queryWrapper); } @Override @@ -149,7 +142,13 @@ public class EbikeSiteRegionServiceImpl extends ServiceImpl imageIds = regionDto.getImageIds(); + if (imageIds != null && !imageIds.isEmpty()) { + UpdateChain.of(EbikeSiteImages.class) + .set(EBIKE_SITE_IMAGES.SITE_REGION_ID, ebikeSiteRegion.getSiteRegionId()) + .where(EBIKE_SITE_IMAGES.IMAGE_ID.in(imageIds)); + } } @Override