Commit 93314088 by zhangxingmin

push

parent 2ae7be4d
...@@ -26,6 +26,45 @@ ...@@ -26,6 +26,45 @@
</content> </content>
<orderEntry type="jdk" jdkName="1.8" jdkType="JavaSDK" /> <orderEntry type="jdk" jdkName="1.8" jdkType="JavaSDK" />
<orderEntry type="sourceFolder" forTests="false" /> <orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" name="Maven: com.aliyun:aliyun-java-sdk-sts:3.0.0" level="project" />
<orderEntry type="library" name="Maven: com.aliyun:aliyun-java-sdk-core:4.6.0" level="project" />
<orderEntry type="library" name="Maven: org.glassfish.jaxb:jaxb-runtime:2.3.6" level="project" />
<orderEntry type="library" name="Maven: org.glassfish.jaxb:txw2:2.3.6" level="project" />
<orderEntry type="library" name="Maven: com.sun.istack:istack-commons-runtime:3.0.12" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: com.sun.activation:jakarta.activation:1.2.2" level="project" />
<orderEntry type="library" name="Maven: org.jacoco:org.jacoco.agent:runtime:0.8.7" level="project" />
<orderEntry type="library" name="Maven: com.documents4j:documents4j-local:1.1.12" level="project" />
<orderEntry type="library" name="Maven: com.documents4j:documents4j-api:1.1.12" level="project" />
<orderEntry type="library" name="Maven: com.documents4j:documents4j-transformer:1.1.12" level="project" />
<orderEntry type="library" name="Maven: com.documents4j:documents4j-util-conversion:1.1.12" level="project" />
<orderEntry type="library" name="Maven: org.zeroturnaround:zt-exec:1.11" level="project" />
<orderEntry type="library" name="Maven: com.documents4j:documents4j-transformer-msoffice-word:1.1.12" level="project" />
<orderEntry type="library" name="Maven: com.documents4j:documents4j-transformer-msoffice-base:1.1.12" level="project" />
<orderEntry type="library" name="Maven: com.documents4j:documents4j-transformer-api:1.1.12" level="project" />
<orderEntry type="library" name="Maven: com.documents4j:documents4j-util-all:1.1.12" level="project" />
<orderEntry type="library" name="Maven: com.documents4j:documents4j-util-transformer-process:1.1.12" level="project" />
<orderEntry type="library" name="Maven: org.apache.poi:poi:5.2.3" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-collections4:4.4" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-math3:3.6.1" level="project" />
<orderEntry type="library" name="Maven: com.zaxxer:SparseBitSet:1.2" level="project" />
<orderEntry type="library" name="Maven: org.apache.poi:poi-ooxml:5.2.3" level="project" />
<orderEntry type="library" name="Maven: org.apache.poi:poi-ooxml-lite:5.2.3" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-compress:1.21" level="project" />
<orderEntry type="library" name="Maven: com.github.virtuald:curvesapi:1.07" level="project" />
<orderEntry type="library" name="Maven: org.apache.xmlbeans:xmlbeans:5.1.1" level="project" />
<orderEntry type="library" name="Maven: cn.afterturn:easypoi-base:4.4.0" level="project" />
<orderEntry type="library" name="Maven: org.apache.poi:poi-ooxml-schemas:4.1.1" level="project" />
<orderEntry type="library" name="Maven: ognl:ognl:3.2.6" level="project" />
<orderEntry type="library" name="Maven: org.javassist:javassist:3.20.0-GA" level="project" />
<orderEntry type="library" name="Maven: javax.validation:validation-api:2.0.1.Final" level="project" />
<orderEntry type="library" name="Maven: cn.afterturn:easypoi-web:4.4.0" level="project" />
<orderEntry type="library" name="Maven: cn.afterturn:easypoi-annotation:4.4.0" level="project" />
<orderEntry type="library" name="Maven: org.jxls:jxls:2.12.0" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-jexl3:3.2" level="project" />
<orderEntry type="library" name="Maven: commons-beanutils:commons-beanutils:1.9.4" level="project" />
<orderEntry type="library" name="Maven: commons-collections:commons-collections:3.2.2" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: org.slf4j:jcl-over-slf4j:1.7.36" level="project" />
<orderEntry type="library" name="Maven: org.jxls:jxls-poi:2.12.0" level="project" />
<orderEntry type="library" name="Maven: com.alibaba.cloud:spring-cloud-starter-alibaba-nacos-discovery:2021.0.1.0" level="project" /> <orderEntry type="library" name="Maven: com.alibaba.cloud:spring-cloud-starter-alibaba-nacos-discovery:2021.0.1.0" level="project" />
<orderEntry type="library" name="Maven: com.alibaba.cloud:spring-cloud-alibaba-commons:2021.0.1.0" level="project" /> <orderEntry type="library" name="Maven: com.alibaba.cloud:spring-cloud-alibaba-commons:2021.0.1.0" level="project" />
<orderEntry type="library" name="Maven: com.alibaba.nacos:nacos-client:1.4.2" level="project" /> <orderEntry type="library" name="Maven: com.alibaba.nacos:nacos-client:1.4.2" level="project" />
......
package com.yd.oss.service.service; package com.yd.oss.service.service;
import com.aliyun.oss.OSS;
import com.yd.oss.service.dto.FileProdDto; import com.yd.oss.service.dto.FileProdDto;
import com.yd.oss.service.model.FileTemplate; import com.yd.oss.service.model.FileTemplate;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.yd.oss.service.model.OssProvider;
import java.io.InputStream; import java.io.InputStream;
...@@ -16,7 +18,7 @@ import java.io.InputStream; ...@@ -16,7 +18,7 @@ import java.io.InputStream;
*/ */
public interface IFileTemplateService extends IService<FileTemplate> { public interface IFileTemplateService extends IService<FileTemplate> {
InputStream getTemplateInputStreamFromOSS(String bucketName, String objectKey); InputStream getTemplateInputStreamFromOSS(String bucketName, String objectKey, OssProvider provider, OSS ossClient);
FileProdDto getFileProd(String templateName, String templateType); FileProdDto getFileProd(String templateName, String templateType);
......
...@@ -172,7 +172,7 @@ public class AliYunOssServiceImpl implements OssService { ...@@ -172,7 +172,7 @@ public class AliYunOssServiceImpl implements OssService {
ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(fileData); ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(fileData);
// 生成文件key(这里使用ossUtils的方法,需要传入projectBizId,但此时provider已知,可根据需要调整) // 生成文件key(这里使用ossUtils的方法,需要传入projectBizId,但此时provider已知,可根据需要调整)
String fileKey = ossUtils.getFilePrefix(provider.getProviderBizId(), "", fileName, type); String fileKey = ossUtils.getFilePrefix(provider.getProjectBizId(), "", fileName, type);
String actualBucket = StringUtils.isNotBlank(bucketName) ? bucketName : provider.getBucketName(); String actualBucket = StringUtils.isNotBlank(bucketName) ? bucketName : provider.getBucketName();
String fileType = FileUtil.getFileType(fileName); String fileType = FileUtil.getFileType(fileName);
...@@ -621,16 +621,20 @@ public class AliYunOssServiceImpl implements OssService { ...@@ -621,16 +621,20 @@ public class AliYunOssServiceImpl implements OssService {
* 上传字节数组并设置公共读 * 上传字节数组并设置公共读
*/ */
public String upload(byte[] content, String fileName,OSS ossClient, OssProvider provider) { public String upload(byte[] content, String fileName,OSS ossClient, OssProvider provider) {
OssProvider defaultProvider = getDefaultProvider(); // OssProvider defaultProvider = getDefaultProvider();
// OSS ossClient = null; // OSS ossClient = null;
try { try {
// ossClient = ossClientFactory.createOssClient(defaultProvider); // ossClient = ossClientFactory.createOssClient(defaultProvider);
String objectName = "appointment/excel/" + UUID.randomUUID() + "/" + fileName; // String objectName = "appointment/excel/" + UUID.randomUUID() + "/" + fileName;
//扩展名
String fileType = FileUtil.getFileType(fileName);
//获取通用文件路径的前缀
String filePrefix = ossUtils.getFilePrefix(provider.getProjectBizId(),"",fileName,fileType);
PutObjectRequest putObjectRequest = new PutObjectRequest( PutObjectRequest putObjectRequest = new PutObjectRequest(
defaultProvider.getBucketName(), objectName, new ByteArrayInputStream(content)); provider.getBucketName(), filePrefix, new ByteArrayInputStream(content));
ossClient.putObject(putObjectRequest); ossClient.putObject(putObjectRequest);
ossClient.setObjectAcl(defaultProvider.getBucketName(), objectName, CannedAccessControlList.PublicRead); ossClient.setObjectAcl(provider.getBucketName(), filePrefix, CannedAccessControlList.PublicRead);
return "https://" + defaultProvider.getBucketName() + "." + defaultProvider.getEndpoint() + "/" + objectName; return "https://" + provider.getBucketName() + "." + provider.getEndpoint() + "/" + filePrefix;
} finally { } finally {
if (ossClient != null) { if (ossClient != null) {
ossClient.shutdown(); ossClient.shutdown();
...@@ -641,23 +645,27 @@ public class AliYunOssServiceImpl implements OssService { ...@@ -641,23 +645,27 @@ public class AliYunOssServiceImpl implements OssService {
/** /**
* 上传输入流并设置公共读 * 上传输入流并设置公共读
*/ */
// public String upload(InputStream inputStream, String fileName) { public String upload(InputStream inputStream, String fileName,OSS ossClient, OssProvider provider) {
// OssProvider defaultProvider = getDefaultProvider(); // OssProvider defaultProvider = getDefaultProvider();
// OSS ossClient = null; // OSS ossClient = null;
// try { try {
// ossClient = ossClientFactory.createOssClient(defaultProvider); // ossClient = ossClientFactory.createOssClient(defaultProvider);
// String objectName = "appointment/excel/" + UUID.randomUUID() + "/" + fileName; // String objectName = "appointment/excel/" + UUID.randomUUID() + "/" + fileName;
// PutObjectRequest putObjectRequest = new PutObjectRequest( //扩展名
// defaultProvider.getBucketName(), objectName, inputStream); String fileType = FileUtil.getFileType(fileName);
// ossClient.putObject(putObjectRequest); //获取通用文件路径的前缀
// ossClient.setObjectAcl(defaultProvider.getBucketName(), objectName, CannedAccessControlList.PublicRead); String filePrefix = ossUtils.getFilePrefix(provider.getProjectBizId(),"",fileName,fileType);
// return "https://" + defaultProvider.getBucketName() + "." + defaultProvider.getEndpoint() + "/" + objectName; PutObjectRequest putObjectRequest = new PutObjectRequest(
// } finally { provider.getBucketName(), filePrefix, inputStream);
// if (ossClient != null) { ossClient.putObject(putObjectRequest);
// ossClient.shutdown(); ossClient.setObjectAcl(provider.getBucketName(), filePrefix, CannedAccessControlList.PublicRead);
// } return "https://" + provider.getBucketName() + "." + provider.getEndpoint() + "/" + filePrefix;
// } } finally {
// } if (ossClient != null) {
ossClient.shutdown();
}
}
}
/** /**
* 批量上传文件 * 批量上传文件
......
...@@ -8,6 +8,7 @@ import com.yd.oss.feign.response.ApiMaterialDownloadResponse; ...@@ -8,6 +8,7 @@ import com.yd.oss.feign.response.ApiMaterialDownloadResponse;
import com.yd.oss.service.model.OssProvider; import com.yd.oss.service.model.OssProvider;
import com.yd.oss.service.service.CompressedFileService; import com.yd.oss.service.service.CompressedFileService;
import com.yd.oss.service.service.OssService; import com.yd.oss.service.service.OssService;
import com.yd.oss.service.utils.OssUtils;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
...@@ -38,6 +39,9 @@ public class CompressedFileServiceImpl implements CompressedFileService { ...@@ -38,6 +39,9 @@ public class CompressedFileServiceImpl implements CompressedFileService {
// @Autowired // @Autowired
// private String defaultEndpoint; // 注入默认服务端点 // private String defaultEndpoint; // 注入默认服务端点
@Autowired
private OssUtils ossUtils;
/** /**
* 下载-材料列表压缩包 * 下载-材料列表压缩包
...@@ -390,9 +394,9 @@ public class CompressedFileServiceImpl implements CompressedFileService { ...@@ -390,9 +394,9 @@ public class CompressedFileServiceImpl implements CompressedFileService {
try { try {
// 方法1: 直接调用public方法 // 方法1: 直接调用public方法
java.lang.reflect.Method uploadMethod = AliYunOssServiceImpl.class java.lang.reflect.Method uploadMethod = AliYunOssServiceImpl.class
.getMethod("upload", InputStream.class, String.class); .getMethod("upload", InputStream.class, String.class,OSS.class,OssProvider.class);
String ossUrl = (String) uploadMethod.invoke(aliYunOssService, fis, zipFileName); String ossUrl = (String) uploadMethod.invoke(aliYunOssService, fis, zipFileName,ossClient,provider);
log.info("压缩包上传成功,URL: {}", ossUrl); log.info("压缩包上传成功,URL: {}", ossUrl);
return ossUrl; return ossUrl;
...@@ -404,9 +408,9 @@ public class CompressedFileServiceImpl implements CompressedFileService { ...@@ -404,9 +408,9 @@ public class CompressedFileServiceImpl implements CompressedFileService {
byte[] zipBytes = readFileToBytes(zipFile); byte[] zipBytes = readFileToBytes(zipFile);
try { try {
java.lang.reflect.Method uploadMethod2 = AliYunOssServiceImpl.class java.lang.reflect.Method uploadMethod2 = AliYunOssServiceImpl.class
.getMethod("upload", byte[].class, String.class); .getMethod("upload", byte[].class, String.class,OSS.class,OssProvider.class);
String ossUrl = (String) uploadMethod2.invoke(aliYunOssService, zipBytes, zipFileName); String ossUrl = (String) uploadMethod2.invoke(aliYunOssService, zipBytes, zipFileName,ossClient,provider);
log.info("压缩包上传成功,URL: {}", ossUrl); log.info("压缩包上传成功,URL: {}", ossUrl);
return ossUrl; return ossUrl;
} catch (NoSuchMethodException e2) { } catch (NoSuchMethodException e2) {
......
...@@ -37,8 +37,8 @@ public class FileTemplateServiceImpl extends ServiceImpl<FileTemplateMapper, Fil ...@@ -37,8 +37,8 @@ public class FileTemplateServiceImpl extends ServiceImpl<FileTemplateMapper, Fil
@Autowired @Autowired
private IOssProviderService ossProviderService; private IOssProviderService ossProviderService;
@Autowired // @Autowired
private OSS ossClient; // 注入OSS客户端 // private OSS ossClient; // 注入OSS客户端
/** /**
* 根据模板名称和模板类型获取云服务商和文件信息 * 根据模板名称和模板类型获取云服务商和文件信息
...@@ -56,7 +56,7 @@ public class FileTemplateServiceImpl extends ServiceImpl<FileTemplateMapper, Fil ...@@ -56,7 +56,7 @@ public class FileTemplateServiceImpl extends ServiceImpl<FileTemplateMapper, Fil
* @param objectKey * @param objectKey
* @return * @return
*/ */
public InputStream getTemplateInputStreamFromOSS(String bucketName, String objectKey) { public InputStream getTemplateInputStreamFromOSS(String bucketName, String objectKey,OssProvider provider, OSS ossClient) {
OSSObject object = ossClient.getObject(bucketName, objectKey); OSSObject object = ossClient.getObject(bucketName, objectKey);
return object.getObjectContent(); return object.getObjectContent();
} }
......
...@@ -8,6 +8,7 @@ import com.fasterxml.jackson.databind.ObjectMapper; ...@@ -8,6 +8,7 @@ import com.fasterxml.jackson.databind.ObjectMapper;
import com.yd.oss.service.dto.FileProdDto; import com.yd.oss.service.dto.FileProdDto;
import com.yd.oss.service.model.OssProvider; import com.yd.oss.service.model.OssProvider;
import com.yd.oss.service.service.*; import com.yd.oss.service.service.*;
import com.yd.oss.service.utils.OssUtils;
import com.yd.oss.service.utils.PdfUtil; import com.yd.oss.service.utils.PdfUtil;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
...@@ -39,6 +40,9 @@ public class PdfServiceImpl<T> implements PdfService<T> { ...@@ -39,6 +40,9 @@ public class PdfServiceImpl<T> implements PdfService<T> {
@Autowired @Autowired
private FieldValueProvider<T> fieldValueProvider; private FieldValueProvider<T> fieldValueProvider;
@Autowired
private OssUtils ossUtils;
// @Autowired // @Autowired
// private OSS ossClient; // 注入OSS客户端 // private OSS ossClient; // 注入OSS客户端
...@@ -57,7 +61,7 @@ public class PdfServiceImpl<T> implements PdfService<T> { ...@@ -57,7 +61,7 @@ public class PdfServiceImpl<T> implements PdfService<T> {
// 从OSS获取模板 // 从OSS获取模板
InputStream templateStream = iFileTemplateService.getTemplateInputStreamFromOSS( InputStream templateStream = iFileTemplateService.getTemplateInputStreamFromOSS(
fileProdDto.getBucketName(), fileProdDto.getFileKey()); fileProdDto.getBucketName(), fileProdDto.getFileKey(),provider,ossClient);
// 创建临时文件 // 创建临时文件
File tempInputFile = File.createTempFile("template", ".docx"); File tempInputFile = File.createTempFile("template", ".docx");
...@@ -72,10 +76,17 @@ public class PdfServiceImpl<T> implements PdfService<T> { ...@@ -72,10 +76,17 @@ public class PdfServiceImpl<T> implements PdfService<T> {
// 上传到OSS // 上传到OSS
String objectName = ""; String objectName = "";
//项目类型
String projectType = ossUtils.getProjectType(provider.getProjectBizId());
projectType = StringUtils.isNotBlank(projectType) ? projectType : "pc";
//环境变量
String env = ossUtils.getActiveEnv();
env = StringUtils.isNotBlank(env) ? env : "prod";
String prefix = projectType + "/" + env + "/";
if (StringUtils.isNotBlank(customFileName)) { if (StringUtils.isNotBlank(customFileName)) {
objectName = "insurance_schedules/" + System.currentTimeMillis() + "/" + customFileName + ".pdf"; objectName = prefix + "insurance_schedules/" + System.currentTimeMillis() + "/" + customFileName + ".pdf";
}else { }else {
objectName = "insurance_schedules/" + objectId + "_" + System.currentTimeMillis() + ".pdf"; objectName = prefix + "insurance_schedules/" + objectId + "_" + System.currentTimeMillis() + ".pdf";
} }
uploadToOSS(tempPdfFile, fileProdDto.getBucketName(), objectName,provider,ossClient); uploadToOSS(tempPdfFile, fileProdDto.getBucketName(), objectName,provider,ossClient);
......
...@@ -45,6 +45,24 @@ public class OssUtils { ...@@ -45,6 +45,24 @@ public class OssUtils {
} }
/** /**
* 根据项目ID获取项目类型
* @param projectBizId
* @return
*/
public String getProjectType(String projectBizId) {
String projectType = "pc";
if (StringUtils.isNotBlank(projectBizId)) {
//通过项目ID查询项目类型
Result<ApiSysProjectDetailResponse> result = apiSysProjectFeignClient.detail(projectBizId);
if (result.getData() != null) {
ApiSysProjectDetailResponse response = result.getData();
projectType = StringUtils.isNotBlank(response.getProjectType()) ? response.getProjectType() : "pc";
}
}
return projectType;
}
/**
* 获取分片文件路径的前缀 * 获取分片文件路径的前缀
* @param projectBizId * @param projectBizId
* @param env * @param env
...@@ -67,7 +85,7 @@ public class OssUtils { ...@@ -67,7 +85,7 @@ public class OssUtils {
return projectType + "/" + env + "/large_file/uploads/" + LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy/MM/dd/")); return projectType + "/" + env + "/large_file/uploads/" + LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy/MM/dd/"));
} }
private String getActiveEnv() { public String getActiveEnv() {
String[] activeProfiles = environment.getActiveProfiles(); String[] activeProfiles = environment.getActiveProfiles();
return activeProfiles.length > 0 ? activeProfiles[0] : "prod"; return activeProfiles.length > 0 ? activeProfiles[0] : "prod";
} }
......
...@@ -26,6 +26,7 @@ ...@@ -26,6 +26,7 @@
</content> </content>
<orderEntry type="jdk" jdkName="1.8" jdkType="JavaSDK" /> <orderEntry type="jdk" jdkName="1.8" jdkType="JavaSDK" />
<orderEntry type="sourceFolder" forTests="false" /> <orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" name="Maven: com.google.guava:guava:30.0-jre" level="project" />
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-boot-starter:3.5.5" level="project" /> <orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-boot-starter:3.5.5" level="project" />
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus:3.5.5" level="project" /> <orderEntry type="library" name="Maven: com.baomidou:mybatis-plus:3.5.5" level="project" />
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-annotation:3.5.5" level="project" /> <orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-annotation:3.5.5" level="project" />
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment