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; ...@@ -12,6 +12,7 @@ import java.util.regex.Pattern;
import javax.annotation.PostConstruct; import javax.annotation.PostConstruct;
import com.gic.download.dto.DownloadReportTempDTO;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger; import org.apache.logging.log4j.Logger;
...@@ -84,6 +85,25 @@ public class DataDownloadUtils { ...@@ -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 * @param initParams
* @throws IOException * @throws IOException
...@@ -152,7 +172,8 @@ public class DataDownloadUtils { ...@@ -152,7 +172,8 @@ public class DataDownloadUtils {
writer.flush(); writer.flush();
String fieldCode = "/" + System.currentTimeMillis() + "_" + params.getFileName() + ".csv"; 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)) { if (StringUtils.isNotBlank(url)) {
url = "https://" + url; url = "https://" + url;
} }
...@@ -300,8 +321,8 @@ public class DataDownloadUtils { ...@@ -300,8 +321,8 @@ public class DataDownloadUtils {
* @param fileUrl * @param fileUrl
*/ */
public static void uploadFile(Integer reportId, String fileUrl) { public static void uploadFile(Integer reportId, String fileUrl) {
ServiceResponse<Integer> result = dataDownloadUtils.downloadReportApiService ServiceResponse<Integer> result = dataDownloadUtils.downloadReportApiService.updateDownloadUrl(reportId,
.updateDownloadUrl(reportId, fileUrl); fileUrl);
if (!result.isSuccess()) { if (!result.isSuccess()) {
throw new CommonException(result); throw new CommonException(result);
} }
......
...@@ -7,6 +7,7 @@ import java.util.*; ...@@ -7,6 +7,7 @@ import java.util.*;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import com.gic.download.constants.ExcelExtensionEnum; import com.gic.download.constants.ExcelExtensionEnum;
import com.gic.download.dto.DownloadReportTempDTO;
import com.gic.thirdparty.BucketNameEnum; import com.gic.thirdparty.BucketNameEnum;
import com.gic.thirdparty.FileOperateUtils; import com.gic.thirdparty.FileOperateUtils;
import org.apache.commons.beanutils.BeanUtils; import org.apache.commons.beanutils.BeanUtils;
...@@ -163,7 +164,7 @@ public class DownloadUtils { ...@@ -163,7 +164,7 @@ public class DownloadUtils {
} }
}; };
writeOutputStream(loader, propertyNameList, writer, needEncryptField); writeOutputStream(loader, propertyNameList, writer, needEncryptField, reportId);
// 写入excel // 写入excel
if (!ExcelUtils.setExcelInfo(sheet, columnWidth, headerList, rows)) { if (!ExcelUtils.setExcelInfo(sheet, columnWidth, headerList, rows)) {
throw new IOException("设置导出文件内容失败。"); throw new IOException("设置导出文件内容失败。");
...@@ -184,7 +185,7 @@ public class DownloadUtils { ...@@ -184,7 +185,7 @@ public class DownloadUtils {
// 写文件头 // 写文件头
writer.write(headerList); writer.write(headerList);
// 写文件 // 写文件
writeOutputStream(loader, propertyNameList, writer, needEncryptField); writeOutputStream(loader, propertyNameList, writer, needEncryptField, reportId);
} else { } else {
writer = new Writer() { writer = new Writer() {
@Override @Override
...@@ -197,7 +198,7 @@ public class DownloadUtils { ...@@ -197,7 +198,7 @@ public class DownloadUtils {
// 写文件头 // 写文件头
writer.write(headerList); writer.write(headerList);
// 写文件 // 写文件
writeOutputStream(loader, propertyNameList, writer, needEncryptField); writeOutputStream(loader, propertyNameList, writer, needEncryptField, reportId);
} }
out.flush(); out.flush();
tempFile.deleteOnExit(); tempFile.deleteOnExit();
...@@ -246,8 +247,9 @@ public class DownloadUtils { ...@@ -246,8 +247,9 @@ public class DownloadUtils {
} }
protected <T> void writeOutputStream(DownloadDataLoader<T> loader, List<String> propertyNames, 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 pageNum = 1;
int maxLength = 102400; int maxLength = 102400;
while (maxLength -- > 0) { while (maxLength -- > 0) {
...@@ -273,9 +275,12 @@ public class DownloadUtils { ...@@ -273,9 +275,12 @@ public class DownloadUtils {
// 将属性值转换成字符串 // 将属性值转换成字符串
String convertValue = loader.convertProperty(bean, name, property); String convertValue = loader.convertProperty(bean, name, property);
//加密处理 //加密处理
//如果不是完整数据,则需要加密处理
if (tempReport != null && tempReport.getDataType().intValue() != 1) {
if (needEncryptField != null && needEncryptField.contains(name)) { if (needEncryptField != null && needEncryptField.contains(name)) {
convertValue = encrypt(convertValue); convertValue = encrypt(convertValue);
} }
}
// 组装成row // 组装成row
result.add(convertValue); 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