Merge branch 'develop' of https://git.mesalab.cn/K18_NTCS_WEB/NTC.git into develop

This commit is contained in:
tanghao
2018-12-29 18:34:22 +08:00
69 changed files with 2608 additions and 830 deletions

View File

@@ -167,7 +167,7 @@ public class SysUser extends BaseEntity<SysUser> {
}
public static boolean isAdmin(String loginId){
return loginId != null && "admin".equals(loginId);
return loginId != null && "ceiec".equals(loginId);
}

View File

@@ -52,6 +52,9 @@ public class PxyObjSpoofingIpPool extends BaseIpCfg{
this.ipAddress = ipAddress;
}
public Integer getGroupId() {
if((groupId==null || groupId==0) && cfgId!=null){
groupId=cfgId.intValue();
}
return groupId;
}
public void setGroupId(Integer groupId) {

File diff suppressed because it is too large Load Diff

View File

@@ -1042,7 +1042,7 @@ public class ExportExcel {
//expr type
if("key_word".equals(headerStr)){
if(!StringUtil.isEmpty(region.getConfigMultiKeywords())){
if(region.getConfigMultiKeywords().equals(1)){//多关键字输入TODO
if(region.getConfigMultiKeywords().equals("1")){//多关键字输入TODO
commentStr=commentStr+msgProp.getProperty("rule_desc_tip")+":\n";
index++;
//允许输入多关键字,多个关键字用换行表示

View File

@@ -77,7 +77,8 @@ public class TaskInfoController extends BaseController{
}else{
if (!"true".equals(checkTaskName(taskInfo.getTaskName()))){
logger.info(taskInfo.getTaskName()+"重复数据");
addMessage("error",model,"save_failed");
Properties props=this.getMsgProp();
addMessage("error",model,props.getProperty("duplicate", "Duplicate")+" "+props.getProperty("task_name", "Task Name"));
return form(taskInfo, model);
}
// 保存用户信息

View File

@@ -83,7 +83,8 @@ public class RequestInfoController extends BaseController{
}else{
if (!"true".equals(checkRequestNumber(requestInfo.getRequestNumber()))){
logger.info(requestInfo.getRequestNumber()+"重复数据");
addMessage("error",model,"save_failed");
Properties props=this.getMsgProp();
addMessage("error",model,props.getProperty("duplicate", "Duplicate")+" "+props.getProperty("title", "Title"));
return form(requestInfo, model);
}
// 保存用户信息

View File

@@ -300,11 +300,16 @@ public class IpController extends BaseController{
,FunctionServiceDict serviceDict
,Integer requestId) throws Exception{
Properties pro=getMsgProp();
//String serviceName=pro.getProperty(serviceDict.getServiceName());
String regionName=pro.getProperty(regionDict.getConfigRegionValue());
//serviceName=StringUtil.isEmpty(serviceName) ?serviceDict.getServiceName():serviceName;
regionName=StringUtil.isEmpty(regionName) ?regionDict.getConfigRegionValue():regionName;
String fileName = regionName+"_Template.xlsx";
String menuCode = menuService.getMenuCodeByFunctionId(serviceDict.getFunctionId());
String menuName = pro.getProperty(menuCode);
String regionName = pro.getProperty(regionDict.getConfigRegionValue());
menuName = StringUtil.isEmpty(menuName) ? menuCode : menuName;
regionName = StringUtil.isEmpty(regionName) ? regionDict.getConfigRegionValue() : regionName;
String fileName = regionName + "_Template.xlsx";
if(!menuName.equalsIgnoreCase(regionName)) {
fileName = menuName +"_"+ fileName;
}
//ip类模板
if(regionDict.getRegionType().equals(1)){
if(regionDict.getFunctionId().equals(5)){// IP Address

View File

@@ -26,6 +26,7 @@ import com.nis.domain.configuration.HttpUrlCfg;
import com.nis.domain.configuration.InterceptPktBin;
import com.nis.domain.configuration.IpPortCfg;
import com.nis.domain.configuration.PxyObjKeyring;
import com.nis.domain.configuration.PxyObjSpoofingIpPool;
import com.nis.exceptions.MaatConvertException;
import com.nis.util.Constants;
import com.nis.util.DictUtils;
@@ -60,9 +61,18 @@ public class InterceptController extends CommonController {
certificateList = pxyObjKeyringService.findPxyObjKeyrings(null, 1, 1, "domain");
}
model.addAttribute("certificateList", certificateList);
// IP地址仿冒策略使用策略组
List<PolicyGroupInfo> policyGroups = policyGroupInfoService.findPolicyGroupInfosByType(6);
model.addAttribute("policyGroups", policyGroups);
/*if(cfg.getFunctionId().equals(214)){
// IP地址仿冒策略使用策略组
//List<PolicyGroupInfo> policyGroups = policyGroupInfoService.findPolicyGroupInfosByType(6);
List<CfgIndexInfo> list = page.getList();
for(CfgIndexInfo c:list){
Long cfgId = Long.parseLong(c.getUserRegion2());//user_region2字段存储的为IP仿冒池的ID信息(策略组ID
PxyObjSpoofingIpPool pool = pxyObjSpoofingIpPoolService.getPxyObjSpoofingIpPool(cfgId);
c.setUserRegion2(pool.getGroupName());//将IP仿冒池的策略组名重新赋给user_region2
}
// model.addAttribute("policyGroups", policyGroups);
}*/
return "/cfg/intercept/interceptList";
}
@@ -86,8 +96,9 @@ public class InterceptController extends CommonController {
model.addAttribute("_cfg", entity);
// IP地址仿冒策略使用策略组
List<PolicyGroupInfo> policyGroups = policyGroupInfoService.findPolicyGroupInfosByType(6);
model.addAttribute("policyGroups", policyGroups);
// List<PolicyGroupInfo> policyGroups = policyGroupInfoService.findPolicyGroupInfosByType(6);
// List<PxyObjSpoofingIpPool> pools = pxyObjSpoofingIpPoolService.findPxyObjSpoofingIpPools(new PxyObjSpoofingIpPool());
// model.addAttribute("policyGroups", pools);
return "/cfg/intercept/interceptForm";
}

View File

@@ -89,7 +89,7 @@ public class PxyObjSpoofingIpPoolController extends BaseController {
model.addAttribute("isAdd", true);
}
List<PolicyGroupInfo> groups=policyGroupInfoService.findPolicyGroupInfosByType(6);
/*List<PolicyGroupInfo> groups=policyGroupInfoService.findPolicyGroupInfosByType(6);
List<PolicyGroupInfo> policyGroups = new ArrayList();
//解决目前一个分组只能有一个生效IP
for(PolicyGroupInfo group:groups){
@@ -101,7 +101,7 @@ public class PxyObjSpoofingIpPoolController extends BaseController {
policyGroups.add(group);
}
}
model.addAttribute("policyGroups", policyGroups);
model.addAttribute("policyGroups", policyGroups);*/
model.addAttribute("_cfg", cfg);
return "/cfg/proxy/spoofingIpPool/form";
}

View File

@@ -10,6 +10,7 @@ import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Properties;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@@ -133,4 +134,61 @@ public class ConfigureStatisticsController extends BaseController{
map.put("ruleLimit", ruleLimit);
return map;
}
//configureStateStatisticsPrint
@ResponseBody
@RequestMapping(value = {"/configureStateStatisticsPrint"})
public Map configureStateStatisticsPrint(Model model,HttpServletRequest request
,HttpServletResponse response
,RedirectAttributes redirectAttributes){
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
/****************************Request Info Statistics*****************************/
//1、查询所有有效的service
List<FunctionServiceDict> serviceDictList = DictUtils.getFunctionServiceDictList();
//2、查询所有菜单
List<SysMenu> menuList = UserUtils.getMenuCfgList();
//3、根据来函分页
RequestInfo requestInfo=new RequestInfo();
requestInfo.setIsAudit(1);
requestInfo.setIsValid(1);
Page page = new Page(request, response,"r");
page.setPageNo(1);
page.setPageSize(Constants.MAX_LOG_EXPORT_SIZE);
Page requestPage = requestInfoService.findRequestInfo(page,requestInfo);
List<RequestInfo> requestInfos=requestPage.getList();
//4、根据当前页的requestInfo信息查询request统计信息
List<Object[]> requestStatisticList=new ArrayList<Object[]>();
if(!StringUtil.isEmpty(requestInfos)){
Date requestStatisticTime=configureStatisticsService.getRequestStatisticTime();
String requestStatisticTimeStr="";
if(!StringUtil.isEmpty(requestStatisticTime)){
requestStatisticTimeStr=sdf.format(requestStatisticTime);
}
requestStatisticList=configureStatisticsService.getRequestStateStatistics(requestInfos,menuList,requestStatisticTimeStr);
if(!StringUtil.isEmpty(requestStatisticList)){
for (Iterator iterator = requestStatisticList.iterator(); iterator.hasNext();) {
Map map = (Map) iterator.next();
for (RequestInfo requestInfoO : requestInfos) {
if(requestInfoO.getId().toString().equals(map.get("request").toString())){
map.put("request", requestInfoO.getRequestTitle());
}
}
}
}
model.addAttribute("requestStatisticTime", requestStatisticTimeStr);
}
Properties msgProp = getMsgProp();
for (int i = 0; i < menuList.size(); i++) {
String property = msgProp.getProperty(menuList.get(i).getCode(), menuList.get(i).getCode());
menuList.get(i).setCode(property);
}
requestPage.setList(requestStatisticList);
model.addAttribute("requestInfos", requestInfos);
model.addAttribute("serviceList", serviceDictList);
model.addAttribute("page", requestPage);
Map<String,Object> maps=new HashMap<String,Object>();
maps.put("menuList", menuList);
maps.put("requestStatisticList", requestStatisticList);
return maps;
}
}

View File

@@ -71,7 +71,7 @@ public class TrafficStatisticsInfoController extends BaseController {
Double dropConnNum=0d;
Double monitorNum=0d;
Double loopConnNum=0d;
Double liveConnNum=0d;
Double closeConnNum=0d;
Double newUniConnNum=0d;
Double inoctetsNum=0d;
Double outoctetsNum=0d;
@@ -86,7 +86,7 @@ public class TrafficStatisticsInfoController extends BaseController {
monitorNum = (Double) map.get("monitorNum");
dropConnNum = (Double) map.get("dropConnNum");
loopConnNum = (Double) map.get("loopConnNum");
liveConnNum = (Double) map.get("liveConnNum");
closeConnNum = (Double) map.get("closeConnNum");
newUniConnNum = (Double) map.get("newUniConnNum");
inoctetsNum = (Double) map.get("inoctets");
outoctetsNum = (Double) map.get("outoctets");
@@ -100,7 +100,7 @@ public class TrafficStatisticsInfoController extends BaseController {
m.put("monitorNum", monitorNum);
m.put("loopConnNum", loopConnNum);
m.put("dropConnNum", dropConnNum);
m.put("liveConnNum", liveConnNum);
m.put("closeConnNum", closeConnNum);
m.put("newUniConnNum", newUniConnNum);
m.put("bandwidth", bandwidth);
@@ -681,7 +681,7 @@ public class TrafficStatisticsInfoController extends BaseController {
if("new_link".equals(searchAction)){
url=url+"&searchBusinessType="+3;
}
if("active_link".equals(searchAction)){
if("close_link".equals(searchAction)){
url=url+"&searchBusinessType="+4;
}
if("pass".equals(searchAction)){

View File

@@ -34,6 +34,7 @@ import com.nis.domain.log.BaseLogEntity;
import com.nis.domain.maat.LogRecvData;
import com.nis.domain.report.NtcAsnRecord;
import com.nis.domain.report.NtcIpRangeReport;
import com.nis.util.Configurations;
import com.nis.util.Constants;
import com.nis.util.DateUtils;
import com.nis.util.StringUtil;
@@ -69,7 +70,7 @@ public class TrafficStatisticsReportController extends BaseController {
if ("3".endsWith(searchBusinessType)) {
model.addAttribute("searchBusinessType", 3);// IP查询
}
String url = Constants.DASHBOARD_URL + Constants.NTC_RADIUS_REPORT;
String url = Configurations.getStringProperty("dashboardUrlV2","dashboardUrlV2") + Constants.NTC_RADIUS_REPORT;
String statTime = bean.getSearchFoundStartTime();
String endTime = bean.getSearchFoundEndTime();
String account = bean.getAccount();
@@ -221,7 +222,7 @@ public class TrafficStatisticsReportController extends BaseController {
if ("3".endsWith(searchBusinessType)) {
model.addAttribute("searchBusinessType", 3);// IP查询
}
String url = Constants.DASHBOARD_URL + Constants.NTC_RADIUS_REPORT;
String url = Configurations.getStringProperty("dashboardUrlV2","dashboardUrlV2")+ Constants.NTC_RADIUS_REPORT;
String statTime = bean.getSearchFoundStartTime();
String endTime = bean.getSearchFoundEndTime();
String account = bean.getAccount();

View File

@@ -21,6 +21,7 @@ import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
import com.google.gson.Gson;
@@ -35,16 +36,16 @@ import com.nis.util.Constants;
import com.nis.util.TimeConstants;
import com.nis.util.httpclient.HttpClientUtil;
import com.nis.web.controller.BaseController;
import com.nis.web.service.basics.TaskInfoService;
import com.nis.web.service.configuration.RequestInfoService;
@Controller
@RequestMapping("${adminPath}/eventBlock")
public class NtcEventBlockController extends BaseController {
protected static Logger logger = LoggerFactory.getLogger(NtcEventBlockController.class);
@Autowired
private TaskInfoService taskInfoService;
private RequestInfoService requestInfoService;
/**
* EventBlock
@@ -89,15 +90,20 @@ public class NtcEventBlockController extends BaseController {
params.put("searchTaskStartTime", searchTaskStartTime);
params.put("searchTaskEndTime", searchTaskEndTime);
if (StringUtils.isNotBlank(log.getTaskIds())) {
params.put("taskIds", log.getTaskIds());
}
log.setSearchReportStartTime(searchReportStartTime);
log.setSearchReportEndTime(searchReportEndTime);
log.setSearchTaskStartTime(searchTaskStartTime);
log.setSearchTaskEndTime(searchTaskEndTime);
params.put("reportType", 1);
String url = Constants.LOG_BASE_URL + Constants.NTC_EVENT_MONITOR_OR_BLOCK_Report;
// String url = "http://192.168.11.56:8888/galaxy-service/service/log/v1/ntcEventsMonitorOrBlock";
// String url =
// "http://192.168.11.56:8888/galaxy-service/service/log/v1/ntcEventsMonitorOrBlock";
String recv = HttpClientUtil.getMsg(url, params, request);
if (StringUtils.isNotBlank(recv)) {
Gson gson = new GsonBuilder().create();
@@ -111,7 +117,7 @@ public class NtcEventBlockController extends BaseController {
page.setList(data.getList());
model.addAttribute("page", page);
// 获取专项列表
List<TaskInfo> taskList = taskInfoService.findTaskInfo(new TaskInfo());
List<TaskInfo> taskList = requestInfoService.showTask(new TaskInfo());
model.addAttribute("taskList", taskList);
}
}
@@ -142,7 +148,6 @@ public class NtcEventBlockController extends BaseController {
params.put("pageSize", page.getPageSize());
params.put("pageNo", page.getPageNo());
// 判断请求参数
String searchReportStartTime = null;
String searchReportEndTime = null;
@@ -167,7 +172,6 @@ public class NtcEventBlockController extends BaseController {
params.put("searchReportEndTime", searchReportEndTime);
params.put("searchTaskStartTime", searchTaskStartTime);
params.put("searchTaskEndTime", searchTaskEndTime);
if (StringUtils.isNotBlank(log.getTaskIds())) {
params.put("taskIds", log.getTaskIds());
@@ -177,11 +181,12 @@ public class NtcEventBlockController extends BaseController {
log.setSearchReportEndTime(searchReportEndTime);
log.setSearchTaskStartTime(searchTaskStartTime);
log.setSearchTaskEndTime(searchTaskEndTime);
params.put("reportType", 1);
String url = Constants.LOG_BASE_URL + Constants.NTC_EVENT_MONITOR_OR_BLOCK_Report;
// String url = "http://192.168.11.56:8888/galaxy-service/service/log/v1/ntcEventsMonitorOrBlock";
// String url =
// "http://192.168.11.56:8888/galaxy-service/service/log/v1/ntcEventsMonitorOrBlock";
String recv = HttpClientUtil.getMsg(url, params, request);
List<NtcEventMonitorOrBlockReport> list = new ArrayList<>();
if (StringUtils.isNotBlank(recv)) {
@@ -199,7 +204,7 @@ public class NtcEventBlockController extends BaseController {
titleList.add("ntc_event_block_report");
classMap.put("ntc_event_block_report", NtcEventMonitorOrBlockReport.class);
String cfgIndexInfoNoExport = "";
String cfgIndexInfoNoExport = "," + hColumns + ",";
noExportMap.put("ntc_event_block_report", cfgIndexInfoNoExport);
Properties msgProp = getMsgProp();
@@ -327,4 +332,75 @@ public class NtcEventBlockController extends BaseController {
return dateTime.toString(TimeConstants.YYYY_MM_DD_HH24_MM_SS);
}
// eventBlockPrint
@ResponseBody
@RequestMapping(value = "eventBlockPrint")
public List<NtcEventMonitorOrBlockReport> eventBlockPrint(@ModelAttribute("log") NtcEventMonitorOrBlockReport log,
Model model, HttpServletRequest request, HttpServletResponse response,
RedirectAttributes redirectAttributes) {
try {
PageLog<NtcEventMonitorOrBlockReport> page = new PageLog<NtcEventMonitorOrBlockReport>(request, response);
Map<String, Object> params = new HashMap<String, Object>();
page.setPageNo(1);
page.setPageSize(Constants.MAX_LOG_EXPORT_SIZE);
params.put("pageSize", page.getPageSize());
params.put("pageNo", page.getPageNo());
// 判断请求参数
String searchReportStartTime = null;
String searchReportEndTime = null;
String searchTaskStartTime = null;
String searchTaskEndTime = null;
/**
* 对统计时间参数进行处理 开始-结束(一周内[7天])
*/
String[] serachReportTimes = getSerachTimes(log.getSearchReportStartTime(), log.getSearchReportEndTime());
searchReportStartTime = serachReportTimes[0];
searchReportEndTime = serachReportTimes[1];
/**
* 对报送时间参数进行处理 开始-结束(一周内[7天])
*/
String[] serachTaskTimes = getSerachTimes(log.getSearchTaskStartTime(), log.getSearchTaskEndTime());
searchTaskStartTime = serachTaskTimes[0];
searchTaskEndTime = serachTaskTimes[1];
params.put("searchReportStartTime", searchReportStartTime);
params.put("searchReportEndTime", searchReportEndTime);
params.put("searchTaskStartTime", searchTaskStartTime);
params.put("searchTaskEndTime", searchTaskEndTime);
if (StringUtils.isNotBlank(log.getTaskIds())) {
params.put("taskIds", log.getTaskIds());
}
log.setSearchReportStartTime(searchReportStartTime);
log.setSearchReportEndTime(searchReportEndTime);
log.setSearchTaskStartTime(searchTaskStartTime);
log.setSearchTaskEndTime(searchTaskEndTime);
params.put("reportType", 1);
String url = Constants.LOG_BASE_URL + Constants.NTC_EVENT_MONITOR_OR_BLOCK_Report;
// String url =
// "http://192.168.11.56:8888/galaxy-service/service/log/v1/ntcEventsMonitorOrBlock";
String recv = HttpClientUtil.getMsg(url, params, request);
List<NtcEventMonitorOrBlockReport> list = new ArrayList<>();
if (StringUtils.isNotBlank(recv)) {
Gson gson = new GsonBuilder().create();
LogRecvData<NtcEventMonitorOrBlockReport> fromJson = gson.fromJson(recv,
new TypeToken<LogRecvData<NtcEventMonitorOrBlockReport>>() {
}.getType());
if (fromJson.getStatus().intValue() == 200) {
Page<NtcEventMonitorOrBlockReport> data = fromJson.getData();
list = data.getList();
}
}
return list;
} catch (Exception e) {
logger.error("ntc_event_block_report print failed", e);
addMessage(redirectAttributes, "error", "print_failed");
}
return null;
}
}

View File

@@ -21,6 +21,7 @@ import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
import com.google.gson.Gson;
@@ -31,12 +32,11 @@ import com.nis.domain.PageLog;
import com.nis.domain.configuration.TaskInfo;
import com.nis.domain.maat.LogRecvData;
import com.nis.domain.report.NtcEventKeyProtectionReport;
import com.nis.domain.report.NtcEventMonitorOrBlockReport;
import com.nis.util.Constants;
import com.nis.util.TimeConstants;
import com.nis.util.httpclient.HttpClientUtil;
import com.nis.web.controller.BaseController;
import com.nis.web.service.basics.TaskInfoService;
import com.nis.web.service.configuration.RequestInfoService;
@Controller
@RequestMapping("${adminPath}/eventKeyProtection")
@@ -45,7 +45,7 @@ public class NtcEventKeyProtectionController extends BaseController {
protected static Logger logger = LoggerFactory.getLogger(NtcEventKeyProtectionController.class);
@Autowired
private TaskInfoService taskInfoService;
private RequestInfoService requestInfoService;
/**
* EventBlock
@@ -94,6 +94,11 @@ public class NtcEventKeyProtectionController extends BaseController {
params.put("taskIds", log.getTaskIds());
}
log.setSearchReportStartTime(searchReportStartTime);
log.setSearchReportEndTime(searchReportEndTime);
log.setSearchTaskStartTime(searchTaskStartTime);
log.setSearchTaskEndTime(searchTaskEndTime);
String url = Constants.LOG_BASE_URL + Constants.NTC_EVENT_KEYPROTECTION_Report;
// String url =
// "http://192.168.11.56:8888/galaxy-service/service/log/v1/ntcEventKeyProtection";
@@ -110,7 +115,7 @@ public class NtcEventKeyProtectionController extends BaseController {
page.setList(data.getList());
model.addAttribute("page", page);
// 获取专项列表
List<TaskInfo> taskList = taskInfoService.findTaskInfo(new TaskInfo());
List<TaskInfo> taskList = requestInfoService.showTask(new TaskInfo());
model.addAttribute("taskList", taskList);
}
}
@@ -195,7 +200,7 @@ public class NtcEventKeyProtectionController extends BaseController {
titleList.add("ntc_event_key_protection_report");
classMap.put("ntc_event_key_protection_report", NtcEventKeyProtectionReport.class);
String cfgIndexInfoNoExport = "";
String cfgIndexInfoNoExport = "," + hColumns + ",";
noExportMap.put("ntc_event_key_protection_report", cfgIndexInfoNoExport);
Properties msgProp = getMsgProp();
@@ -320,4 +325,72 @@ public class NtcEventKeyProtectionController extends BaseController {
return dateTime.toString(TimeConstants.YYYY_MM_DD_HH24_MM_SS);
}
//eventKeyProtectionPrint
@ResponseBody
@RequestMapping(value = "eventKeyProtectionPrint")
public List<NtcEventKeyProtectionReport> eventKeyProtectionPrint(@ModelAttribute("log") NtcEventKeyProtectionReport log, Model model,
HttpServletRequest request, HttpServletResponse response,RedirectAttributes redirectAttributes) {
try {
PageLog<NtcEventKeyProtectionReport> page = new PageLog<NtcEventKeyProtectionReport>(request, response);
Map<String, Object> params = new HashMap<String, Object>();
page.setPageNo(1);
page.setPageSize(Constants.MAX_LOG_EXPORT_SIZE);
params.put("pageSize", page.getPageSize());
params.put("pageNo", page.getPageNo());
// 判断请求参数
String searchReportStartTime = null;
String searchReportEndTime = null;
String searchTaskStartTime = null;
String searchTaskEndTime = null;
/**
* 对统计时间参数进行处理 开始-结束(一周内[7天])
*/
String[] serachReportTimes = getSerachTimes(log.getSearchReportStartTime(), log.getSearchReportEndTime());
searchReportStartTime = serachReportTimes[0];
searchReportEndTime = serachReportTimes[1];
/**
* 对报送时间参数进行处理 开始-结束(一周内[7天])
*/
String[] serachTaskTimes = getSerachTimes(log.getSearchTaskStartTime(), log.getSearchTaskEndTime());
searchTaskStartTime = serachTaskTimes[0];
searchTaskEndTime = serachTaskTimes[1];
params.put("searchReportStartTime", searchReportStartTime);
params.put("searchReportEndTime", searchReportEndTime);
params.put("searchTaskStartTime", searchTaskStartTime);
params.put("searchTaskEndTime", searchTaskEndTime);
if (StringUtils.isNotBlank(log.getTaskIds())) {
params.put("taskIds", log.getTaskIds());
}
log.setSearchReportStartTime(searchReportStartTime);
log.setSearchReportEndTime(searchReportEndTime);
log.setSearchTaskStartTime(searchTaskStartTime);
log.setSearchTaskEndTime(searchTaskEndTime);
String url = Constants.LOG_BASE_URL + Constants.NTC_EVENT_KEYPROTECTION_Report;
String recv = HttpClientUtil.getMsg(url, params, request);
List<NtcEventKeyProtectionReport> list = new ArrayList<>();
if (StringUtils.isNotBlank(recv)) {
Gson gson = new GsonBuilder().create();
LogRecvData<NtcEventKeyProtectionReport> fromJson = gson.fromJson(recv,
new TypeToken<LogRecvData<NtcEventKeyProtectionReport>>() {
}.getType());
if (fromJson.getStatus().intValue() == 200) {
Page<NtcEventKeyProtectionReport> data = fromJson.getData();
list = data.getList();
}
}
return list;
} catch (Exception e) {
logger.error("ntc_event_key_protection_report print failed", e);
addMessage(redirectAttributes, "error", "print_failed");
}
return null;
}
}

View File

@@ -2,9 +2,7 @@ package com.nis.web.controller.report;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
@@ -23,6 +21,7 @@ import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
import com.google.gson.Gson;
@@ -32,15 +31,12 @@ import com.nis.domain.Page;
import com.nis.domain.PageLog;
import com.nis.domain.configuration.TaskInfo;
import com.nis.domain.maat.LogRecvData;
import com.nis.domain.report.BaseReport;
import com.nis.domain.report.NtcEventMonitorOrBlockReport;
import com.nis.domain.report.NtcURLReport;
import com.nis.util.Constants;
import com.nis.util.DateUtils;
import com.nis.util.TimeConstants;
import com.nis.util.httpclient.HttpClientUtil;
import com.nis.web.controller.BaseController;
import com.nis.web.service.basics.TaskInfoService;
import com.nis.web.service.configuration.RequestInfoService;
@Controller
@RequestMapping("${adminPath}/eventMonitor")
@@ -49,7 +45,7 @@ public class NtcEventMonitorController extends BaseController {
protected static Logger logger = LoggerFactory.getLogger(NtcEventMonitorController.class);
@Autowired
private TaskInfoService taskInfoService;
private RequestInfoService requestInfoService;
/**
* EventMonitor
@@ -98,11 +94,16 @@ public class NtcEventMonitorController extends BaseController {
params.put("taskIds", log.getTaskIds());
}
log.setSearchReportStartTime(searchReportStartTime);
log.setSearchReportEndTime(searchReportEndTime);
log.setSearchTaskStartTime(searchTaskStartTime);
log.setSearchTaskEndTime(searchTaskEndTime);
params.put("reportType", 2);
String url = Constants.LOG_BASE_URL + Constants.NTC_EVENT_MONITOR_OR_BLOCK_Report;
// String url =
// "http://192.168.11.56:8888/galaxy-service/service/log/v1/ntcEventsMonitorOrBlock";
// String url =
// "http://192.168.11.56:8888/galaxy-service/service/log/v1/ntcEventsMonitorOrBlock";
String recv = HttpClientUtil.getMsg(url, params, request);
if (StringUtils.isNotBlank(recv)) {
Gson gson = new GsonBuilder().create();
@@ -115,8 +116,7 @@ public class NtcEventMonitorController extends BaseController {
page.setLast(data.getLast());
page.setList(data.getList());
model.addAttribute("page", page);
// 获取专项列表
List<TaskInfo> taskList = taskInfoService.findTaskInfo(new TaskInfo());
List<TaskInfo> taskList = requestInfoService.showTask(new TaskInfo());
model.addAttribute("taskList", taskList);
}
}
@@ -184,8 +184,8 @@ public class NtcEventMonitorController extends BaseController {
params.put("reportType", 2);
String url = Constants.LOG_BASE_URL + Constants.NTC_EVENT_MONITOR_OR_BLOCK_Report;
// String url =
// "http://192.168.11.56:8888/galaxy-service/service/log/v1/ntcEventsMonitorOrBlock";
// String url =
// "http://192.168.11.56:8888/galaxy-service/service/log/v1/ntcEventsMonitorOrBlock";
String recv = HttpClientUtil.getMsg(url, params, request);
List<NtcEventMonitorOrBlockReport> list = new ArrayList<>();
if (StringUtils.isNotBlank(recv)) {
@@ -202,7 +202,7 @@ public class NtcEventMonitorController extends BaseController {
titleList.add("ntc_event_monitor_report");
classMap.put("ntc_event_monitor_report", NtcEventMonitorOrBlockReport.class);
String cfgIndexInfoNoExport = "";
String cfgIndexInfoNoExport = "," + hColumns + ",";
noExportMap.put("ntc_event_monitor_report", cfgIndexInfoNoExport);
Properties msgProp = getMsgProp();
@@ -330,4 +330,74 @@ public class NtcEventMonitorController extends BaseController {
return dateTime.toString(TimeConstants.YYYY_MM_DD_HH24_MM_SS);
}
// eventMonitorPrint
@ResponseBody
@RequestMapping(value = "eventMonitorPrint")
public List<NtcEventMonitorOrBlockReport> eventMonitorPrint(@ModelAttribute("log") NtcEventMonitorOrBlockReport log, Model model,
HttpServletRequest request, HttpServletResponse response,RedirectAttributes redirectAttributes) {
try {
PageLog<NtcEventMonitorOrBlockReport> page = new PageLog<NtcEventMonitorOrBlockReport>(request, response);
Map<String, Object> params = new HashMap<String, Object>();
page.setPageNo(1);
page.setPageSize(Constants.MAX_LOG_EXPORT_SIZE);
params.put("pageSize", page.getPageSize());
params.put("pageNo", page.getPageNo());
// 判断请求参数
String searchReportStartTime = null;
String searchReportEndTime = null;
String searchTaskStartTime = null;
String searchTaskEndTime = null;
/**
* 对统计时间参数进行处理 开始-结束(一周内[7天])
*/
String[] serachReportTimes = getSerachTimes(log.getSearchReportStartTime(), log.getSearchReportEndTime());
searchReportStartTime = serachReportTimes[0];
searchReportEndTime = serachReportTimes[1];
/**
* 对报送时间参数进行处理 开始-结束(一周内[7天])
*/
String[] serachTaskTimes = getSerachTimes(log.getSearchTaskStartTime(), log.getSearchTaskEndTime());
searchTaskStartTime = serachTaskTimes[0];
searchTaskEndTime = serachTaskTimes[1];
params.put("searchReportStartTime", searchReportStartTime);
params.put("searchReportEndTime", searchReportEndTime);
params.put("searchTaskStartTime", searchTaskStartTime);
params.put("searchTaskEndTime", searchTaskEndTime);
if (StringUtils.isNotBlank(log.getTaskIds())) {
params.put("taskIds", log.getTaskIds());
}
log.setSearchReportStartTime(searchReportStartTime);
log.setSearchReportEndTime(searchReportEndTime);
log.setSearchTaskStartTime(searchTaskStartTime);
log.setSearchTaskEndTime(searchTaskEndTime);
params.put("reportType", 2);
String url = Constants.LOG_BASE_URL + Constants.NTC_EVENT_MONITOR_OR_BLOCK_Report;
String recv = HttpClientUtil.getMsg(url, params, request);
List<NtcEventMonitorOrBlockReport> list = new ArrayList<>();
if (StringUtils.isNotBlank(recv)) {
Gson gson = new GsonBuilder().create();
LogRecvData<NtcEventMonitorOrBlockReport> fromJson = gson.fromJson(recv,
new TypeToken<LogRecvData<NtcEventMonitorOrBlockReport>>() {
}.getType());
if (fromJson.getStatus().intValue() == 200) {
Page<NtcEventMonitorOrBlockReport> data = fromJson.getData();
list = data.getList();
}
}
return list;
} catch (Exception e) {
logger.error("ntc_event_monitor_report print failed", e);
addMessage(redirectAttributes, "error", "print_failed");
}
return null;
}
}

View File

@@ -15,6 +15,7 @@ import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
import com.google.gson.Gson;
@@ -567,4 +568,158 @@ public class ReportController extends BaseController {
addMessage(redirectAttributes, "error", "export_failed");
}
}
// asnPrint
@ResponseBody
@RequestMapping(value = "asnPrint")
public List<NtcAsnRecord> asnPrint(@ModelAttribute("log") NtcAsnRecord log, Model model,
HttpServletRequest request, HttpServletResponse response, RedirectAttributes redirectAttributes) {
try {
PageLog<NtcAsnRecord> page = new PageLog<NtcAsnRecord>(request, response);
page.setPageNo(1);
page.setPageSize(Constants.MAX_LOG_EXPORT_SIZE);
Map<String, Object> params = new HashMap<String, Object>();
params.put("pageSize", page.getPageSize());
params.put("pageNo", page.getPageNo());
// 判断请求参数
if (StringUtils.isNotEmpty(log.getSearchAsnType())) {
params.put("searchAsnType", log.getSearchAsnType());
} else {
params.put("searchAsnType", 1);
}
if (StringUtils.isNotBlank(log.getSearchFoundStartTime())
&& StringUtils.isNotBlank(log.getSearchFoundEndTime())) {
params.put("searchFoundStartTime", log.getSearchFoundStartTime());
params.put("searchFoundEndTime", log.getSearchFoundEndTime());
} else {
Calendar time = Calendar.getInstance();
String searchEndTime = DateUtils.formatDateTime(time.getTime());
time.add(Calendar.HOUR_OF_DAY, -1);
String searchStartTime = DateUtils.formatDateTime(time.getTime());
params.put("searchFoundStartTime", searchStartTime);
params.put("searchFoundEndTime", searchEndTime);
log.setSearchFoundStartTime(searchStartTime);
log.setSearchFoundEndTime(searchEndTime);
}
String url = Constants.LOG_BASE_URL + Constants.NTC_ASN_RECORD;
String recv = HttpClientUtil.getMsg(url, params, request);
List<NtcAsnRecord> list = new ArrayList<NtcAsnRecord>();
if (StringUtils.isNotBlank(recv)) {
Gson gson = new GsonBuilder().create();
LogRecvData<NtcAsnRecord> fromJson = gson.fromJson(recv, new TypeToken<LogRecvData<NtcAsnRecord>>() {
}.getType());
if (fromJson.getStatus().intValue() == 200) {
Page<NtcAsnRecord> data = fromJson.getData();
list = data.getList();
}
}
return list;
} catch (Exception e) {
logger.error("Ntc_Asn_Record print failed", e);
addMessage(redirectAttributes, "error", "print_failed");
}
return null;
}
// httpsPrint
@ResponseBody
@RequestMapping(value = "httpsPrint")
public List<NtcURLReport> httpsPrint(@ModelAttribute("log") NtcURLReport log, Model model,
HttpServletRequest request, HttpServletResponse response, RedirectAttributes redirectAttributes) {
try {
PageLog<NtcURLReport> page = new PageLog<NtcURLReport>(request, response);
page.setPageNo(1);
page.setPageSize(Constants.MAX_LOG_EXPORT_SIZE);
Map<String, Object> params = new HashMap<String, Object>();
params.put("pageSize", page.getPageSize());
params.put("pageNo", page.getPageNo());
// 判断请求参数
if (StringUtils.isNotBlank(log.getSearchReportStartTime())
&& StringUtils.isNotBlank(log.getSearchReportEndTime())) {
params.put("searchReportStartTime", log.getSearchReportStartTime());
params.put("searchReportEndTime", log.getSearchReportEndTime());
} else {
Calendar time = Calendar.getInstance();
String searchEndTime = DateUtils.formatDateTime(time.getTime());
time.add(Calendar.HOUR_OF_DAY, -1);
String searchStartTime = DateUtils.formatDateTime(time.getTime());
params.put("searchReportStartTime", searchStartTime);
params.put("searchReportEndTime", searchEndTime);
log.setSearchReportStartTime(searchStartTime);
log.setSearchReportEndTime(searchEndTime);
}
// url参数
if (StringUtils.isNotBlank(log.getSearchUrl())) {
params.put("searchUrl", log.getSearchUrl());
}
String url = Constants.LOG_BASE_URL + Constants.NTC_URL_REPORT;
String recv = HttpClientUtil.getMsg(url, params, request);
List<NtcURLReport> list = new ArrayList<NtcURLReport>();
if (StringUtils.isNotBlank(recv)) {
Gson gson = new GsonBuilder().create();
LogRecvData<NtcURLReport> fromJson = gson.fromJson(recv, new TypeToken<LogRecvData<NtcURLReport>>() {
}.getType());
if (fromJson.getStatus().intValue() == 200) {
Page<NtcURLReport> data = fromJson.getData();
list = data.getList();
}
}
return list;
} catch (Exception e) {
logger.error("Ntc_HTTPS_Report print failed", e);
addMessage(redirectAttributes, "error", "print_failed");
}
return null;
}
// ipRangePrint
@ResponseBody
@RequestMapping(value = "ipRangePrint")
public List<NtcIpRangeReport> ipRangePrint(@ModelAttribute("log") NtcIpRangeReport log, Model model,
HttpServletRequest request, HttpServletResponse response, String seType,RedirectAttributes redirectAttributes) {
try {
PageLog<NtcIpRangeReport> page = new PageLog<NtcIpRangeReport>(request, response);
page.setPageNo(1);
page.setPageSize(Constants.MAX_LOG_EXPORT_SIZE);
Map<String, Object> params = new HashMap<String, Object>();
params.put("pageSize", page.getPageSize());
params.put("pageNo", page.getPageNo());
log.setSearchAreaType(seType);
// 判断请求参数
// 查询国家
if (StringUtils.isNotBlank(log.getSearchCountry())) {
params.put("searchCountry", log.getSearchCountry());
}
// 查询开始IP
if (StringUtils.isNotBlank(log.getSearchStartIp())) {
params.put("searchIp", log.getSearchIp());
}
//
if (StringUtils.isNotBlank(log.getSearchAreaType())) {
params.put("searchType", log.getSearchAreaType());
}
if (StringUtils.isNotBlank(log.getSearchAreaType())) {
params.put("searchDesc", log.getSearchDesc());
}
String url = Constants.LOG_BASE_URL + Constants.NTC_IP_RANGE_REPORT;
String recv = HttpClientUtil.getMsg(url, params, request);
List<NtcIpRangeReport> list = new ArrayList<NtcIpRangeReport>();
if (StringUtils.isNotBlank(recv)) {
Gson gson = new GsonBuilder().create();
LogRecvData<NtcIpRangeReport> fromJson = gson.fromJson(recv,
new TypeToken<LogRecvData<NtcIpRangeReport>>() {
}.getType());
if (fromJson.getStatus().intValue() == 200) {
Page<NtcIpRangeReport> data = fromJson.getData();
list = data.getList();
}
}
return list;
} catch (Exception e) {
logger.error("Ntc_Ip_Range_Report print failed", e);
addMessage(redirectAttributes, "error", "print_failed");
}
return null;
}
}

View File

@@ -25,5 +25,7 @@ public interface SysMenuDao extends CrudDao<SysMenu>{
Integer getServiceId(@Param("functionId")Integer functionId, @Param("action")Integer action);
List<SysMenu> findAllCfgList(@Param("policiesMenuId")String policiesMenuId);
String getMenuCodeByFunctionId(@Param("functionId")Integer functionId, @Param("parentId")String id);
}

View File

@@ -218,4 +218,13 @@
WHERE
s.function_id = #{functionId} AND s.action = #{action} AND s.is_valid = 1
</select>
<select id="getMenuCodeByFunctionId" resultType="java.lang.String">
SELECT
m.code
FROM
sys_menu m
WHERE
m.function_id = #{functionId} AND m.parent_ids LIKE concat(concat('%',#{parentId,jdbcType=VARCHAR}),'%') AND del_flag = 1
</select>
</mapper>

View File

@@ -138,7 +138,7 @@
<select id="findList" resultMap="PxyObjSpoofingPoolMap" parameterType="com.nis.domain.configuration.PxyObjSpoofingIpPool">
SELECT
<include refid="PxyObjSpoofingIpPoolColumns"/>
FROM pxy_obj_spoofing_ip_pool r where (r.is_valid!=-1 and r.is_audit!=3) AND r.group_id =#{groupId,jdbcType=INTEGER}
FROM pxy_obj_spoofing_ip_pool r where r.is_valid=1 and r.is_audit=1
<if test="cfgId != null">
AND r.CFG_ID!=#{cfgId,jdbcType=BIGINT}
</if>
@@ -146,7 +146,9 @@
<insert id="insert" parameterType="com.nis.domain.configuration.PxyObjSpoofingIpPool" >
insert into pxy_obj_spoofing_ip_pool (
CFG_ID,
<selectKey resultType="java.lang.Long" order="AFTER" keyProperty="cfgId">
SELECT LAST_INSERT_ID()
</selectKey>
CFG_DESC,
ACTION,
IS_VALID,
@@ -176,7 +178,6 @@
user_region,
port
)values (
#{cfgId,jdbcType=VARCHAR},
#{cfgDesc,jdbcType=VARCHAR},
#{action,jdbcType=INTEGER},
0,

View File

@@ -99,7 +99,7 @@
select
<include refid="Base_Column_List" />
from request_info
where request_number = #{requestNumber,jdbcType=VARCHAR}
where request_number = #{requestNumber,jdbcType=VARCHAR} and is_valid !=-1
</select>
<!-- 根据来id查询 -->
<select id="getRequestInfoById" parameterType="java.lang.Long" resultMap="BaseResultMap">

View File

@@ -96,7 +96,7 @@
select
<include refid="Base_Column_List" />
from task_info
where task_name = #{taskName,jdbcType=VARCHAR}
where task_name = #{taskName,jdbcType=VARCHAR} and is_valid !=-1
</select>
<!-- 根据来id查询 -->
<select id="getTaskInfoById" parameterType="java.lang.Long" resultMap="BaseResultMap">

View File

@@ -2123,6 +2123,22 @@ public abstract class BaseService {
umap.put("bps_threadshold", _cfg.getBpsThreadshold());
umap.put("pps_threadshold", _cfg.getPpsThreadshold());
maatCfg.setUserRegion(new Gson().toJson(umap));
}else if(regionDict.getFunctionId()==200) {// IP Intercept
maatCfg.setUserRegion(Constants.USER_REGION_PLACEHOLDER);
if(_cfg.getAction().equals(Constants.MONIT_ACTION)) {
maatCfg.setUserRegion(Constants.INTERCEPT_IP_MONIT_USER_REGION_KEY+"="+Constants.USER_REGION_PLACEHOLDER);
}
}else if(regionDict.getFunctionId()==207 || regionDict.getFunctionId()==208 || regionDict.getFunctionId()==209) {// HTTP(s)阻断、重定向、替换
String userRegion = Constants.USER_REGION_PLACEHOLDER;
if(_cfg.getAction().equals(Constants.REJECT_ACTION)) {// 阻断
userRegion = Constants.REDIRECT_RESPONSE_CODE_KEY+"="+_cfg.getUserRegion1()+";"+Constants.REDIRECT_CONTENT_KEY+"="+_cfg.getUserRegion2();
}else if(_cfg.getAction().equals(48)) {// 重定向
userRegion = Constants.REDIRECT_RESPONSE_CODE_KEY+"="+_cfg.getUserRegion1()+";"+Constants.REDIRECT_URL_KEY+"="+_cfg.getUserRegion2();;
}else if(_cfg.getAction().equals(Constants.REPLACE_ACTION)) {// 替换
String substitute = "/"+_cfg.getUserRegion2()+"/"+_cfg.getUserRegion3();
userRegion = Constants.REPLACE_ZONE_KEY+"="+_cfg.getUserRegion1()+";"+Constants.REPLACE_SUBSTITUTE_KEY+"="+substitute;
}
maatCfg.setUserRegion(userRegion);
}
configCompileList.add(maatCfg);
@@ -2214,6 +2230,25 @@ public abstract class BaseService {
}
}else if(regionDict.getDictId()==159) {
maatCfg.setUserRegion(Constants.P2P_HASH_TYPE_USER_REGION_KEY+"="+_cfg.getUserRegion1());
}else if(regionDict.getFunctionId()==201) {// Domain Intercept
String userRegion = Constants.USERREGION_DOMAIN_ID+"="+_cfg.getCompileId()+";"+Constants.USERREGION_DOMAIN_STR+"="+_cfg.getCfgKeywords();
if(_cfg.getAction().equals(Constants.MONIT_ACTION)) {// 监测 需要发keyring_id、拦截强度
userRegion = Constants.INTERCEPT_IP_MONIT_USER_REGION_KEY+"=0"+";"+Constants.INTERCEPT_DOMAN_INTENSITY_USER_REGION_KEY+"="+_cfg.getUserRegion5()+";" + userRegion;
}else if(_cfg.getAction().equals(Constants.RATELIMIT_ACTION)) {// 限速 需要发Droprate
userRegion = Constants.INTERCEPT_IP_RATELIMIT_DROPRATE_USER_REGION_KEY+"="+_cfg.getUserRegion2()+";" + userRegion;
}
maatCfg.setUserRegion(userRegion);
}else if(regionDict.getFunctionId()==207 || regionDict.getFunctionId()==208 || regionDict.getFunctionId()==209) {// HTTP(s)阻断、重定向、替换
String userRegion = Constants.USER_REGION_PLACEHOLDER;
if(_cfg.getAction().equals(Constants.REJECT_ACTION)) {// 阻断
userRegion = Constants.REDIRECT_RESPONSE_CODE_KEY+"="+_cfg.getUserRegion1()+";"+Constants.REDIRECT_CONTENT_KEY+"="+_cfg.getUserRegion2();
}else if(_cfg.getAction().equals(48)) {// 重定向
userRegion = Constants.REDIRECT_RESPONSE_CODE_KEY+"="+_cfg.getUserRegion1()+";"+Constants.REDIRECT_URL_KEY+"="+_cfg.getUserRegion2();;
}else if(_cfg.getAction().equals(Constants.REPLACE_ACTION)) {// 替换
String substitute = "/"+_cfg.getUserRegion2()+"/"+_cfg.getUserRegion3();
userRegion = Constants.REPLACE_ZONE_KEY+"="+_cfg.getUserRegion1()+";"+Constants.REPLACE_SUBSTITUTE_KEY+"="+substitute;
}
maatCfg.setUserRegion(userRegion);
}
configCompileList.add(maatCfg);
}
@@ -2294,6 +2329,17 @@ public abstract class BaseService {
if(StringUtil.isEmpty(dictValue) || dictValue.equals("默认")){
maatCfg.setUserRegion(Constants.HTTP_HEADER_USER_REGION_KEY+"="+cfg.getDistrict());
}
}else if(regionDict.getFunctionId()==207 || regionDict.getFunctionId()==208 || regionDict.getFunctionId()==209) {// HTTP(s)阻断、重定向、替换
String userRegion = Constants.USER_REGION_PLACEHOLDER;
if(cfg.getAction().equals(Constants.REJECT_ACTION)) {// 阻断
userRegion = Constants.REDIRECT_RESPONSE_CODE_KEY+"="+cfg.getUserRegion1()+";"+Constants.REDIRECT_CONTENT_KEY+"="+cfg.getUserRegion2();
}else if(cfg.getAction().equals(48)) {// 重定向
userRegion = Constants.REDIRECT_RESPONSE_CODE_KEY+"="+cfg.getUserRegion1()+";"+Constants.REDIRECT_URL_KEY+"="+cfg.getUserRegion2();;
}else if(cfg.getAction().equals(Constants.REPLACE_ACTION)) {// 替换
String substitute = "/"+cfg.getUserRegion2()+"/"+cfg.getUserRegion3();
userRegion = Constants.REPLACE_ZONE_KEY+"="+cfg.getUserRegion1()+";"+Constants.REPLACE_SUBSTITUTE_KEY+"="+substitute;
}
maatCfg.setUserRegion(userRegion);
}
configCompileList.add(maatCfg);
}

View File

@@ -15,27 +15,24 @@ public class LogService extends CrudService<SysLogDao, SysLog> {
@Autowired
protected SysLogDao sysLogDao;
public Page<SysLog> findPage(Page<SysLog> page, SysLog sysLog) {
// 设置默认时间范围,默认当前月
if (sysLog.getBeginDate() == null){
sysLog.setBeginDate(DateUtils.setDays(DateUtils.parseDate(DateUtils.getDate()), 1));
}
if (sysLog.getEndDate() == null){
sysLog.setEndDate(DateUtils.addMonths(sysLog.getBeginDate(), 1));
sysLog.setEndDate(DateUtils.parseDate(DateUtils.getDate()));
}
if (sysLog.getBeginDate() == null){
sysLog.setBeginDate(DateUtils.addMonths(sysLog.getEndDate(), -1));
}
return super.findPage(page, sysLog);
}
public Page<SysLog> findCfgOperationLogPage(Page<SysLog> page, SysLog sysLog) {
// 设置默认时间范围,默认当前月
if (sysLog.getBeginDate() == null){
sysLog.setBeginDate(DateUtils.setDays(DateUtils.parseDate(DateUtils.getDate()), 1));
}
if (sysLog.getEndDate() == null){
sysLog.setEndDate(DateUtils.addMonths(sysLog.getBeginDate(), 1));
sysLog.setEndDate(DateUtils.parseDate(DateUtils.getDate()));
}
if (sysLog.getBeginDate() == null){
sysLog.setBeginDate(DateUtils.addMonths(sysLog.getEndDate(), -1));
}
sysLog.setPage(page);
List<SysLog> list = sysLogDao.findCfgOperationLogList(sysLog);

View File

@@ -107,5 +107,9 @@ public class MenuService extends BaseService {
public Integer getServiceId(Integer functionId, Integer action) {
return menuDao.getServiceId(functionId,action);
}
// 获取菜单code
public String getMenuCodeByFunctionId(Integer functionId) {
return menuDao.getMenuCodeByFunctionId(functionId,",86,");
}
}

View File

@@ -1025,7 +1025,7 @@ public class AppCfgService extends BaseService {
if(StringUtil.isEmpty(entity.getUserRegion4())){
userRegion+=Constants.USER_REGION_SPLIT +Constants.APP_VIGNORE_USER_REGION_KEY+"=1";
}
userRegion+=Constants.USER_REGION_SPLIT+"config_id="+entity.getCompileId();
maatCfg.setUserRegion(userRegion);
configCompileList.add(maatCfg);
maatBean.setConfigCompileList(configCompileList);

View File

@@ -18,6 +18,7 @@ import com.nis.domain.configuration.CfgIndexInfo;
import com.nis.domain.configuration.HttpUrlCfg;
import com.nis.domain.configuration.InterceptPktBin;
import com.nis.domain.configuration.IpPortCfg;
import com.nis.domain.configuration.PxyObjSpoofingIpPool;
import com.nis.domain.maat.MaatCfg;
import com.nis.domain.maat.MaatCfg.NumBoundaryCfg;
import com.nis.domain.maat.ToMaatBean;
@@ -33,6 +34,7 @@ import com.nis.util.Constants;
import com.nis.util.StringUtil;
import com.nis.web.dao.configuration.AreaIpCfgDao;
import com.nis.web.dao.configuration.InterceptCfgDao;
import com.nis.web.dao.configuration.PxyObjSpoofingIpPoolDao;
import com.nis.web.dao.configuration.WebsiteCfgDao;
import com.nis.web.security.UserUtils;
import com.nis.web.service.BaseService;
@@ -51,6 +53,8 @@ public class InterceptCfgService extends CrudService<WebsiteCfgDao,CfgIndexInfo>
protected InterceptCfgDao interceptCfgDao;
@Autowired
protected AreaIpCfgDao areaIpCfgDao;
@Autowired
protected PxyObjSpoofingIpPoolDao pxyObjSpoofingIpPoolDao;
public CfgIndexInfo getInterceptCfg(Long cfgId,Integer compileId){
CfgIndexInfo entity = websiteCfgDao.getCfgIndexInfo(cfgId,compileId);
@@ -107,20 +111,57 @@ public class InterceptCfgService extends CrudService<WebsiteCfgDao,CfgIndexInfo>
setAreaEffectiveIds(entity);
if(entity.getCfgId()==null){
Integer compileId = 0;
Integer spoofingPoolId = 0 ;
try {
List<Integer> idList = ConfigServiceUtil.getId(1, 1);
if(idList!=null && idList.size()>0){
List<Integer> idList = new ArrayList();
if(entity.getServiceId().equals(518)){//ip仿冒策略
idList= ConfigServiceUtil.getId(1, 2);
compileId = idList.get(0);
}
spoofingPoolId = idList.get(1);
}else{
idList= ConfigServiceUtil.getId(1, 1);
compileId = idList.get(0);
}
} catch (Exception e) {
e.printStackTrace();
logger.info("获取编译ID出错");
throw new MaatConvertException("<spring:message code=\"request_service_failed\"/>:"+e.getMessage());
}
if(entity.getServiceId().equals(518)){//ip仿冒策略
//保存IP仿冒池
PxyObjSpoofingIpPool spoofingPool = new PxyObjSpoofingIpPool();
spoofingPool.setIpType(4);//ipv4
spoofingPool.setIpAddress(entity.getUserRegion2());//仿冒IP
spoofingPool.setProtocol(0);
if("dnat".equals(entity.getUserRegion1().toLowerCase())){//spoofing server ip->dnat
spoofingPool.setDirection(1);
}else{
spoofingPool.setDirection(2);//spoofing client ip->snat
}
spoofingPool.setPort("0");
spoofingPool.setUserRegion("0");
spoofingPool.setLocation(0);
spoofingPool.setServiceId(642);
spoofingPool.setAreaEffectiveIds("0");
spoofingPool.setIsAreaEffective(0);
spoofingPool.setCreateTime(new Date());
spoofingPool.setCreatorId(UserUtils.getUser().getId());
spoofingPool.setCompileId(spoofingPoolId);
spoofingPool.setAction(1);
spoofingPool.setFunctionId(666);
spoofingPool.setRequestId(0);
pxyObjSpoofingIpPoolDao.insert(spoofingPool);//保存仿冒IP池配置
entity.setUserRegion3(String.valueOf(spoofingPool.getCfgId()));//将仿冒IP池配置ID作为策略组ID
}
entity.setCompileId(compileId);
entity.setCreateTime(new Date());
entity.setCreatorId(entity.getCurrentUser().getId());
websiteCfgDao.saveCfgIndex(entity);
if(entity.getIpPortList()!=null){
for(IpPortCfg cfg:entity.getIpPortList()){
BeanUtils.copyProperties(entity, cfg,new String[]{"cfgRegionCode","cfgType"});
@@ -155,6 +196,30 @@ public class InterceptCfgService extends CrudService<WebsiteCfgDao,CfgIndexInfo>
}else{
if(entity.getServiceId().equals(518)){//ip仿冒策略
//保存IP仿冒池
Long cfgId = Long.parseLong(entity.getUserRegion3());
PxyObjSpoofingIpPool spoofingPool = pxyObjSpoofingIpPoolDao.getPxyObjSpoofingIpPool(cfgId);
spoofingPool.setIpType(4);//ipv4
spoofingPool.setIpAddress(entity.getUserRegion2());//仿冒IP
spoofingPool.setProtocol(0);
if("dnat".equals(entity.getUserRegion1())){//spoofing server ip->dnat
spoofingPool.setDirection(1);
}else{
spoofingPool.setDirection(2);//spoofing client ip->snat
}
spoofingPool.setPort("0");
spoofingPool.setUserRegion("0");
spoofingPool.setLocation(0);
spoofingPool.setServiceId(642);
spoofingPool.setAreaEffectiveIds("0");
spoofingPool.setIsAreaEffective(0);
spoofingPool.setEditTime(new Date());
spoofingPool.setEditorId(UserUtils.getUser().getId());
pxyObjSpoofingIpPoolDao.update(spoofingPool);//保存仿冒IP池配置
}
entity.setEditTime(new Date());
entity.setEditorId(entity.getCurrentUser().getId());
@@ -220,6 +285,20 @@ public class InterceptCfgService extends CrudService<WebsiteCfgDao,CfgIndexInfo>
websiteCfgDao.updateCfgValid(entity);
//查询子配置
entity = this.getInterceptCfg(Long.parseLong(id),entity.getCompileId());
//IP仿冒策略下的仿冒IP池也失效
if(entity.getServiceId().equals(518)){
PxyObjSpoofingIpPool pool = new PxyObjSpoofingIpPool();
if(StringUtils.isNotEmpty(entity.getUserRegion3())){
pool.setCfgId(Long.parseLong(entity.getUserRegion3()));
pool.setIsValid(isValid);
pool.setIsAudit(entity.getIsAudit());
pool.setEditTime(new Date());
pool.setEditorId(UserUtils.getUser().getId());
pxyObjSpoofingIpPoolDao.update(pool);
}
}
if(entity.getIpPortList()!=null && entity.getIpPortList().size()>0){
IpPortCfg cfg = new IpPortCfg();
BeanUtils.copyProperties(entity, cfg, new String[]{"cfgId"});
@@ -274,6 +353,56 @@ public class InterceptCfgService extends CrudService<WebsiteCfgDao,CfgIndexInfo>
//查询子配置并修改审核状态
entity = this.getInterceptCfg(entity.getCfgId(),entity.getCompileId());
if(entity.getServiceId().equals(518)){//IP仿冒策略
//仿冒IP池配置匹配下发或者取消
PxyObjSpoofingIpPool pool=new PxyObjSpoofingIpPool();
pool.setCfgId(Long.valueOf(entity.getUserRegion3()));
pool.setIsValid(entity.getIsValid());
pool.setIsAudit(isAudit);
pool.setAuditorId(UserUtils.getUser().getId());
pool.setAuditTime(new Date());
pxyObjSpoofingIpPoolDao.update(pool);
pool = pxyObjSpoofingIpPoolDao.getPxyObjSpoofingIpPool(pool.getCfgId());
List<PxyObjSpoofingIpPool> list = new ArrayList<PxyObjSpoofingIpPool>();
String json="";
String areaEffectiveIds="0";
if(entity.getIsAudit()==1){
pool.setAreaEffectiveIds(areaEffectiveIds);
pool.setGroupId(pool.getCfgId().intValue());//界面端的配置ID作为策略分组ID
list.add(pool);
//调用服务接口下发配置数据
json=gsonToJson(list);
logger.info("欺骗IP池配置下发配置参数"+json);
//调用服务接口下发配置
try {
ToMaatResult result = ConfigServiceUtil.postCallbackCfg(json);
if(result!=null){
logger.info("欺骗IP池配置下发响应信息"+result.getMsg());
}
} catch (Exception e) {
logger.error("欺骗IP池配置配置下发失败",e);
throw e;
}
}else if(entity.getIsAudit()==3){
PxyObjSpoofingIpPool cfg = new PxyObjSpoofingIpPool();
cfg.setIsValid(0);
cfg.setCompileId(pool.getCompileId());
cfg.setServiceId(pool.getServiceId());
list.add(cfg);
//调用服务接口取消配置
json=gsonToJson(list);
logger.info("欺骗IP池配置配置参数"+json);
//调用服务接口取消配置
try {
ToMaatResult result = ConfigServiceUtil.put(json, 2);
logger.info("欺骗IP池配置响应信息"+result.getMsg());
} catch (Exception e) {
e.printStackTrace();
logger.info("欺骗IP池配置配置失败");
throw e;
}
}
}
if(entity.getIpPortList()!=null && entity.getIpPortList().size()>0){
IpPortCfg cfg = new IpPortCfg();
BeanUtils.copyProperties(entity, cfg, new String[]{"cfgId"});
@@ -357,7 +486,7 @@ public class InterceptCfgService extends CrudService<WebsiteCfgDao,CfgIndexInfo>
entity.setUserRegion1(StringUtil.isEmpty(entity.getUserRegion1()) ? "0":entity.getUserRegion1());
maatCfg.setUserRegion(Constants.INTERCEPT_IP_MONIT_USER_REGION_KEY+"="+entity.getUserRegion1());
//监测的域名需下发拦截强度
if(entity.getFunctionId().equals(201)){
if(entity.getFunctionId().equals(200)){
entity.setUserRegion5(StringUtil.isEmpty(entity.getUserRegion5()) ? "1":entity.getUserRegion5());
if(StringUtil.isEmpty(maatCfg.getUserRegion())) {
maatCfg.setUserRegion(Constants.INTERCEPT_DOMAN_INTENSITY_USER_REGION_KEY+"="+entity.getUserRegion5());
@@ -398,7 +527,7 @@ public class InterceptCfgService extends CrudService<WebsiteCfgDao,CfgIndexInfo>
if(entity.getAction().equals(48)){
//HTTP replace replace type is not null ;find is not null;replace with is not null(userRegion is not null)
userRegion="nat_type="+entity.getUserRegion1();
userRegion+=";spoofing_ip_pool="+entity.getUserRegion2();
userRegion+=";spoofing_ip_pool="+entity.getUserRegion3();
maatCfg.setUserRegion(userRegion);
}

View File

@@ -165,6 +165,7 @@ public class PxyObjSpoofingIpPoolService extends BaseService{
areaEffectiveIds = this.setEffectiveRange(entity.getAreaEffectiveIds());
}
entity.setAreaEffectiveIds(areaEffectiveIds);
entity.setGroupId(entity.getCfgId().intValue());//界面的配置ID作为策略分组ID
list.add(entity);
//调用服务接口下发配置数据
json=gsonToJson(list);

View File

@@ -1432,4 +1432,7 @@ control_num=CONTROL
contains_non_hex_char=Contains non-hexadecimal characters
max_length=Maximum Length
min_length=Minimum Length
length_error=Length Error
length_error=Length Error
duplicate=Duplicate
print=Print
traffic_connect_log=Traffic Log

View File

@@ -1359,56 +1359,56 @@ translated_dest_ip=\u041f\u0435\u0440\u0435\u0432\u0435\u0434\u0435\u043d\u043d\
translated_dest_port=\u041f\u0435\u0440\u0435\u0432\u0435\u0434\u0435\u043d\u043d\u044b\u0439 \u041f\u043e\u0440\u0442 \u041d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f
show_ips=\u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0412\u0441\u0435 IP
show_available_ips=\u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0414\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0439 IP
radius_log=Radius Identify
message_type=Code
nas_ip=NAS IP Address
framed_ip=Framed IP Address
log_user_name=User Name
av_tips=\u041a\u043e\u0433\u0434\u0430 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u0438\u043d\u0434\u0435\u043a\u0441\u0430 \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0430\u0443\u0434\u0438\u043e \u0438 \u0432\u0438\u0434\u0435\u043e \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432 \u043a\u043e\u043d\u0446\u0435 \u0444\u0430\u0439\u043b\u0430 \u0438\u043b\u0438 \u0432\u0438\u0434\u0435\u043e \u0441 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u0435\u043c \u0431\u043e\u043b\u0435\u0435 1080p.\u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f.
asn_ip_group_delete=\uff08IP configuration under this ASN group will also be deleted.)
keyword_log_tips=\u041a\u043e\u0433\u0434\u0430 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u043c\u0438 \u0441\u043b\u043e\u0432\u0430\u043c\u0438 \u0432\u0435\u0431-\u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u043f\u043b\u043e\u0445\u0438\u043c, \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0434\u0435\u0434\u0443\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0433\u043e \u0436\u0443\u0440\u043d\u0430\u043b\u0430 \u0434\u0430\u043d\u043d\u043e\u0439 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044e \ufffd\u0423\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 URL\ufffd \u0434\u043b\u044f \u043f\u043e\u0434\u0430\u0432\u0448\u0435\u0433\u043e \u0432\u0435\u0431-\u0441\u0430\u0439\u0442\u0430.
conn_record=Connection Records
radius_log=Radius \u0418\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u0442\u044c
message_type=\u041a\u043e\u0434
nas_ip=NAS IP-\u0430\u0434\u0440\u0435\u0441
framed_ip=Framed IP-\u0430\u0434\u0440\u0435\u0441
log_user_name=\u0418\u043c\u044f \u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f
av_tips=\u0421\u0438\u0441\u0442\u0435\u043c\u0430 \u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0438\u043d\u0434\u0435\u043a\u0441\u043d\u0443\u044e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u0430\u0443\u0434\u0438\u043e \u0438 \u0432\u0438\u0434\u0435\u043e \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0432 \u0445\u0432\u043e\u0441\u0442\u0435 \u0430\u0443\u0434\u0438\u043e \u0438 \u0432\u0438\u0434\u0435\u043e \u0444\u0430\u0439\u043b\u043e\u0432. \u0421\u0438\u0441\u0442\u0435\u043c\u0430 \u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0432\u0438\u0434\u0435\u043e \u0441 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u0435\u043c \u0432\u044b\u0448\u0435 1080P.
asn_ip_group_delete=\u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f IP \u0432 \u044d\u0442\u043e\u0439 \u0433\u0440\u0443\u043f\u043f\u0435 ASN \u0442\u0430\u043a\u0436\u0435 \u0431\u0443\u0434\u0435\u0442 \u0443\u0434\u0430\u043b\u0435\u043d\u0430.
keyword_log_tips=\u041a\u043e\u0433\u0434\u0430 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u043c\u0438 \u0441\u043b\u043e\u0432\u0430\u043c\u0438 \u0432\u0435\u0431-\u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u043f\u043b\u043e\u0445\u0438\u043c, \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0434\u0435\u0434\u0443\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0433\u043e \u0436\u0443\u0440\u043d\u0430\u043b\u0430 \u0434\u0430\u043d\u043d\u043e\u0439 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044e \u7395u0423\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 URL\ufffd \u0434\u043b\u044f \u043f\u043e\u0434\u0430\u0432\u0448\u0435\u0433\u043e \u0432\u0435\u0431-\u0441\u0430\u0439\u0442\u0430.
conn_record=\u0417\u0430\u043f\u0438\u0441\u0438 \u041f\u043e\u0434\u043a\u044e\u0447\u0435\u043d\u0438\u0439
bps=Gbps
bps_percent=Bps Percent
pps=PPS
pps_percent=pps Percent
spoofing_ip_object=Spoofing IP Pool
spoofing_ip_policy=IP Spoofing
action_spoofing=Spoofing
spoofing=spoofing
spoofing_ip_object=\u041f\u0443\u043b IP \u0421\u043f\u0443\u0444\u0438\u043d\u0433
spoofing_ip_policy=IP \u0421\u043f\u0443\u0444\u0438\u043d\u0433
action_spoofing=\u0421\u043f\u0443\u0444\u0438\u043d\u0433
spoofing=\u0421\u043f\u0443\u0444\u0438\u043d\u0433
service=\u0421\u0435\u0440\u0432\u0438\u0441
s_asn=SASN
d_asn=DASN
asn_conn_report=ASN Statistics
https_url_report=Http(s) URL Statistics
asn_conn_report=\u0421\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0430 ASN
https_url_report=\u0421\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0430 Http(s) URL
url=URL
sum=SUM
url_count=URL Count
ip_range_report=IN/EX Host Identity
ip_start=Start IP
ip_end=End IP
url_count=\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e URL
ip_range_report=\u0421\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0430 \u0425\u043e\u0441\u0442\u043e\u0432 \u0432 \u0433\u0440\u0430\u043d\u0438\u0446\u0430\u0445 \u0438 \u0437\u0430 \u0433\u0440\u0430\u043d\u0438\u0446\u0435\u0439
ip_start=\u041d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0439 IP
ip_end=\u041a\u043e\u043d\u0435\u0447\u043d\u044b\u0439 IP
ip_start_num=IP Start Num
ip_end_num=IP End Num
ip_sub=IP Subnet
start_ip=Start IP
end_ip=End IP
action_detail=Action Detail
ip_sub=IP-\u043f\u043e\u0434\u0441\u0435\u0442\u044c
start_ip=\u041d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0439 IP
end_ip=\u041a\u043e\u043d\u0435\u0447\u043d\u044b\u0439 IP
action_detail=\u0414\u0435\u0442\u0430\u043b\u044c \u0414\u0435\u0439\u0441\u0442\u0432\u0438\u044f
pass=\u041f\u0430\u0441
live_link=\u0410\u043a\u0442\u0438\u0432\u043d\u0430\u044f \u0421\u0441\u044b\u043b\u043a\u0430
area_type=Area Type
dns_group_manage=DNS Group Manage
asn_group_manage=ASN Group Manage
ip_group_manage=IP Group Manage
ip_spoofing_group_manage=IP Spoofing Group Manage
min_tcp=Min
max_tcp=Max
APP_TCP_SESSION_BYTE=Session
ip_count=Unique IP Count
counnection_count=Connection Count
area_type=\u0422\u0438\u043f \u0417\u043e\u043d\u044b
dns_group_manage=\u0423\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 DNS \u0433\u0440\u0443\u043f\u043f\u043e\u0439
asn_group_manage=\u0423\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 ASN \u0433\u0440\u0443\u043f\u043f\u043e\u0439
ip_group_manage=\u0423\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 IP \u0433\u0440\u0443\u043f\u043f\u043e\u0439
ip_spoofing_group_manage=\u0423\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u041f\u0443\u043b\u043e\u043c IP \u0421\u043f\u0443\u0444\u0438\u043d\u0433
min_tcp=\u041c\u0438\u043d.
max_tcp=\u041c\u0430\u043a\u0441.
APP_TCP_SESSION_BYTE=\u0421\u0435\u0430\u043d\u0441
ip_count=Uniq-IP
counnection_count=\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0439
asn=ASN
Unique_num=Unique
ip=IP
country=Country
country=\u0421\u0442\u0440\u0430\u043d\u0430
desc=Desc
unique_num=Unique
import_limit_is=The maximum import size is
@@ -1436,4 +1436,7 @@ control_num=\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0423\
contains_non_hex_char=Contains non-hexadecimal characters
max_length=Maximum Length
min_length=Minimum Length
length_error=Length Error
length_error=Length Error
duplicate=Duplicate
print=Print
traffic_connect_log=\u041B\u043E\u0433 \u0422\u0440\u0430\u0444\u0438\u043A\u0430

View File

@@ -1430,6 +1430,9 @@ config_num=\u914d\u7f6e\u603b\u6570
monitor_num=\u76d1\u6d4b\u6570\u91cf
control_num=\u7ba1\u63a7\u6570\u91cf
contains_non_hex_char=\u5305\u542b\u975e\u5341\u516d\u8fdb\u5236\u5b57\u7b26
max_length=\u6700\u5927\u957F\u5EA6
min_length=\u6700\u5C0F\u957F\u5EA6
length_error=\u957F\u5EA6\u9519\u8BEF
max_length=\u6700\u5927\u957f\u5ea6
min_length=\u6700\u5c0f\u957f\u5ea6
length_error=\u957f\u5ea6\u9519\u8bef
duplicate=\u91cd\u590d\u7684
print=\u6253\u5370
traffic_connect_log=\u9646\u826F\u65E5\u5FD7

View File

@@ -219,14 +219,14 @@ clusterBStartTime=1503504000725
isCommit=true
############################################################################################################################################
############################################################################################################################################
httpUrl=http://192.168.10.204:9999/galaxy-service/service/cfg/v1/
httpUrl=http://10.0.7.14:9999/galaxy-service/service/cfg/v1/
maatCfg=configSources
fileUploadCfg=fileUploadSources
callbackCfg=commonSources
fileDigestCfg=fileDigestSources
configIdSources=configPzIdSources
#logBaseUrl=http://10.0.6.242:8080/galaxy-service/service/log/v1/
logBaseUrl=http://192.168.10.204:9999/galaxy-service/service/log/v1/
logBaseUrl=http://10.0.7.14:9999/galaxy-service/service/log/v1/
ntcPzReport=ntcPzReport
ntcServiceReport=ntcServiceReport
ntcTagReport=ntcTagReport
@@ -273,7 +273,7 @@ logServiceTopn=logServiceTopn
blockAndDropStat=blockAndDropStat
########################################
#\u5927\u5c4f\u56fe\u8868\u5c55\u793a\u670d\u52a1\u63a5\u53e3
dashboardUrl=http://192.168.10.204:9999/galaxy-service/service/log/v1/
dashboardUrl=http://10.0.7.14:9999/galaxy-service/service/log/v1/
trafficIpActive=trafficIpActive
trafficProtocol=trafficProtocol
trafficApp=trafficApp
@@ -568,7 +568,7 @@ userPasswordSet=UserPasswordSet
userDelete=UserDelete
userGet=UserGet
userList=UserList
ip_reuse_call_cgi_url=http://192.168.11.137:8090/command
ip_reuse_call_cgi_url=http://10.4.10.32:8090/command
ipNumGet=IpNumGet
allIpGet=AllIpGet
#\u6d41\u91cf\u7edf\u8ba1\u5e26\u5bbd\u8be6\u60c5
@@ -580,7 +580,7 @@ trafficBandwidthTrans=trafficBandwidthTrans
trafficProtocolList=trafficProtocolList
trafficAppList=trafficAppList
ntcActionEntranceReport=ntcActionEntranceReport
redis.host=192.168.10.192:6379
redis.host=10.0.4.2:6379
redis.expire=1800
redis.timeout=10000
dns_spoofing_ip_desc=Default Spoofing IP
@@ -608,4 +608,5 @@ trendTotalReport=trendTotalReport
#\u4e8b\u4ef6\u76d1\u6d4b/\u5c01\u5835
ntcEventsMonitorOrBlock=ntcEventsMonitorOrBlock
#\u91cd\u70b9\u4fdd\u969c\u4e8b\u4ef6
ntcEventKeyProtection=ntcEventKeyProtection
ntcEventKeyProtection=ntcEventKeyProtection
dashboardUrlV2=http://10.0.7.14:9999/galaxy-service/service/log/v2/

View File

@@ -304,6 +304,7 @@
<userRegion regionKey="APP_ID" regionColumn="appCode" userRegionPosition="1"></userRegion>
<userRegion regionKey="BEHAV_ID" regionColumn="behavCode" userRegionPosition="1"></userRegion>
<userRegion regionKey="Droprate" regionColumn="userRegion2" userRegionPosition="1"></userRegion>
<userRegion regionKey="config_id" regionColumn="compileId" userRegionPosition="0"></userRegion>
</service>
<service id="1028" functionId="405" serviceType="1" cfgType="1" tableName="app_ip_cfg" className="AppIpCfg" desc="APP IP特征">
<userRegion regionKey="APP_ID" regionColumn="appCode" userRegionPosition="1"></userRegion>

View File

@@ -0,0 +1,4 @@
-- 修改admin账号ID
UPDATE `sys_user` SET `ID`='6' WHERE (`ID`='1');
-- 新增管理员账号为ceiec,密码为admin!@#
INSERT INTO `sys_user` (`ID`, `photo`, `LOGIN_ID`, `NAME`, `EMAIL`, `IDENTITY`, `PASSWORD`, `CREATE_TIME`, `STATUS`, `COMPANY_ID`, `ENTITY_ID`, `OFFICE_ID`) VALUES ('1', '', 'ceiec', 'ceiec', '0', '1', '0793d0c8f2e5187b9cb415baf1ac9a1c58d32dd47cfbc534d260f60c', '2018-12-28 16:49:13', '1', '0', '0', '0');

View File

@@ -0,0 +1,78 @@
update sys_menu set icon='fa fa-sticky-note-o' where id=639;
update sys_menu set icon='fa fa-sticky-note-o' where id=606;
update sys_menu set icon='fa fa-sticky-note-o' where id=807;
update sys_menu set icon='fa fa-globe' where id=1166;
update sys_menu set icon='icon-user' where id=20;
update sys_menu set icon='icon-user' where id=29;
update sys_menu set icon='icon-user-md' where id=28;
update sys_menu set icon='icon-lock' where id=30;
update sys_menu set icon='fa fa-users' where id=1156;
update sys_menu set icon='fa fa-exclamation-triangle' where id=801;
update sys_menu set icon='fa fa-exclamation-triangle' where id=759;
update sys_menu set icon='fa fa-exclamation-triangle' where id=887;
update sys_menu set icon='fa fa-exclamation-triangle' where id=861;
update sys_menu set icon='fa fa-exclamation-triangle' where id=731;
update sys_menu set icon='icon-pencil' where id=43;
update sys_menu set icon='icon-list-alt' where id=42;
update sys_menu set icon='icon-cogs' where id=2;
update sys_menu set icon='icon-check ' where id=3;
update sys_menu set icon='fa fa-exchange' where id=933;
update sys_menu set icon='fa fa-exchange' where id=1133;
update sys_menu set icon='fa fa-exchange' where id=936;
update sys_menu set icon='fa fa-exchange' where id=930;
update sys_menu set icon='fa fa-exchange' where id=1130;
update sys_menu set icon='fa fa-server' where id=207;
update sys_menu set icon='fa fa-tasks' where id=112;
update sys_menu set icon='icon-lock' where id=7;
update sys_menu set icon='icon-envelope-open' where id=85;
update sys_menu set icon='fa fa-institution' where id=850;
update sys_menu set icon='fa fa-institution' where id=719;
update sys_menu set icon='fa fa-institution' where id=951;
update sys_menu set icon='fa fa-institution' where id=956;
update sys_menu set icon='fa fa-institution' where id=748;
update sys_menu set icon='fa fa-inbox' where id=931;
update sys_menu set icon='fa fa-inbox' where id=934;
update sys_menu set icon='fa fa-inbox' where id=937;
update sys_menu set icon='fa fa-inbox' where id=1131;
update sys_menu set icon='fa fa-inbox' where id=1134;
update sys_menu set icon='icon-tablet' where id=27;
update sys_menu set icon='fa fa-th' where id=1096;
update sys_menu set icon='fa fa-th' where id=1098;
update sys_menu set icon='fa fa-th' where id=1097;
update sys_menu set icon='fa fa-th' where id=943;
update sys_menu set icon='fa fa-th' where id=940;
update sys_menu set icon='icon-th-large' where id=17;
update sys_menu set icon='fa fa-television' where id=945;
update sys_menu set icon='fa fa-television' where id=942;
update sys_menu set icon='fa fa-television' where id=938;
update sys_menu set icon='fa fa-television' where id=932;
update sys_menu set icon='fa fa-television' where id=935;
update sys_menu set icon='icon-list-alt' where id=4;
update sys_menu set icon='fa fa-cubes' where id=750;
update sys_menu set icon='fa fa-cubes' where id=865;
update sys_menu set icon='fa fa-cubes' where id=717;
update sys_menu set icon='icon-tag' where id=113;
update sys_menu set icon='icon-globe' where id=182;
update sys_menu set icon='fa fa-gear' where id=1203;
update sys_menu set icon='fa fa-sitemap' where id=117;
update sys_menu set icon='fa fa-clone' where id=973;
update sys_menu set icon='fa fa-clone' where id=972;
update sys_menu set icon='fa fa-clone' where id=948;
update sys_menu set icon='fa fa-indent' where id=1184;
update sys_menu set icon='fa fa-tasks' where id=1205;
update sys_menu set icon='fa fa-reorder' where id=1183;
update sys_menu set icon='fa fa-link' where id=1198;
update sys_menu set icon='icon-question' where id=23;
update sys_menu set icon='fa fa-th-large' where id=716;
update sys_menu set icon='icon-th-list' where id=10;
update sys_menu set icon='fa fa-dashboard' where id=875;
update sys_menu set icon='fa fa-calculator' where id=1155;
update sys_menu set icon='fa fa-map' where id=1185;
update sys_menu set icon='fa fa-delicious' where id=111;
update sys_menu set icon='icon-wrench' where id=13;
update sys_menu set icon='fa fa-soccer-ball-o' where id=181;
update sys_menu set icon='fa fa-industry' where id=1039;
update sys_menu set icon='fa fa-sitemap' where id=1197;
update sys_menu set icon='fa fa-random' where id=1182;
update sys_menu set icon='icon-pointer' where id=115;
update sys_menu set icon='fa fa-map' where id=1136;

View File

@@ -0,0 +1,22 @@
UPDATE `function_service_dict` SET `dict_id`='63', `function_id`='200', `protocol_id`='0', `action`='1', `action_code`='monit', `service_id`='512', `service_name`='ip_intercepter_monit', `service_desc`='', `is_valid`='1', `creator_id`=NULL, `create_time`='0000-00-00 00:00:00', `editor_id`=NULL, `edit_time`='0000-00-00 00:00:00', `region_code`='1,2', `is_import`='0', `sort`='2' WHERE (`dict_id`='63');
UPDATE `function_service_dict` SET `dict_id`='64', `function_id`='200', `protocol_id`='0', `action`='1', `action_code`='monit', `service_id`='512', `service_name`='domain_monit', `service_desc`='', `is_valid`='0', `creator_id`=NULL, `create_time`='0000-00-00 00:00:00', `editor_id`=NULL, `edit_time`='0000-00-00 00:00:00', `region_code`='', `is_import`='0', `sort`='2' WHERE (`dict_id`='64');
UPDATE `function_service_dict` SET `dict_id`='99', `function_id`='200', `protocol_id`='0', `action`='128', `action_code`='whitelist', `service_id`='521', `service_name`='ip_intercepter_whitelist', `service_desc`='', `is_valid`='1', `creator_id`=NULL, `create_time`='0000-00-00 00:00:00', `editor_id`=NULL, `edit_time`='0000-00-00 00:00:00', `region_code`='1,2', `is_import`='0', `sort`='1' WHERE (`dict_id`='99');
UPDATE `function_service_dict` SET `dict_id`='100', `function_id`='200', `protocol_id`='0', `action`='128', `action_code`='whitelist', `service_id`='521', `service_name`='domain_whitelist', `service_desc`='', `is_valid`='0', `creator_id`=NULL, `create_time`='0000-00-00 00:00:00', `editor_id`=NULL, `edit_time`='0000-00-00 00:00:00', `region_code`='', `is_import`='0', `sort`='1' WHERE (`dict_id`='100');
UPDATE `function_service_dict` SET `dict_id`='108', `function_id`='200', `protocol_id`='0', `action`='64', `action_code`='ratelimit', `service_id`='514', `service_name`='ip_intercepter_ratelimit', `service_desc`='', `is_valid`='1', `creator_id`=NULL, `create_time`='0000-00-00 00:00:00', `editor_id`=NULL, `edit_time`='0000-00-00 00:00:00', `region_code`='1,2', `is_import`='1', `sort`='3' WHERE (`dict_id`='108');
UPDATE `function_service_dict` SET `dict_id`='109', `function_id`='200', `protocol_id`='0', `action`='64', `action_code`='ratelimit', `service_id`='515', `service_name`='domain_intercepter_ratelimit', `service_desc`='', `is_valid`='0', `creator_id`=NULL, `create_time`='0000-00-00 00:00:00', `editor_id`=NULL, `edit_time`='0000-00-00 00:00:00', `region_code`='', `is_import`='0', `sort`='3' WHERE (`dict_id`='109');
UPDATE `function_region_dict` SET `dict_id`='53', `function_id`='200', `config_district`='', `config_region_code`='1', `config_region_value`='PXY_INTERCEPT_IP', `config_desc`='PXY拦截IP', `is_valid`='1', `is_maat`='1', `region_type`='1', `creator_id`=NULL, `create_time`='0000-00-00 00:00:00', `editor_id`=NULL, `edit_time`='0000-00-00 00:00:00', `config_service_type`='intercept_ratelimit_ip', `config_expr_type`='', `config_match_method`='', `config_ip_type`='4,6', `config_hex`='', `config_multi_keywords`='', `config_ip_pattern`='1,2,3', `config_port_pattern`='1,2', `config_direction`='0', `config_protocol`='6,17', `config_ip_port_show`='1,2,3,4', `config_region_sort`='1', `is_import`='0' WHERE (`dict_id`='53');
UPDATE `function_region_dict` SET `dict_id`='56', `function_id`='200', `config_district`='', `config_region_code`='2', `config_region_value`='PXY_INTERCEPT_DOMAIN', `config_desc`='PXY拦截域名', `is_valid`='1', `is_maat`='1', `region_type`='2', `creator_id`=NULL, `create_time`='0000-00-00 00:00:00', `editor_id`=NULL, `edit_time`='0000-00-00 00:00:00', `config_service_type`='intercept_domain', `config_expr_type`='0', `config_match_method`='1', `config_ip_type`='', `config_hex`='2', `config_multi_keywords`='0', `config_ip_pattern`='', `config_port_pattern`='', `config_direction`='', `config_protocol`='', `config_ip_port_show`='', `config_region_sort`='1', `is_import`='0' WHERE (`dict_id`='56');
UPDATE `sys_menu` SET `id`='721', `parent_id`='719', `parent_ids`='0,1,86,719,', `code`='intercept_policy', `name`='拦截策略', `sort`='30', `href`='', `target`='', `icon`='', `is_show`='0', `permission`='', `create_by`='1', `create_date`='2018-06-19 17:29:52', `update_by`='1', `update_date`='2018-12-28 14:21:42', `remarks`='', `del_flag`='1', `menu_bg`='/online-help/proxy/intercept_policy', `quick_action`='0', `is_top`='0', `function_id`='0' WHERE (`id`='721');
UPDATE `sys_menu` SET `id`='722', `parent_id`='719', `parent_ids`='0,1,86,719,', `code`='intercept_policy', `name`='拦截策略', `sort`='30', `href`='/proxy/intercept/ip/list?cfgName=ip_intercept', `target`='', `icon`='', `is_show`='1', `permission`='intercept:ip:config', `create_by`='1', `create_date`='2018-06-19 17:38:06', `update_by`='1', `update_date`='2018-12-28 14:26:45', `remarks`='', `del_flag`='1', `menu_bg`=NULL, `quick_action`='0', `is_top`='0', `function_id`='200' WHERE (`id`='722');
UPDATE `sys_menu` SET `id`='756', `parent_id`='748', `parent_ids`='0,1,150,748,', `code`='intercept_policy', `name`='拦截策略', `sort`='30', `href`='', `target`='', `icon`='', `is_show`='0', `permission`='', `create_by`='1', `create_date`='2018-06-19 17:29:52', `update_by`='1', `update_date`='2018-12-28 14:21:07', `remarks`='', `del_flag`='1', `menu_bg`='', `quick_action`='0', `is_top`='0', `function_id`=NULL WHERE (`id`='756');
UPDATE `sys_menu` SET `id`='768', `parent_id`='748', `parent_ids`='0,1,150,748,', `code`='intercept_policy', `name`='拦截策略', `sort`='30', `href`='/proxy/intercept/ip/list?cfgName=ip_intercept', `target`='', `icon`='', `is_show`='1', `permission`='intercept:ip:confirm', `create_by`='1', `create_date`='2018-07-04 10:16:24', `update_by`='1', `update_date`='2018-12-28 14:19:04', `remarks`='', `del_flag`='1', `menu_bg`=NULL, `quick_action`='0', `is_top`='0', `function_id`='200' WHERE (`id`='768');
UPDATE `sys_menu` SET `id`='851', `parent_id`='850', `parent_ids`='0,1,151,850,', `code`='intercept_policy', `name`='拦截策略', `sort`='30', `href`='', `target`='', `icon`='', `is_show`='0', `permission`='', `create_by`='1', `create_date`='2018-07-13 16:27:49', `update_by`='1', `update_date`='2018-12-28 14:21:27', `remarks`='', `del_flag`='1', `menu_bg`=NULL, `quick_action`='0', `is_top`='0', `function_id`=NULL WHERE (`id`='851');
UPDATE `sys_menu` SET `id`='853', `parent_id`='850', `parent_ids`='0,1,151,850,', `code`='intercept_policy', `name`='拦截策略', `sort`='30', `href`='/proxy/intercept/ip/list?cfgName=ip_intercept', `target`='', `icon`='', `is_show`='1', `permission`='intercept:ip:audit', `create_by`='1', `create_date`='2018-07-13 16:29:26', `update_by`='1', `update_date`='2018-12-28 14:20:02', `remarks`='', `del_flag`='1', `menu_bg`=NULL, `quick_action`='0', `is_top`='0', `function_id`='200' WHERE (`id`='853');
UPDATE `sys_menu` SET `id`='1187', `parent_id`='717', `parent_ids`='0,1,86,717,', `code`='spoofing_ip_object', `name`='Spoofing IP Object', `sort`='5030', `href`='/proxy/spoofing/pool/list', `target`='', `icon`='', `is_show`='0', `permission`='proxy:spoofing:pool:config', `create_by`='1', `create_date`='2018-12-16 11:21:04', `update_by`='1', `update_date`='2018-12-27 20:25:31', `remarks`='', `del_flag`='1', `menu_bg`=NULL, `quick_action`='0', `is_top`='0', `function_id`='666' WHERE (`id`='1187');
UPDATE `sys_menu` SET `id`='1189', `parent_id`='750', `parent_ids`='0,1,150,750,', `code`='spoofing_ip_object', `name`='Spoofing IP Object', `sort`='450', `href`='/proxy/spoofing/pool/list', `target`='', `icon`='', `is_show`='0', `permission`='proxy:spoofing:pool:confirm', `create_by`='1', `create_date`='2018-12-16 15:16:44', `update_by`='1', `update_date`='2018-12-27 20:25:50', `remarks`='', `del_flag`='1', `menu_bg`=NULL, `quick_action`='0', `is_top`='0', `function_id`='666' WHERE (`id`='1189');
UPDATE `sys_menu` SET `id`='1190', `parent_id`='865', `parent_ids`='0,1,151,865,', `code`='spoofing_ip_object', `name`='Spoofing IP Object', `sort`='450', `href`='/proxy/spoofing/pool/list', `target`='', `icon`='', `is_show`='0', `permission`='', `create_by`='1', `create_date`='2018-12-16 15:16:44', `update_by`='1', `update_date`='2018-12-27 20:27:12', `remarks`='', `del_flag`='1', `menu_bg`='', `quick_action`='0', `is_top`='0', `function_id`='666' WHERE (`id`='1190');

View File

@@ -65,7 +65,7 @@
if(cked.prop("placeholder")!=1){
confirmx("<spring:message code='confirm_message'/>", url+"&sysDictId="+cked.val());
}else{
if(${fns:getUser().loginId=='admin'}){
if(${fns:getUser().isAdmin()}){
confirmx("<spring:message code='confirm_message'/>", url+"&sysDictId="+cked.val());
}else{
top.$.jBox.tip("<spring:message code='initial_data_is_not_allowed_to_edit.'/>", "<spring:message code='info'/>");

View File

@@ -267,7 +267,7 @@ var delContent = function(contentClassName, addBtnClassName) {
</div>
</div>
</div>
<c:if test="${fns:getUser().loginId eq 'admin' or fns:getUser().loginId eq 'appUser' }">
<c:if test="${fns:getUser().isAdmin() or fns:getUser().loginId eq 'appUser' }">
<div class="row">
<div class="col-md-6">
<div class="form-group">

View File

@@ -116,6 +116,26 @@
onClick="javascript:window.location='${ctx}/app/feature/multiFeatureCfgForm?functionId=${cfg.functionId}'">
<i class="fa fa-plus"></i>
<spring:message code="add"></spring:message></button>
<c:set var="serviceImport" value="false"></c:set>
<c:set var="regionImport" value="false"></c:set>
<c:forEach items="${serviceList}" var="service" >
<c:if test="${(cfg.functionId eq service.functionId) && service.isImport eq 1}">
<c:set var="serviceImport" value="true"></c:set>
</c:if>
</c:forEach>
<c:forEach items="${regionList}" var="region" >
<c:if test="${(cfg.functionId eq region.functionId) && region.isImport eq 1}">
<c:set var="regionImport" value="true"></c:set>
</c:if>
</c:forEach>
<c:if test="${serviceImport eq 'true' && regionImport eq 'true'}">
<button type="button" class="btn btn-primary import" >
<i class="fa fa-plus"></i>
<spring:message code="import"></spring:message></button>
</c:if>
</shiro:hasPermission>
</div>
@@ -420,6 +440,8 @@
</div>
</div>
</div>
<c:set var="importPath" value="/ntc/website/dnsList?functionId=${cfg.functionId}"/>
<!-- 模板导入start -->
<%@include file="/WEB-INF/include/excel/importModal.jsp" %>
</body>
</html>

View File

@@ -26,6 +26,27 @@
</div>
</div>
<br>
<!-- 域名拦截增加拦截强度 -->
<c:if test="${_cfg.functionId eq 200}">
<div class="row hidden intensity">
<div class="col-md-6">
<div class="form-group">
<label class="control-label col-md-3"><font color="red">*</font>
<spring:message code="intercept_intensity" />
</label>
<div class="col-md-6">
<select name="userRegion5"
class="selectpicker show-tick form-control required">
<c:forEach items="${fns:getDictList('INTERCEPT_DOMAIN_INTENSITY')}" var="intensityC">
<option value="${intensityC.itemCode}" <c:if test="${_cfg.userRegion5==intensityC.itemCode || (empty _cfg.userRegion5 && intensityC.itemCode eq 1)}">selected</c:if>><spring:message code="${intensityC.itemValue}"/></option>
</c:forEach>
</select>
</div>
<div for="userRegion5"></div>
</div>
</div>
</div>
</c:if>
<c:if test="${!empty region.configDistrict }">
<div class="row">
<div class="col-md-6">
@@ -85,7 +106,7 @@
<!-- 此配置的关键词可以输入多个关键词 -->
<c:if test="${region.configMultiKeywords eq 1}">
<div class="col-md-6">
<input class="form-control required tags" type="text" id="tags_${tabName}"
<input class="form-control required tags" type="text" id="tags_${tabName}${status.index}"
name="${cfgName}.cfgKeywords"
value="${cfg.cfgKeywords}">
</div>

View File

@@ -317,6 +317,7 @@
$(".replaceAction").addClass("hidden");
$(".whiteListAction").addClass("hidden");
$(".spoofingAction").addClass("hidden");
$(".intensity").removeClass("hidden");//域名关联度
if(interceptRatelimitIp == 'intercept_ratelimit_ip'){
$("select[name='"+protocolNamePrefix+"protocol']").find("option").remove();
$("select[name='"+protocolNamePrefix+"protocol']").selectpicker("refresh");
@@ -336,6 +337,7 @@
$(".replaceAction").addClass("hidden");
$(".whiteListAction").addClass("hidden");
$(".spoofingAction").addClass("hidden");
$(".intensity").addClass("hidden");//域名关联度
if(interceptRatelimitIp == 'intercept_ratelimit_ip'){
$("select[name='"+protocolNamePrefix+"protocol']").find("option").remove();
$("select[name='"+protocolNamePrefix+"protocol']").selectpicker("refresh");
@@ -356,6 +358,7 @@
$(".replaceAction").removeClass("hidden");
$(".whiteListAction").addClass("hidden");
$(".spoofingAction").addClass("hidden");
$(".intensity").addClass("hidden");//域名关联度
if(interceptRatelimitIp == 'intercept_ratelimit_ip'){
$("select[name='"+protocolNamePrefix+"protocol']").find("option").remove();
$("select[name='"+protocolNamePrefix+"protocol']").selectpicker("refresh");
@@ -373,6 +376,7 @@
$(".replaceAction").addClass("hidden");
$(".whiteListAction").removeClass("hidden");
$(".spoofingAction").addClass("hidden");
$(".intensity").addClass("hidden");//域名关联度
if(interceptRatelimitIp == 'intercept_ratelimit_ip'){
$("select[name='"+protocolNamePrefix+"protocol']").find("option").remove();
$("select[name='"+protocolNamePrefix+"protocol']").selectpicker("refresh");
@@ -392,6 +396,7 @@
$(".replaceAction").addClass("hidden");
$(".whiteListAction").addClass("hidden");
$(".spoofingAction").removeClass("hidden");
$(".intensity").addClass("hidden");//域名关联度
if(interceptRatelimitIp == 'intercept_ratelimit_ip'){
$("select[name='"+protocolNamePrefix+"protocol']").find("option").remove();
$("select[name='"+protocolNamePrefix+"protocol']").selectpicker("refresh");
@@ -410,10 +415,13 @@
</head>
<body>
<!-- fucntion_ID 200-IP 201-DOMAIN -->
<c:if test="${_cfg.functionId eq 200 or _cfg.functionId eq 214}">
<c:if test="${_cfg.functionId eq 214}">
<c:set var="interceptType" value="Ip"/>
</c:if>
<c:if test="${_cfg.functionId eq 201}">
<c:if test="${_cfg.functionId eq 200}">
<c:set var="interceptType" value="Ip"/>
</c:if>
<c:if test="${cfg.functionId eq 201}">
<c:set var="interceptType" value="Domain"/>
</c:if>
<c:if test="${_cfg.functionId eq 212}">
@@ -532,25 +540,6 @@
<spring:message code="action_region" />
<small></small>
</h4>
<!-- 域名拦截增加拦截强度 -->
<c:if test="${_cfg.functionId eq 201}">
<div class="col-md-6">
<div class="form-group">
<label class="control-label col-md-3"><font color="red">*</font>
<spring:message code="intercept_intensity" />
</label>
<div class="col-md-6">
<select name="userRegion5"
class="selectpicker show-tick form-control required">
<c:forEach items="${fns:getDictList('INTERCEPT_DOMAIN_INTENSITY')}" var="intensityC">
<option value="${intensityC.itemCode}" <c:if test="${_cfg.userRegion5==intensityC.itemCode || (empty _cfg.userRegion5 && intensityC.itemCode eq 1)}">selected</c:if>><spring:message code="${intensityC.itemValue}"/></option>
</c:forEach>
</select>
</div>
<div for="userRegion5"></div>
</div>
</div>
</c:if>
<div class="col-md-6">
<div class="form-group">
<label class="control-label col-md-3"><spring:message
@@ -696,7 +685,7 @@
<div class="col-md-6">
<div class="form-group">
<label class="control-label col-md-3"><font color="red">*</font>
<spring:message code="Spoofing" />
<spring:message code="spoofing" />
</label>
<div class="col-md-6">
<select name="userRegion1"
@@ -714,12 +703,14 @@
<label class="control-label col-md-3"><font color="red">*</font>
<spring:message code="With" /></label>
<div class="col-md-6">
<select name="userRegion2" class="selectpicker show-tick form-control required">
<input class="form-control required ip" type="text" name="userRegion2" value="${_cfg.userRegion2}">
<input class="form-control" type="hidden" name="userRegion3" value="${_cfg.userRegion3}">
<%-- <select name="userRegion2" class="selectpicker show-tick form-control required">
<option value="" ><spring:message code="select"/></option>
<c:forEach items="${policyGroups }" var="policyGroup">
<option value="${policyGroup.groupId}" <c:if test="${_cfg.userRegion2==policyGroup.groupId }">selected</c:if>><spring:message code="${policyGroup.groupName}"/></option>
<option value="${policyGroup.cfgId}" <c:if test="${_cfg.userRegion2==policyGroup.cfgId }">selected</c:if>><spring:message code="${policyGroup.groupName}"/></option>
</c:forEach>
</select>
</select> --%>
</div>
<div for="userRegion2"></div>
</div>
@@ -742,7 +733,7 @@
</div> --%>
</div>
<%-- action 为128 白名单时 --%>
<c:if test="${_cfg.functionId eq 201}">
<c:if test="${_cfg.functionId eq 200}">
<div class="row whiteListAction hidden">
<%-- <h4 class="form-section">
<spring:message code="action_region" />

View File

@@ -95,7 +95,10 @@
</head>
<body>
<c:if test="${cfg.functionId eq 200 or cfg.functionId eq 214}">
<c:if test="${cfg.functionId eq 214}">
<c:set var="interceptType" value="Ip"/>
</c:if>
<c:if test="${cfg.functionId eq 200}">
<c:set var="interceptType" value="Ip"/>
</c:if>
<c:if test="${cfg.functionId eq 201}">
@@ -382,27 +385,28 @@
<th column="cfg_id" class="sort-column a.compile_id" style="display: none"><spring:message code="cfg_id"/></th>
<th column="config_describe" class="sort-column a.cfg_desc cfgDesc"><spring:message code="config_describe"/></th>
<th column="block_type" class="sort-column a.action"><spring:message code="block_type"/></th>
<c:if test="${cfg.functionId eq 201 }">
<c:if test="${cfg.functionId eq 200 }">
<th column="userregion2" ><spring:message code="ratelimit"/></th>
<%-- <th column="bandwith" ><spring:message code="bandwith"/></th> --%>
<th column="userregion1" ><spring:message code="intercept_file_strategy"/></th>
<th column="userregion5" ><spring:message code="intercept_intensity"/></th>
</c:if>
<c:if test="${cfg.functionId eq 200 }">
<%-- <th column="bandwith" ><spring:message code="bandwith"/></th> --%>
<%-- <c:if test="${cfg.functionId eq 200 }">
<th column="bandwith" ><spring:message code="bandwith"/></th>
<th column="userRegion1" ><spring:message code="intercept_file_strategy"/></th>
</c:if>
</c:if> --%>
<c:if test="${cfg.functionId eq 212 }">
<th column="userregion1" ><spring:message code="replace_zone"/></th>
<th column="userregion2" ><spring:message code="replaced_content"/></th>
<th column="userregion3" ><spring:message code="replace_content"/></th>
</c:if>
<c:if test="${cfg.functionId eq 214 }">
<th column="userregion1" ><spring:message code="Spoofing"/></th>
<th column="userregion1" ><spring:message code="spoofing"/></th>
<th column="userregion2" ><spring:message code="With"/></th>
</c:if>
<c:if test="${cfg.functionId eq 201 }">
<%-- <c:if test="${cfg.functionId eq 201 }">
<th column="userregion1" ><spring:message code="intercept_intensity"/></th>
</c:if>
</c:if> --%>
<th column="is_audit" ><spring:message code="is_audit"/></th>
<%-- <th column="do_log" ><spring:message code="do_log"/></th> --%>
<th column="whether_area_block" ><spring:message code="whether_area_block"/></th>
@@ -437,7 +441,7 @@
<spring:message code="bypass"/>
</c:if>
<c:if test="${indexCfg.action eq 48}">
<spring:message code="Spoofing"/>
<spring:message code="spoofing"/>
</c:if>
<c:if test="${(indexCfg.action ne 1) && (indexCfg.action ne 128) && (indexCfg.action ne 48)}">
<c:forEach items="${fns:getDictList('SERVICE_ACTION') }" var="dict">
@@ -450,7 +454,7 @@
</td>
<c:if test="${cfg.functionId eq 201 }">
<c:if test="${cfg.functionId eq 200 }">
<td>
<c:if test="${indexCfg.action eq 64}">
<c:forEach items="${fns:getDictList('RATE_LIMIT')}" var="ratelimitC">
@@ -472,13 +476,22 @@
</c:forEach>
</c:if>
</td>
<td>
<c:if test="${indexCfg.action eq 1 }">
<c:forEach items="${fns:getDictList('INTERCEPT_DOMAIN_INTENSITY') }" var="intentsityC">
<c:if test="${intentsityC.itemCode eq indexCfg.userRegion5 }">
<spring:message code="${intentsityC.itemValue }"/>
</c:if>
</c:forEach>
</c:if>
</td>
</c:if>
<c:if test="${cfg.functionId eq 200 }">
<%-- <td>
<%-- <c:if test="${cfg.functionId eq 200 }">
<td>
<c:if test="${indexCfg.action eq 64}">
${indexCfg.userRegion3 }
</c:if>
</td> --%>
</td>
<td>
<c:if test="${indexCfg.action eq 1}">
<c:forEach items="${certificateList}" var="certificate">
@@ -486,7 +499,7 @@
</c:forEach>
</c:if>
</td>
</c:if>
</c:if> --%>
<c:if test="${cfg.functionId eq 212 }">
<td>
<c:forEach items="${fns:getDictList('INTERCEPT_REPLACE_ZONE')}" var="replaceZoneC">
@@ -511,14 +524,15 @@
</c:forEach>
</td>
<td>
<c:forEach items="${policyGroups}" var="policyGroup">
${indexCfg.userRegion2 }
<%-- <c:forEach items="${policyGroups}" var="policyGroup">
<c:if test="${indexCfg.userRegion2==policyGroup.groupId}">
${policyGroup.groupName }
</c:if>
</c:forEach>
</c:forEach> --%>
</td>
</c:if>
<c:if test="${cfg.functionId eq 201 }">
<%-- <c:if test="${cfg.functionId eq 201 }">
<td>
<c:if test="${indexCfg.action eq 1 }">
<c:forEach items="${fns:getDictList('INTERCEPT_DOMAIN_INTENSITY') }" var="intentsityC">
@@ -528,7 +542,7 @@
</c:forEach>
</c:if>
</td>
</c:if>
</c:if> --%>
<td>
<c:choose>
<c:when test="${indexCfg.isAudit eq '0'}"><span class="label label-danger"><spring:message code="created"></spring:message></span></c:when>

View File

@@ -89,11 +89,12 @@ $(function(){
<div class="form-group">
<label class="control-label col-md-3"><font color="red">*</font><spring:message code="group"/></label>
<div class="col-md-6">
<select name="groupId" id="group" class="selectpicker show-tick form-control required">
<input class="form-control required" type="text" name="groupName" value="${_cfg.groupName}">
<%-- <select name="groupId" id="group" class="selectpicker show-tick form-control required">
<c:forEach items="${policyGroups }" var="policyGroup">
<option value="${policyGroup.groupId}" groupType="${policyGroup.asnNo }" <c:if test="${_cfg.groupId==policyGroup.groupId }">selected</c:if>><spring:message code="${policyGroup.groupName}"/></option>
</c:forEach>
</select>
</select> --%>
</div>
<div for="groupId"></div>
</div>

View File

@@ -25,20 +25,33 @@ body {
.fa-arrow-circle-up {
color: #001029;
background-color: #fe392e;
border-radius: 10px;
font-size: 13px;
width: 10px;
height: 10px;
line-height: 9px !important;
/* border-radius: 10px; */
/* font-size: 13px; */
/* width: 10px; */
/* height: 10px; */
/* line-height: 9px !important; */
border-radius: 12px;
font-size: 15px;
width: 11px;
height: 9px;
line-height: 10px !important
}
.fa-arrow-circle-down {
color: #001029;
background-color: #009966;
border-radius: 10px;
font-size: 13px;
width: 10px;
height: 10px;
line-height: 9px !important;
/* border-radius: 10px; */
/* font-size: 13px; */
/* width: 10px; */
/* height: 10px; */
/* line-height: 9px !important; */
border-radius: 12px;
font-size: 15px;
width: 11px;
height: 9px;
line-height: 10px !important
}
.tooltip-inner {
white-space: nowrap;
}
</style>
</head>
@@ -139,13 +152,13 @@ body {
</div>
<div class="fr_fc">
<div class="fl_visual">
<a href="${ctx}/dashboard/traffic/ntcTotalReportDetail?searchAction=active_link"><i class="fa fa-unlink"> </i></a>
<a href="${ctx}/dashboard/traffic/ntcTotalReportDetail?searchAction=close_link"><i class="fa fa-unlink"> </i></a>
</div>
<div class="fl_fc">
<p data-original-title="<spring:message code="active_link"/>"
<p data-original-title="<spring:message code="active_link"/>"
class="tooltips" data-flag="false" data-html="true" data-placement="top">
<!-- 活跃链接数 --><spring:message code="active_link"/></p>
<a href="${ctx}/dashboard/traffic/ntcTotalReportDetail?searchAction=active_link"><p class="numberRun6">0</p></a>
<a href="${ctx}/dashboard/traffic/ntcTotalReportDetail?searchAction=close_link"><p class="numberRun6">0</p></a>
</div>
</div>
@@ -424,7 +437,7 @@ function ajaxinfo(){
var monitorNum =data.monitorNum;
var dropConnNum =data.dropConnNum;
var newUniConnNum=data.newUniConnNum;
var liveConnNum=data.liveConnNum;
var closeConnNum=data.closeConnNum;
if(loopConnNum==null||loopConnNum==""){
loopConnNum=0;
@@ -441,17 +454,17 @@ function ajaxinfo(){
if(newUniConnNum==null||newUniConnNum==""){
newUniConnNum=0;
}
if(liveConnNum==null||liveConnNum==""){
liveConnNum=0;
if(closeConnNum==null||closeConnNum==""){
closeConnNum=0;
}
dataScroll(".numberRun",Math.round(loopConnNum));
dataScroll(".numberRun1",Math.round(rejectNum));
dataScroll(".numberRun2",Math.round(monitorNum));
dataScroll(".numberRun3",Math.round(dropConnNum));
dataScroll(".numberRun5",Math.round(newUniConnNum));
dataScroll(".numberRun6",Math.round(liveConnNum));
dataScroll(".numberRun7",Math.round(newUniConnNum-rejectNum));
dataScroll(".numberRun8",Math.round(newUniConnNum-rejectNum-dropConnNum));
dataScroll(".numberRun6",Math.round(closeConnNum));
dataScroll(".numberRun7",Math.round(newUniConnNum+closeConnNum-rejectNum));
dataScroll(".numberRun8",Math.round(newUniConnNum-rejectNum));
//计算带宽进出口流量百分比
@@ -610,7 +623,7 @@ function portActiveList(){
$("#tbodyDataPort").html("");
var n=rs.length;
if(rs!=null&&rs.length>0&&rs[0].error!=null){
$("#tbodyDataPort").prepend("<tr class='frist rowData'><td></td><td style='color:#fff'><spring:message code='request_service_failed'/></td><td></td></tr>");
$("#tbodyDataPort").prepend("<tr class='frist rowData'><td style='color:#fff' colspan='3'><spring:message code='request_service_failed'/></td></tr>");
}else{
if(n>0){
@@ -694,7 +707,7 @@ function systemList(){
rs.reverse();
var n=rs.length;
if(rs!=null&&rs.length>0&&rs[0].error!=null){
$("#tbodyData1").prepend("<tr class='frist rowData'><td></td><td style='color:#fff'><spring:message code='request_service_failed'/></td><td></td></tr>");
$("#tbodyData1").prepend("<tr class='frist rowData'><td style='color:#fff' colspan='3'><spring:message code='request_service_failed'/></td></tr>");
}else{
if(n>0){
@@ -807,7 +820,7 @@ function browserList() {
rs.reverse();
var n=rs.length;
if(rs!=null&&rs.length>0&&rs[0].error!=null){
$("#tbodyData1").prepend("<tr class='frist rowData'><td></td><td style='color:#fff'><spring:message code='request_service_failed'/></td><td></td></tr>");
$("#tbodyData1").prepend("<tr class='frist rowData'><td style='color:#fff' colspan='3'><spring:message code='request_service_failed'/></td></tr>");
}else{
if(n>0){
$(rs).each(function(i, itemObj) {
@@ -873,7 +886,7 @@ function websiteList() {
$("#tbodyData2").html("");
var n=rs.length;
if(rs!=null&&rs.length>0&&rs[0].error!=null){
$("#tbodyData2").prepend("<tr class='frist rowData'><td></td><td style='color:#fff'><spring:message code='request_service_failed'/></td><td></td></tr>");
$("#tbodyData2").prepend("<tr class='frist rowData'><td style='color:#fff' colspan='3'><spring:message code='request_service_failed'/></td></tr>");
}else{
if(n>0){
$(rs).each(function(i, itemObj) {

View File

@@ -88,6 +88,9 @@
<li><a class="btn export-btn" data-type="xlsx" id="export-btn"><i class="fa fa-download"> </i> excel </a><li>
<li><a class="btn export-btn" data-type="csv" id="export-btn"><i class="fa fa-download"> </i> csv &nbsp;&nbsp;&nbsp;</a><li>
</ul>
<div class="btn-group">
<button type="button" class="btn btn-default css-print" onClick="doPrint()"><i class="fa glyphicon glyphicon-print" style="top:3px;margin-right: 3px;"></i><spring:message code="print"/></button>
</div>
</div>
<br>
<br>
@@ -115,6 +118,7 @@
<script src="${pageContext.request.contextPath}/static/global/plugins/highcharts/js/series-label.js"></script>
<script src="${pageContext.request.contextPath}/static/global/plugins/highcharts/js/offline-exporting.js"></script>
<script src="${pageContext.request.contextPath}/static/global/plugins/highcharts/js/no-data-to-display.js"></script>
<script src="${ctxStatic }/pages/scripts/jQuery.print.js"></script>
<script type="text/javascript">
$(document).ready(function(){
@@ -185,6 +189,17 @@ function ajaxAppList(start,end){
}
});
}
//打印列表
function doPrint() {
getPageData(1,999999);// 设置打印条数
$("#contentTable").print({
globalStyles: true,
iframe: true,
append: null
});
getPageData(1,10);
pageJuan(10);//初始化分页
}
// 导出列表
$(".export-btn").click(function(){
var nowDate=new Date();

View File

@@ -149,6 +149,7 @@ function showDomainTrans(xData,series){
},
plotOptions: {
series: {
lineWidth:1,
marker: {
radius: 2,
hover: {

View File

@@ -65,6 +65,9 @@
<li><a class="btn export-btn" data-type="xlsx" id="export-btn"><i class="fa fa-download"> </i> excel </a><li>
<li><a class="btn export-btn" data-type="csv" id="export-btn"><i class="fa fa-download"> </i> csv &nbsp;&nbsp;&nbsp;</a><li>
</ul>
<div class="btn-group">
<button type="button" class="btn btn-default css-print" onClick="doPrint()"><i class="fa glyphicon glyphicon-print" style="top:3px;margin-right: 3px;"></i><spring:message code="print"/></button>
</div>
</div>
<br>
<br>
@@ -91,6 +94,7 @@
<script src="${pageContext.request.contextPath}/static/global/plugins/highcharts/js/exporting.js"></script>
<script src="${pageContext.request.contextPath}/static/global/plugins/highcharts/js/series-label.js"></script>
<script src="${pageContext.request.contextPath}/static/global/plugins/highcharts/js/offline-exporting.js"></script>
<script src="${ctxStatic }/pages/scripts/jQuery.print.js"></script>
<script type="text/javascript">
$(document).ready(function(){
loading();
@@ -163,6 +167,17 @@ function ajaxProtocolList(start,end){
}
});
}
//打印列表
function doPrint() {
getPageData(1,999999);// 设置打印条数
$("#contentTable").print({
globalStyles: true,
iframe: true,
append: null
});
getPageData(1,10);
pageJuan(10);//初始化分页
}
// 导出列表
$(".export-btn").click(function(){
var dataType = $(this).attr("data-type");

View File

@@ -70,6 +70,9 @@
<li><a class="btn export-btn" data-type="xlsx" id="export-btn"><i class="fa fa-download"> </i> excel </a><li>
<li><a class="btn export-btn" data-type="csv" id="export-btn"><i class="fa fa-download"> </i> csv &nbsp;&nbsp;&nbsp;</a><li>
</ul>
<div class="btn-group">
<button type="button" class="btn btn-default css-print" onClick="doPrint()"><i class="fa glyphicon glyphicon-print" style="top:3px;margin-right: 3px;"></i><spring:message code="print"/></button>
</div>
</div>
<br>
<br>
@@ -110,6 +113,7 @@
<script src="${pageContext.request.contextPath}/static/global/plugins/highcharts/js/exporting-data.js"></script>
<script src="${pageContext.request.contextPath}/static/global/plugins/highcharts/js/standalone.js"></script>
<script src="${pageContext.request.contextPath}/static/global/plugins/highcharts/js/no-data-to-display.js"></script>
<script src="${ctxStatic }/pages/scripts/jQuery.print.js"></script>
<script type="text/javascript">
$(document).ready(function(){
@@ -131,7 +135,14 @@ $(document).ready(function(){
$("#searchForm")[0].reset();
});
});
//打印列表
function doPrint() {
$("#contentTable").print({
globalStyles: true,
iframe: true,
append: null
});
}
//导出列表
$(".export-btn").click(function(){
var dataType = $(this).attr("data-type");

View File

@@ -78,6 +78,9 @@
<li><a class="btn export-btn" data-type="xlsx" id="export-btn"><i class="fa fa-download"> </i> excel </a><li>
<li><a class="btn export-btn" data-type="csv" id="export-btn"><i class="fa fa-download"> </i> csv &nbsp;&nbsp;&nbsp;</a><li>
</ul>
<div class="btn-group">
<button type="button" class="btn btn-default css-print" onClick="doPrint()"><i class="fa glyphicon glyphicon-print" style="top:3px;margin-right: 3px;"></i><spring:message code="print"/></button>
</div>
</div>
<br>
<br>
@@ -105,6 +108,7 @@
<script src="${pageContext.request.contextPath}/static/global/plugins/highcharts/js/series-label.js"></script>
<script src="${pageContext.request.contextPath}/static/global/plugins/highcharts/js/offline-exporting.js"></script>
<script src="${pageContext.request.contextPath}/static/global/plugins/highcharts/js/no-data-to-display.js"></script>
<script src="${ctxStatic }/pages/scripts/jQuery.print.js"></script>
<script type="text/javascript">
$(document).ready(function(){
@@ -179,6 +183,17 @@ function ajaxProtocolList(start,end){
}
});
}
//打印列表
function doPrint() {
getPageData(1,999999);// 设置打印条数
$("#contentTable").print({
globalStyles: true,
iframe: true,
append: null
});
getPageData(1,10);
pageJuan(10);//初始化分页
}
// 导出列表
$(".export-btn").click(function(){
var nowDate=new Date();

View File

@@ -4,7 +4,7 @@
<head>
<link rel="stylesheet" href="${pageContext.request.contextPath}/static/global/css/layout.css" type="text/css" media="screen">
<script type="text/javascript" src="${pageContext.request.contextPath}/static/global/plugins/jquery-ui/jquery-ui.min.js"></script>
<script src="${ctxStatic }/pages/scripts/jQuery.print.js"></script>
<title><spring:message code="traffic_user_behavior"></spring:message></title>
<style>
td:hover{
@@ -164,7 +164,22 @@
var modifyTime=new Date(chooseDate);
$('#searchFoundEndTime').val(modifyTime.getFullYear()+"-"+((modifyTime.getMonth()+1)>=10?(modifyTime.getMonth()+1):"0"+(modifyTime.getMonth()+1))+"-"+(modifyTime.getDate()>=10?modifyTime.getDate():'0'+modifyTime.getDate())+' '+(modifyTime.getHours()>=10?modifyTime.getHours():'0'+modifyTime.getHours())+':'+(modifyTime.getMinutes()>=10?modifyTime.getMinutes():'0'+modifyTime.getMinutes())+':'+(modifyTime.getSeconds()>=10?modifyTime.getSeconds():'0'+modifyTime.getSeconds()));
}
//打印列表
function doPrint() {
if($('.httpResCfg').is(':hidden')){
$(".httpReqCfg").print({
globalStyles: true,
iframe: true,
append: null
});
}else{
$(".httpResCfg").print({
globalStyles: true,
iframe: true,
append: null
});
}
}
</script>
</head>
<body>
@@ -268,7 +283,9 @@
maxRow="10000" label="csv"></sys:delRow></li>
</ul>
</div>
<div class="btn-group">
<button type="button" class="btn btn-default css-print" onClick="doPrint()"><i class="fa glyphicon glyphicon-print" style="top:3px;margin-right: 3px;"></i><spring:message code="print"/></button>
</div>
<a class="btn btn-icon-only btn-default setfields tooltips"
data-container="body" data-placement="top"
data-original-title=<spring:message code="custom_columns"/>

View File

@@ -128,6 +128,9 @@
<li><a class="btn export-btn" data-type="xlsx" id="export-btn"><i class="fa fa-download"> </i> excel </a><li>
<li><a class="btn export-btn" data-type="csv" id="export-btn"><i class="fa fa-download"> </i> csv &nbsp;&nbsp;&nbsp;</a><li>
</ul>
<div class="btn-group">
<button type="button" class="btn btn-default css-print" onClick="doPrint()"><i class="fa glyphicon glyphicon-print" style="top:3px;margin-right: 3px;"></i><spring:message code="print"/></button>
</div>
</div>
</div>
</div>
@@ -167,6 +170,7 @@
<script src="${pageContext.request.contextPath}/static/global/plugins/highcharts/js/series-label.js"></script>
<script src="${pageContext.request.contextPath}/static/global/plugins/highcharts/js/offline-exporting.js"></script>
<script src="${pageContext.request.contextPath}/static/global/plugins/highcharts/js/no-data-to-display.js"></script>
<script src="${ctxStatic }/pages/scripts/jQuery.print.js"></script>
<script type="text/javascript">
$(document).ready(function(){
@@ -247,6 +251,17 @@
}
});
}
//打印列表
function doPrint() {
getPageData(1,999999);// 设置打印条数
$("#contentTable").print({
globalStyles: true,
iframe: true,
append: null
});
getPageData(1,10);
pageJuan(10);//初始化分页
}
// 导出列表
$(".export-btn").click(function(){
var nowDate=new Date();
@@ -367,10 +382,13 @@
top: '1%',
draggable:false,
width: $(document).width()*0.9,
height:$(document).height()*0.9,
height:$(document).height()*0.8,
showScrolling: false, /* 是否显示浏览的滚动条 */
iframeScrolling: 'no',
buttons: { 'close': true }
buttons: { 'close': true },
loaded:function(h){
$(".jbox-content,top.document").css("overflow-y","hidden")
}
});
}
/**

View File

@@ -268,8 +268,8 @@
font-size:18px;
color:#ffffff;
position: relative;
top: 2.2%;
left: 35%;
top: 2.45%;
left: 33%;
font-size: 24px;
}
/* #dataNumsStr span{

View File

@@ -10,7 +10,6 @@
<link rel="stylesheet" href="${pageContext.request.contextPath}/static/pages/css/data_text.css">
<link rel="stylesheet" href="${pageContext.request.contextPath}/static/pages/css/dashboard.css">
<script src="${pageContext.request.contextPath}/static/pages/scripts/dashboard.js"></script>
<!--[if lt IE 9]>
<script src="js/html5shiv.min.js"></script>
<script src="js/respond.min.js"></script>
@@ -265,6 +264,17 @@
top: 5%;
left: -41%;
}
#dataNumsStr{
font-size:18px;
color:#ffffff;
position: relative;
top: 2.45%;
left: 33%;
font-size: 24px;
}
/* #dataNumsStr span{
margin-left:-45px;font-size:23px;font-family:arial;font-weight:bold;
} */
/* 杂质动态 */
.zzdt{
position: absolute;
@@ -344,8 +354,8 @@
<!-- 数据流出 -->
<div style="margin-left: -187px;margin-top: 11%;">
<div id="linesFlow_chu" style="height: 260px;"></div>
</div>
<div id="dataNums" ></div>
</div><div id="dataNums" ></div>
<div id="dataNumsStr"></div>
</div>
<div class="col-sm-3" style="height: 100%">
<div class="box_log_bar">
@@ -859,6 +869,7 @@
},
grid:{
left: 53,
top: '35%',
},
xAxis: {
type: 'time',
@@ -875,7 +886,7 @@
color: '#fff',
fontSize: 12,
formatter: function(value) {
return echarts.format.formatTime('hh:mm:ss', new Date(value));
return echarts.format.formatTime('hh:mm', new Date(value));
}
},
splitLine: {
@@ -885,6 +896,10 @@
},
yAxis: [{
type: 'value',
name: 'Bps',
nameTextStyle:{
color:'#ffffff',
},
min: 0,
axisLine: {
lineStyle: {
@@ -897,14 +912,20 @@
color: 'white',
fontSize: 12,
formatter: function (value, index) {
if (value > 1000 && value <= 1000000) {
return value/1000 + " K";
if (value > 1024 && value <= 1048576) {
return Math.round(value/1024) + " K";//Bps
}
if (value > 10000000 && value <= 1000000000) {
return value/1000000 + " M";
if (value > 1048576 && value <= 1073741824) {
return Math.round(value/1048576) + " M";//Bps
}
if (value > 100000000) {
return value/1000000000 + " B";
if (value > 1073741824 && value <= 1099511627776) {
return Math.round(value/1073741824) + " G";//Bps
}
if (value > 1099511627776 && value <= 1125899906842624) {
return Math.round(value/1099511627776) + " T";//Bps
}
if (value > 1125899906842624) {
return Math.round(value/1125899906842624) + " P";//Bps
}
return value;
}
@@ -1044,16 +1065,19 @@
},
axisLabel: {
formatter: function(value) {
if (value > 1000 && value <= 1000000) {
return value/1000 + " K";
}
if (value > 10000000 && value <= 1000000000) {
return value/1000000 + " M";
}
if (value > 100000000) {
return value/1000000000 + " B";
}
return value;
if (value > 1000 && value <= 1000000) {
return Math.round(value/1000) + " K";
}
if (value > 1000000 && value <= 1000000000) {
return Math.round(value/1000000) + " M";
}
if (value > 1000000000 && value <= 1000000000000) {
return Math.round(value/1000000000) + " T";
}
if (value > 1000000000000) {
return Math.round(value/1000000000000) + " P";
}
return value;
},
},
splitNumber: 4,
@@ -1136,7 +1160,7 @@
$.ajax({
type:'get',
dataType: 'json',
url:"${pageContext.request.contextPath}/nis/dynamicpage/indexTraffic?baseNum=" + top.baseNum,
url:"${pageContext.request.contextPath}/nis/dynamicpage/indexTraffic?hour=2&baseNum=" + top.baseNum,
success:function(res){//处理返回结果
if(res) {
data = res;
@@ -1189,7 +1213,7 @@
$.ajax({
type:'get',
dataType: 'json',
url:'${pageContext.request.contextPath}/nis/dynamicpage/indexLog?sid=' + top.indexLogServiceId + "&baseNum=" + top.baseNum,
url:'${pageContext.request.contextPath}/nis/dynamicpage/indexLog?hour=24&sid=' + top.indexLogServiceId + "&baseNum=" + top.serviceBaseNum,
success:function(res){//处理返回结果
logData = res;
_logData = logData.shift();
@@ -1219,10 +1243,39 @@
/* 数字特效 */
function animalNum(dropNum){
//var value = rand(100,999);;
var unitStr = "";
if (dropNum > 1000 && dropNum <= 1000000) {
dropNum = Math.round(dropNum/1000);//K取整
//dropNum = (dropNum/1000).toFixed(1);alert(dropNum);
unitStr = "K";
}
if (dropNum > 1000000 && dropNum <= 1000000000) {
dropNum = Math.round(dropNum/1000000);//M
//dropNum = (dropNum/1000000).toFixed(1);
unitStr = "M";
}
if (dropNum > 1000000000 && dropNum <= 1000000000000) {
dropNum = Math.round(dropNum/1000000000);//G
//dropNum = (dropNum/1000000000).toFixed(1);
unitStr = "G";
}
if (dropNum > 1000000000000 && dropNum <= 1000000000000000) {
dropNum = Math.round(dropNum/1000000000000);//T
//dropNum = (dropNum/1000000000000).toFixed(1);
unitStr = "T";
}
if (dropNum > 1000000000000000) {
dropNum = Math.round(dropNum/1000000000000000);//P
//dropNum = (dropNum/1000000000000000).toFixed(1);
unitStr = "P";
}
//dropNum = rand(100,999);
//dropNum= dropNum+"M";
$("#dataNums").empty();
$("#dataNums").rollNum({
deVal:dropNum
});
$("#dataNumsStr").html("<span>"+unitStr+"</span>");//alert(unitStr);
};
function rand(min,max) {
@@ -1240,7 +1293,7 @@
$.ajax({
type:'get',
dataType: 'json',
url:'${pageContext.request.contextPath}/nis/dynamicpage/indexDrop' + "?baseNum=" + top.baseNum,
url:'${pageContext.request.contextPath}/nis/dynamicpage/indexDrop?hour=24' + "&baseNum=" + top.dropBaseNum,
success:function(res){//处理返回结果
if(res) {
dropData = res;

View File

@@ -346,7 +346,7 @@ background:#3d3d3d;
<!-- BEGIN TOP NAVIGATION MENU -->
<div class="top-menu">
<ul class="nav navbar-nav pull-right">
<c:if test="${fns:getUser().loginId eq 'admin'}">
<c:if test="${fns:getUser().isAdmin()}">
<li class="dropdown dropdown-user" id="cache">
<a href="javascript:;" class="dropdown-toggle" data-toggle="dropdown" >
<i class="fa fa-language"></i><span class="username username-hide-on-mobile" id="cache_text"> clear cache </span>

View File

@@ -5,6 +5,7 @@
<script src="${ctxStatic }/global/plugins/tableExport-3.3.13/xlsx.core.js"></script>
<script src="${ctxStatic }/global/plugins/tableExport-3.3.13/FileSaver.js"></script>
<script src="${ctxStatic }/global/plugins/tableExport-3.3.13/tableexport.js"></script>
<script src="${ctxStatic }/pages/scripts/jQuery.print.js"></script>
<meta name="format-detection" content="telephone=no,email=no,address=no">
<style type="text/css">
.statisticsRequest{
@@ -178,7 +179,76 @@
var currentdate = year+""+ month+""+strDate+""+ hours+""+ minutes+""+seconds;
return currentdate;
}
//来函和业务配置统计打印
function cfgMenuPrint(){
$.ajax({
type:'post',
async:false,
cache:false,
url:'${ctx}/configure/statistics/configureStateStatisticsPrint',//
dataType:"json",
success:function(data){
if(data !=null){
var menu=data.menuList;
var dataList=data.requestStatisticList;
var userTableStr='';
userTableStr +='<table class="table table-striped table-bordered table-condensed text-nowrap logTb">';
userTableStr += '<thead>';
userTableStr += '<tr>';
userTableStr += '<th class="sort-column"><spring:message code="letter"/></th>';
for (var i = 0; i < menu.length; i++) {
if (menu[i].functionId == 8) {
userTableStr += '<th class="sort-column">HTTP '+menu[i].code+'</th>';
} else if(menu[i].functionId == 35){
userTableStr += '<th class="sort-column">MAIL '+menu[i].code+'</th>';
}else {
userTableStr += '<th class="sort-column">'+menu[i].code+'</th>';
}
}
userTableStr += '</tr>';
userTableStr += '</thead>';
userTableStr += '<tbody>';
for(var j=0;j<dataList.length;j++){
userTableStr += '<tr>';
userTableStr += '<td>';
userTableStr += dataList[j].request;
userTableStr += '</td>';
for (var k = 0; k < menu.length; k++) {
userTableStr += '<td>';
var sss=menu[k].functionId+'_'+menu[k].functionId;
userTableStr += dataList[j][sss];
userTableStr += '</td>';
}
userTableStr += '<tr>';
}
userTableStr +='</tbody>';
userTableStr +='</table>';
$("#contentPrintTable").html(userTableStr);
}
}
});
$("#contentPrintTable").css('display','block');
$("#contentPrintTable").print({
globalStyles: true,
iframe: true,
append: null
});
$("#contentPrintTable").css('display','none');
/* $(".cfgMenuTable").print({
globalStyles: true,
iframe: true,
append: null
}); */
}
//配置业务和状态统计打印
function statisticsPrint() {
$(".statisticsStatusTable").print({
globalStyles: true,
iframe: true,
append: null
});
}
</script>
</head>
<title>index</title>
@@ -206,6 +276,10 @@
<li><a href="javascript:;" class="export-btn" data-export-type="csv" data-export-table="cfgMenuTable"><i class="fa fa-download"> <spring:message code="CSV"/></i></a></li>
</ul>
</div>
<div class="btn-group">
<button type="button" class="btn btn-default css-print" onClick="cfgMenuPrint()" style="margin-top: -5px;">
<i class="fa glyphicon glyphicon-print" style="top:3px;margin-right: 3px;"></i><spring:message code="print"/></button>
</div>
</div>
<h5 class="page-header"></h5>
<div class="tableDiv">
@@ -251,6 +325,7 @@
</div>
</form>
<div class="page">${page}</div>
<div id="contentPrintTable" style="display: none;"></div>
</div>
<div id="statisticsStatus" class="statisticsStatus">
<font size="4">
@@ -269,6 +344,10 @@
<li><a href="javascript:;" class="export-btn" data-export-type="csv" data-export-table="statisticsStatusTable"><i class="fa fa-download"> <spring:message code="CSV"/></i></a></li>
</ul>
</div>
<div class="btn-group">
<button type="button" class="btn btn-default css-print" onClick="statisticsPrint()" style="margin-top: -5px;">
<i class="fa glyphicon glyphicon-print" style="top:3px;margin-right: 3px;"></i><spring:message code="print"/></button>
</div>
</div>
<h5 class="page-header"></h5>
<table id="contentTable" class="table table-striped table-bordered table-condensed text-nowrap statisticsStatusTable" name="statisticsStatusTable">

View File

@@ -154,6 +154,9 @@
<button type="button" class="btn btn-default" id="filter-btn"> <spring:message code="filter"/><i class="fa fa-angle-double-down"></i></button>
</div>
<div class="pull-right">
<shiro:hasPermission name="whitelist:domain:config">
<button type="button" class="btn btn-default fa fa-exchange" id="logToUrl"> <spring:message code="log_to_url"/></button>
</shiro:hasPermission>
<div class="btn-group">
<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown">
<i class="fa fa-wrench"></i> <spring:message code="export"></spring:message>

View File

@@ -527,9 +527,20 @@
};
lines_Chart_chu.setOption(line_chu_option);
var url = window.location.href;
var parm = parseInt(Math.random() * 10);
if (url.lastIndexOf('?') > -1) {
  url = url + parm;
} else {
  url = url + "?" + parm;
}
$(window).resize(function(){
window.location.reload();
window.location.href = url;
});
/* $(window).resize(function(){
window.location.reload();
}); */
</script>
</body>
</html>

View File

@@ -2,6 +2,7 @@
<%@ include file="/WEB-INF/include/taglib.jsp"%>
<html>
<head>
<script src="${ctxStatic }/pages/scripts/jQuery.print.js"></script>
<title>
<spring:message code="asn_conn_report"/>
</title>
@@ -51,7 +52,59 @@
var modifyTime=new Date(chooseDate);
$('#searchFoundEndTime').val(modifyTime.getFullYear()+"-"+((modifyTime.getMonth()+1)>=10?(modifyTime.getMonth()+1):"0"+(modifyTime.getMonth()+1))+"-"+(modifyTime.getDate()>=10?modifyTime.getDate():'0'+modifyTime.getDate())+' '+(modifyTime.getHours()>=10?modifyTime.getHours():'0'+modifyTime.getHours())+':'+(modifyTime.getMinutes()>=10?modifyTime.getMinutes():'0'+modifyTime.getMinutes())+':'+(modifyTime.getSeconds()>=10?modifyTime.getSeconds():'0'+modifyTime.getSeconds()));
}
//打印列表
function doPrint() {
$.ajax({
type:'post',
async:false,
cache:false,
url:'${ctx}/report/asnPrint',//
data:{
"searchAsnType":$('[name="searchAsnType"]').val(),
"asn":$('[name="asn"]').val(),
"searchFoundStartTime":$('[name="searchFoundStartTime"]').val(),
"searchFoundEndTime":$('[name="searchFoundEndTime"]').val()
},
dataType:"json",
success:function(data){
if(data !=null){
var userTableStr='';
userTableStr +='<table class="table table-striped table-bordered table-condensed text-nowrap logTb">';
userTableStr += '<thead>';
userTableStr += '<tr>';
userTableStr += '<th class="sort-column s_asn"><spring:message code="asn"/></th>';
userTableStr += '<th class="sort-column pps"><spring:message code="pps"/></th>';
userTableStr += '<th class="sort-column bps"><spring:message code="bps"/></th>';
userTableStr += '</tr>';
userTableStr += '</thead>';
userTableStr += '<tbody>';
for(var j=0;j<data.length;j++){
userTableStr += '<tr>';
userTableStr += '<td>';
userTableStr += data[j].asn;
userTableStr += '</td>';
userTableStr += '<td>';
userTableStr += data[j].pps;
userTableStr += '</td>';
userTableStr += '<td>';
userTableStr += data[j].bps;
userTableStr += '</td>';
userTableStr += '<tr>';
}
userTableStr +='</tbody>';
userTableStr +='</table>';
$("#contentPrintTable").html(userTableStr);
}
}
});
$("#contentPrintTable").css('display','block');
$("#contentPrintTable").print({
globalStyles: true,
iframe: true,
append: null
});
$("#contentPrintTable").css('display','none');
}
</script>
</head>
<body>
@@ -129,6 +182,9 @@
<li><sys:delRow url="${ctx}/report/asnExport?type=csv" searchUrl="${ctx}/report/asnConnList" id="contentTable" maxRow="10000" label="csv"></sys:delRow></li>
</ul>
</div>
<div class="btn-group">
<button type="button" class="btn btn-default css-print" onClick="doPrint()"><i class="fa glyphicon glyphicon-print" style="top:3px;margin-right: 3px;"></i><spring:message code="print"/></button>
</div>
<a class="btn btn-icon-only btn-default setfields tooltips"
data-container="body" data-placement="top" data-original-title=<spring:message code="custom_columns"/> href="javascript:;">
<i class="icon-wrench"></i>
@@ -170,6 +226,7 @@
</tbody>
</table>
<div class="page">${page}</div>
<div id="contentPrintTable" style="display: none;"></div>
</div>
</div>
</div>

View File

@@ -2,6 +2,7 @@
<%@ include file="/WEB-INF/include/taglib.jsp"%>
<html>
<head>
<script src="${ctxStatic }/pages/scripts/jQuery.print.js"></script>
<title>
<spring:message code="ntc_event_block_report"/>
</title>
@@ -73,6 +74,75 @@
$('.selectpicker').selectpicker('render');
}
};
//打印列表
function doPrint() {
$.ajax({
type:'post',
async:false,
cache:false,
url:'${ctx}/eventBlock/eventBlockPrint',//
data:{
"taskIds":$("#taskIdArray").val(),
"searchTaskStartTime":$('[name="searchTaskStartTime"]').val(),
"searchTaskEndTime":$('[name="searchTaskEndTime"]').val(),
"searchReportStartTime":$('[name="searchReportStartTime"]').val(),
"searchReportEndTime":$('[name="searchReportEndTime"]').val()
},
dataType:"json",
success:function(data){
if(data !=null){
var userTableStr='';
userTableStr +='<table class="table table-striped table-bordered table-condensed text-nowrap logTb">';
userTableStr += '<thead>';
userTableStr += '<tr>';
userTableStr += '<th class="sort-column"><spring:message code="task_id"/></th>';
userTableStr += '<th class="sort-column"><spring:message code="task_name"/></th>';
userTableStr += '<th class="sort-column"><spring:message code="ip_count"/></th>';
userTableStr += '<th class="sort-column"><spring:message code="http_num"/></th>';
userTableStr += '<th class="sort-column"><spring:message code="mail_num"/></th>';
userTableStr += '<th class="sort-column"><spring:message code="vedio_count"/></th>';
userTableStr += '<th class="sort-column"><spring:message code="agent_count"/></th>';
userTableStr += '<th class="sort-column"><spring:message code="task_time"/></th>';
userTableStr += '<th class="sort-column"><spring:message code="stat_time"/></th>';
userTableStr += '</tr>';
userTableStr += '</thead>';
userTableStr += '<tbody>';
for(var j=0;j<data.length;j++){
userTableStr += '<tr><td>';
userTableStr += data[j].taskIds;
userTableStr += '</td><td>';
userTableStr += data[j].taskName;
userTableStr += '</td><td>';
userTableStr += data[j].ipNum;
userTableStr += '</td><td>';
userTableStr += data[j].httpNum;
userTableStr += '</td><td>';
userTableStr += data[j].mailNum;
userTableStr += '</td><td>';
userTableStr += data[j].vedioNum;
userTableStr += '</td><td>';
userTableStr += data[j].agentNum;
userTableStr += '</td><td>';
userTableStr += data[j].taskTime;
userTableStr += '</td><td>';
userTableStr += data[j].reportTime;
userTableStr += '</td><tr>';
}
userTableStr +='</tbody>';
userTableStr +='</table>';
$("#contentPrintTable").html(userTableStr);
}
}
});
$("#contentPrintTable").css('display','block');
$("#contentPrintTable").print({
globalStyles: true,
iframe: true,
append: null
});
$("#contentPrintTable").css('display','none');
}
</script>
</head>
<body>
@@ -126,6 +196,9 @@
<li><sys:delRow url="${ctx}/eventBlock/eventBlockExport?type=csv" searchUrl="${ctx}/eventBlock/eventBlockList" id="contentTable" maxRow="10000" label="csv"></sys:delRow></li>
</ul>
</div>
<div class="btn-group">
<button type="button" class="btn btn-default css-print" onClick="doPrint()"><i class="fa glyphicon glyphicon-print" style="top:3px;margin-right: 3px;"></i><spring:message code="print"/></button>
</div>
<a class="btn btn-icon-only btn-default setfields tooltips"
data-container="body" data-placement="top" data-original-title=<spring:message code="custom_columns"/> href="javascript:;">
<i class="icon-wrench"></i>
@@ -201,15 +274,15 @@
<th class="sort-column ip_addr" column="ip_addr"><spring:message code="ip_addr"/></th>
<th class="sort-column sum" column="sum"><spring:message code="sum"/></th>
<th class="sort-column url_count" column="url_count"><spring:message code="url_count"/></th> --%>
<th class="sort-column task_id" column="taskIds"><spring:message code="task_id"/></th>
<th class="sort-column task_name" column="taskName"><spring:message code="task_name"/></th>
<th class="sort-column ip_count" column="ipNum"><spring:message code="ip_count"/></th>
<th class="sort-column http_num" column="httpNum"><spring:message code="http_num"/></th>
<th class="sort-column mail_num" column="mailNum"><spring:message code="mail_num"/></th>
<th class="sort-column vedio_count" column="vedioNum"><spring:message code="vedio_count"/></th>
<th class="sort-column agent_count" column="agentNum"><spring:message code="agent_count"/></th>
<th class="sort-column task_time" column="taskTime"><spring:message code="task_time"/></th>
<th class="sort-column stat_time" column="reportTime"><spring:message code="stat_time"/></th>
<th class="sort-column task_id" column="task_id"><spring:message code="task_id"/></th>
<th class="sort-column task_name" column="task_name"><spring:message code="task_name"/></th>
<th class="sort-column ip_count" column="ip_count"><spring:message code="ip_count"/></th>
<th class="sort-column http_num" column="http_num"><spring:message code="http_num"/></th>
<th class="sort-column mail_num" column="mail_num"><spring:message code="mail_num"/></th>
<th class="sort-column vedio_count" column="vedio_count"><spring:message code="vedio_count"/></th>
<th class="sort-column agent_count" column="agent_count"><spring:message code="agent_count"/></th>
<th class="sort-column task_time" column="task_time"><spring:message code="task_time"/></th>
<th class="sort-column stat_time" column="stat_time"><spring:message code="stat_time"/></th>
<%-- <th class="sort-column url_count" column="reportTime"><spring:message code="statistic_time"/></th> --%>
</tr>
</thead>
@@ -232,6 +305,7 @@
</tbody>
</table>
<div class="page">${page}</div>
<div id="contentPrintTable" style="display: none;"></div>
</div>
</div>
</div>

View File

@@ -2,6 +2,7 @@
<%@ include file="/WEB-INF/include/taglib.jsp"%>
<html>
<head>
<script src="${ctxStatic }/pages/scripts/jQuery.print.js"></script>
<title>
<spring:message code="ntc_event_key_protection_report"/>
</title>
@@ -74,6 +75,72 @@
$('.selectpicker').selectpicker('render');
}
};
//打印列表
function doPrint() {
$.ajax({
type:'post',
async:false,
cache:false,
url:'${ctx}/eventKeyProtection/eventKeyProtectionPrint',//
data:{
"taskIds":$("#taskIdArray").val(),
"searchTaskStartTime":$('[name="searchTaskStartTime"]').val(),
"searchTaskEndTime":$('[name="searchTaskEndTime"]').val(),
"searchReportStartTime":$('[name="searchReportStartTime"]').val(),
"searchReportEndTime":$('[name="searchReportEndTime"]').val()
},
dataType:"json",
success:function(data){
if(data !=null){
var userTableStr='';
userTableStr +='<table class="table table-striped table-bordered table-condensed text-nowrap logTb">';
userTableStr += '<thead>';
userTableStr += '<tr>';
userTableStr += '<th class="sort-column"><spring:message code="task_id"/></th>';
userTableStr += '<th class="sort-column"><spring:message code="task_name"/></th>';
userTableStr += '<th class="sort-column"><spring:message code="letter_num"/></th>';
userTableStr += '<th class="sort-column"><spring:message code="config_num"/></th>';
userTableStr += '<th class="sort-column"><spring:message code="monitor_num"/></th>';
userTableStr += '<th class="sort-column"><spring:message code="control_num"/></th>';
userTableStr += '<th class="sort-column"><spring:message code="task_time"/></th>';
userTableStr += '<th class="sort-column"><spring:message code="stat_time"/></th>';
userTableStr += '</tr>';
userTableStr += '</thead>';
userTableStr += '<tbody>';
for(var j=0;j<data.length;j++){
userTableStr += '<tr><td>';
userTableStr += data[j].taskIds;
userTableStr += '</td><td>';
userTableStr += data[j].taskName;
userTableStr += '</td><td>';
userTableStr += data[j].letterNum;
userTableStr += '</td><td>';
userTableStr += data[j].configNum;
userTableStr += '</td><td>';
userTableStr += data[j].monitorNum;
userTableStr += '</td><td>';
userTableStr += data[j].controlNum;
userTableStr += '</td><td>';
userTableStr += data[j].taskTime;
userTableStr += '</td><td>';
userTableStr += data[j].reportTime;
userTableStr += '</td><tr>';
}
userTableStr +='</tbody>';
userTableStr +='</table>';
$("#contentPrintTable").html(userTableStr);
}
}
});
$("#contentPrintTable").css('display','block');
$("#contentPrintTable").print({
globalStyles: true,
iframe: true,
append: null
});
$("#contentPrintTable").css('display','none');
}
</script>
</head>
<body>
@@ -127,6 +194,9 @@
<li><sys:delRow url="${ctx}/eventKeyProtection/eventKeyProtectionExport?type=csv" searchUrl="${ctx}/eventKeyProtection/eventKeyProtectionList" id="contentTable" maxRow="10000" label="csv"></sys:delRow></li>
</ul>
</div>
<div class="btn-group">
<button type="button" class="btn btn-default css-print" onClick="doPrint()"><i class="fa glyphicon glyphicon-print" style="top:3px;margin-right: 3px;"></i><spring:message code="print"/></button>
</div>
<a class="btn btn-icon-only btn-default setfields tooltips"
data-container="body" data-placement="top" data-original-title=<spring:message code="custom_columns"/> href="javascript:;">
<i class="icon-wrench"></i>
@@ -201,14 +271,14 @@
<th class="sort-column ip_addr" column="ip_addr"><spring:message code="ip_addr"/></th>
<th class="sort-column sum" column="sum"><spring:message code="sum"/></th>
<th class="sort-column url_count" column="url_count"><spring:message code="url_count"/></th> --%>
<th class="sort-column task_id" column="taskIds"><spring:message code="task_id"/></th>
<th class="sort-column task_name" column="taskName"><spring:message code="task_name"/></th>
<th class="sort-column letter_num" column="letterNum"><spring:message code="letter_num"/></th>
<th class="sort-column config_num" column="configNum"><spring:message code="config_num"/></th>
<th class="sort-column monitor_num" column="monitorNum"><spring:message code="monitor_num"/></th>
<th class="sort-column control_num" column="controlNum"><spring:message code="control_num"/></th>
<th class="sort-column task_time" column="taskTime"><spring:message code="task_time"/></th>
<th class="sort-column stat_time" column="reportTime"><spring:message code="stat_time"/></th>
<th class="sort-column task_id" column="task_id"><spring:message code="task_id"/></th>
<th class="sort-column task_name" column="task_name"><spring:message code="task_name"/></th>
<th class="sort-column letter_num" column="letter_num"><spring:message code="letter_num"/></th>
<th class="sort-column config_num" column="config_num"><spring:message code="config_num"/></th>
<th class="sort-column monitor_num" column="monitor_num"><spring:message code="monitor_num"/></th>
<th class="sort-column control_num" column="control_num"><spring:message code="control_num"/></th>
<th class="sort-column task_time" column="task_time"><spring:message code="task_time"/></th>
<th class="sort-column stat_time" column="stat_time"><spring:message code="stat_time"/></th>
<%-- <th class="sort-column url_count" column="reportTime"><spring:message code="statistic_time"/></th> --%>
</tr>
</thead>
@@ -230,6 +300,7 @@
</tbody>
</table>
<div class="page">${page}</div>
<div id="contentPrintTable" style="display: none;"></div>
</div>
</div>
</div>

View File

@@ -2,6 +2,7 @@
<%@ include file="/WEB-INF/include/taglib.jsp"%>
<html>
<head>
<script src="${ctxStatic }/pages/scripts/jQuery.print.js"></script>
<title>
<spring:message code="ntc_event_monitor_report"/>
</title>
@@ -83,6 +84,74 @@
}
};
//打印列表
function doPrint() {
$.ajax({
type:'post',
async:false,
cache:false,
url:'${ctx}/eventMonitor/eventMonitorPrint',//
data:{
"taskIds":$("#taskIdArray").val(),
"searchTaskStartTime":$('[name="searchTaskStartTime"]').val(),
"searchTaskEndTime":$('[name="searchTaskEndTime"]').val(),
"searchReportStartTime":$('[name="searchReportStartTime"]').val(),
"searchReportEndTime":$('[name="searchReportEndTime"]').val()
},
dataType:"json",
success:function(data){
if(data !=null){
var userTableStr='';
userTableStr +='<table class="table table-striped table-bordered table-condensed text-nowrap logTb">';
userTableStr += '<thead>';
userTableStr += '<tr>';
userTableStr += '<th class="sort-column"><spring:message code="task_id"/></th>';
userTableStr += '<th class="sort-column"><spring:message code="task_name"/></th>';
userTableStr += '<th class="sort-column"><spring:message code="ip_count"/></th>';
userTableStr += '<th class="sort-column"><spring:message code="http_num"/></th>';
userTableStr += '<th class="sort-column"><spring:message code="mail_num"/></th>';
userTableStr += '<th class="sort-column"><spring:message code="vedio_count"/></th>';
userTableStr += '<th class="sort-column"><spring:message code="agent_count"/></th>';
userTableStr += '<th class="sort-column"><spring:message code="task_time"/></th>';
userTableStr += '<th class="sort-column"><spring:message code="stat_time"/></th>';
userTableStr += '</tr>';
userTableStr += '</thead>';
userTableStr += '<tbody>';
for(var j=0;j<data.length;j++){
userTableStr += '<tr><td>';
userTableStr += data[j].taskIds;
userTableStr += '</td><td>';
userTableStr += data[j].taskName;
userTableStr += '</td><td>';
userTableStr += data[j].ipNum;
userTableStr += '</td><td>';
userTableStr += data[j].httpNum;
userTableStr += '</td><td>';
userTableStr += data[j].mailNum;
userTableStr += '</td><td>';
userTableStr += data[j].vedioNum;
userTableStr += '</td><td>';
userTableStr += data[j].agentNum;
userTableStr += '</td><td>';
userTableStr += data[j].taskTime;
userTableStr += '</td><td>';
userTableStr += data[j].reportTime;
userTableStr += '</td><tr>';
}
userTableStr +='</tbody>';
userTableStr +='</table>';
$("#contentPrintTable").html(userTableStr);
}
}
});
$("#contentPrintTable").css('display','block');
$("#contentPrintTable").print({
globalStyles: true,
iframe: true,
append: null
});
$("#contentPrintTable").css('display','none');
}
</script>
</head>
<body>
@@ -136,6 +205,9 @@
<li><sys:delRow url="${ctx}/eventMonitor/eventMonitorExport?type=csv" searchUrl="${ctx}/eventMonitor/eventMonitorList" id="contentTable" maxRow="10000" label="csv"></sys:delRow></li>
</ul>
</div>
<div class="btn-group">
<button type="button" class="btn btn-default css-print" onClick="doPrint()"><i class="fa glyphicon glyphicon-print" style="top:3px;margin-right: 3px;"></i><spring:message code="print"/></button>
</div>
<a class="btn btn-icon-only btn-default setfields tooltips"
data-container="body" data-placement="top" data-original-title=<spring:message code="custom_columns"/> href="javascript:;">
<i class="icon-wrench"></i>
@@ -211,15 +283,15 @@
<th class="sort-column ip_addr" column="ip_addr"><spring:message code="ip_addr"/></th>
<th class="sort-column sum" column="sum"><spring:message code="sum"/></th>
<th class="sort-column url_count" column="url_count"><spring:message code="url_count"/></th> --%>
<th class="sort-column task_id" column="taskIds"><spring:message code="task_id"/></th>
<th class="sort-column task_name" column="taskName"><spring:message code="task_name"/></th>
<th class="sort-column ip_count" column="ipNum"><spring:message code="ip_count"/></th>
<th class="sort-column http_num" column="httpNum"><spring:message code="http_num"/></th>
<th class="sort-column mail_num" column="mailNum"><spring:message code="mail_num"/></th>
<th class="sort-column vedio_count" column="vedioNum"><spring:message code="vedio_count"/></th>
<th class="sort-column agent_count" column="agentNum"><spring:message code="agent_count"/></th>
<th class="sort-column task_time" column="taskTime"><spring:message code="task_time"/></th>
<th class="sort-column stat_time" column="reportTime"><spring:message code="stat_time"/></th>
<th class="sort-column task_id" column="task_id"><spring:message code="task_id"/></th>
<th class="sort-column task_name" column="task_name"><spring:message code="task_name"/></th>
<th class="sort-column ip_count" column="ip_count"><spring:message code="ip_count"/></th>
<th class="sort-column http_num" column="http_num"><spring:message code="http_num"/></th>
<th class="sort-column mail_num" column="mail_num"><spring:message code="mail_num"/></th>
<th class="sort-column vedio_count" column="vedio_count"><spring:message code="vedio_count"/></th>
<th class="sort-column agent_count" column="agent_count"><spring:message code="agent_count"/></th>
<th class="sort-column task_time" column="task_time"><spring:message code="task_time"/></th>
<th class="sort-column stat_time" column="stat_time"><spring:message code="stat_time"/></th>
<%-- <th class="sort-column url_count" column="reportTime"><spring:message code="statistic_time"/></th> --%>
</tr>
</thead>
@@ -242,6 +314,7 @@
</tbody>
</table>
<div class="page">${page}</div>
<div id="contentPrintTable" style="display: none;"></div>
</div>
</div>
</div>

View File

@@ -2,6 +2,7 @@
<%@ include file="/WEB-INF/include/taglib.jsp"%>
<html>
<head>
<script src="${ctxStatic }/pages/scripts/jQuery.print.js"></script>
<title>
<spring:message code="ip_range_report"/>
</title>
@@ -34,7 +35,67 @@
// });
// ajaxConnPercent();
});
//打印列表
function doPrint() {
$.ajax({
type:'post',
async:false,
cache:false,
url:'${ctx}/report/ipRangePrint',//
data:{
"seType":$('[name="searchAreaType1"]').val(),
"searchAreaType":$('[name="searchAreaType"]').val(),
"searchCountry":$('[name="searchCountry"]').val(),
"searchIp":$('[name="searchIp"]').val()
},
dataType:"json",
success:function(data){
if(data !=null){
var userTableStr='';
userTableStr +='<table class="table table-striped table-bordered table-condensed text-nowrap">';
userTableStr += '<thead>';
userTableStr += '<tr>';
userTableStr += '<th class="sort-column"><spring:message code="ip_start"/></td>';
userTableStr += '<th class="sort-column"><spring:message code="ip_end"/></td>';
userTableStr += '<th class="sort-column"><spring:message code="ip_sub"/></td>';
userTableStr += '<th class="sort-column"><spring:message code="country"/></td>';
userTableStr += '<th class="sort-column"><spring:message code="desc"/></td>';
userTableStr += '</tr>';
userTableStr += '</thead>';
userTableStr += '<tbody>';
for(var j=0;j<data.length;j++){
userTableStr += '<tr>';
userTableStr += '<td>';
userTableStr += data[j].ipStart;
userTableStr += '</td>';
userTableStr += '<td>';
userTableStr += data[j].ipEnd;
userTableStr += '</td>';
userTableStr += '<td>';
userTableStr += data[j].ipSub;
userTableStr += '</td>';
userTableStr += '<td>';
userTableStr += data[j].country;
userTableStr += '</td>';
userTableStr += '<td>';
userTableStr += data[j].desc;
userTableStr += '</td>';
userTableStr += '<tr>';
}
userTableStr +='</tbody>';
userTableStr +='</table>';
$("#contentPrintTable").html(userTableStr);
}
}
});
$("#contentPrintTable").css('display','block');
$("#contentPrintTable").print({
globalStyles: true,
iframe: true,
append: null
});
$("#contentPrintTable").css('display','none');
}
</script>
</head>
<body>
@@ -52,7 +113,7 @@
<form:form id="searchForm" modelAttribute="log" action="${ctx}/report/ipRangeList" method="post" class="form-search">
<input id="pageNo" name="pageNo" type="hidden" value="${page.pageNo}"/>
<input id="pageSize" name="pageSize" type="hidden" value="${page.pageSize}"/>
<input id="searchAreaType1" name="searchAreaType1" type="hidden" value="${log.searchAreaType}"/>
<div class="col-md-12">
<div class="pull-left">
<div class="input-group">
@@ -106,7 +167,9 @@
<li><sys:delRow url="${ctx}/report/ipRangeExport?type=csv&seType=${log.searchAreaType}" searchUrl="${ctx}/report/ipRangeList" id="contentTable" maxRow="10000" label="csv"></sys:delRow></li>
</ul>
</div>
<div class="btn-group">
<button type="button" class="btn btn-default css-print" onClick="doPrint()"><i class="fa glyphicon glyphicon-print" style="top:3px;margin-right: 3px;"></i><spring:message code="print"/></button>
</div>
<a class="btn btn-icon-only btn-default setfields tooltips"
data-container="body" data-placement="top" data-original-title=<spring:message code="custom_columns"/> href="javascript:;">
<i class="icon-wrench"></i>
@@ -151,6 +214,7 @@
</tbody>
</table>
<div class="page">${page}</div>
<div id="contentPrintTable" style="display: none;"></div>
</div>
</div>
</div>

View File

@@ -5,6 +5,7 @@
<script src="${ctxStatic }/global/plugins/tableExport-3.3.13/xlsx.core.js"></script>
<script src="${ctxStatic }/global/plugins/tableExport-3.3.13/FileSaver.js"></script>
<script src="${ctxStatic }/global/plugins/tableExport-3.3.13/tableexport.js"></script>
<script src="${ctxStatic }/pages/scripts/jQuery.print.js"></script>
<title><spring:message code="${bean.cfgName}"></spring:message></title>
<%@ include file="/WEB-INF/include/form/pageGroup.jsp"%>
<script>
@@ -412,6 +413,32 @@ function customColumnClick(){
var lipx=Number(li/6);
$(".lireport").css({'width':lipx+'px','text-overflow':'ellipsis','overflow':'hidden'});
}
//打印
function doPrint() {
var reportBusinessType=$("#reportBusinessType").val()
var tableId="tagTable";
if(reportBusinessType=="label_report"){
tableId="tagTable";
}else if(reportBusinessType=="lwhh_report"){
tableId="lwhhTable";
}else if(reportBusinessType=="src_ip_report"){
tableId="contentTable1";
}else if(reportBusinessType=="attr_type_report"){
tableId="attrTypeTable";
}else if(reportBusinessType=="dest_ip_report"){
tableId="destIpTable";
}else if(reportBusinessType=="isp_report"){
tableId="entranceIdTable";
}
$("#"+tableId+" tbody tr").removeAttr("style");
$("#"+tableId).print({
globalStyles: true,
iframe: true,
append: null
});
pagination();
}
</script>
<style type="text/css">
li{
@@ -529,6 +556,9 @@ white-space:nowrap;
<li><a href="javascript:;" class="export-btn" data-export-type="csv"><i class="fa fa-download"> <spring:message code="CSV"/></i></a></li>
</ul>
</div>
<div class="btn-group">
<button type="button" class="btn btn-default css-print" onClick="doPrint()"><i class="fa glyphicon glyphicon-print" style="top:3px;margin-right: 3px;"></i><spring:message code="print"/></button>
</div>
<a class="btn btn-icon-only btn-default setfields tooltips"
data-container="body" data-placement="top" data-original-title=<spring:message code="custom_columns"/> href="javascript:;">
<i class="icon-wrench"></i>

View File

@@ -2,6 +2,7 @@
<%@ include file="/WEB-INF/include/taglib.jsp"%>
<html>
<head>
<script src="${ctxStatic }/pages/scripts/jQuery.print.js"></script>
<title>
<spring:message code="https_url_report"/>
</title>
@@ -25,10 +26,10 @@
// $(this).find("th").eq(0).width=300;
if(index > 0 ){
var title=$(this).find("td").eq(0).attr("title");
console.log(title);
// console.log(title);
if(title != undefined && title != null){
if(title.length > 80){
$(this).find("td").eq(0).text(title.substring(0,80));
$(this).find("td").eq(0).text(title.substring(0,80)+"...");
}else{
$(this).find("td").eq(0).text(title);
}
@@ -56,6 +57,58 @@
var modifyTime=new Date(chooseDate);
$('#searchReportEndTime').val(modifyTime.getFullYear()+"-"+((modifyTime.getMonth()+1)>=10?(modifyTime.getMonth()+1):"0"+(modifyTime.getMonth()+1))+"-"+(modifyTime.getDate()>=10?modifyTime.getDate():'0'+modifyTime.getDate())+' '+(modifyTime.getHours()>=10?modifyTime.getHours():'0'+modifyTime.getHours())+':'+(modifyTime.getMinutes()>=10?modifyTime.getMinutes():'0'+modifyTime.getMinutes())+':'+(modifyTime.getSeconds()>=10?modifyTime.getSeconds():'0'+modifyTime.getSeconds()));
}
//打印列表
function doPrint() {
$.ajax({
type:'post',
async:false,
cache:false,
url:'${ctx}/report/httpsPrint',//
data:{
"searchUrl":$('[name="searchUrl"]').val(),
"searchReportStartTime":$('[name="searchReportStartTime"]').val(),
"searchReportEndTime":$('[name="searchReportEndTime"]').val()
},
dataType:"json",
success:function(data){
if(data !=null){
var userTableStr='';
userTableStr +='<table style="word-wrap:break-word; word-break:break-all;" class="table table-striped table-bordered table-condensed ">';
userTableStr += '<thead>';
userTableStr += '<tr>';
userTableStr += '<th class="sort-column "><spring:message code="url"/></td>';
userTableStr += '<th class="sort-column "><spring:message code="ip_count"/></td>';
userTableStr += '<th class="sort-column "><spring:message code="counnection_count"/></td>';
userTableStr += '</tr>';
userTableStr += '</thead>';
userTableStr += '<tbody>';
for(var j=0;j<data.length;j++){
userTableStr += '<tr>';
userTableStr += '<td style="width:700px;">';
userTableStr += data[j].url;
userTableStr += '</td>';
userTableStr += '<td>';
userTableStr += data[j].ipCount;
userTableStr += '</td>';
userTableStr += '<td>';
userTableStr += data[j].connCount;
userTableStr += '</td>';
userTableStr += '<tr>';
}
userTableStr +='</tbody>';
userTableStr +='</table>';
$("#contentPrintTable").html(userTableStr);
}
}
});
$("#contentPrintTable").css('display','block');
$("#contentPrintTable").print({
globalStyles: true,
iframe: true,
append: null
});
$("#contentPrintTable").css('display','none');
}
</script>
</head>
<body>
@@ -80,7 +133,7 @@
<div class="input-group-btn">
<span class="selectpicker form-control" ><spring:message code="url"/></span>
</div>
<input name="searchUrl" type="text" class="form-control input-medium" maxlength="20" value="${log.searchUrl }" />
<input name="searchUrl" type="text" class="form-control input-small" maxlength="20" value="${log.searchUrl }" />
</div>
</div>
<div class="pull-left">
@@ -126,6 +179,9 @@
<li><sys:delRow url="${ctx}/report/httpsExport?type=csv" searchUrl="${ctx}/report/httpsUrlList" id="contentTable" maxRow="10000" label="csv"></sys:delRow></li>
</ul>
</div>
<div class="btn-group">
<button type="button" class="btn btn-default css-print" onClick="doPrint()"><i class="fa glyphicon glyphicon-print" style="top:3px;margin-right: 3px;"></i><spring:message code="print"/></button>
</div>
<a class="btn btn-icon-only btn-default setfields tooltips"
data-container="body" data-placement="top" data-original-title=<spring:message code="custom_columns"/> href="javascript:;">
<i class="icon-wrench"></i>
@@ -169,6 +225,7 @@
</tbody>
</table>
<div class="page">${page}</div>
<div id="contentPrintTable" style="display: none;"></div>
</div>
</div>
</div>

View File

@@ -66,14 +66,14 @@
readonly="readonly" maxlength="20"
class="form-control Wdate"
value="<fmt:formatDate value="${sysLog.beginDate}" pattern="yyyy-MM-dd"/>"
onclick="WdatePicker({dateFmt:'yyyy-MM-dd',isShowClear:false});" />
onclick="WdatePicker({dateFmt:'yyyy-MM-dd',isShowClear:false,maxDate:'#F{$dp.$D(\'endDate\')}'});" />
</div>
<div class="pull-left">
<label><spring:message code="" />&nbsp;</label> <input
id="endDate" name="endDate" type="text" readonly="readonly"
maxlength="20" class="form-control Wdate"
value="<fmt:formatDate value="${sysLog.endDate}" pattern="yyyy-MM-dd"/>"
onclick="WdatePicker({dateFmt:'yyyy-MM-dd',isShowClear:false});" />
onclick="WdatePicker({dateFmt:'yyyy-MM-dd',isShowClear:false,minDate:'#F{$dp.$D(\'beginDate\')}',maxDate:'%y-%M-%d'});" />
</div>
<div class="pull-left">
<label>&nbsp;</label>

View File

@@ -55,14 +55,14 @@
readonly="readonly" maxlength="20"
class="form-control Wdate"
value="<fmt:formatDate value="${sysLog.beginDate}" pattern="yyyy-MM-dd"/>"
onclick="WdatePicker({dateFmt:'yyyy-MM-dd',isShowClear:false});" />
onclick="WdatePicker({dateFmt:'yyyy-MM-dd',isShowClear:false,maxDate:'#F{$dp.$D(\'endDate\')}'});" />
</div>
<div class="pull-left">
<label><spring:message code="" />&nbsp;</label> <input
id="endDate" name="endDate" type="text" readonly="readonly"
maxlength="20" class="form-control Wdate"
value="<fmt:formatDate value="${sysLog.endDate}" pattern="yyyy-MM-dd"/>"
onclick="WdatePicker({dateFmt:'yyyy-MM-dd',isShowClear:false});" />
onclick="WdatePicker({dateFmt:'yyyy-MM-dd',isShowClear:false,minDate:'#F{$dp.$D(\'beginDate\')}',maxDate:'%y-%M-%d'});" />
</div>
<div class="pull-left">
<label for="exception"><input id="exception" name="exception" type="checkbox" ${sysLog.exception eq '1'?' checked':''} value="1" /> <spring:message code="log_exception" /></label>

View File

@@ -89,4 +89,9 @@ margin-top: 20px;
word-break: break-all;
word-wrap: break-word;
white-space: normal;
}
/* <20><><EFBFBD><EFBFBD>ʵʱ<CAB5><CAB1><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3>,<2C><>ӡ<EFBFBD><D3A1>ť<EFBFBD><C5A5><EFBFBD><EFBFBD>ʾ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
.css-print{
display: none;
}

View File

@@ -47,13 +47,14 @@ p{
.data_content .data_info .fr_fc .fl_visual{
margin-left: 2px;
float: left;
height: 110px;
height: 50px;
width: 28%;
font-size: 40px;
font-size: 25px;
/* color: #d9ffff !important; */
/* color: linear-gradient(to right, #ffcc99, #77b5dc); */
position: relative;
margin-top: 25px;
/* position: relative; */
margin-top: 2px;
position: absolute;
/*background: -webkit-linear-gradient(left,#d9ffff, #77b5dc);*/
/* background: -webkit-linear-gradient(left,#d9ffff,#77b5dc); */
@@ -90,7 +91,7 @@ p{
-webkit-text-fill-color: transparent;
} */
.data_content .data_info .fr_fc .fl_fc{
width: 70%;
width: 100%;
height: 110px;
border-width: 0 1px;
margin-left: 0px;
@@ -136,111 +137,111 @@ p{
}
.data_content .data_info .info_2 p:nth-child(1){
color:#fff;
font-size: 18px;
font-size: 16px;
text-align: center;
overflow: hidden;
white-space: nowrap;
/* text-overflow: ellipsis; */
margin-left: -12px;
text-overflow: ellipsis;
margin-left: 33px;
}
.data_content .data_info .info_1 label:nth-child(1){
width:100%;
width:77%;
color:#fff;
font-size: 18px;
font-size: 16px;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
margin: -2px;
margin-left: -20px;
margin-left: 30px;
}
.data_content .data_info>div.info_1 p:nth-child(2){
width:100%;
font-weight: 600;
font-size: 16px;
font-size: 14px;
/*color:#288dce;*/
color:#ffffff;
margin-top: 2.1em;
margin-top: 2.5em;
margin-left: 0px;
}
.data_content .data_info .info_2 .fr_fc .numberRun2{
width:100%;
font-weight: 600;
font-size: 16px;
font-size: 14px;
/*color:#288dce;*/
color:#ffffff;
margin-top: 2.1em;
margin-top: 2.5em;
margin-left: 0px;
}
.data_content .data_info .info_2 .fr_fc .numberRun3{
width:100%;
font-weight: 600;
font-size: 16px;
font-size: 14px;
/*color:#288dce;*/
color:#ffffff;
margin-top: 2.1em;
margin-top: 2.5em;
margin-left: 0px;
}
.data_content .data_info .info_2 .fr_fc .numberRun5{
width:100%;
font-weight: 600;
font-size: 16px;
font-size: 14px;
/*color:#288dce;*/
color:#ffffff;
margin-top: 2.1em;
margin-top: 2.5em;
margin-left: 0px;
}
.data_content .data_info .info_2 .fr_fc .numberRun6{
width:100%;
font-weight: 600;
font-size: 16px;
font-size: 14px;
/*color:#288dce;*/
color:#ffffff;
margin-top: 2.1em;
margin-top: 2.5em;
margin-left: 0px;
}
.data_content .data_info .info_2 .fr_fc .numberRun7{
width:100%;
font-weight: 600;
font-size: 16px;
font-size: 14px;
/*color:#288dce;*/
color:#ffffff;
margin-top: 2.1em;
margin-top: 2.5em;
margin-left: 0px;
}
.data_content .data_info .info_2 .fr_fc .numberRun8{
width:100%;
font-weight: 600;
font-size: 16px;
font-size: 14px;
/*color:#288dce;*/
color:#ffffff;
margin-top: 2.1em;
margin-top: 2.5em;
margin-left: 0px;
}
.data_content .data_info .info_2 .fr_fc .numberRun{
width:100%;
font-weight: 600;
font-size: 16px;
font-size: 14px;
/*color:#288dce;*/
color:#ffffff;
margin-top: 2.1em;
margin-top: 2.5em;
margin-left: 0px;
}
.data_content .data_info>div.info_1 .fl_fc .numberRun4{
width:100%;
font-weight: 600;
font-size: 16px;
font-size: 14px;
/*color:#288dce;*/
color:#ffffff;
margin-top: 1px;
margin-top: 3px;
margin-left: 0px;
}
.data_content .data_info>div.info_1 .fl_fc .numberRun1{
width:100%;
font-weight: 600;
font-size: 16px;
font-size: 14px;
/*color:#288dce;*/
color:#ffffff;
margin-top: 33px;
margin-top: 35px;
margin-left: 0px;
}
.data_content .data_info>div.info_1 .fl_fc .numberRun4-unit{
@@ -254,7 +255,7 @@ p{
font-size: 11px;
/*color:#337ab7 !important;*/
color:#ffffff !important;
margin-top: -6px;
margin-top: -3px;
text-align: center;
margin-left: 1.3px;
}

View File

@@ -1186,29 +1186,38 @@ function echart_topic_domain(rs){
var unit="bytes";
$(rs).each(function(i,d){
var inoctetsNum=d.count;
unit=changeUnit(inoctetsNum);
inoctetsNum=changeNum(inoctetsNum);
data.push({
'id': '1.'+d.topicId,
'parent': '0.0',
'name': d.topic,
'value':parseFloat(inoctetsNum)
});
var inoctetsNumK=inoctetsNum/1024;
var inoctetsNumM=inoctetsNumK/1024;
var inoctetsNumG=inoctetsNumM/1024;
inoctetsNum=inoctetsNumG;
inoctetsNum=Math.round(inoctetsNum*100)/100;
unit="GB";
if(inoctetsNum>0){
/****主题中的子域名*******/
var topicData=0;
$(d.domainData).each(function(j,t){
var domainNum=t.byteCount;
unit=changeUnit(domainNum);
domainNum=changeNum(domainNum);
if(domainNum>0){
var domainNumK=domainNum/1024;
var domainNumM=domainNumK/1024;
var domainNumG=domainNumM/1024;
domainNum=domainNumG;
domainNum=Math.round(domainNum*100)/100;
topicData=topicData+domainNum;
data.push({
'id': '2.'+t.webId,
'parent': '1.'+d.topicId,
'name': t.domain,
'value':parseFloat(domainNum)
});
}
})
data.push({
'id': '1.'+d.topicId,
'parent': '0.0',
'name': d.topic,
'value':parseFloat(topicData)
});
}
});
Highcharts.getOptions().colors.splice(0, 0, 'transparent');
var chart = Highcharts.chart('chart_topic', {

View File

@@ -0,0 +1,279 @@
/* @license
* jQuery.print, version 1.6.0
* (c) Sathvik Ponangi, Doers' Guild
* Licence: CC-By (http://creativecommons.org/licenses/by/3.0/)
*--------------------------------------------------------------------------*/
(function ($) {
"use strict";
// A nice closure for our definitions
function jQueryCloneWithSelectAndTextAreaValues(elmToClone, withDataAndEvents, deepWithDataAndEvents) {
// Replacement jQuery clone that also clones the values in selects and textareas as jQuery doesn't for performance reasons - https://stackoverflow.com/questions/742810/clone-isnt-cloning-select-values
// Based on https://github.com/spencertipping/jquery.fix.clone
var $elmToClone = $(elmToClone),
$result = $elmToClone.clone(withDataAndEvents, deepWithDataAndEvents),
$myTextareas = $elmToClone.find('textarea').add($elmToClone.filter('textarea')),
$resultTextareas = $result.find('textarea').add($result.filter('textarea')),
$mySelects = $elmToClone.find('select').add($elmToClone.filter('select')),
$resultSelects = $result.find('select').add($result.filter('select')),
i, l, j, m;
for (i = 0, l = $myTextareas.length; i < l; ++i) {
$($resultTextareas[i]).val($($myTextareas[i]).val());
}
for (i = 0, l = $mySelects.length; i < l; ++i) {
for (j = 0, m = $mySelects[i].options.length; j < m; ++j) {
if ($mySelects[i].options[j].selected === true) {
$resultSelects[i].options[j].selected = true;
}
}
}
return $result;
}
function getjQueryObject(string) {
// Make string a vaild jQuery thing
var jqObj = $("");
try {
jqObj = jQueryCloneWithSelectAndTextAreaValues(string);
} catch (e) {
jqObj = $("<span />")
.html(string);
}
return jqObj;
}
function printFrame(frameWindow, content, options) {
// Print the selected window/iframe
var def = $.Deferred();
try {
frameWindow = frameWindow.contentWindow || frameWindow.contentDocument || frameWindow;
var wdoc = frameWindow.document || frameWindow.contentDocument || frameWindow;
if(options.doctype) {
wdoc.write(options.doctype);
}
wdoc.write(content);
wdoc.close();
var printed = false,
callPrint = function () {
if(printed) {
return;
}
// Fix for IE : Allow it to render the iframe
frameWindow.focus();
try {
// Fix for IE11 - printng the whole page instead of the iframe content
if (!frameWindow.document.execCommand('print', false, null)) {
// document.execCommand returns false if it failed -http://stackoverflow.com/a/21336448/937891
frameWindow.print();
}
// focus body as it is losing focus in iPad and content not getting printed
$('body').focus();
} catch (e) {
frameWindow.print();
}
frameWindow.close();
printed = true;
def.resolve();
};
// Print once the frame window loads - seems to work for the new-window option but unreliable for the iframe
$(frameWindow).on("load", callPrint);
// Fallback to printing directly if the frame doesn't fire the load event for whatever reason
setTimeout(callPrint, options.timeout);
} catch (err) {
def.reject(err);
}
return def;
}
function printContentInIFrame(content, options) {
var $iframe = $(options.iframe + "");
var iframeCount = $iframe.length;
if (iframeCount === 0) {
// Create a new iFrame if none is given
$iframe = $('<iframe height="0" width="0" border="0" wmode="Opaque"/>')
.prependTo('body')
.css({
"position": "absolute",
"top": -999,
"left": -999
});
}
var frameWindow = $iframe.get(0);
return printFrame(frameWindow, content, options)
.done(function () {
// Success
setTimeout(function () {
// Wait for IE
if (iframeCount === 0) {
// Destroy the iframe if created here
$iframe.remove();
}
}, 1000);
})
.fail(function (err) {
// Use the pop-up method if iframe fails for some reason
console.error("Failed to print from iframe", err);
printContentInNewWindow(content, options);
})
.always(function () {
try {
options.deferred.resolve();
} catch (err) {
console.warn('Error notifying deferred', err);
}
});
}
function printContentInNewWindow(content, options) {
// Open a new window and print selected content
var frameWindow = window.open();
return printFrame(frameWindow, content, options)
.always(function () {
try {
options.deferred.resolve();
} catch (err) {
console.warn('Error notifying deferred', err);
}
});
}
function isNode(o) {
/* http://stackoverflow.com/a/384380/937891 */
return !!(typeof Node === "object" ? o instanceof Node : o && typeof o === "object" && typeof o.nodeType === "number" && typeof o.nodeName === "string");
}
$.print = $.fn.print = function () {
// Print a given set of elements
var options, $this, self = this;
// console.log("Printing", this, arguments);
if (self instanceof $) {
// Get the node if it is a jQuery object
self = self.get(0);
}
if (isNode(self)) {
// If `this` is a HTML element, i.e. for
// $(selector).print()
$this = $(self);
if (arguments.length > 0) {
options = arguments[0];
}
} else {
if (arguments.length > 0) {
// $.print(selector,options)
$this = $(arguments[0]);
if (isNode($this[0])) {
if (arguments.length > 1) {
options = arguments[1];
}
} else {
// $.print(options)
options = arguments[0];
$this = $("html");
}
} else {
// $.print()
$this = $("html");
}
}
// Default options
var defaults = {
globalStyles: true,
mediaPrint: false,
stylesheet: null,
noPrintSelector: ".no-print",
iframe: true,
append: null,
prepend: null,
manuallyCopyFormValues: true,
deferred: $.Deferred(),
timeout: 750,
title: null,
doctype: '<!doctype html>'
};
// Merge with user-options
options = $.extend({}, defaults, (options || {}));
var $styles = $("");
if (options.globalStyles) {
// Apply the stlyes from the current sheet to the printed page
$styles = $("style, link, meta, base, title");
} else if (options.mediaPrint) {
// Apply the media-print stylesheet
$styles = $("link[media=print]");
}
if (options.stylesheet) {
// Add a custom stylesheet if given
$styles = $.merge($styles, $('<link rel="stylesheet" href="' + options.stylesheet + '">'));
}
// Create a copy of the element to print
var copy = jQueryCloneWithSelectAndTextAreaValues($this);
// Wrap it in a span to get the HTML markup string
copy = $("<span/>")
.append(copy);
// Remove unwanted elements
copy.find(options.noPrintSelector)
.remove();
// Add in the styles
copy.append(jQueryCloneWithSelectAndTextAreaValues($styles));
// Update title
if (options.title) {
var title = $("title", copy);
if (title.length === 0) {
title = $("<title />");
copy.append(title);
}
title.text(options.title);
}
// Appedned content
copy.append(getjQueryObject(options.append));
// Prepended content
copy.prepend(getjQueryObject(options.prepend));
if (options.manuallyCopyFormValues) {
// Manually copy form values into the HTML for printing user-modified input fields
// http://stackoverflow.com/a/26707753
copy.find("input")
.each(function () {
var $field = $(this);
if ($field.is("[type='radio']") || $field.is("[type='checkbox']")) {
if ($field.prop("checked")) {
$field.attr("checked", "checked");
}
} else {
$field.attr("value", $field.val());
}
});
copy.find("select").each(function () {
var $field = $(this);
$field.find(":selected").attr("selected", "selected");
});
copy.find("textarea").each(function () {
// Fix for https://github.com/DoersGuild/jQuery.print/issues/18#issuecomment-96451589
var $field = $(this);
$field.text($field.val());
});
}
// Get the HTML markup string
var content = copy.html();
// Notify with generated markup & cloned elements - useful for logging, etc
try {
options.deferred.notify('generated_markup', content, copy);
} catch (err) {
console.warn('Error notifying deferred', err);
}
// Destroy the copy
copy.remove();
if (options.iframe) {
// Use an iframe for printing
try {
printContentInIFrame(content, options);
} catch (e) {
// Use the pop-up method if iframe fails for some reason
console.error("Failed to print from iframe", e.stack, e.message);
printContentInNewWindow(content, options);
}
} else {
// Use a new window for printing
printContentInNewWindow(content, options);
}
return this;
};
})(jQuery);