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 502e9719..925c8b26 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 @@ -13,6 +13,7 @@ import com.zcloud.basic.info.dto.ImgFilesPageQry; import com.zcloud.basic.info.dto.ImgFilesQryCmd; import com.zcloud.basic.info.dto.ImgFilesUpdateCmd; import com.zcloud.basic.info.dto.clientobject.ImgFilesCO; +import com.zcloud.basic.info.dto.clientobject.ImgFilesBase64CO; import com.zcloud.basic.info.dto.clientobject.ImgFilesInfoCO; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -93,5 +94,11 @@ public class ImgFilesController { public SingleResponse getImagePath() { return SingleResponse.of(imgFilesService.getImagePath()); } + + @ApiOperation("所有数据(base64格式)") + @GetMapping("/listAllBase64") + public MultiResponse listAllBase64(ImgFilesQryCmd imgFilesQryCmd) { + return imgFilesService.listAllBase64(imgFilesQryCmd); + } } 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 e19154d8..5febbba5 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 @@ -1,6 +1,7 @@ package com.zcloud.basic.info.command.convertor; import com.zcloud.basic.info.domain.model.ImgFilesE; +import com.zcloud.basic.info.dto.clientobject.ImgFilesBase64CO; import com.zcloud.basic.info.dto.clientobject.ImgFilesCO; import com.zcloud.basic.info.persistence.dataobject.ImgFilesDO; import com.zcloud.gbscommon.zcloudimgfiles.response.ZcloudImgFilesCO; @@ -27,5 +28,7 @@ public interface ImgFilesCoConvertor { List converCOsToDubboCOs(List imgFilesCOs); + List converDOsToBase64COs(List imgFilesDOs); + } diff --git a/web-app/src/main/java/com/zcloud/basic/info/command/query/ImgFilesQueryExe.java b/web-app/src/main/java/com/zcloud/basic/info/command/query/ImgFilesQueryExe.java index 8775cc70..3c62eb9e 100644 --- a/web-app/src/main/java/com/zcloud/basic/info/command/query/ImgFilesQueryExe.java +++ b/web-app/src/main/java/com/zcloud/basic/info/command/query/ImgFilesQueryExe.java @@ -9,15 +9,24 @@ import com.zcloud.basic.info.dto.ImgFilesAddCmd; import com.zcloud.basic.info.dto.ImgFilesPageQry; import com.zcloud.basic.info.dto.ImgFilesQryCmd; import com.zcloud.basic.info.dto.clientobject.ImgFilesCO; +import com.zcloud.basic.info.dto.clientobject.ImgFilesBase64CO; import com.zcloud.basic.info.persistence.dataobject.ImgFilesDO; import com.zcloud.basic.info.persistence.repository.ImgFilesRepository; import com.zcloud.gbscommon.utils.PageQueryHelper; +import org.apache.commons.io.FileUtils; +import org.springframework.util.Base64Utils; import lombok.AllArgsConstructor; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; +import java.io.File; +import java.io.InputStream; +import java.net.URL; +import java.net.URLConnection; +import java.util.ArrayList; import java.util.List; import java.util.Map; +import org.apache.commons.io.IOUtils; @@ -63,5 +72,46 @@ public class ImgFilesQueryExe { public String getImagePath() { return imageConfig.getUrl(); } + + public MultiResponse executeListBase64(ImgFilesQryCmd imgFilesQryCmd) { + Map params = PageQueryHelper.toHashMap(imgFilesQryCmd); + List imgFilesDOList = imgFilesRepository.listAll(params); + + // 先转换为ImgFilesCO以保留原有字段 + List imgFilesCOList = imgFilesCoConvertor.converDOsToBase64COs(imgFilesDOList); + + List resultList = new ArrayList<>(); + for (ImgFilesBase64CO base64CO : imgFilesCOList) { + + // 设置MIME类型 + String fileName = base64CO.getFileName(); + String mimeType = URLConnection.guessContentTypeFromName(fileName); + if (mimeType == null) { + // 默认MIME类型 + mimeType = "application/octet-stream"; + } + base64CO.setMimeType(mimeType); + + try { + // 读取文件内容并转换为base64 + String fileUrl = imageConfig.getUrl() + base64CO.getFilePath(); + System.out.println(fileUrl); + + // 使用URL类读取远程文件 + URL url = new URL(fileUrl); + try (InputStream inputStream = url.openStream()) { + byte[] fileContent = IOUtils.toByteArray(inputStream); + String base64Content = Base64Utils.encodeToString(fileContent); + base64CO.setBase64(base64Content); + resultList.add(base64CO); + } + } catch (Exception e) { + // 处理文件读取异常 + e.printStackTrace(); + } + } + + return MultiResponse.of(resultList); + } } diff --git a/web-app/src/main/java/com/zcloud/basic/info/service/ImgFilesServiceImpl.java b/web-app/src/main/java/com/zcloud/basic/info/service/ImgFilesServiceImpl.java index 21ebee51..8c4b867c 100644 --- a/web-app/src/main/java/com/zcloud/basic/info/service/ImgFilesServiceImpl.java +++ b/web-app/src/main/java/com/zcloud/basic/info/service/ImgFilesServiceImpl.java @@ -13,6 +13,7 @@ import com.zcloud.basic.info.dto.ImgFilesPageQry; import com.zcloud.basic.info.dto.ImgFilesQryCmd; import com.zcloud.basic.info.dto.ImgFilesUpdateCmd; import com.zcloud.basic.info.dto.clientobject.ImgFilesCO; +import com.zcloud.basic.info.dto.clientobject.ImgFilesBase64CO; import com.zcloud.basic.info.dto.clientobject.ImgFilesInfoCO; import lombok.AllArgsConstructor; import org.springframework.stereotype.Service; @@ -78,5 +79,10 @@ public class ImgFilesServiceImpl implements ImgFilesServiceI { public String getImagePath() { return imgFilesQueryExe.getImagePath(); } + + @Override + public MultiResponse listAllBase64(ImgFilesQryCmd imgFilesQryCmd) { + return imgFilesQueryExe.executeListBase64(imgFilesQryCmd); + } } diff --git a/web-client/src/main/java/com/zcloud/basic/info/api/ImgFilesServiceI.java b/web-client/src/main/java/com/zcloud/basic/info/api/ImgFilesServiceI.java index e57124d8..70c3b628 100644 --- a/web-client/src/main/java/com/zcloud/basic/info/api/ImgFilesServiceI.java +++ b/web-client/src/main/java/com/zcloud/basic/info/api/ImgFilesServiceI.java @@ -8,6 +8,7 @@ import com.zcloud.basic.info.dto.ImgFilesPageQry; import com.zcloud.basic.info.dto.ImgFilesQryCmd; import com.zcloud.basic.info.dto.ImgFilesUpdateCmd; import com.zcloud.basic.info.dto.clientobject.ImgFilesCO; +import com.zcloud.basic.info.dto.clientobject.ImgFilesBase64CO; import com.zcloud.basic.info.dto.clientobject.ImgFilesInfoCO; import java.util.Map; @@ -34,5 +35,7 @@ public interface ImgFilesServiceI { MultiResponse listAll(ImgFilesQryCmd imgFilesQryCmd); String getImagePath(); + + MultiResponse listAllBase64(ImgFilesQryCmd imgFilesQryCmd); } diff --git a/web-client/src/main/java/com/zcloud/basic/info/dto/clientobject/ImgFilesBase64CO.java b/web-client/src/main/java/com/zcloud/basic/info/dto/clientobject/ImgFilesBase64CO.java new file mode 100644 index 00000000..45c68fb8 --- /dev/null +++ b/web-client/src/main/java/com/zcloud/basic/info/dto/clientobject/ImgFilesBase64CO.java @@ -0,0 +1,23 @@ +package com.zcloud.basic.info.dto.clientobject; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + + +/** + * web-client + * + * @Author zhangyue + * @Date 2025-10-30 16:10:04 + */ +@Data +public class ImgFilesBase64CO extends ImgFilesCO { + //文件类型 + @ApiModelProperty(value = "文件类型") + private String mimeType; + //base64数据 + @ApiModelProperty(value = "base64数据") + private String base64; + + +}