From 420ff0d106518dba7e136745d35616c5e7e77991 Mon Sep 17 00:00:00 2001 From: zhangyue Date: Tue, 4 Nov 2025 13:55:07 +0800 Subject: [PATCH] =?UTF-8?q?=E9=99=84=E4=BB=B6=E4=B8=8A=E4=BC=A0=E5=8A=9F?= =?UTF-8?q?=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../basic/info/web/ImgFilesController.java | 8 ++-- .../basic/info/command/ImgFilesRemoveExe.java | 29 +++++++++++--- .../convertor/ImgFilesCoConvertor.java | 1 + .../info/dto/clientobject/ImgFilesCO.java | 11 +++++- .../basic/info/domain/model/ImgFilesE.java | 31 +++++++++------ .../info/gatewayimpl/ImgFilesGatewayImpl.java | 1 + .../persistence/dataobject/ImgFilesDO.java | 38 ++++++++++--------- .../repository/ImgFilesRepository.java | 3 ++ .../impl/ImgFilesRepositoryImpl.java | 10 +++++ 9 files changed, 91 insertions(+), 41 deletions(-) diff --git a/web-adapter/src/main/java/com/zcloud/basic/info/web/ImgFilesController.java b/web-adapter/src/main/java/com/zcloud/basic/info/web/ImgFilesController.java index f51b059..f371906 100644 --- a/web-adapter/src/main/java/com/zcloud/basic/info/web/ImgFilesController.java +++ b/web-adapter/src/main/java/com/zcloud/basic/info/web/ImgFilesController.java @@ -68,15 +68,15 @@ public class ImgFilesController { } @ApiOperation("删除") - @DeleteMapping("/{filePath}") - public Response removeFile(@PathVariable("filePath") String filePath) { + @DeleteMapping("/delete") + public Response removeFile(@RequestParam String filePath) { imgFilesService.removeFile(filePath); - return SingleResponse.buildSuccess(); + return Response.buildSuccess(); } @ApiOperation("删除多个") @DeleteMapping("/ids") - public Response removeBatch(@RequestParam Long[] ids) { + public Response removeBatch(@RequestParam Long[] ids) { imgFilesService.removeBatch(ids); return SingleResponse.buildSuccess(); } diff --git a/web-app/src/main/java/com/zcloud/basic/info/command/ImgFilesRemoveExe.java b/web-app/src/main/java/com/zcloud/basic/info/command/ImgFilesRemoveExe.java index b235999..6786b3d 100644 --- a/web-app/src/main/java/com/zcloud/basic/info/command/ImgFilesRemoveExe.java +++ b/web-app/src/main/java/com/zcloud/basic/info/command/ImgFilesRemoveExe.java @@ -1,11 +1,19 @@ package com.zcloud.basic.info.command; import com.alibaba.cola.exception.BizException; +import com.zcloud.basic.info.command.convertor.ImgFilesCoConvertor; import com.zcloud.basic.info.domain.gateway.ImgFilesGateway; +import com.zcloud.basic.info.domain.model.ImgFilesE; +import com.zcloud.basic.info.persistence.dataobject.ImgFilesDO; +import com.zcloud.basic.info.persistence.repository.ImgFilesRepository; +import com.zcloud.gbscommon.utils.Smb; import lombok.AllArgsConstructor; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; +import java.util.Arrays; +import java.util.List; + /** * web-app @@ -17,20 +25,29 @@ import org.springframework.transaction.annotation.Transactional; @AllArgsConstructor public class ImgFilesRemoveExe { private final ImgFilesGateway imgFilesGateway; + private final ImgFilesRepository imgFilesRepository; + private final ImgFilesCoConvertor imgFilesCoConvertor; @Transactional(rollbackFor = Exception.class) public boolean execute(String filePath) { - -// if (!res) { -// throw new BizException("删除失败"); -// } + ImgFilesE imgFilesE = new ImgFilesE(); + try { + imgFilesE.deleteFile(filePath); + } catch (Exception e) { + throw new BizException("删除失败"); + } return true; } @Transactional(rollbackFor = Exception.class) public boolean execute(Long[] ids) { - boolean res = imgFilesGateway.deletedImgFilesByIds(ids); - if (!res) { + List imgFilesDOList = imgFilesRepository.listByIds(Arrays.asList(ids)); + List imgFilesEList = imgFilesCoConvertor.converDOsToEs(imgFilesDOList); + ImgFilesE imgFilesE = new ImgFilesE(); + try { + imgFilesE.deleteFileList(imgFilesEList); + imgFilesRepository.deleteList(ids); + } catch (Exception e) { throw new BizException("删除失败"); } return true; diff --git a/web-app/src/main/java/com/zcloud/basic/info/command/convertor/ImgFilesCoConvertor.java b/web-app/src/main/java/com/zcloud/basic/info/command/convertor/ImgFilesCoConvertor.java index d98e893..77d7d1c 100644 --- a/web-app/src/main/java/com/zcloud/basic/info/command/convertor/ImgFilesCoConvertor.java +++ b/web-app/src/main/java/com/zcloud/basic/info/command/convertor/ImgFilesCoConvertor.java @@ -22,6 +22,7 @@ public interface ImgFilesCoConvertor { */ List converDOsToCOs(List imgFilesDOs); List converEsToDOs(List imgFilesEs); + List converDOsToEs(List imgFilesDOs); } diff --git a/web-client/src/main/java/com/zcloud/basic/info/dto/clientobject/ImgFilesCO.java b/web-client/src/main/java/com/zcloud/basic/info/dto/clientobject/ImgFilesCO.java index 9c58fcd..28b44e9 100644 --- a/web-client/src/main/java/com/zcloud/basic/info/dto/clientobject/ImgFilesCO.java +++ b/web-client/src/main/java/com/zcloud/basic/info/dto/clientobject/ImgFilesCO.java @@ -37,6 +37,15 @@ public class ImgFilesCO extends ClientObject { //企业id @ApiModelProperty(value = "企业id") private Long corpinfoId; + + + @ApiModelProperty(value = "文件列表") + private List fileList; + + + + @ApiModelProperty(value = "md5") + private String md5; //乐观锁 @ApiModelProperty(value = "乐观锁") private Integer version; @@ -73,8 +82,6 @@ public class ImgFilesCO extends ClientObject { //环境 @ApiModelProperty(value = "环境") private String env; - @ApiModelProperty - private List fileList; } diff --git a/web-domain/src/main/java/com/zcloud/basic/info/domain/model/ImgFilesE.java b/web-domain/src/main/java/com/zcloud/basic/info/domain/model/ImgFilesE.java index 4b987f8..2011227 100644 --- a/web-domain/src/main/java/com/zcloud/basic/info/domain/model/ImgFilesE.java +++ b/web-domain/src/main/java/com/zcloud/basic/info/domain/model/ImgFilesE.java @@ -1,10 +1,8 @@ package com.zcloud.basic.info.domain.model; import com.jjb.saas.framework.domain.model.BaseE; -import com.zcloud.gbscommon.utils.DateUtil; -import com.zcloud.gbscommon.utils.FileUpload; +import com.zcloud.gbscommon.utils.*; //import com.zcloud.gbscommon.utils.Smb; -import com.zcloud.gbscommon.utils.Tools; import lombok.Data; import org.apache.commons.beanutils.BeanUtils; import org.springframework.util.ObjectUtils; @@ -41,6 +39,8 @@ public class ImgFilesE extends BaseE { private String path; private MultipartFile[] files; + + private String md5; //乐观锁 private Integer version; //创建人 @@ -66,15 +66,11 @@ public class ImgFilesE extends BaseE { //环境 private String env; - public String initAdd(Long tenantId, ImgFilesE baseImgFilesE) throws InvocationTargetException, IllegalAccessException { + public String initAdd(Long tenantId, ImgFilesE baseImgFilesE) { MultipartFile[] files = baseImgFilesE.getFiles(); - List imgFilesList = new ArrayList(); - String foreignKey = ObjectUtils.isEmpty(baseImgFilesE.getForeignKey()) ? Tools.get32UUID() : baseImgFilesE.getForeignKey(); Long corpinfoId = ObjectUtils.isEmpty(baseImgFilesE.getCorpinfoId()) ? tenantId : baseImgFilesE.getCorpinfoId(); - String filePath = corpinfoId.toString() + "/" + DateUtil.getMonth() + "/" + baseImgFilesE.getPath(); - ImgFilesE imgFile = new ImgFilesE(); - BeanUtils.copyProperties(baseImgFilesE, imgFile); + String filePath = corpinfoId.toString() + "/" + DateUtil.getMonth() + "/" + baseImgFilesE.getPath()+ "/"; // 文件上传并获取上传路径 String resultFilePath = FileUpload.fileUp(files[0], filePath, Tools.get32UUID()); return filePath + resultFilePath; @@ -89,19 +85,30 @@ public class ImgFilesE extends BaseE { for (MultipartFile file : files) { ImgFilesE imgFile = new ImgFilesE(); - BeanUtils.copyProperties(baseImgFilesE, imgFile); + BeanUtils.copyProperties(imgFile, baseImgFilesE); // 文件上传并获取上传路径 -// Smb.saveFile(file, filePath); + String resultFilePath = Smb.saveFile(file, filePath); imgFile.setImgFilesId(Tools.get32UUID()); -// imgFile.setFilePath(filePath+); + imgFile.setFilePath(resultFilePath); imgFile.setType(baseImgFilesE.getType()); imgFile.setForeignKey(foreignKey); imgFile.setFileName(file.getOriginalFilename()); imgFile.setCorpinfoId(corpinfoId); +// imgFile.setMd5(FileUtil.getMD5(file)); imgFilesList.add(imgFile); } baseImgFilesE.setForeignKey(foreignKey); return imgFilesList; } + + + public void deleteFile(String filePath) throws Exception { + Smb.deleteFile(filePath); + } + public void deleteFileList(List imgFilesEList) throws Exception { + for (ImgFilesE imgFilesE: imgFilesEList) { + Smb.deleteFile(imgFilesE.getFilePath()); + } + } } diff --git a/web-infrastructure/src/main/java/com/zcloud/basic/info/gatewayimpl/ImgFilesGatewayImpl.java b/web-infrastructure/src/main/java/com/zcloud/basic/info/gatewayimpl/ImgFilesGatewayImpl.java index 0400f59..3000ea0 100644 --- a/web-infrastructure/src/main/java/com/zcloud/basic/info/gatewayimpl/ImgFilesGatewayImpl.java +++ b/web-infrastructure/src/main/java/com/zcloud/basic/info/gatewayimpl/ImgFilesGatewayImpl.java @@ -44,6 +44,7 @@ public class ImgFilesGatewayImpl implements ImgFilesGateway { @Override public Boolean deletedImgFilesByIds(Long[] ids) { + return imgFilesRepository.removeByIds(Arrays.asList(ids)); } } diff --git a/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/dataobject/ImgFilesDO.java b/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/dataobject/ImgFilesDO.java index f46f3e6..9df438c 100644 --- a/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/dataobject/ImgFilesDO.java +++ b/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/dataobject/ImgFilesDO.java @@ -8,35 +8,39 @@ import lombok.EqualsAndHashCode; import lombok.NoArgsConstructor; /** -* web-infrastructure -* @Author zhangyue -* @Date 2025-10-30 16:10:06 -*/ + * web-infrastructure + * + * @Author zhangyue + * @Date 2025-10-30 16:10:06 + */ @Data @TableName("img_files") @NoArgsConstructor @EqualsAndHashCode(callSuper = true) public class ImgFilesDO extends BaseDO { - //业务主键id + //业务主键id @ApiModelProperty(value = "业务主键id") - private String imgFilesId; - //路径 + private String imgFilesId; + //路径 @ApiModelProperty(value = "路径") - private String filePath; - //类型,参考 com.zcloud.imgfiles.enums.filetype + private String filePath; + //类型,参考 com.zcloud.imgfiles.enums.filetype @ApiModelProperty(value = "类型,参考 com.zcloud.imgfiles.enums.filetype") - private Integer type; - //外键 + private Integer type; + //外键 @ApiModelProperty(value = "外键") - private String foreignKey; - //附件名称 + private String foreignKey; + //附件名称 @ApiModelProperty(value = "附件名称") - private String fileName; - //企业id + private String fileName; + //企业id @ApiModelProperty(value = "企业id") - private Long corpinfoId; + private Long corpinfoId; + //企业id + @ApiModelProperty(value = "md5") + private String md5; - public ImgFilesDO(String imgFilesId) { + public ImgFilesDO(String imgFilesId) { this.imgFilesId = imgFilesId; } diff --git a/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/repository/ImgFilesRepository.java b/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/repository/ImgFilesRepository.java index 048de29..6957e4b 100644 --- a/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/repository/ImgFilesRepository.java +++ b/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/repository/ImgFilesRepository.java @@ -18,5 +18,8 @@ public interface ImgFilesRepository extends BaseRepository { List listAll(Map parmas); + + + void deleteList(Long[] ids); } diff --git a/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/repository/impl/ImgFilesRepositoryImpl.java b/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/repository/impl/ImgFilesRepositoryImpl.java index 8b18dc0..8d6d00b 100644 --- a/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/repository/impl/ImgFilesRepositoryImpl.java +++ b/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/repository/impl/ImgFilesRepositoryImpl.java @@ -3,6 +3,7 @@ package com.zcloud.basic.info.persistence.repository.impl; import com.alibaba.cola.dto.MultiResponse; import com.alibaba.cola.dto.PageResponse; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.jjb.saas.framework.repository.common.PageHelper; import com.jjb.saas.framework.repository.repo.impl.BaseRepositoryImpl; @@ -46,5 +47,14 @@ public class ImgFilesRepositoryImpl extends BaseRepositoryImpl updateWrapper = new UpdateWrapper<>(); + updateWrapper.in("id", ids); + updateWrapper.eq("delete_enum" ,"FALSE"); + updateWrapper.set("delete_enum", "TRUE"); + imgFilesMapper.update(null, updateWrapper); + } }