From 4bd86c2e0e7ea2dc552de2ff0ef21f50896686a5 Mon Sep 17 00:00:00 2001 From: zhaowenyuan Date: Fri, 28 Jun 2024 18:29:29 +0800 Subject: [PATCH] =?UTF-8?q?1.=20file=20=E5=88=A0=E9=99=A4=E6=97=B6,=20?= =?UTF-8?q?=E5=90=8C=E6=AD=A5=E5=88=A0=E9=99=A4=20fileSource?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../inspection/work/dto/ImageDTO.java | 18 ++++++ .../work/controller/WrkImgController.java | 63 +++++++++++++++++-- .../work/service/WrkImgService.java | 16 +++-- .../work/service/impl/WrkImgServiceImpl.java | 11 ++++ .../oss/controller/FileController.java | 3 +- .../oss/service/FileSourceService.java | 19 +++--- 6 files changed, 111 insertions(+), 19 deletions(-) create mode 100644 chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/work/dto/ImageDTO.java diff --git a/chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/work/dto/ImageDTO.java b/chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/work/dto/ImageDTO.java new file mode 100644 index 0000000..c37fb4e --- /dev/null +++ b/chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/work/dto/ImageDTO.java @@ -0,0 +1,18 @@ +package com.chushang.inspection.work.dto; + +import lombok.Data; +import org.hibernate.validator.constraints.Range; + +import javax.validation.constraints.NotNull; +import java.io.Serializable; + +@Data +public class ImageDTO implements Serializable { + + @NotNull(message = "图片类型不能为空") + @Range(min = 1, max = 30, message = "非法的图片类型") + private Integer imgType; + + @NotNull(message = "工单id不能为空") + private Long wrkId; +} diff --git a/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/work/controller/WrkImgController.java b/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/work/controller/WrkImgController.java index ca3edae..ff959c3 100644 --- a/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/work/controller/WrkImgController.java +++ b/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/work/controller/WrkImgController.java @@ -1,12 +1,65 @@ package com.chushang.inspection.work.controller; + +import cn.hutool.core.lang.Assert; +import com.chushang.common.core.web.AjaxResult; +import com.chushang.common.log.annotation.SysLog; +import com.chushang.common.log.enums.BusinessType; +import com.chushang.inspection.work.dto.ImageDTO; +import com.chushang.inspection.work.service.WrkImgService; +import lombok.extern.java.Log; +import org.aspectj.weaver.loadtime.Aj; +import org.hibernate.validator.constraints.Range; +import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.validation.constraints.NotNull; +import javax.validation.constraints.Size; /** -* 工单图片(wrk_img)表控制层 -* -* @author xxxxx -*/ + * 工单图片(wrk_img)表控制层 + * + * @author xxxxx + */ @RestController -@RequestMapping("/wrk_img") +@RequestMapping("/wrk/img") public class WrkImgController { + + @Resource + private WrkImgService wrkImgService; + + /** + * 工单图片上传 + * @param file 文件 + * @param imgType 文件类型 + * @param wrkId 工单id + * @param locationAddress 定位地址 + */ + @Validated + @SysLog("图片上传") + @PostMapping(value = "/picture") + public AjaxResult uploadPicture(@RequestParam("file") MultipartFile file, + @NotNull(message = "图片类型不能为空") + @Range(min = 1, max = 30, message = "非法的图片类型") + Integer imgType, + @NotNull(message = "工单id不能为空") + Long wrkId, + @Size(max = 255, message = "定位地址不能超过255个字符") + String locationAddress) { + Assert.isFalse(file.isEmpty(), "【{}】是空的", file.getOriginalFilename()); + String url = wrkImgService.uploadPicture(file, imgType, wrkId, locationAddress); + return AjaxResult.success(url); + } + + /** + * 删除工单图片 + */ + @DeleteMapping("/delete") + @SysLog(value = "删除图片", businessType = BusinessType.DELETE) + public AjaxResult delete(@RequestBody @Validated ImageDTO image) { + wrkImgService.removeImg(image); + return AjaxResult.success(); + } + } diff --git a/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/work/service/WrkImgService.java b/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/work/service/WrkImgService.java index 0ca58a9..a9a8d82 100644 --- a/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/work/service/WrkImgService.java +++ b/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/work/service/WrkImgService.java @@ -1,12 +1,18 @@ package com.chushang.inspection.work.service; +import com.chushang.inspection.work.dto.ImageDTO; import com.chushang.inspection.work.po.WrkImg; import com.baomidou.mybatisplus.extension.service.IService; - /** - * @auther: zhao - * @date: 2024/6/28 11:25 - */ -public interface WrkImgService extends IService{ +import org.springframework.web.multipart.MultipartFile; + +/** + * @auther: zhao + * @date: 2024/6/28 11:25 + */ +public interface WrkImgService extends IService { + String uploadPicture(MultipartFile file, Integer imgType, Long wrkId, String locationAddress); + + void removeImg(ImageDTO image); } diff --git a/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/work/service/impl/WrkImgServiceImpl.java b/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/work/service/impl/WrkImgServiceImpl.java index 2d0c1c7..1a85ac5 100644 --- a/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/work/service/impl/WrkImgServiceImpl.java +++ b/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/work/service/impl/WrkImgServiceImpl.java @@ -1,10 +1,12 @@ package com.chushang.inspection.work.service.impl; +import com.chushang.inspection.work.dto.ImageDTO; import com.chushang.inspection.work.service.WrkImgService; import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.chushang.inspection.work.mapper.WrkImgMapper; import com.chushang.inspection.work.po.WrkImg; +import org.springframework.web.multipart.MultipartFile; /** * @auther: zhao @@ -13,4 +15,13 @@ import com.chushang.inspection.work.po.WrkImg; @Service public class WrkImgServiceImpl extends ServiceImpl implements WrkImgService { + @Override + public String uploadPicture(MultipartFile file, Integer imgType, Long wrkId, String locationAddress) { + return ""; + } + + @Override + public void removeImg(ImageDTO image) { + + } } diff --git a/chushang-modules/chushang-module-oss/oss-service/src/main/java/com/chushang/oss/controller/FileController.java b/chushang-modules/chushang-module-oss/oss-service/src/main/java/com/chushang/oss/controller/FileController.java index a20bf88..a3ae447 100644 --- a/chushang-modules/chushang-module-oss/oss-service/src/main/java/com/chushang/oss/controller/FileController.java +++ b/chushang-modules/chushang-module-oss/oss-service/src/main/java/com/chushang/oss/controller/FileController.java @@ -90,8 +90,7 @@ public class FileController { @PostMapping(value = "/del/batch") @RequiresPermissions("system:file:del") public AjaxResult delFile(@RequestBody List fids) { - fileSourceService.delFileBatch(fids); - return AjaxResult.success(); + return AjaxResult.success( fileSourceService.delFileBatch(fids)); } } diff --git a/chushang-modules/chushang-module-oss/oss-service/src/main/java/com/chushang/oss/service/FileSourceService.java b/chushang-modules/chushang-module-oss/oss-service/src/main/java/com/chushang/oss/service/FileSourceService.java index 976fa68..1730a3f 100644 --- a/chushang-modules/chushang-module-oss/oss-service/src/main/java/com/chushang/oss/service/FileSourceService.java +++ b/chushang-modules/chushang-module-oss/oss-service/src/main/java/com/chushang/oss/service/FileSourceService.java @@ -34,16 +34,15 @@ import org.apache.tika.mime.MimeTypes; import org.redisson.api.RMap; import org.redisson.api.RedissonClient; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import java.io.*; import java.time.ZonedDateTime; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; -import java.util.List; +import java.util.*; +import java.util.stream.Collectors; /** * @auther: zhao @@ -178,6 +177,7 @@ public class FileSourceService } } + @Transactional public void delFile(String fid) { // 文件信息 FileSourceInfo info = getOne(new LambdaQueryWrapper() @@ -185,19 +185,24 @@ public class FileSourceService .last(Operator.LIMIT_ONE.getCharacter())); if (ObjUtil.isEmpty(info)) return; ossService.delFile(info.getPath()); + removeById(fid); } - public void delFileBatch(List fids) { + @Transactional + public String delFileBatch(List fids) { // 文件信息 List list = list(new LambdaQueryWrapper() .in(FileSourceInfo::getFid, fids)); - if (CollectionUtil.isEmpty(list)) return; + if (CollectionUtil.isEmpty(list)) return "success"; List strings = ossService.delFileBatch(list.stream().map(FileSourceInfo::getPath).toList()); + Set removeFids = fids.stream().filter(f -> !strings.contains(f)).collect(Collectors.toSet()); + removeBatchByIds(removeFids); if (CollectionUtil.isNotEmpty(strings)){ String key = String.join(",", strings); - throw new ResultException("以下文件未删除: [" + key + "]."); + return "以下文件未删除: [" + key + "]."; } + return "success"; }