Commit a4eb5325 by 陶光胜

取数平台调整

parent cd3b9d96
......@@ -108,6 +108,16 @@ public class FlatQueryTaskCondition {
return results;
}
public List<String> getAllFields(){
List<String> results = Lists.newArrayList();
if (this.conditions != null && this.conditions.size() > 0) {
for (FlatQueryCondition condition : this.conditions) {
results.add(condition.getFieldName());
} // FOR OVER
} // IF OVER
return results;
}
/** 排序字段指定 */
protected String orderField = "";
......
package com.gic.cloud.data.hook.service.entity;
import com.alibaba.dubbo.common.utils.StringUtils;
import com.alibaba.fastjson.JSON;
import com.gic.cloud.data.hook.api.entity.FlatQueryCondition;
import com.gic.cloud.data.hook.service.DecryptUtils;
import com.gic.cloud.data.hook.service.impl.FreeQueryServiceImpl;
import com.opencsv.ResultSetHelper;
......@@ -22,9 +24,12 @@ public class CsvResultSetHelper implements ResultSetHelper {
/** 数据过滤用关键字集合 */
private List<String> filters = null;
public CsvResultSetHelper(String filterMode, List<String> filters) {
private List<FlatQueryCondition> allFields = null;
public CsvResultSetHelper(String filterMode, List<String> filters, List<FlatQueryCondition> allFields) {
this.filterMode = filterMode;
this.filters = filters;
this.allFields = allFields;
}
@Override
......@@ -66,13 +71,6 @@ public class CsvResultSetHelper implements ResultSetHelper {
result = new String[columnCount];
for (int i=0; i<columnCount; i++) {
String columnName = resultSet.getMetaData().getColumnLabel(i + 1);
System.out.println("getColumnLabel = " + resultSet.getMetaData().getColumnLabel(i+1));
System.out.println("getColumnName = " + resultSet.getMetaData().getColumnName(i+1));
System.out.println("getCatalogName = " + resultSet.getMetaData().getCatalogName(i+1));
System.out.println("getColumnClassName = " + resultSet.getMetaData().getColumnClassName(i+1));
System.out.println("getColumnTypeName = " + resultSet.getMetaData().getColumnTypeName(i+1));
System.out.println("getColumnType = " + resultSet.getMetaData().getColumnType(i+1));
System.out.println("getSchemaName = " + resultSet.getMetaData().getSchemaName(i+1));
// 数据处理判断
boolean doDesensi = false; // 是否进行脱敏
boolean doDecrypt = false; // 是否进行解密
......@@ -82,7 +80,10 @@ public class CsvResultSetHelper implements ResultSetHelper {
doDesensi = true;
}
}
if(FreeQueryServiceImpl.FILETERS_USER_NAME.contains(columnName)){
if(allFields != null && isName(columnName)){
doDesensi = true;
}
if(allFields == null && FreeQueryServiceImpl.FILETERS_USER_NAME.contains(columnName)){
doDesensi = true;
}
} else if (this.filterMode.equals(CsvDataFilterMode.DECRYPT)) { // 如果需要解密
......@@ -91,13 +92,18 @@ public class CsvResultSetHelper implements ResultSetHelper {
doDecrypt = true;
}
}
if(FreeQueryServiceImpl.FILETERS_USER_NAME.contains(columnName)){
if(allFields != null && isName(columnName)){
doDecrypt = true;
}
if(allFields == null && FreeQueryServiceImpl.FILETERS_USER_NAME.contains(columnName)){
doDecrypt = true;
}
}
// 数据处理
if (doDesensi) { // 如果需要脱敏处理
if(FreeQueryServiceImpl.FILETERS_USER_NAME.contains(columnName)){
if(allFields != null && isName(columnName)){
result[i] = DecryptUtils.dataSecurityProcessUserName(resultSet.getString(columnName));
} else if(allFields == null && FreeQueryServiceImpl.FILETERS_USER_NAME.contains(columnName)) {
result[i] = DecryptUtils.dataSecurityProcessUserName(resultSet.getString(columnName));
} else {
result[i] = "******";
......@@ -132,4 +138,18 @@ public class CsvResultSetHelper implements ResultSetHelper {
} // IF OVER
return result;
}
private boolean isName(String columnName){
if(StringUtils.isBlank(columnName)){
return false;
}
for(FlatQueryCondition condition : allFields){
if(condition.getFieldMark().equals(columnName)){
if(FreeQueryServiceImpl.FILETERS_USER_NAME.contains(condition.getFieldName())){
return true;
}
}
}
return false;
}
}
......@@ -580,7 +580,7 @@ public class FlatQueryResultServiceImpl implements IFlatQueryResultService {
}
//CSVWriter csvWriter = new CSVWriter(new FileWriter(csvPath), '\t');
OutputStreamWriter out = new OutputStreamWriter(new FileOutputStream(originalFilePath), Charset.forName("GBK"));
ResultSetHelper helper = new CsvResultSetHelper(task.getQueryDataType() == QueryDataType.FULL ? CsvDataFilterMode.DECRYPT : CsvDataFilterMode.DESENSI, condition.getDecryptFilters());
ResultSetHelper helper = new CsvResultSetHelper(task.getQueryDataType() == QueryDataType.FULL ? CsvDataFilterMode.DECRYPT : CsvDataFilterMode.DESENSI, condition.getDecryptFilters(), condition.getConditions());
CSVWriter writer = new CSVWriter(out, ',');
writer.setResultService(helper);
writer.writeAll(rs, true);
......@@ -773,7 +773,7 @@ public class FlatQueryResultServiceImpl implements IFlatQueryResultService {
}
//CSVWriter csvWriter = new CSVWriter(new FileWriter(csvPath), '\t');
OutputStreamWriter out = new OutputStreamWriter(new FileOutputStream(originalFilePath), Charset.forName("GBK"));
ResultSetHelper helper = new CsvResultSetHelper(task.getQueryDataType() == QueryDataType.FULL ? CsvDataFilterMode.DECRYPT : CsvDataFilterMode.DESENSI, condition.getDecryptFilters());
ResultSetHelper helper = new CsvResultSetHelper(task.getQueryDataType() == QueryDataType.FULL ? CsvDataFilterMode.DECRYPT : CsvDataFilterMode.DESENSI, condition.getDecryptFilters(), condition.getConditions());
CSVWriter writer = new CSVWriter(out, ',');
writer.setResultService(helper);
writer.writeAll(rs, true);
......
......@@ -412,7 +412,7 @@ public class FreeQueryServiceImpl implements IFreeQueryService {
//CSVWriter csvWriter = new CSVWriter(new FileWriter(csvPath), '\t');
OutputStreamWriter out = new OutputStreamWriter(new FileOutputStream(originalFilePath), Charset.forName("GBK"));
ResultSetHelper helper = new CsvResultSetHelper(task.getQueryDataType() == QueryDataType.FULL ? CsvDataFilterMode.NONE : CsvDataFilterMode.DESENSI, FreeQueryServiceImpl.getFieldsFilters(condition.getDesensiType()));
ResultSetHelper helper = new CsvResultSetHelper(task.getQueryDataType() == QueryDataType.FULL ? CsvDataFilterMode.NONE : CsvDataFilterMode.DESENSI, FreeQueryServiceImpl.getFieldsFilters(condition.getDesensiType()), null);
CSVWriter writer = new CSVWriter(out, ',');
writer.setResultService(helper);
writer.writeAll(rs, true);
......
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