refactor(conn record):通联查询重构,增加运营商查询条件验证

This commit is contained in:
doufenghu
2019-01-28 20:37:41 +06:00
parent 980d7c1c7e
commit c462477762
3 changed files with 69 additions and 129 deletions

View File

@@ -1,44 +1,8 @@
package com.nis.web.controller.restful;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import com.nis.datasource.CustomerContextHolder;
import com.nis.domain.Page;
import com.nis.domain.restful.NtcAppLog;
import com.nis.domain.restful.NtcBgpLog;
import com.nis.domain.restful.NtcCollectRadiusLog;
import com.nis.domain.restful.NtcCollectVoipLog;
import com.nis.domain.restful.NtcConnRecordLog;
import com.nis.domain.restful.NtcConnRecordPercent;
import com.nis.domain.restful.NtcDdosLog;
import com.nis.domain.restful.NtcDnsLog;
import com.nis.domain.restful.NtcFtpLog;
import com.nis.domain.restful.NtcHttpLog;
import com.nis.domain.restful.NtcHttpRecordLog;
import com.nis.domain.restful.NtcIpLog;
import com.nis.domain.restful.NtcIpsecLog;
import com.nis.domain.restful.NtcKeywordsUrlLog;
import com.nis.domain.restful.NtcL2tpLog;
import com.nis.domain.restful.NtcMailLog;
import com.nis.domain.restful.NtcOpenvpnLog;
import com.nis.domain.restful.NtcP2pLog;
import com.nis.domain.restful.NtcPptpLog;
import com.nis.domain.restful.NtcSshLog;
import com.nis.domain.restful.NtcSslLog;
import com.nis.domain.restful.NtcSslRecordLog;
import com.nis.domain.restful.NtcStreamingMediaLog;
import com.nis.domain.restful.NtcVoipLog;
import com.nis.domain.restful.*;
import com.nis.domain.restful.dashboard.TrafficAsnStatistic;
import com.nis.restful.RestBusinessCode;
import com.nis.restful.RestServiceException;
@@ -47,15 +11,22 @@ import com.nis.util.Constants;
import com.nis.util.DateUtils;
import com.nis.util.ExceptionUtil;
import com.nis.web.controller.BaseRestController;
import com.nis.web.service.AuditLogThread;
import com.nis.web.service.LogDataService;
import com.nis.web.service.NtcHttpRecordLogsService;
import com.nis.web.service.NtcSslRecordLogsService;
import com.nis.web.service.ServicesRequestLogService;
import com.nis.web.service.*;
import com.nis.web.service.restful.NtcLogService;
import com.wordnik.swagger.annotations.Api;
import com.wordnik.swagger.annotations.ApiOperation;
import com.zdjizhi.utils.StringUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Map;
/**
* @ClassName:NtcLogSearchController
@@ -702,18 +673,18 @@ public class NtcLogSearchController extends BaseRestController {
public Map<String, ?> ntcConnRecordLogs(Page page, NtcConnRecordLog ntcConnRecordLog, Model model,
HttpServletRequest request, HttpServletResponse response) {
long start = System.currentTimeMillis();
AuditLogThread auditLogThread = super.saveRequestLog(servicesRequestLogService, Constants.OPACTION_GET, request,
null);
AuditLogThread auditLogThread = super.saveRequestLog(servicesRequestLogService, Constants.OPACTION_GET, request, null);
try {
if (StringUtil.isEmpty(ntcConnRecordLog.getSearchFoundStartTime())
&& StringUtil.isEmpty(ntcConnRecordLog.getSearchFoundEndTime())) {
if (StringUtil.isBlank(ntcConnRecordLog.getSearchFoundStartTime())
&& StringUtil.isBlank(ntcConnRecordLog.getSearchFoundEndTime())) {
Map<String, String> map = DateUtils.getLocalTime(null, null, Constants.LOG_LOCAL_TIME, "minute");
ntcConnRecordLog.setSearchFoundStartTime(map.get("startTime"));
ntcConnRecordLog.setSearchFoundEndTime(map.get("endTime"));
}
ntcLogService.queryConditionCheck(auditLogThread, start, ntcConnRecordLog, NtcConnRecordLog.class, page);
ntcLogService.ntcConnRecordLogsQueryConditionCheck(auditLogThread, start, ntcConnRecordLog,
NtcConnRecordLog.class, page);
ntcLogService.ntcConnRecordLogsConditionCheck(auditLogThread, start, ntcConnRecordLog, NtcConnRecordLog.class, page);
logDataService.getData(page, ntcConnRecordLog);
} catch (Exception e) {
auditLogThread.setExceptionInfo("通联关系日志检索失败:" + e.getMessage());

View File

@@ -10,7 +10,9 @@ import com.nis.restful.RestServiceException;
import com.nis.restful.ServiceRuntimeException;
import com.nis.util.ExceptionUtil;
import com.nis.util.elasticsearch.ElasticsearchSqlDao;
import com.zdjizhi.utils.DateUtils;
import com.zdjizhi.utils.StringUtil;
import com.zdjizhi.utils.TimeConstants;
import org.apache.ibatis.mapping.ResultMap;
import org.apache.ibatis.mapping.ResultMapping;
import org.apache.ibatis.session.SqlSessionFactory;
@@ -20,8 +22,6 @@ import org.springframework.beans.factory.annotation.Autowired;
import javax.servlet.http.HttpServletRequest;
import java.io.Serializable;
import java.lang.reflect.Field;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
@@ -36,7 +36,6 @@ import java.util.Map;
@SuppressWarnings({ "rawtypes" })
public abstract class BaseLogService {
private static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
protected final Logger logger = Logger.getLogger(this.getClass());
@Autowired
protected ElasticsearchSqlDao elasticsearchSqlDao;
@@ -163,6 +162,7 @@ public abstract class BaseLogService {
throw new RestServiceException("getSearchDirection参数错误", RestBusinessCode.param_formate_error.getValue());
}
try {
if (!StringUtil.isBlank(entity.getSearchEntranceId())) {
Long.parseLong(entity.getSearchEntranceId());
@@ -175,24 +175,17 @@ public abstract class BaseLogService {
try {
if (!StringUtil.isBlank(entity.getSearchFoundEndTime())) {
sdf.setLenient(false);
sdf.parse(entity.getSearchFoundEndTime());
DateUtils.convertStringToDate(entity.getSearchFoundEndTime(), TimeConstants.YYYY_MM_DD_HH24_MM_SS);
}
} catch (ParseException e) {
throw new RestServiceException("searchFoundEndTime参数格式错误", RestBusinessCode.param_formate_error.getValue());
} catch (Exception e) {
throw new RestServiceException("searchFoundEndTime参数错误", RestBusinessCode.param_formate_error.getValue());
}
try {
if (!StringUtil.isBlank(entity.getSearchFoundStartTime())) {
sdf.setLenient(false);
sdf.parse(entity.getSearchFoundStartTime());
DateUtils.convertStringToDate(entity.getSearchFoundStartTime(), TimeConstants.YYYY_MM_DD_HH24_MM_SS);
}
} catch (ParseException e) {
throw new RestServiceException("searchFoundStartTime参数格式错误",
RestBusinessCode.param_formate_error.getValue());
} catch (Exception e) {
} catch (Exception e) {
throw new RestServiceException("searchFoundStartTime参数错误", RestBusinessCode.param_formate_error.getValue());
}
//service参数改为可以传多个
@@ -207,15 +200,7 @@ public abstract class BaseLogService {
}
}
// try {
// if (!StringUtil.isBlank(entity.getSearchService())) {
// Integer.parseInt(entity.getSearchService());
// }
// } catch (NumberFormatException e) {
// throw new RestServiceException("searchService参数格式错误", RestBusinessCode.param_formate_error.getValue());
// } catch (Exception e) {
// throw new RestServiceException("searchService参数错误", RestBusinessCode.param_formate_error.getValue());
// }
try {
checkCloumnIsExist(thread, start, clazz, page);
} catch (RestServiceException e) {
@@ -242,24 +227,17 @@ public abstract class BaseLogService {
logger.info("请求参数校验开始----" + System.currentTimeMillis());
try {
if (!StringUtil.isBlank(entity.getSearchFoundEndTime())) {
sdf.setLenient(false);
sdf.parse(entity.getSearchFoundEndTime());
DateUtils.convertStringToDate(entity.getSearchFoundEndTime(), TimeConstants.YYYY_MM_DD_HH24_MM_SS);
}
} catch (ParseException e) {
throw new RestServiceException("searchFoundEndTime参数格式错误", RestBusinessCode.param_formate_error.getValue());
} catch (Exception e) {
throw new RestServiceException("searchFoundEndTime参数格式格式", RestBusinessCode.param_formate_error.getValue());
throw new RestServiceException("searchFoundEndTime参数错误", RestBusinessCode.param_formate_error.getValue());
}
try {
if (!StringUtil.isBlank(entity.getSearchFoundStartTime())) {
sdf.setLenient(false);
sdf.parse(entity.getSearchFoundStartTime());
DateUtils.convertStringToDate(entity.getSearchFoundStartTime(), TimeConstants.YYYY_MM_DD_HH24_MM_SS);
}
} catch (ParseException e) {
throw new RestServiceException("searchFoundStartTime参数格式错误",
RestBusinessCode.param_formate_error.getValue());
} catch (Exception e) {
} catch (Exception e) {
throw new RestServiceException("searchFoundStartTime参数错误", RestBusinessCode.param_formate_error.getValue());
}
@@ -296,28 +274,24 @@ public abstract class BaseLogService {
// searchService
checkNumericCondition(thread, start, entity.getSearchService(), "searchService");
try {
if (!StringUtil.isBlank(entity.getSearchReportStartTime())) {
sdf.parse(entity.getSearchReportStartTime());
DateUtils.convertStringToDate(entity.getSearchReportStartTime(), TimeConstants.YYYY_MM_DD_HH24_MM_SS);
}
} catch (ParseException e) {
throw new RestServiceException("searchReportStartTime参数格式错误",
RestBusinessCode.param_formate_error.getValue());
} catch (Exception e) {
throw new RestServiceException("searchReportStartTime参数错误",
RestBusinessCode.param_formate_error.getValue());
throw new RestServiceException("searchReportStartTime参数格式错误", RestBusinessCode.param_formate_error.getValue());
}
try {
if (!StringUtil.isBlank(entity.getSearchReportEndTime())) {
sdf.parse(entity.getSearchReportEndTime());
DateUtils.convertStringToDate(entity.getSearchReportEndTime(), TimeConstants.YYYY_MM_DD_HH24_MM_SS);
}
} catch (ParseException e) {
throw new RestServiceException("searchReportEndTime参数格式错误",
RestBusinessCode.param_formate_error.getValue());
} catch (Exception e) {
} catch (Exception e) {
throw new RestServiceException("searchReportEndTime参数错误", RestBusinessCode.param_formate_error.getValue());
}
if (!StringUtil.isBlank(entity.getSearchBusinessType())
&& !StringUtil.isNumeric(entity.getSearchBusinessType())) {
throw new RestServiceException("searchBusinessType参数格式错误", RestBusinessCode.param_formate_error.getValue());
@@ -370,35 +344,29 @@ public abstract class BaseLogService {
throw new RestServiceException("searchBusinessType参数格式错误", RestBusinessCode.param_formate_error.getValue());
}
int timeCount = 0;
if (StringUtil.isBlank(entity.getSearchReportStartTime())
|| StringUtil.isBlank(entity.getSearchReportEndTime())) {
throw new RestServiceException("searchReportStartTime和searchReportEndTime参数必须同时填写",
RestBusinessCode.config_integrity_error.getValue());
}
try {
if (!StringUtil.isBlank(entity.getSearchReportStartTime())) {
sdf.parse(entity.getSearchReportStartTime());
timeCount++;
DateUtils.convertStringToDate(entity.getSearchReportStartTime(), TimeConstants.YYYY_MM_DD_HH24_MM_SS);
}
} catch (ParseException e) {
throw new RestServiceException("searchReportStartTime参数格式错误",
RestBusinessCode.param_formate_error.getValue());
} catch (Exception e) {
} catch (Exception e) {
throw new RestServiceException("searchReportStartTime参数错误",
RestBusinessCode.param_formate_error.getValue());
}
try {
if (!StringUtil.isBlank(entity.getSearchReportEndTime())) {
sdf.parse(entity.getSearchReportEndTime());
timeCount++;
DateUtils.convertStringToDate(entity.getSearchReportEndTime(), TimeConstants.YYYY_MM_DD_HH24_MM_SS);
}
} catch (ParseException e) {
throw new RestServiceException("searchReportEndTime参数格式错误",
RestBusinessCode.param_formate_error.getValue());
} catch (Exception e) {
throw new RestServiceException("searchReportEndTime参数错误", RestBusinessCode.param_formate_error.getValue());
}
if (timeCount == 1) {
throw new RestServiceException("searchReportStartTime和searchReportEndTime参数必须同时填写",
RestBusinessCode.config_integrity_error.getValue());
}
// 根据用户查看IP趋势时(searchBusinessType=2),用户名必需填写
if ("2".equals(entity.getSearchBusinessType()) && StringUtil.isEmpty(entity.getSearchAccount())) {

View File

@@ -30,11 +30,13 @@ public class NtcLogService extends BaseLogService {
* @param clazz
* @param page
*/
public void ntcConnRecordLogsQueryConditionCheck(AuditLogThread thread, long start, NtcConnRecordLog entity, Class clazz, Page page) {
public void ntcConnRecordLogsConditionCheck(AuditLogThread thread, long start, NtcConnRecordLog entity, Class clazz, Page page) {
logger.info("ntcConnRecordLogsQueryConditionCheck start----" + System.currentTimeMillis());
queryConditionCheck(thread, start, entity, clazz, page);
//app protocol website
if (!StringUtil.isBlank(entity.getSearchAppId())) {
if (StringUtil.isNotBlank(entity.getSearchAppId())) {
String[] split = org.apache.commons.lang.StringUtils.split(entity.getSearchAppId(), ",");
if (split.length > 10) {
throw new RestServiceException("searchAppId max(10)",
@@ -49,7 +51,7 @@ public class NtcLogService extends BaseLogService {
}
}
if (!StringUtil.isBlank(entity.getSearchProtoId())) {
if (StringUtil.isNotBlank(entity.getSearchProtoId())) {
String[] split = org.apache.commons.lang.StringUtils.split(entity.getSearchProtoId(), ",");
if (split.length > 10) {
throw new RestServiceException("searchProtoId max(10)",
@@ -64,7 +66,7 @@ public class NtcLogService extends BaseLogService {
}
}
if (!StringUtil.isBlank(entity.getSearchWebId())) {
if (StringUtil.isNotBlank(entity.getSearchWebId())) {
String[] split = org.apache.commons.lang.StringUtils.split(entity.getSearchWebId(), ",");
if (split.length > 10) {
throw new RestServiceException("searchWebId max(10)",
@@ -80,25 +82,24 @@ public class NtcLogService extends BaseLogService {
}
}
try {
if (!StringUtil.isBlank(entity.getSearchDirection())) {
Integer.parseInt(entity.getSearchDirection());
if (StringUtil.isNotBlank(entity.getSearchIspCode())) {
String[] split = org.apache.commons.lang.StringUtils.split(entity.getSearchIspCode(), ",");
if (split.length > 10) {
throw new RestServiceException("searchIspCode max(10)",
RestBusinessCode.param_formate_error.getValue());
}
for (String ispCode : split) {
try {
Long.parseLong(ispCode);
} catch (Exception e) {
throw new RestServiceException("searchIspCode 参数错误", RestBusinessCode.param_formate_error.getValue());
}
}
} catch (NumberFormatException e) {
throw new RestServiceException("getSearchDirection参数格式错误", RestBusinessCode.param_formate_error.getValue());
} catch (Exception e) {
throw new RestServiceException("getSearchDirection参数错误", RestBusinessCode.param_formate_error.getValue());
}
try {
if (!StringUtil.isBlank(entity.getSearchEntranceId())) {
Long.parseLong(entity.getSearchEntranceId());
}
} catch (NumberFormatException e) {
throw new RestServiceException("searchEntranceId参数格式错误", RestBusinessCode.param_formate_error.getValue());
} catch (Exception e) {
throw new RestServiceException("searchEntranceId参数错误", RestBusinessCode.param_formate_error.getValue());
}
logger.info("ntcConnRecordLogsQueryConditionCheck end----" + System.currentTimeMillis());
}