Commit 3519770d by guojuxing

如果是完整数据下载,不加密

parent dd1858c5
package com.gic.download.dto;
import java.io.Serializable;
/**
* 下载中心记录
* @ClassName: DownloadReportTempDTO

* @Description: 

* @author guojuxing

* @date 2020/2/3 4:55 PM

*/
public class DownloadReportTempDTO implements Serializable{
private static final long serialVersionUID = -4845073563932941443L;
/**
* 报告类型 1:完整数据, 2:脱敏数据, 3:二维码
*/
private Integer dataType;
/**
* 数据总量
*/
private Integer dataCount;
public Integer getDataType() {
return dataType;
}
public void setDataType(Integer dataType) {
this.dataType = dataType;
}
public Integer getDataCount() {
return dataCount;
}
public void setDataCount(Integer dataCount) {
this.dataCount = dataCount;
}
}
......@@ -12,6 +12,7 @@ import java.util.regex.Pattern;
import javax.annotation.PostConstruct;
import com.gic.download.dto.DownloadReportTempDTO;
import org.apache.commons.lang.StringUtils;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
......@@ -84,6 +85,25 @@ public class DataDownloadUtils {
}
/**
* 根据ID获取记录,获取现在数据类型和总数信息
* @param reportId
* @return
*/
public static DownloadReportTempDTO getByReportId(Integer reportId) {
ServiceResponse<DownloadReportDTO> reportResult = dataDownloadUtils.downloadReportApiService
.getDownloadReport(reportId);
if (reportResult.isSuccess()) {
DownloadReportDTO report = reportResult.getResult();
DownloadReportTempDTO temp = new DownloadReportTempDTO();
temp.setDataCount(report.getDataCount());
temp.setDataType(report.getDataType());
return temp;
}
LOGGER.info("根据reportId获取数据错误:{}", JSON.toJSONString(reportResult));
return null;
}
/**
* 初始化下载工具类
* @param initParams
* @throws IOException
......@@ -152,7 +172,8 @@ public class DataDownloadUtils {
writer.flush();
String fieldCode = "/" + System.currentTimeMillis() + "_" + params.getFileName() + ".csv";
//文件存进腾讯云
String url = FileOperateUtils.simpleUploadFileFromLocal(csvFile, fieldCode, BucketNameEnum.REPORT_50000.getName());
String url = FileOperateUtils.simpleUploadFileFromLocal(csvFile, fieldCode,
BucketNameEnum.REPORT_50000.getName());
if (StringUtils.isNotBlank(url)) {
url = "https://" + url;
}
......@@ -300,8 +321,8 @@ public class DataDownloadUtils {
* @param fileUrl
*/
public static void uploadFile(Integer reportId, String fileUrl) {
ServiceResponse<Integer> result = dataDownloadUtils.downloadReportApiService
.updateDownloadUrl(reportId, fileUrl);
ServiceResponse<Integer> result = dataDownloadUtils.downloadReportApiService.updateDownloadUrl(reportId,
fileUrl);
if (!result.isSuccess()) {
throw new CommonException(result);
}
......
......@@ -7,6 +7,7 @@ import java.util.*;
import javax.servlet.http.HttpServletResponse;
import com.gic.download.constants.ExcelExtensionEnum;
import com.gic.download.dto.DownloadReportTempDTO;
import com.gic.thirdparty.BucketNameEnum;
import com.gic.thirdparty.FileOperateUtils;
import org.apache.commons.beanutils.BeanUtils;
......@@ -163,7 +164,7 @@ public class DownloadUtils {
}
};
writeOutputStream(loader, propertyNameList, writer, needEncryptField);
writeOutputStream(loader, propertyNameList, writer, needEncryptField, reportId);
// 写入excel
if (!ExcelUtils.setExcelInfo(sheet, columnWidth, headerList, rows)) {
throw new IOException("设置导出文件内容失败。");
......@@ -184,7 +185,7 @@ public class DownloadUtils {
// 写文件头
writer.write(headerList);
// 写文件
writeOutputStream(loader, propertyNameList, writer, needEncryptField);
writeOutputStream(loader, propertyNameList, writer, needEncryptField, reportId);
} else {
writer = new Writer() {
@Override
......@@ -197,7 +198,7 @@ public class DownloadUtils {
// 写文件头
writer.write(headerList);
// 写文件
writeOutputStream(loader, propertyNameList, writer, needEncryptField);
writeOutputStream(loader, propertyNameList, writer, needEncryptField, reportId);
}
out.flush();
tempFile.deleteOnExit();
......@@ -246,8 +247,9 @@ public class DownloadUtils {
}
protected <T> void writeOutputStream(DownloadDataLoader<T> loader, List<String> propertyNames,
Writer writer, List<String> needEncryptField) throws Exception {
Writer writer, List<String> needEncryptField, Integer reportId) throws Exception {
DownloadReportTempDTO tempReport = DataDownloadUtils.getByReportId(reportId);
int pageNum = 1;
int maxLength = 102400;
while (maxLength -- > 0) {
......@@ -273,8 +275,11 @@ public class DownloadUtils {
// 将属性值转换成字符串
String convertValue = loader.convertProperty(bean, name, property);
//加密处理
if (needEncryptField != null && needEncryptField.contains(name)) {
convertValue = encrypt(convertValue);
//如果不是完整数据,则需要加密处理
if (tempReport != null && tempReport.getDataType().intValue() != 1) {
if (needEncryptField != null && needEncryptField.contains(name)) {
convertValue = encrypt(convertValue);
}
}
// 组装成row
result.add(convertValue);
......
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