Commit 1843085a by fudahua

Merge branch 'developer' into 'master'

Developer

See merge request !48
parents 6fabc7f7 d0077ff7
...@@ -31,6 +31,25 @@ ...@@ -31,6 +31,25 @@
<dependencies> <dependencies>
<dependency> <dependency>
<groupId>com.gic</groupId>
<artifactId>gic-commons</artifactId>
<version>${gic-commons}</version>
<exclusions>
<exclusion>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-1.2-api</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.opencsv</groupId> <groupId>com.opencsv</groupId>
<artifactId>opencsv</artifactId> <artifactId>opencsv</artifactId>
<version>3.3</version> <version>3.3</version>
...@@ -78,6 +97,11 @@ ...@@ -78,6 +97,11 @@
--> -->
<dependency> <dependency>
<groupId>org.apache.logging.log4j</groupId> <groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-1.2-api</artifactId>
<version>2.7</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j-impl</artifactId> <artifactId>log4j-slf4j-impl</artifactId>
<version>2.8.2</version> <version>2.8.2</version>
</dependency> </dependency>
......
package com.gic.cloud.data.hook.service; package com.gic.cloud.data.hook.service;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson.JSONObject;
import com.ctrip.framework.apollo.Config; import com.ctrip.framework.apollo.Config;
import com.ctrip.framework.apollo.ConfigService; import com.ctrip.framework.apollo.ConfigService;
import com.gic.cloud.data.hook.api.entity.FlatQueryCondition;
import com.gic.cloud.data.hook.api.entity.FlatQueryFieldType;
import com.gic.cloud.data.hook.service.entity.TimeCheckPojo;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.concurrent.BasicThreadFactory; import org.apache.commons.lang3.concurrent.BasicThreadFactory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct; import javax.annotation.PostConstruct;
import java.util.ArrayList; import java.util.*;
import java.util.Arrays;
import java.util.List;
import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.ScheduledThreadPoolExecutor; import java.util.concurrent.ScheduledThreadPoolExecutor;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
@Component @Component
public class FilterFieldUtils { public class FilterFieldUtils {
private static Logger logger= LoggerFactory.getLogger(FilterFieldUtils.class);
/** 脱敏字段 */ /** 脱敏字段 */
public static List<String> FILTERS_PHONE_ONLY = Arrays.asList("mobile", "phone", "enterprise_name", "phone_number", "receive_phone_number", "use_phone_number", "friend_phone_num","from_phone_num"); public static List<String> FILTERS_PHONE_ONLY = Arrays.asList("mobile", "phone", "enterprise_name", "phone_number", "receive_phone_number", "use_phone_number", "friend_phone_num","from_phone_num");
...@@ -58,4 +68,68 @@ public class FilterFieldUtils { ...@@ -58,4 +68,68 @@ public class FilterFieldUtils {
} }
}, 5, 5, TimeUnit.SECONDS); }, 5, 5, TimeUnit.SECONDS);
} }
private static ThreadLocal<Map<String,TimeCheckPojo>> TIMECHECK_THREADLOCAL=new ThreadLocal<>();
/**
* 初始化 时间校验
* @param queryConditions
*/
public static void timeFieldCheckInit(List<FlatQueryCondition> queryConditions) {
TIMECHECK_THREADLOCAL.remove();
HashMap<String,TimeCheckPojo> retMap=new HashMap<>();
if (CollectionUtils.isEmpty(queryConditions)) {
return;
}
for (FlatQueryCondition queryCondition : queryConditions) {
// 如果存在主过滤器的值,视为过滤器生效
if (StringUtils.isNotBlank(queryCondition.getMainFilter())
&&queryCondition.getFieldType().equals(FlatQueryFieldType.DATE)) {
String startDate = queryCondition.getMainFilter() + "";
String overDate = queryCondition.getExtendFilter() + "";
DateTime start = DateUtil.parse(startDate);
DateTime end = DateUtil.parse(overDate);
TimeCheckPojo timeCheckPojo=new TimeCheckPojo();
timeCheckPojo.setEndStr(overDate);
timeCheckPojo.setStartStr(startDate);
timeCheckPojo.setEndDate(end);
timeCheckPojo.setStartDate(start);
retMap.put(queryCondition.getFieldName(),timeCheckPojo);
}
}
logger.info("开始----:{}",JSONObject.toJSONString(retMap));
TIMECHECK_THREADLOCAL.set(retMap);
}
/**
* 校验时间
* @param key
* @param time
* @return
*/
public static void checkTime(String key,String time,Object orgObj){
Map<String, TimeCheckPojo> checkPojoMap = TIMECHECK_THREADLOCAL.get();
if (checkPojoMap == null) {
return;
}
TimeCheckPojo timeCheckPojo = checkPojoMap.get(key);
if (timeCheckPojo == null) {
return ;
}
DateTime parse = DateUtil.parse(time);
if(parse.isAfter(timeCheckPojo.getStartDate())&&parse.isBefore(timeCheckPojo.getEndDate())){
return ;
}
logger.info("key:{},time:{}---{},,orgTime:{}",key,time,orgObj, JSONObject.toJSON(timeCheckPojo));
}
/**
* 是否校验
*/
public static void removeTimeCheck(){
logger.info("结束----");
TIMECHECK_THREADLOCAL.remove();
}
} }
...@@ -201,7 +201,9 @@ public class CsvResultSetHelper implements ResultSetHelper { ...@@ -201,7 +201,9 @@ public class CsvResultSetHelper implements ResultSetHelper {
int columnType = resultSet.getMetaData().getColumnType(i + 1); int columnType = resultSet.getMetaData().getColumnType(i + 1);
switch (columnType) { switch (columnType) {
case Types.TIMESTAMP: case Types.TIMESTAMP:
result.add(resultSet.getTimestamp(i+1) != null ? datetimeFormatter_threadLocal.get().format(resultSet.getTimestamp(i+1)) : ""); String time = resultSet.getTimestamp(i+1) != null ? datetimeFormatter_threadLocal.get().format(resultSet.getTimestamp(i+1)) : "";
result.add(time);
// FilterFieldUtils.checkTime(columnName,time,resultSet.getObject(i+1));
break; break;
case Types.DATE: case Types.DATE:
//result[i] = resultSet.getTimestamp(columnName) != null ? dateFormatter.format(resultSet.getTimestamp(columnName)) : ""; //result[i] = resultSet.getTimestamp(columnName) != null ? dateFormatter.format(resultSet.getTimestamp(columnName)) : "";
...@@ -216,6 +218,10 @@ public class CsvResultSetHelper implements ResultSetHelper { ...@@ -216,6 +218,10 @@ public class CsvResultSetHelper implements ResultSetHelper {
if(s2.contains("E0") || s2.startsWith("0")){ if(s2.contains("E0") || s2.startsWith("0")){
s2 = s2 + "\t"; s2 = s2 + "\t";
} }
s2=s2.replace("\r","");
s2=s2.replace("\n","");
s2=s2.replace(",",",");
s2=s2.replace("\"","");
} }
result.add(s2); result.add(s2);
break; break;
......
package com.gic.cloud.data.hook.service.entity;
import cn.hutool.core.date.DateTime;
import java.io.Serializable;
public class TimeCheckPojo implements Serializable {
private String startStr;
private String endStr;
private DateTime startDate;
private DateTime endDate;
public String getStartStr() {
return startStr;
}
public void setStartStr(String startStr) {
this.startStr = startStr;
}
public String getEndStr() {
return endStr;
}
public void setEndStr(String endStr) {
this.endStr = endStr;
}
public DateTime getStartDate() {
return startDate;
}
public void setStartDate(DateTime startDate) {
this.startDate = startDate;
}
public DateTime getEndDate() {
return endDate;
}
public void setEndDate(DateTime endDate) {
this.endDate = endDate;
}
}
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="Trace">
<Appenders>
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
</Console>
</Appenders>
<Loggers>
<Root level="error">
<AppenderRef ref="Console"/>
</Root>
</Loggers>
</Configuration>
\ No newline at end of file
...@@ -19,6 +19,8 @@ import com.gic.enterprise.api.dto.StoreWidgetDTO; ...@@ -19,6 +19,8 @@ import com.gic.enterprise.api.dto.StoreWidgetDTO;
import com.gic.enterprise.api.service.EnterpriseService; import com.gic.enterprise.api.service.EnterpriseService;
import com.gic.enterprise.api.service.StoreWidgetService; import com.gic.enterprise.api.service.StoreWidgetService;
import com.gic.web.common.utils.SessionContextUtils; import com.gic.web.common.utils.SessionContextUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
...@@ -39,6 +41,8 @@ import java.util.List; ...@@ -39,6 +41,8 @@ import java.util.List;
@Controller @Controller
public class FlatQueryController { public class FlatQueryController {
private static Logger logger= LoggerFactory.getLogger(FlatQueryController.class);
/** 脱敏字段 */ /** 脱敏字段 */
public static final List<String> FILTERS_PHONE_ONLY = Arrays.asList("mobile", "phone", "enterprise_name", "phone_number", "receive_phone_number", "use_phone_number", "friend_phone_num","from_phone_num"); public static final List<String> FILTERS_PHONE_ONLY = Arrays.asList("mobile", "phone", "enterprise_name", "phone_number", "receive_phone_number", "use_phone_number", "friend_phone_num","from_phone_num");
...@@ -145,8 +149,8 @@ public class FlatQueryController { ...@@ -145,8 +149,8 @@ public class FlatQueryController {
*/ */
@RequestMapping("/flat-query") @RequestMapping("/flat-query")
public FlatQueryResult doFlatQuery(@RequestBody FlatQueryExecuteRequest executeRequest, HttpServletRequest request, HttpServletResponse response) { public FlatQueryResult doFlatQuery(@RequestBody FlatQueryExecuteRequest executeRequest, HttpServletRequest request, HttpServletResponse response) {
System.out.println("doFlatQuery:" + executeRequest.getTableId()); logger.info("doFlatQuery:" + executeRequest.getTableId());
System.out.println("doFlatQuery:" + executeRequest.getQueryConditions().size()); logger.info("doFlatQuery:" + executeRequest.getQueryConditions().size());
String enterpriseId = SessionContextUtils.getLoginUserEnterpriseId(); String enterpriseId = SessionContextUtils.getLoginUserEnterpriseId();
EnterpriseSettingDTO setting = this.enterpriseService.getEnterpriseSettingByEnterpriseId(enterpriseId); EnterpriseSettingDTO setting = this.enterpriseService.getEnterpriseSettingByEnterpriseId(enterpriseId);
int dataPermission = 0; int dataPermission = 0;
...@@ -154,7 +158,7 @@ public class FlatQueryController { ...@@ -154,7 +158,7 @@ public class FlatQueryController {
dataPermission = setting.getDataPermission(); dataPermission = setting.getDataPermission();
} }
for (FlatQueryCondition condition : executeRequest.getQueryConditions()) { for (FlatQueryCondition condition : executeRequest.getQueryConditions()) {
System.out.println(condition.getFieldName() + " " + condition.getFieldType()); logger.info(condition.getFieldName() + " " + condition.getFieldType());
} }
AuthorizedUser loginUser = SessionContextUtils.getLoginUser(); AuthorizedUser loginUser = SessionContextUtils.getLoginUser();
DhSearchLogDTO dto = new DhSearchLogDTO(); DhSearchLogDTO dto = new DhSearchLogDTO();
......
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