Commit 1843085a by fudahua

Merge branch 'developer' into 'master'

Developer

See merge request !48
parents 6fabc7f7 d0077ff7
......@@ -31,6 +31,25 @@
<dependencies>
<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>
<artifactId>opencsv</artifactId>
<version>3.3</version>
......@@ -78,6 +97,11 @@
-->
<dependency>
<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>
<version>2.8.2</version>
</dependency>
......
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.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.concurrent.BasicThreadFactory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.*;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.ScheduledThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
@Component
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");
......@@ -58,4 +68,68 @@ public class FilterFieldUtils {
}
}, 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 {
int columnType = resultSet.getMetaData().getColumnType(i + 1);
switch (columnType) {
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;
case Types.DATE:
//result[i] = resultSet.getTimestamp(columnName) != null ? dateFormatter.format(resultSet.getTimestamp(columnName)) : "";
......@@ -216,6 +218,10 @@ public class CsvResultSetHelper implements ResultSetHelper {
if(s2.contains("E0") || s2.startsWith("0")){
s2 = s2 + "\t";
}
s2=s2.replace("\r","");
s2=s2.replace("\n","");
s2=s2.replace(",",",");
s2=s2.replace("\"","");
}
result.add(s2);
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;
import com.gic.enterprise.api.service.EnterpriseService;
import com.gic.enterprise.api.service.StoreWidgetService;
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.stereotype.Controller;
import org.springframework.util.CollectionUtils;
......@@ -39,6 +41,8 @@ import java.util.List;
@Controller
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");
......@@ -145,8 +149,8 @@ public class FlatQueryController {
*/
@RequestMapping("/flat-query")
public FlatQueryResult doFlatQuery(@RequestBody FlatQueryExecuteRequest executeRequest, HttpServletRequest request, HttpServletResponse response) {
System.out.println("doFlatQuery:" + executeRequest.getTableId());
System.out.println("doFlatQuery:" + executeRequest.getQueryConditions().size());
logger.info("doFlatQuery:" + executeRequest.getTableId());
logger.info("doFlatQuery:" + executeRequest.getQueryConditions().size());
String enterpriseId = SessionContextUtils.getLoginUserEnterpriseId();
EnterpriseSettingDTO setting = this.enterpriseService.getEnterpriseSettingByEnterpriseId(enterpriseId);
int dataPermission = 0;
......@@ -154,7 +158,7 @@ public class FlatQueryController {
dataPermission = setting.getDataPermission();
}
for (FlatQueryCondition condition : executeRequest.getQueryConditions()) {
System.out.println(condition.getFieldName() + " " + condition.getFieldType());
logger.info(condition.getFieldName() + " " + condition.getFieldType());
}
AuthorizedUser loginUser = SessionContextUtils.getLoginUser();
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