Merge branch 'develop' of http://10.0.6.99/gwall/gwall.git into develop
Conflicts: src/main/resources/messages/message_en.properties
This commit is contained in:
@@ -1,7 +1,14 @@
|
||||
package com.nis.domain.dashboard.codedic;
|
||||
|
||||
public class CodeAppDic {
|
||||
private Integer id;
|
||||
import java.io.Serializable;
|
||||
|
||||
public class CodeAppDic implements Serializable {
|
||||
/**
|
||||
*
|
||||
*/
|
||||
private static final long serialVersionUID = 8878203808371459079L;
|
||||
|
||||
private Integer id;
|
||||
|
||||
private String appName;
|
||||
|
||||
|
||||
@@ -1,7 +1,14 @@
|
||||
package com.nis.domain.dashboard.codedic;
|
||||
|
||||
public class CodeBehaviorTypeDic {
|
||||
private Integer id;
|
||||
import java.io.Serializable;
|
||||
|
||||
public class CodeBehaviorTypeDic implements Serializable {
|
||||
/**
|
||||
*
|
||||
*/
|
||||
private static final long serialVersionUID = -3093079166837898180L;
|
||||
|
||||
private Integer id;
|
||||
|
||||
private String behaviorType;
|
||||
|
||||
|
||||
@@ -1,7 +1,14 @@
|
||||
package com.nis.domain.dashboard.codedic;
|
||||
|
||||
public class CodeBrowserTypeDic {
|
||||
private Integer id;
|
||||
import java.io.Serializable;
|
||||
|
||||
public class CodeBrowserTypeDic implements Serializable {
|
||||
/**
|
||||
*
|
||||
*/
|
||||
private static final long serialVersionUID = -2134192971712765277L;
|
||||
|
||||
private Integer id;
|
||||
|
||||
private String browserType;
|
||||
|
||||
|
||||
@@ -1,7 +1,14 @@
|
||||
package com.nis.domain.dashboard.codedic;
|
||||
|
||||
public class CodeOsTypeDic {
|
||||
private Integer id;
|
||||
import java.io.Serializable;
|
||||
|
||||
public class CodeOsTypeDic implements Serializable {
|
||||
/**
|
||||
*
|
||||
*/
|
||||
private static final long serialVersionUID = 3130292317922505634L;
|
||||
|
||||
private Integer id;
|
||||
|
||||
private String osType;
|
||||
|
||||
|
||||
@@ -1,7 +1,14 @@
|
||||
package com.nis.domain.dashboard.codedic;
|
||||
|
||||
public class CodeProtocolTypeDic {
|
||||
private Integer id;
|
||||
import java.io.Serializable;
|
||||
|
||||
public class CodeProtocolTypeDic implements Serializable {
|
||||
/**
|
||||
*
|
||||
*/
|
||||
private static final long serialVersionUID = 4918506981012927864L;
|
||||
|
||||
private Integer id;
|
||||
|
||||
private String protocolType;
|
||||
|
||||
|
||||
@@ -1,7 +1,14 @@
|
||||
package com.nis.domain.dashboard.codedic;
|
||||
|
||||
public class CodeServiceTypeDic {
|
||||
private Integer id;
|
||||
import java.io.Serializable;
|
||||
|
||||
public class CodeServiceTypeDic implements Serializable {
|
||||
/**
|
||||
*
|
||||
*/
|
||||
private static final long serialVersionUID = 4684291961768554944L;
|
||||
|
||||
private Integer id;
|
||||
|
||||
private String serviceType;
|
||||
|
||||
|
||||
@@ -1,7 +1,14 @@
|
||||
package com.nis.domain.dashboard.codedic;
|
||||
|
||||
public class CodeWebServiceDic {
|
||||
private Integer id;
|
||||
import java.io.Serializable;
|
||||
|
||||
public class CodeWebServiceDic implements Serializable {
|
||||
/**
|
||||
*
|
||||
*/
|
||||
private static final long serialVersionUID = 3695848998373942822L;
|
||||
|
||||
private Integer id;
|
||||
|
||||
private String website;
|
||||
|
||||
|
||||
11
src/main/java/com/nis/domain/log/NtcAppLog.java
Normal file
11
src/main/java/com/nis/domain/log/NtcAppLog.java
Normal file
@@ -0,0 +1,11 @@
|
||||
package com.nis.domain.log;
|
||||
|
||||
public class NtcAppLog extends BaseLogEntity<NtcAppLog> {
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
private static final long serialVersionUID = 6025543701060412591L;
|
||||
|
||||
|
||||
}
|
||||
81
src/main/java/com/nis/domain/log/NtcDdosLog.java
Normal file
81
src/main/java/com/nis/domain/log/NtcDdosLog.java
Normal file
@@ -0,0 +1,81 @@
|
||||
package com.nis.domain.log;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
import com.wordnik.swagger.annotations.ApiModelProperty;
|
||||
|
||||
public class NtcDdosLog extends BaseLogEntity<NtcDdosLog> {
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
private static final long serialVersionUID = 9080132009178985910L;
|
||||
|
||||
@ApiModelProperty(value = "攻击类型", required = true)
|
||||
protected Integer attackType;
|
||||
@ApiModelProperty(value = "攻击起始时间", required = true)
|
||||
protected Date attackStartTime;
|
||||
@ApiModelProperty(value = "最后一次攻击包时间", required = true)
|
||||
protected Date lastAttackTime;
|
||||
@ApiModelProperty(value = "攻击最大流量, 包数/秒", required = true)
|
||||
protected String attackMaxPps;
|
||||
@ApiModelProperty(value = "攻击最大流量, bit数/秒", required = true)
|
||||
protected String attackMaxBps;
|
||||
@ApiModelProperty(value = "攻击累积包数", required = true)
|
||||
protected String attackTotalPkt;
|
||||
@ApiModelProperty(value = "攻击累积字节数", required = true)
|
||||
protected String attackTotalByte;
|
||||
@ApiModelProperty(value = "攻击流量是否被丢弃", required = true)
|
||||
protected Integer isBlcok;
|
||||
|
||||
|
||||
public Integer getAttackType() {
|
||||
return attackType;
|
||||
}
|
||||
public void setAttackType(Integer attackType) {
|
||||
this.attackType = attackType;
|
||||
}
|
||||
public Date getAttackStartTime() {
|
||||
return attackStartTime;
|
||||
}
|
||||
public void setAttackStartTime(Date attackStartTime) {
|
||||
this.attackStartTime = attackStartTime;
|
||||
}
|
||||
public Date getLastAttackTime() {
|
||||
return lastAttackTime;
|
||||
}
|
||||
public void setLastAttackTime(Date lastAttackTime) {
|
||||
this.lastAttackTime = lastAttackTime;
|
||||
}
|
||||
public String getAttackMaxPps() {
|
||||
return attackMaxPps;
|
||||
}
|
||||
public void setAttackMaxPps(String attackMaxPps) {
|
||||
this.attackMaxPps = attackMaxPps;
|
||||
}
|
||||
public String getAttackMaxBps() {
|
||||
return attackMaxBps;
|
||||
}
|
||||
public void setAttackMaxBps(String attackMaxBps) {
|
||||
this.attackMaxBps = attackMaxBps;
|
||||
}
|
||||
public String getAttackTotalPkt() {
|
||||
return attackTotalPkt;
|
||||
}
|
||||
public void setAttackTotalPkt(String attackTotalPkt) {
|
||||
this.attackTotalPkt = attackTotalPkt;
|
||||
}
|
||||
public String getAttackTotalByte() {
|
||||
return attackTotalByte;
|
||||
}
|
||||
public void setAttackTotalByte(String attackTotalByte) {
|
||||
this.attackTotalByte = attackTotalByte;
|
||||
}
|
||||
public Integer getIsBlcok() {
|
||||
return isBlcok;
|
||||
}
|
||||
public void setIsBlcok(Integer isBlcok) {
|
||||
this.isBlcok = isBlcok;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -2,7 +2,6 @@ package com.nis.util;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import com.nis.domain.dashboard.codedic.CodeAppDic;
|
||||
import com.nis.domain.dashboard.codedic.CodeBehaviorTypeDic;
|
||||
@@ -20,7 +19,7 @@ import com.nis.web.dao.dashboard.codedic.CodeResult;
|
||||
import com.nis.web.dao.dashboard.codedic.CodeServiceTypeDicDao;
|
||||
import com.nis.web.dao.dashboard.codedic.CodeWebServiceDicDao;
|
||||
import com.nis.web.service.SpringContextHolder;
|
||||
@Service
|
||||
|
||||
public class CodeDicUtils {
|
||||
private final static CodeAppDicDao codeAppDicDao = SpringContextHolder.getBean(CodeAppDicDao.class);
|
||||
private final static CodeBehaviorTypeDicDao codeBehaviorTypeDicDao = SpringContextHolder.getBean(CodeBehaviorTypeDicDao.class);
|
||||
|
||||
@@ -366,6 +366,8 @@ public final class Constants {
|
||||
public static final String NTC_SSH_LOG = Configurations.getStringProperty("ntcSshLog","");
|
||||
public static final String NTC_MAIL_LOG = Configurations.getStringProperty("ntcMailLog","");
|
||||
public static final String NTC_FTP_LOG = Configurations.getStringProperty("ntcFtpLog","");
|
||||
public static final String NTC_APP_LOG = Configurations.getStringProperty("ntcAppLog", "");
|
||||
public static final String NTC_DDOS_LOG = Configurations.getStringProperty("ntcDdosLog", "");
|
||||
//报表类型,1- 配置命中总量业务
|
||||
public static final Integer BUSINESSTYPE_CONFIG=Configurations.getIntProperty("businesstype_config", 1);
|
||||
//报表类型,2- 配置报表业务
|
||||
|
||||
@@ -0,0 +1,300 @@
|
||||
package com.nis.web.controller.dashboard;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
import org.springframework.web.bind.annotation.ResponseBody;
|
||||
|
||||
import com.google.gson.Gson;
|
||||
import com.google.gson.GsonBuilder;
|
||||
import com.google.gson.reflect.TypeToken;
|
||||
import com.nis.util.CodeDicUtils;
|
||||
import com.nis.util.StringUtil;
|
||||
import com.nis.util.httpclient.HttpClientUtil;
|
||||
import com.nis.web.controller.BaseController;
|
||||
import com.nis.web.dao.dashboard.codedic.CodeResult;
|
||||
@SuppressWarnings("rawtypes")
|
||||
@Controller
|
||||
@RequestMapping(value = "${adminPath}/dashboard")
|
||||
public class DashboardController extends BaseController{
|
||||
|
||||
|
||||
@RequestMapping(value="logChart")
|
||||
public String logChart(){
|
||||
bsList();
|
||||
systemChart("Google Chrome");
|
||||
|
||||
|
||||
return "/dashboard/dashBoardIndex";
|
||||
}
|
||||
|
||||
/**
|
||||
* 活跃IP TOP10
|
||||
*/
|
||||
@RequestMapping(value="ipActive")
|
||||
@ResponseBody
|
||||
public List ipActive(){
|
||||
Map<String, Object> fromJsonList = new HashMap<String, Object>();
|
||||
List list = new ArrayList();
|
||||
try {
|
||||
String string = HttpClientUtil.get("http://10.0.6.101:8080/gwall/service/log/v1/trafficIpActive");
|
||||
Gson gson = new GsonBuilder().create();
|
||||
fromJsonList = gson.fromJson(string, new TypeToken<Map>(){}.getType());
|
||||
list = (ArrayList) fromJsonList.get("data");
|
||||
logger.info("活跃IP数据"+fromJsonList);
|
||||
return list;
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
logger.error("活跃ip错误"+e);
|
||||
}
|
||||
return list;
|
||||
}
|
||||
/**
|
||||
* 协议统计
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
@RequestMapping(value="protocol")
|
||||
@ResponseBody
|
||||
public List protocolChart(){
|
||||
Map<String, Object> fromJsonList = new HashMap<String, Object>();
|
||||
List<Map> list = new ArrayList<Map>();
|
||||
List<Map> resultList = new ArrayList<Map>();
|
||||
try {
|
||||
String string = HttpClientUtil.get("http://10.0.6.101:8080/gwall/service/log/v1/trafficProtocol");
|
||||
Gson gson = new GsonBuilder().create();
|
||||
fromJsonList = gson.fromJson(string, new TypeToken<Map>(){}.getType());
|
||||
list = (List<Map>) fromJsonList.get("data");
|
||||
//标签集合
|
||||
List<CodeResult> codeList = CodeDicUtils.getCodeList("protocolCode");
|
||||
//将数字替换为标签文字
|
||||
for (Map map : list) {
|
||||
Double value1 = Double.parseDouble(map.get("protoType").toString());
|
||||
for (CodeResult code : codeList) {
|
||||
Double value2 = Double.valueOf(code.getCode());
|
||||
if(value1.equals(value2)){
|
||||
map.put("protoType", code.getItem());
|
||||
break;
|
||||
}
|
||||
}
|
||||
resultList.add(map);
|
||||
}
|
||||
logger.info("协议统计"+fromJsonList);
|
||||
return resultList;
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
logger.error("协议统计错误"+e);
|
||||
}
|
||||
return resultList;
|
||||
}
|
||||
/**
|
||||
* app流量分析
|
||||
*/
|
||||
@RequestMapping(value="app")
|
||||
@ResponseBody
|
||||
public List appChart(){
|
||||
Map<String, Object> fromJsonList = new HashMap<String, Object>();
|
||||
List<Map> list = new ArrayList<Map>();
|
||||
List<Map> resultList = new ArrayList<Map>();
|
||||
try {
|
||||
String string = HttpClientUtil.get("http://10.0.6.101:8080/gwall/service/log/v1/trafficApp");
|
||||
Gson gson = new GsonBuilder().create();
|
||||
fromJsonList = gson.fromJson(string, new TypeToken<Map>(){}.getType());
|
||||
list = (List<Map>) fromJsonList.get("data");
|
||||
//标签集合
|
||||
List<CodeResult> codeList = CodeDicUtils.getCodeList("appCode");
|
||||
//将数字替换为标签文字
|
||||
for (Map map : list) {
|
||||
Double value1 = Double.parseDouble(map.get("appType").toString());
|
||||
for (CodeResult code : codeList) {
|
||||
Double value2 = Double.valueOf(code.getCode());
|
||||
if(value1.equals(value2)){
|
||||
map.put("appType", code.getItem());
|
||||
break;
|
||||
}
|
||||
}
|
||||
resultList.add(map);
|
||||
}
|
||||
logger.info("app流量分析"+fromJsonList);
|
||||
return resultList;
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
logger.error("app流量分析错误"+e);
|
||||
}
|
||||
return resultList;
|
||||
}
|
||||
/**
|
||||
* 终端用户-操作系统列表
|
||||
*/
|
||||
@RequestMapping(value="osList")
|
||||
@ResponseBody
|
||||
public List osList(){
|
||||
Map<String, Object> fromJsonList = new HashMap<String, Object>();
|
||||
List<Map> list = new ArrayList<Map>();
|
||||
List<Map> resultList = new ArrayList<Map>();
|
||||
try {
|
||||
String string = HttpClientUtil.get("http://10.0.6.101:8080/gwall/service/log/v1/trafficOsList");
|
||||
Gson gson = new GsonBuilder().create();
|
||||
fromJsonList = gson.fromJson(string, new TypeToken<Map>(){}.getType());
|
||||
list = (List<Map>) fromJsonList.get("data");
|
||||
//标签集合
|
||||
List<CodeResult> codeList = CodeDicUtils.getCodeList("osCode");
|
||||
//将数字替换为标签文字
|
||||
for (Map map : list) {
|
||||
Double value1 = Double.parseDouble(map.get("osType").toString());
|
||||
for (CodeResult code : codeList) {
|
||||
Double value2 = Double.valueOf(code.getCode());
|
||||
if(value1.equals(value2)){
|
||||
map.put("osType", code.getItem());
|
||||
break;
|
||||
}
|
||||
}
|
||||
resultList.add(map);
|
||||
}
|
||||
logger.info("终端用户-获取操作系统列表"+fromJsonList);
|
||||
return resultList;
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
logger.error("终端用户-获取操作系统列表错误"+e);
|
||||
}
|
||||
return resultList;
|
||||
}
|
||||
/**
|
||||
* 终端用户-指定操作系统下浏览器分类流量统计
|
||||
*/
|
||||
@RequestMapping(value="browserChart")
|
||||
@ResponseBody
|
||||
public List browserChart(@RequestParam("osType") String osType){
|
||||
Map<String, Object> fromJsonList = new HashMap<String, Object>();
|
||||
List<Map> list = new ArrayList<Map>();
|
||||
List<Map> resultList = new ArrayList<Map>();
|
||||
//标签集合
|
||||
List<CodeResult> codeList1 = CodeDicUtils.getCodeList("osCode");
|
||||
//将标签文字转为数字
|
||||
Integer os=null;
|
||||
for (CodeResult codeResult : codeList1) {
|
||||
if(osType.equalsIgnoreCase(codeResult.getItem())){
|
||||
os=Integer.parseInt(codeResult.getCode());
|
||||
break;
|
||||
}
|
||||
}
|
||||
try {
|
||||
String string = HttpClientUtil.get("http://10.0.6.101:8080/gwall/service/log/v1/trafficBrowserChart?osType="+os);
|
||||
Gson gson = new GsonBuilder().create();
|
||||
fromJsonList = gson.fromJson(string, new TypeToken<Map>(){}.getType());
|
||||
list = (List<Map>) fromJsonList.get("data");
|
||||
//标签集合
|
||||
List<CodeResult> codeList2 = CodeDicUtils.getCodeList("browserCode");
|
||||
//将数字替换为标签文字
|
||||
if(null!=list&&!list.isEmpty()){
|
||||
for (Map map : list) {
|
||||
Double value1 = Double.parseDouble(map.get("bsType").toString());
|
||||
for (CodeResult code : codeList2) {
|
||||
Double value2 = Double.valueOf(code.getCode());
|
||||
if(value1.equals(value2)){
|
||||
map.put("bsType", code.getItem());
|
||||
break;
|
||||
}
|
||||
}
|
||||
resultList.add(map);
|
||||
}
|
||||
}
|
||||
logger.info("终端用户-获取操作系统下浏览器类型"+fromJsonList);
|
||||
return resultList;
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
logger.error("终端用户-获取操作系统下浏览器类型错误"+e);
|
||||
}
|
||||
return resultList;
|
||||
}
|
||||
/**
|
||||
* 终端用户-浏览器列表
|
||||
*/
|
||||
@RequestMapping(value="bsList")
|
||||
@ResponseBody
|
||||
public List bsList(){
|
||||
Map<String, Object> fromJsonList = new HashMap<String, Object>();
|
||||
List<Map> list = new ArrayList<Map>();
|
||||
List<Map> resultList = new ArrayList<Map>();
|
||||
try {
|
||||
String string = HttpClientUtil.get("http://10.0.6.101:8080/gwall/service/log/v1/trafficBsList");
|
||||
Gson gson = new GsonBuilder().create();
|
||||
fromJsonList = gson.fromJson(string, new TypeToken<Map>(){}.getType());
|
||||
list = (List<Map>) fromJsonList.get("data");
|
||||
//标签集合
|
||||
List<CodeResult> codeList = CodeDicUtils.getCodeList("browserCode");
|
||||
//将数字替换为标签文字
|
||||
for (Map map : list) {
|
||||
Double value1 = Double.parseDouble(map.get("bsType").toString());
|
||||
for (CodeResult code : codeList) {
|
||||
Double value2 = Double.valueOf(code.getCode());
|
||||
if(value1.equals(value2)){
|
||||
map.put("bsType", code.getItem());
|
||||
break;
|
||||
}
|
||||
}
|
||||
resultList.add(map);
|
||||
}
|
||||
logger.info("终端用户-获取浏览器列表"+fromJsonList);
|
||||
return resultList;
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
logger.error("终端用户-获取浏览器列表错误"+e);
|
||||
}
|
||||
return resultList;
|
||||
}
|
||||
/**
|
||||
* 终端用户-指定操作系统下浏览器分类流量统计
|
||||
*/
|
||||
@RequestMapping(value="systemChart")
|
||||
@ResponseBody
|
||||
public List systemChart(@RequestParam("bsType") String bsType){
|
||||
Map<String, Object> fromJsonList = new HashMap<String, Object>();
|
||||
List<Map> list = new ArrayList<Map>();
|
||||
List<Map> resultList = new ArrayList<Map>();
|
||||
//标签集合
|
||||
List<CodeResult> codeList1 = CodeDicUtils.getCodeList("bsCode");
|
||||
//将标签文字转为数字
|
||||
Integer bs=null;
|
||||
for (CodeResult codeResult : codeList1) {
|
||||
if(bsType.equalsIgnoreCase(codeResult.getItem())){
|
||||
bs=Integer.parseInt(codeResult.getCode());
|
||||
break;
|
||||
}
|
||||
}
|
||||
try {
|
||||
String string = HttpClientUtil.get("http://10.0.6.101:8080/gwall/service/log/v1/trafficBrowserChart?bsType="+bs);
|
||||
Gson gson = new GsonBuilder().create();
|
||||
fromJsonList = gson.fromJson(string, new TypeToken<Map>(){}.getType());
|
||||
list = (List<Map>) fromJsonList.get("data");
|
||||
//标签集合
|
||||
List<CodeResult> codeList2 = CodeDicUtils.getCodeList("osCode");
|
||||
//将数字替换为标签文字
|
||||
if(null!=list&&!list.isEmpty()){
|
||||
for (Map map : list) {
|
||||
Double value1 = Double.parseDouble(map.get("osType").toString());
|
||||
for (CodeResult code : codeList2) {
|
||||
Double value2 = Double.valueOf(code.getCode());
|
||||
if(value1.equals(value2)){
|
||||
map.put("osType", code.getItem());
|
||||
break;
|
||||
}
|
||||
}
|
||||
resultList.add(map);
|
||||
}
|
||||
}
|
||||
logger.info("终端用户-获取浏览器下操作系统类型"+fromJsonList);
|
||||
return resultList;
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
logger.error("终端用户-获取浏览器下操作系统类型错误"+e);
|
||||
}
|
||||
return resultList;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,81 @@
|
||||
package com.nis.web.controller.log.ntc;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
import org.apache.http.client.ClientProtocolException;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
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 com.google.gson.Gson;
|
||||
import com.google.gson.GsonBuilder;
|
||||
import com.google.gson.reflect.TypeToken;
|
||||
import com.nis.domain.Page;
|
||||
import com.nis.domain.log.NtcAppLog;
|
||||
import com.nis.domain.maat.LogRecvData;
|
||||
import com.nis.util.Constants;
|
||||
import com.nis.util.httpclient.HttpClientUtil;
|
||||
import com.nis.web.controller.BaseController;
|
||||
|
||||
@Controller
|
||||
@RequestMapping(value = "${adminPath}/log/ntc/ntcAppLogs")
|
||||
public class AppLogController extends BaseController{
|
||||
|
||||
/**
|
||||
* @param model
|
||||
* @param entry
|
||||
* @param request
|
||||
* @param response
|
||||
* @return
|
||||
* @throws ClientProtocolException
|
||||
* @throws IOException
|
||||
*/
|
||||
@RequestMapping(value={"list",""})
|
||||
public String list(Model model,@ModelAttribute("log")NtcAppLog entry,HttpServletRequest request, HttpServletResponse response) throws ClientProtocolException, IOException {
|
||||
|
||||
try {
|
||||
|
||||
Page<NtcAppLog> page = new Page<NtcAppLog>(request, response);
|
||||
Map<String, Object> params=new HashMap<>();
|
||||
params.put("pageSize", page.getPageSize());
|
||||
params.put("pageNo", page.getPageNo());
|
||||
//查询值判断
|
||||
initLogSearchValue(entry,params);
|
||||
|
||||
String url = "";
|
||||
url = Constants.LOG_BASE_URL+Constants.NTC_APP_LOG;
|
||||
String jsonString = HttpClientUtil.getMsg(url,params,request);
|
||||
|
||||
Gson gson = new GsonBuilder().create();
|
||||
//gson泛型支持
|
||||
LogRecvData<NtcAppLog> fromJson = gson.fromJson(jsonString, new TypeToken<LogRecvData<NtcAppLog>>(){}.getType());
|
||||
|
||||
if (fromJson.getStatus().intValue() == 200) {
|
||||
// BeanUtils.copyProperties(fromJson.getData(), page);
|
||||
Page<NtcAppLog> data = fromJson.getData();
|
||||
page.setCount(200);
|
||||
page.setList(data.getList());
|
||||
List<NtcAppLog> list = page.getList();
|
||||
for (NtcAppLog l : list) {
|
||||
l.setFunctionId(entry.getFunctionId());
|
||||
setLogAction(l);
|
||||
}
|
||||
model.addAttribute("page", page);
|
||||
logger.info("查询App日志成功");
|
||||
}
|
||||
} catch (Exception e) {
|
||||
logger.info("查询App日志失败", e);
|
||||
addMessage(model, e.getMessage());
|
||||
}
|
||||
return "/log/ntc/appList";
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,80 @@
|
||||
package com.nis.web.controller.log.ntc;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
import org.apache.http.client.ClientProtocolException;
|
||||
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 com.google.gson.Gson;
|
||||
import com.google.gson.GsonBuilder;
|
||||
import com.google.gson.reflect.TypeToken;
|
||||
import com.nis.domain.Page;
|
||||
import com.nis.domain.log.NtcDdosLog;
|
||||
import com.nis.domain.maat.LogRecvData;
|
||||
import com.nis.util.Constants;
|
||||
import com.nis.util.httpclient.HttpClientUtil;
|
||||
import com.nis.web.controller.BaseController;
|
||||
|
||||
@Controller
|
||||
@RequestMapping(value = "${adminPath}/log/ntc/ntcDdosLogs")
|
||||
public class DdosLogController extends BaseController{
|
||||
|
||||
/**
|
||||
* @param model
|
||||
* @param entry
|
||||
* @param request
|
||||
* @param response
|
||||
* @return
|
||||
* @throws ClientProtocolException
|
||||
* @throws IOException
|
||||
*/
|
||||
@RequestMapping(value={"list",""})
|
||||
public String list(Model model,@ModelAttribute("log")NtcDdosLog entry,HttpServletRequest request, HttpServletResponse response) throws ClientProtocolException, IOException {
|
||||
|
||||
try {
|
||||
|
||||
Page<NtcDdosLog> page = new Page<NtcDdosLog>(request, response);
|
||||
Map<String, Object> params=new HashMap<>();
|
||||
params.put("pageSize", page.getPageSize());
|
||||
params.put("pageNo", page.getPageNo());
|
||||
//查询值判断
|
||||
initLogSearchValue(entry,params);
|
||||
|
||||
String url = "";
|
||||
url = Constants.LOG_BASE_URL+Constants.NTC_DDOS_LOG;
|
||||
String jsonString = HttpClientUtil.getMsg(url,params,request);
|
||||
|
||||
Gson gson = new GsonBuilder().create();
|
||||
//gson泛型支持
|
||||
LogRecvData<NtcDdosLog> fromJson = gson.fromJson(jsonString, new TypeToken<LogRecvData<NtcDdosLog>>(){}.getType());
|
||||
|
||||
if (fromJson.getStatus().intValue() == 200) {
|
||||
// BeanUtils.copyProperties(fromJson.getData(), page);
|
||||
Page<NtcDdosLog> data = fromJson.getData();
|
||||
page.setCount(200);
|
||||
page.setList(data.getList());
|
||||
List<NtcDdosLog> list = page.getList();
|
||||
for (NtcDdosLog l : list) {
|
||||
l.setFunctionId(entry.getFunctionId());
|
||||
setLogAction(l);
|
||||
}
|
||||
model.addAttribute("page", page);
|
||||
logger.info("查询Ddos日志成功");
|
||||
}
|
||||
} catch (Exception e) {
|
||||
logger.info("查询Ddos日志失败", e);
|
||||
addMessage(model, e.getMessage());
|
||||
}
|
||||
return "/log/ntc/ddosList";
|
||||
}
|
||||
|
||||
}
|
||||
@@ -27,7 +27,7 @@ import com.nis.web.controller.BaseController;
|
||||
|
||||
@Controller
|
||||
@RequestMapping(value = "${adminPath}/log/ntc/NtcFtpLogs")
|
||||
public class FtpController extends BaseController{
|
||||
public class FtpLogController extends BaseController{
|
||||
|
||||
/**
|
||||
* @param model
|
||||
@@ -28,7 +28,7 @@ import com.nis.web.controller.BaseController;
|
||||
|
||||
@Controller
|
||||
@RequestMapping(value = "${adminPath}/log/ntc/ntcIpsecLogs")
|
||||
public class IpsecController extends BaseController{
|
||||
public class IpsecLogController extends BaseController{
|
||||
|
||||
/**
|
||||
* @param model
|
||||
@@ -1,22 +0,0 @@
|
||||
package com.nis.web.controller.log.ntc;
|
||||
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.ResponseBody;
|
||||
|
||||
import com.nis.web.controller.BaseController;
|
||||
@Controller
|
||||
@RequestMapping(value = "/log")
|
||||
public class LogChartController extends BaseController{
|
||||
@RequestMapping(value="logChart")
|
||||
public String logChart(){
|
||||
|
||||
return "/log/chart";
|
||||
}
|
||||
@RequestMapping(value="ajaxChart")
|
||||
@ResponseBody
|
||||
public String ajaxChart(){
|
||||
|
||||
return "";
|
||||
}
|
||||
}
|
||||
@@ -28,7 +28,7 @@ import com.nis.web.controller.BaseController;
|
||||
|
||||
@Controller
|
||||
@RequestMapping(value = "${adminPath}/log/ntc/ntcOpenvpnLogs")
|
||||
public class OpenVpnController extends BaseController{
|
||||
public class OpenVpnLogController extends BaseController{
|
||||
|
||||
/**
|
||||
* @param model
|
||||
@@ -60,7 +60,10 @@ public class OpenVpnController extends BaseController{
|
||||
LogRecvData<NtcOpenVpnLog> fromJson = gson.fromJson(jsonString, new TypeToken<LogRecvData<NtcOpenVpnLog>>(){}.getType());
|
||||
|
||||
if (fromJson.getStatus().intValue() == 200) {
|
||||
BeanUtils.copyProperties(fromJson.getData(), page);
|
||||
// BeanUtils.copyProperties(fromJson.getData(), page);
|
||||
Page<NtcOpenVpnLog> data = fromJson.getData();
|
||||
page.setCount(200);
|
||||
page.setList(data.getList());
|
||||
List<NtcOpenVpnLog> list = page.getList();
|
||||
for (NtcOpenVpnLog l : list) {
|
||||
l.setFunctionId(entry.getFunctionId());
|
||||
@@ -28,7 +28,7 @@ import com.nis.web.controller.BaseController;
|
||||
|
||||
@Controller
|
||||
@RequestMapping(value = "${adminPath}/log/ntc/ntcSshLogs")
|
||||
public class SshController extends BaseController{
|
||||
public class SshLogController extends BaseController{
|
||||
|
||||
/**
|
||||
* @param model
|
||||
@@ -78,7 +78,7 @@ public class NtcDestIpReportController extends BaseController {
|
||||
List<Long> _line= new ArrayList<Long>();
|
||||
_line.add(total);
|
||||
_line.addAll(line);
|
||||
for (int i = 0; i < 20; i++) {
|
||||
for (int i = 0; i < 40; i++) {
|
||||
showData.put("巴西"+i, _line);
|
||||
}
|
||||
|
||||
|
||||
@@ -78,7 +78,7 @@ public class NtcEntranceReportController extends BaseController {
|
||||
List<Long> _line= new ArrayList<Long>();
|
||||
_line.add(total);
|
||||
_line.addAll(line);
|
||||
for (int i = 0; i < 20; i++) {
|
||||
for (int i = 0; i < 40; i++) {
|
||||
showData.put(""+i, _line);
|
||||
}
|
||||
|
||||
|
||||
@@ -163,6 +163,7 @@ ssl_certificate_monitor=SSL Cert Monit
|
||||
response_header_control=Response Header Control
|
||||
ip_website_text_control=IP+Website Keyowrd Control
|
||||
request_task=Request And Task
|
||||
realtime_report=Realtime Report
|
||||
#==========menu end=====================
|
||||
|
||||
#==========yewu zidian begin=====================
|
||||
@@ -562,10 +563,7 @@ av_sample_voip_control=VoIPSample Control
|
||||
av_sample_audio_porn_control=Audio Porn Sign Sample Control
|
||||
av_sample_vedio_porn_control=Vedio Porn Sign Sample Control
|
||||
av_sample_control=Sample Control
|
||||
<<<<<<< HEAD
|
||||
configure_statistics_info=Configure statistics info
|
||||
=======
|
||||
>>>>>>> branch 'develop' of http://10.0.6.99/gwall/gwall.git
|
||||
harm_level=Degree of harm
|
||||
src_file=Source File
|
||||
select_file=Please Select Upload File
|
||||
@@ -940,4 +938,15 @@ ddos_ip_drop=DDOS IP
|
||||
ip_reuse_adress_pool_loop=IP reuse address pool
|
||||
app_strategy_monit=APP strategy monitoring
|
||||
app_strategy_drop=APP strategy drop
|
||||
#=============multipart upload error info=================
|
||||
#=============function_service_dict==>service_name=================
|
||||
#=============about report===================
|
||||
hour_of_day_report=Daily report
|
||||
day_of_month_report=Monthly report
|
||||
month_report=Month report
|
||||
label_report=Label report
|
||||
attr_type_report=Attribute report
|
||||
lwhh_report=Request info report
|
||||
src_ip_report=Domestic source IP report
|
||||
dest_ip_report=Destination country IP report
|
||||
isp_report=ISP report
|
||||
#=============about report===================
|
||||
@@ -162,7 +162,8 @@ ssl_certificate_control=SSL certificate control
|
||||
ssl_certificate_monitor=SSL certificate monitor
|
||||
response_header_control=response header control
|
||||
ip_website_text_control=ip website text control
|
||||
request_task=request and task
|
||||
request_task=Request And Task
|
||||
realtime_report=Realtime Report
|
||||
#============menu end======================
|
||||
|
||||
#============yewu begin======================
|
||||
@@ -664,6 +665,14 @@ data_tunnel=data tunnel
|
||||
contrl_message=contrl message
|
||||
data_message=data message
|
||||
user_name=user name
|
||||
attack_type=Attack Type
|
||||
attack_start_time=Attack Start Time
|
||||
last_attack_time=Last Attack Time
|
||||
attack_max_pps=Attack Max Pps num/s
|
||||
attack_max_bps=Attack Max Bps bit/s
|
||||
attack_total_pkt=Attack Total pkt
|
||||
attack_total_byte=Attack Total byte
|
||||
is_blcok=Is Blcok
|
||||
#===========log end =============
|
||||
#=============about proxy=========
|
||||
intercept_policy=intercept policy
|
||||
@@ -816,3 +825,14 @@ ip_reuse_adress_pool_loop=IP reuse address pool
|
||||
app_strategy_monit=APP strategy monitoring
|
||||
app_strategy_drop=APP strategy drop
|
||||
#=============function_service_dict==>service_name=================
|
||||
#=============about report===================
|
||||
hour_of_day_report=daily report
|
||||
day_of_month_report=monthly report
|
||||
month_report=month report
|
||||
label_report=label report
|
||||
attr_type_report=attribute report
|
||||
lwhh_report=request info report
|
||||
src_ip_report=domestic source IP report
|
||||
dest_ip_report=destination country IP report
|
||||
isp_report=isp report
|
||||
#=============about report===================
|
||||
@@ -163,6 +163,7 @@ ssl_certificate_monitor=SSL\u8BC1\u4E66\u76D1\u6D4B
|
||||
response_header_control=\u5E94\u7B54\u5934\u57DF\u7BA1\u63A7
|
||||
ip_website_text_control=IP+\u7F51\u9875\u5173\u952E\u5B57\u7BA1\u63A7
|
||||
request_task=\u6765\u51FD\u4E13\u9879
|
||||
realtime_report=\u5B9E\u65F6\u62A5\u8868
|
||||
#==========menu end=====================
|
||||
|
||||
#==========yewu zidian begin=====================
|
||||
@@ -710,6 +711,14 @@ data_tunnel=\u6570\u636E\u901A\u9053
|
||||
contrl_message=\u63A7\u5236\u62A5\u6587
|
||||
data_message=\u6570\u636E\u62A5\u6587
|
||||
user_name=\u7528\u6237\u540D\u79F0
|
||||
attack_type=\u653B\u51FB\u7C7B\u578B
|
||||
attack_start_time=\u653B\u51FB\u8D77\u59CB\u65F6\u95F4
|
||||
last_attack_time=\u6700\u540E\u4E00\u6B21\u653B\u51FB\u5305\u65F6\u95F4
|
||||
attack_max_pps=\u653B\u51FB\u6700\u5927\u6D41\u91CF \u5305\u6570/\u79D2
|
||||
attack_max_bps=\u653B\u51FB\u6700\u5927\u6D41\u91CF bit\u6570/\u79D2
|
||||
attack_total_pkt=\u653B\u51FB\u7D2F\u79EF\u5305\u6570
|
||||
attack_total_byte=\u653B\u51FB\u7D2F\u79EF\u5B57\u8282\u6570
|
||||
is_blcok=\u653B\u51FB\u6D41\u91CF\u662F\u5426\u88AB\u4E22\u5F03
|
||||
#===========log end =============
|
||||
#=============about proxy=========
|
||||
intercept_policy=\u62E6\u622A\u7B56\u7565
|
||||
@@ -1018,3 +1027,14 @@ ip_reuse_adress_pool_loop=IP\u590D\u7528\u5730\u5740\u6C60\u914D\u7F6E
|
||||
app_strategy_monit=APP\u7B56\u7565\u76D1\u6D4B
|
||||
app_strategy_drop=APP\u7B56\u7565\u4E22\u5F03
|
||||
#=============function_service_dict==>service_name=================
|
||||
#=============about report===================
|
||||
hour_of_day_report=\u5C0F\u65F6\u62A5
|
||||
day_of_month_report=\u5F53\u6708\u65E5\u62A5
|
||||
month_report=\u6708\u62A5
|
||||
label_report=\u6807\u7B7E\u62A5\u8868
|
||||
attr_type_report=\u6027\u8D28\u62A5\u8868
|
||||
lwhh_report=\u6765\u6587\u51FD\u53F7\u62A5\u8868
|
||||
src_ip_report=\u5883\u5185\u6E90IP\u62A5\u8868
|
||||
dest_ip_report=\u76EE\u7684\u56FD\u5BB6IP\u62A5\u8868
|
||||
isp_report=\u8FD0\u8425\u5546\u5C40\u70B9\u62A5\u8868
|
||||
#=============about report===================
|
||||
@@ -241,6 +241,8 @@ ntcIpsecLog=ntcIpsecLogs
|
||||
ntcSshLog=ntcSshLogs
|
||||
ntcMailLog=ntcMailLogs
|
||||
ntcFtpLog=ntcFtpLogs
|
||||
ntcAppLog=ntcAppLogs
|
||||
ntcDdosLog=ntcDdosLogs
|
||||
|
||||
client_connect_timeout=300000
|
||||
client_read_timeout=300000
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<%@ include file="/WEB-INF/include/taglib.jsp"%>
|
||||
<html>
|
||||
<head>
|
||||
<title><spring:message code="${cfgName}"></spring:message></title>
|
||||
<title><spring:message code="ip_control_white"></spring:message></title>
|
||||
<script type="text/javascript">
|
||||
$(function(){
|
||||
switchIpInfo($("select[name$='ipType']"),"ipType");
|
||||
@@ -67,7 +67,7 @@ $(function(){
|
||||
<body>
|
||||
<div class="page-content">
|
||||
<h3 class="page-title">
|
||||
<spring:message code="${cfgName}"></spring:message>
|
||||
<spring:message code="ip_control_white"></spring:message>
|
||||
</h3>
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
|
||||
@@ -217,8 +217,11 @@ window.onresize=function(){
|
||||
<c:choose>
|
||||
<c:when test="${not empty menu.children and menu.children[0].isTop eq 1 }">
|
||||
|
||||
<a href="javascript:;" id="${menu.id}" data-hover="megamenu-dropdown" data-close-others="true">
|
||||
<%-- ${menu.name } --%><spring:message code="${menu.code}"></spring:message>
|
||||
<a href="javascript:;" id="${menu.id}" data-hover="megamenu-dropdown" data-close-others="true"
|
||||
data-original-title="<spring:message code="${menu.code}"/>" class="tooltips" data-placement="right">
|
||||
<%-- ${menu.name } --%><%-- <spring:message code="${menu.code}"></spring:message> --%>
|
||||
<c:set var="menuName" ><spring:message code='${menu.code}'/></c:set>
|
||||
${fns:abbr(menuName,15)}
|
||||
<i class="fa fa-angle-down"></i>
|
||||
</a>
|
||||
|
||||
@@ -243,8 +246,10 @@ window.onresize=function(){
|
||||
</c:when>
|
||||
|
||||
<c:otherwise>
|
||||
<a href="javascript:;" id="${menu.id}">
|
||||
<%-- ${menu.name } --%><spring:message code="${menu.code}"></spring:message>
|
||||
<a href="javascript:;" id="${menu.id}" data-original-title="<spring:message code="${menu.code}"/>" class="tooltips" data-placement="right">
|
||||
<%-- ${menu.name } --%><%-- <spring:message code="${menu.code}"></spring:message> --%>
|
||||
<c:set var="menuName" ><spring:message code='${menu.code}'/></c:set>
|
||||
${fns:abbr(menuName,15)}
|
||||
</a>
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
|
||||
234
src/main/webapp/WEB-INF/views/log/ntc/appList.jsp
Normal file
234
src/main/webapp/WEB-INF/views/log/ntc/appList.jsp
Normal file
@@ -0,0 +1,234 @@
|
||||
<%@ page contentType="text/html;charset=UTF-8"%>
|
||||
<%@ include file="/WEB-INF/include/taglib.jsp"%>
|
||||
<html>
|
||||
<head>
|
||||
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function(){
|
||||
//筛选功能
|
||||
filterActionInit();
|
||||
//reset
|
||||
$("#resetBtn").on("click",function(){
|
||||
$("select.selectpicker").each(function(){
|
||||
$(this).selectpicker('val',$(this).find('option:first').val());
|
||||
$(this).find("option").attr("selected",false);
|
||||
$(this).find("option:first").attr("selected",true);
|
||||
});
|
||||
$(".Wdate").attr("value",'');
|
||||
$(':input','#searchForm')
|
||||
.not(':button,:submit,:reset,:hidden')
|
||||
.attr("value",'');
|
||||
$("#searchForm")[0].reset();
|
||||
});
|
||||
|
||||
});
|
||||
//查询
|
||||
function page(n,s){
|
||||
$("#intype").attr("name",$("#seltype").val());
|
||||
$("#pageNo").val(n);
|
||||
$("#pageSize").val(s);
|
||||
$("#searchForm").attr("action","${ctx}/log/ntc/ntcAppLogs");
|
||||
$("#searchForm").submit();
|
||||
return false;
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="page-content">
|
||||
<h3 class="page-title">
|
||||
APP
|
||||
<small><spring:message code="date_list"/></small>
|
||||
</h3>
|
||||
|
||||
<h5 class="page-header"></h5>
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<div class="portlet">
|
||||
<div class="portlet-body">
|
||||
<div class="row" >
|
||||
<form:form id="searchForm" modelAttribute="log" action="${ctx}/log/ntc/ntcAppLogs" 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="functionId" name="functionId" type="hidden" value="${log.functionId}"/>
|
||||
<!-- 筛选按钮展开状态-->
|
||||
<input id="isFilterAction" name="isFilterAction" type="hidden" value="${log.isFilterAction }"/>
|
||||
|
||||
<sys:tableSort id="orderBy" name="orderBy" value="${page.orderBy}" callback="page();"/>
|
||||
|
||||
<!-- 搜索内容与操作按钮栏 -->
|
||||
<div class="col-md-12">
|
||||
<div class="pull-left">
|
||||
<form:select path="service" class="selectpicker select2 input-small">
|
||||
<form:option value=""><spring:message code="action"/></form:option>
|
||||
<form:option value="16"><spring:message code="action_reject"/></form:option>
|
||||
<form:option value="1"><spring:message code="action_monit"/></form:option>
|
||||
</form:select>
|
||||
</div>
|
||||
<div class="pull-left">
|
||||
<div class="input-group">
|
||||
<div class="input-group-btn">
|
||||
<span class="selectpicker form-control" ><spring:message code="begin_date"/></span>
|
||||
</div>
|
||||
<input id="searchFoundStartTime" name="searchFoundStartTime" type="text" readonly="readonly" class="form-control input-medium Wdate "
|
||||
value="${log.searchFoundStartTime}" onclick="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss',isShowClear:true});"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="pull-left">
|
||||
<div class="input-group">
|
||||
<div class="input-group-btn">
|
||||
<span class="selectpicker form-control" ><spring:message code="end_date"/></span>
|
||||
</div>
|
||||
<input id="searchFoundEndTime" name="searchFoundEndTime" type="text" readonly="readonly" class="form-control input-medium Wdate "
|
||||
value="${log.searchFoundEndTime}" onclick="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss',isShowClear:true});"/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="pull-left">
|
||||
<button type="button" class="btn blue" onClick="page()"> <i class="fa fa-search"></i> <spring:message code="search"/> </button>
|
||||
<button type="button" class="btn btn-default" id="resetBtn"> <i class="fa fa-refresh"></i> <spring:message code="reset"/> </button>
|
||||
<button type="button" class="btn btn-default" id="filter-btn"> <spring:message code="filter"></spring:message> <i class="fa fa-angle-double-down"></i></button>
|
||||
</div>
|
||||
|
||||
<div class="pull-right">
|
||||
<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>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 筛选搜索内容栏默认隐藏-->
|
||||
<div class="col-md-12 filter-action-select-panle hide" >
|
||||
<div class="row">
|
||||
<div class="col-md-2">
|
||||
<div class="form-group">
|
||||
<label><spring:message code="protocol_type"/>:</label>
|
||||
<c:set var="select"><spring:message code='select'/></c:set>
|
||||
<form:select path="transProto" class="selectpicker select2 form-control" data-live-search="true" data-live-search-placeholder="search">
|
||||
<form:option value=""><spring:message code="select"/></form:option>
|
||||
<c:forEach items="${fns:getDictList('LOG_PROTOCOL')}" var="dict">
|
||||
<form:option value="${dict.itemCode}" ><spring:message code="${dict.itemValue}"/></form:option>
|
||||
</c:forEach>
|
||||
</form:select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-2">
|
||||
<div class="form-group">
|
||||
<label><spring:message code="direct"/>:</label>
|
||||
<form:select path="direction" class="selectpicker select2 form-control">
|
||||
<form:option value=""><spring:message code="select"/></form:option>
|
||||
<c:forEach items="${fns:getDictList('DIRECTION')}" var="dict">
|
||||
<form:option value="${dict.itemCode}"><spring:message code="${dict.itemValue}"/></form:option>
|
||||
</c:forEach>
|
||||
</form:select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-2">
|
||||
<div class="form-group">
|
||||
<label><spring:message code="entrance_id"/>:</label>
|
||||
<input id=entranceId name="entranceId" class="form-control" type="text" value="${log.entranceId}"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-2">
|
||||
<div class="form-group">
|
||||
<label><spring:message code="entrance"/>:</label>
|
||||
<form:select path="entranceId" class="selectpicker form-control" data-live-search="true" data-live-search-placeholder="search">
|
||||
<form:option value=""><spring:message code="select"/></form:option>
|
||||
<c:forEach items="${fns:getDictList('ENTRANCE')}" var="entrance" >
|
||||
<form:option value="${entrance.itemCode}"><spring:message code="${entrance.itemValue}"></spring:message></form:option>
|
||||
</c:forEach>
|
||||
</form:select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-2">
|
||||
<div class="form-group">
|
||||
<label><spring:message code="clientip"/>:</label>
|
||||
<input id="sIp" name="sIp" class="form-control" type="text" value="${log.sIp}"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-2">
|
||||
<div class="form-group">
|
||||
<label><spring:message code="serverip"/>:</label>
|
||||
<input id="dIp" name="dIp" class="form-control" type="text" value="${log.dIp}"/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- /筛选搜索内容栏 结束-->
|
||||
</form:form>
|
||||
</div>
|
||||
|
||||
<div class="table-responsive">
|
||||
<sys:message content="${message}"/>
|
||||
<table id="contentTable" class="table table-striped table-bordered table-condensed text-nowrap">
|
||||
<thead>
|
||||
<tr>
|
||||
<th><spring:message code='cfg_id'/></th>
|
||||
<th><spring:message code='entrance_id'/></th>
|
||||
<th><spring:message code="action"/></th>
|
||||
<th><spring:message code='direct'/></th>
|
||||
<th><spring:message code='found_time'/></th>
|
||||
<th><spring:message code='recv_time'/></th>
|
||||
<th><spring:message code='protocol'/></th>
|
||||
<th><spring:message code='addr_type'/></th>
|
||||
<th><spring:message code='serverip'/></th>
|
||||
<th><spring:message code='clientip'/></th>
|
||||
<th><spring:message code='serverport'/></th>
|
||||
<th><spring:message code='clientport'/></th>
|
||||
<th><spring:message code='deviceid'/></th>
|
||||
<th><spring:message code='stream_type'/></th>
|
||||
<th><spring:message code='clj_ip'/></th>
|
||||
<th><spring:message code='nest_addr_list'/></th>
|
||||
<th><spring:message code='user_region'/></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<c:forEach items="${page.list}" var="log" varStatus="status" step="1">
|
||||
<tr>
|
||||
<td>${log.cfgId}</td>
|
||||
<td>${log.entranceId}</td>
|
||||
<td>
|
||||
<c:if test="${log.action eq 16 }"><spring:message code="action_reject"/></c:if>
|
||||
<c:if test="${log.action eq 1 }"><spring:message code="action_monit"/></c:if>
|
||||
</td>
|
||||
<td>
|
||||
<c:forEach items="${fns:getDictList('DIRECTION')}" var="dic">
|
||||
<c:if test="${log.direction==dic.itemCode}"><spring:message code="${dic.itemValue }"/></c:if>
|
||||
</c:forEach>
|
||||
</td>
|
||||
<td>${log.foundTime}</td>
|
||||
<td>${log.recvTime}</td>
|
||||
<td>${log.transProto}</td>
|
||||
<td>
|
||||
<c:forEach items="${fns:getDictList('IP_TYPE')}" var="dic">
|
||||
<c:if test="${log.addrType==dic.itemCode}"><spring:message code="${dic.itemValue }"/></c:if>
|
||||
</c:forEach>
|
||||
</td>
|
||||
<td>${log.dIp}</td>
|
||||
<td>${log.sIp}</td>
|
||||
<td>${log.dPort}</td>
|
||||
<td>${log.sPort}</td>
|
||||
<td>${log.deviceId}</td>
|
||||
<td>
|
||||
<c:forEach items="${fns:getDictList('LOG_STREAM_TYPE')}" var="dic">
|
||||
<c:if test="${log.streamDir==dic.itemCode}"><spring:message code="${dic.itemValue }"/></c:if>
|
||||
</c:forEach>
|
||||
</td>
|
||||
<td>${log.capIp}</td>
|
||||
<td>${log.addrList}</td>
|
||||
<td>${log.userRegion}</td>
|
||||
</tr>
|
||||
</c:forEach>
|
||||
</tbody>
|
||||
</table>
|
||||
<div class="page">${page}</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
252
src/main/webapp/WEB-INF/views/log/ntc/ddosList.jsp
Normal file
252
src/main/webapp/WEB-INF/views/log/ntc/ddosList.jsp
Normal file
@@ -0,0 +1,252 @@
|
||||
<%@ page contentType="text/html;charset=UTF-8"%>
|
||||
<%@ include file="/WEB-INF/include/taglib.jsp"%>
|
||||
<html>
|
||||
<head>
|
||||
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function(){
|
||||
//筛选功能
|
||||
filterActionInit();
|
||||
//reset
|
||||
$("#resetBtn").on("click",function(){
|
||||
$("select.selectpicker").each(function(){
|
||||
$(this).selectpicker('val',$(this).find('option:first').val());
|
||||
$(this).find("option").attr("selected",false);
|
||||
$(this).find("option:first").attr("selected",true);
|
||||
});
|
||||
$(".Wdate").attr("value",'');
|
||||
$(':input','#searchForm')
|
||||
.not(':button,:submit,:reset,:hidden')
|
||||
.attr("value",'');
|
||||
$("#searchForm")[0].reset();
|
||||
});
|
||||
|
||||
});
|
||||
//查询
|
||||
function page(n,s){
|
||||
$("#intype").attr("name",$("#seltype").val());
|
||||
$("#pageNo").val(n);
|
||||
$("#pageSize").val(s);
|
||||
$("#searchForm").attr("action","${ctx}/log/ntc/ntcDdosLogs");
|
||||
$("#searchForm").submit();
|
||||
return false;
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="page-content">
|
||||
<h3 class="page-title">
|
||||
DDOS
|
||||
<small><spring:message code="date_list"/></small>
|
||||
</h3>
|
||||
|
||||
<h5 class="page-header"></h5>
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<div class="portlet">
|
||||
<div class="portlet-body">
|
||||
<div class="row" >
|
||||
<form:form id="searchForm" modelAttribute="log" action="${ctx}/log/ntc/ntcDdosLogs" 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="functionId" name="functionId" type="hidden" value="${log.functionId}"/>
|
||||
<!-- 筛选按钮展开状态-->
|
||||
<input id="isFilterAction" name="isFilterAction" type="hidden" value="${log.isFilterAction }"/>
|
||||
|
||||
<sys:tableSort id="orderBy" name="orderBy" value="${page.orderBy}" callback="page();"/>
|
||||
|
||||
<!-- 搜索内容与操作按钮栏 -->
|
||||
<div class="col-md-12">
|
||||
<div class="pull-left">
|
||||
<form:select path="service" class="selectpicker select2 input-small">
|
||||
<form:option value=""><spring:message code="action"/></form:option>
|
||||
<form:option value="16"><spring:message code="action_reject"/></form:option>
|
||||
<form:option value="1"><spring:message code="action_monit"/></form:option>
|
||||
</form:select>
|
||||
</div>
|
||||
<div class="pull-left">
|
||||
<div class="input-group">
|
||||
<div class="input-group-btn">
|
||||
<span class="selectpicker form-control" ><spring:message code="begin_date"/></span>
|
||||
</div>
|
||||
<input id="searchFoundStartTime" name="searchFoundStartTime" type="text" readonly="readonly" class="form-control input-medium Wdate "
|
||||
value="${log.searchFoundStartTime}" onclick="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss',isShowClear:true});"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="pull-left">
|
||||
<div class="input-group">
|
||||
<div class="input-group-btn">
|
||||
<span class="selectpicker form-control" ><spring:message code="end_date"/></span>
|
||||
</div>
|
||||
<input id="searchFoundEndTime" name="searchFoundEndTime" type="text" readonly="readonly" class="form-control input-medium Wdate "
|
||||
value="${log.searchFoundEndTime}" onclick="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss',isShowClear:true});"/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="pull-left">
|
||||
<button type="button" class="btn blue" onClick="page()"> <i class="fa fa-search"></i> <spring:message code="search"/> </button>
|
||||
<button type="button" class="btn btn-default" id="resetBtn"> <i class="fa fa-refresh"></i> <spring:message code="reset"/> </button>
|
||||
<button type="button" class="btn btn-default" id="filter-btn"> <spring:message code="filter"></spring:message> <i class="fa fa-angle-double-down"></i></button>
|
||||
</div>
|
||||
|
||||
<div class="pull-right">
|
||||
<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>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 筛选搜索内容栏默认隐藏-->
|
||||
<div class="col-md-12 filter-action-select-panle hide" >
|
||||
<div class="row">
|
||||
<div class="col-md-2">
|
||||
<div class="form-group">
|
||||
<label><spring:message code="protocol_type"/>:</label>
|
||||
<c:set var="select"><spring:message code='select'/></c:set>
|
||||
<form:select path="transProto" class="selectpicker select2 form-control" data-live-search="true" data-live-search-placeholder="search">
|
||||
<form:option value=""><spring:message code="select"/></form:option>
|
||||
<c:forEach items="${fns:getDictList('LOG_PROTOCOL')}" var="dict">
|
||||
<form:option value="${dict.itemCode}" ><spring:message code="${dict.itemValue}"/></form:option>
|
||||
</c:forEach>
|
||||
</form:select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-2">
|
||||
<div class="form-group">
|
||||
<label><spring:message code="direct"/>:</label>
|
||||
<form:select path="direction" class="selectpicker select2 form-control">
|
||||
<form:option value=""><spring:message code="select"/></form:option>
|
||||
<c:forEach items="${fns:getDictList('DIRECTION')}" var="dict">
|
||||
<form:option value="${dict.itemCode}"><spring:message code="${dict.itemValue}"/></form:option>
|
||||
</c:forEach>
|
||||
</form:select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-2">
|
||||
<div class="form-group">
|
||||
<label><spring:message code="entrance_id"/>:</label>
|
||||
<input id=entranceId name="entranceId" class="form-control" type="text" value="${log.entranceId}"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-2">
|
||||
<div class="form-group">
|
||||
<label><spring:message code="entrance"/>:</label>
|
||||
<form:select path="entranceId" class="selectpicker form-control" data-live-search="true" data-live-search-placeholder="search">
|
||||
<form:option value=""><spring:message code="select"/></form:option>
|
||||
<c:forEach items="${fns:getDictList('ENTRANCE')}" var="entrance" >
|
||||
<form:option value="${entrance.itemCode}"><spring:message code="${entrance.itemValue}"></spring:message></form:option>
|
||||
</c:forEach>
|
||||
</form:select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-2">
|
||||
<div class="form-group">
|
||||
<label><spring:message code="clientip"/>:</label>
|
||||
<input id="sIp" name="sIp" class="form-control" type="text" value="${log.sIp}"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-2">
|
||||
<div class="form-group">
|
||||
<label><spring:message code="serverip"/>:</label>
|
||||
<input id="dIp" name="dIp" class="form-control" type="text" value="${log.dIp}"/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- /筛选搜索内容栏 结束-->
|
||||
</form:form>
|
||||
</div>
|
||||
|
||||
<div class="table-responsive">
|
||||
<sys:message content="${message}"/>
|
||||
<table id="contentTable" class="table table-striped table-bordered table-condensed text-nowrap">
|
||||
<thead>
|
||||
<tr>
|
||||
<th><spring:message code='cfg_id'/></th>
|
||||
<th><spring:message code='entrance_id'/></th>
|
||||
<th><spring:message code="action"/></th>
|
||||
<th><spring:message code='direct'/></th>
|
||||
<th><spring:message code='found_time'/></th>
|
||||
<th><spring:message code='recv_time'/></th>
|
||||
<th><spring:message code='protocol'/></th>
|
||||
<th><spring:message code='addr_type'/></th>
|
||||
<th><spring:message code='serverip'/></th>
|
||||
<th><spring:message code='clientip'/></th>
|
||||
<th><spring:message code='serverport'/></th>
|
||||
<th><spring:message code='clientport'/></th>
|
||||
<th><spring:message code='deviceid'/></th>
|
||||
<th><spring:message code='stream_type'/></th>
|
||||
<th><spring:message code='clj_ip'/></th>
|
||||
<th><spring:message code='nest_addr_list'/></th>
|
||||
<th><spring:message code='user_region'/></th>
|
||||
|
||||
<th><spring:message code='attack_type'/></th>
|
||||
<th><spring:message code='attack_start_time'/></th>
|
||||
<th><spring:message code='last_attack_time'/></th>
|
||||
<th><spring:message code='attack_max_pps'/></th>
|
||||
<th><spring:message code='attack_max_bps'/></th>
|
||||
<th><spring:message code='attack_total_pkt'/></th>
|
||||
<th><spring:message code='attack_total_byte'/></th>
|
||||
<th><spring:message code='is_blcok'/></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<c:forEach items="${page.list}" var="log" varStatus="status" step="1">
|
||||
<tr>
|
||||
<td>${log.cfgId}</td>
|
||||
<td>${log.entranceId}</td>
|
||||
<td>
|
||||
<c:if test="${log.action eq 16 }"><spring:message code="action_reject"/></c:if>
|
||||
<c:if test="${log.action eq 1 }"><spring:message code="action_monit"/></c:if>
|
||||
</td>
|
||||
<td>
|
||||
<c:forEach items="${fns:getDictList('DIRECTION')}" var="dic">
|
||||
<c:if test="${log.direction==dic.itemCode}"><spring:message code="${dic.itemValue }"/></c:if>
|
||||
</c:forEach>
|
||||
</td>
|
||||
<td>${log.foundTime}</td>
|
||||
<td>${log.recvTime}</td>
|
||||
<td>${log.transProto}</td>
|
||||
<td>
|
||||
<c:forEach items="${fns:getDictList('IP_TYPE')}" var="dic">
|
||||
<c:if test="${log.addrType==dic.itemCode}"><spring:message code="${dic.itemValue }"/></c:if>
|
||||
</c:forEach>
|
||||
</td>
|
||||
<td>${log.dIp}</td>
|
||||
<td>${log.sIp}</td>
|
||||
<td>${log.dPort}</td>
|
||||
<td>${log.sPort}</td>
|
||||
<td>${log.deviceId}</td>
|
||||
<td>
|
||||
<c:forEach items="${fns:getDictList('LOG_STREAM_TYPE')}" var="dic">
|
||||
<c:if test="${log.streamDir==dic.itemCode}"><spring:message code="${dic.itemValue }"/></c:if>
|
||||
</c:forEach>
|
||||
</td>
|
||||
<td>${log.capIp}</td>
|
||||
<td>${log.addrList}</td>
|
||||
<td>${log.userRegion}</td>
|
||||
|
||||
<td>${log.attackType}</td>
|
||||
<td>${log.attackStartTime}</td>
|
||||
<td>${log.lastAttackTime}</td>
|
||||
<td>${log.attackMaxPps}</td>
|
||||
<td>${log.attackMaxBps}</td>
|
||||
<td>${log.attackTotalPkt}</td>
|
||||
<td>${log.attackTotalByte}</td>
|
||||
<td>${log.isBlcok}</td>
|
||||
</tr>
|
||||
</c:forEach>
|
||||
</tbody>
|
||||
</table>
|
||||
<div class="page">${page}</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -4,28 +4,37 @@
|
||||
$(function() {
|
||||
});
|
||||
</script>
|
||||
<table id="attrTypeTable"
|
||||
class="table table-striped table-bordered table-condensed text-nowrap">
|
||||
<thead>
|
||||
<tr>
|
||||
<th><spring:message code="attribute" /></th>
|
||||
<th><spring:message code="log_total" /></th>
|
||||
<c:forEach items="${titles}" var="title">
|
||||
<th>${title}</th>
|
||||
</c:forEach>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<c:forEach items="${datas}" var="data">
|
||||
<tr>
|
||||
<td><c:forEach items="${xzs}" var="xz">
|
||||
<c:if test="${xz.serviceDictId==data.key}">${xz.itemValue}</c:if>
|
||||
</c:forEach></td>
|
||||
<c:forEach items="${data.value}" var="cloumn" varStatus="status">
|
||||
<td>${cloumn}</td>
|
||||
</c:forEach>
|
||||
</tr>
|
||||
<table id="attrTypeTable"
|
||||
class="table table-striped table-bordered table-condensed text-nowrap">
|
||||
<thead>
|
||||
<tr>
|
||||
<th><spring:message code="attribute" /></th>
|
||||
<th><spring:message code="log_total" /></th>
|
||||
<c:forEach items="${titles}" var="title">
|
||||
<th>${title}</th>
|
||||
</c:forEach>
|
||||
</tbody>
|
||||
</table>
|
||||
<div class="page">${page}</div>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<script type="text/javascript">
|
||||
var trContent = "";
|
||||
<c:forEach items="${datas}" var="data">
|
||||
trContent += "<tr>";
|
||||
<c:forEach items="${xzs}" var="xz">
|
||||
<c:if test="${xz.serviceDictId==data.key}">
|
||||
trContent += "<td>${xz.itemValue}</td>";
|
||||
</c:if>
|
||||
</c:forEach>
|
||||
<c:forEach items="${data.value}" var="cloumn" varStatus="status">
|
||||
trContent += "<td>${cloumn}</td>";
|
||||
</c:forEach>
|
||||
trContent += "</tr>";
|
||||
</c:forEach>
|
||||
$('tbody').remove();
|
||||
$('#attrTypeTable').append("<tbody></tbody>");
|
||||
$('tbody').html(trContent);
|
||||
pagination();
|
||||
</script>
|
||||
</tbody>
|
||||
</table>
|
||||
<div class="page">${page}</div>
|
||||
@@ -15,16 +15,23 @@ $(function(){
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<script type="text/javascript">
|
||||
var trContent = "";
|
||||
<c:forEach items="${datas}" var="data">
|
||||
<tr>
|
||||
<c:forEach items="${data.key}" var="key" varStatus="status">
|
||||
<td>${key}</td>
|
||||
</c:forEach>
|
||||
<c:forEach items="${data.value}" var="cloumn" varStatus="status">
|
||||
<td>${cloumn}</td>
|
||||
</c:forEach>
|
||||
</tr>
|
||||
trContent += "<tr>";
|
||||
<c:forEach items="${data.key}" var="destCountry" varStatus="status">
|
||||
trContent += "<td>${destCountry}</td>";
|
||||
</c:forEach>
|
||||
<c:forEach items="${data.value}" var="cloumn" varStatus="status">
|
||||
trContent += "<td>${cloumn}</td>";
|
||||
</c:forEach>
|
||||
trContent += "</tr>";
|
||||
</c:forEach>
|
||||
$('tbody').remove();
|
||||
$('#destIpTable').append("<tbody></tbody>");
|
||||
$('tbody').html(trContent);
|
||||
pagination();
|
||||
</script>
|
||||
</tbody>
|
||||
</table>
|
||||
<div class="page">${page}</div>
|
||||
@@ -15,16 +15,23 @@ $(function(){
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<script type="text/javascript">
|
||||
var trContent = "";
|
||||
<c:forEach items="${datas}" var="data">
|
||||
<tr>
|
||||
<c:forEach items="${data.key}" var="key" varStatus="status">
|
||||
<td>${key}</td>
|
||||
</c:forEach>
|
||||
<c:forEach items="${data.value}" var="cloumn" varStatus="status">
|
||||
<td>${cloumn}</td>
|
||||
</c:forEach>
|
||||
</tr>
|
||||
trContent += "<tr>";
|
||||
<c:forEach items="${data.key}" var="entranceId" varStatus="status">
|
||||
trContent += "<td>${entranceId}</td>";
|
||||
</c:forEach>
|
||||
<c:forEach items="${data.value}" var="cloumn" varStatus="status">
|
||||
trContent += "<td>${cloumn}</td>";
|
||||
</c:forEach>
|
||||
trContent += "</tr>";
|
||||
</c:forEach>
|
||||
$('tbody').remove();
|
||||
$('#entranceIdTable').append("<tbody></tbody>");
|
||||
$('tbody').html(trContent);
|
||||
pagination();
|
||||
</script>
|
||||
</tbody>
|
||||
</table>
|
||||
<div class="page">${page}</div>
|
||||
@@ -105,7 +105,7 @@
|
||||
}
|
||||
|
||||
var ajaxReport=function(url,target){
|
||||
//loading('<spring:message code="onloading"/>');
|
||||
loading('<spring:message code="onloading"/>');
|
||||
$.ajax({
|
||||
type:'post',
|
||||
async:false,
|
||||
@@ -119,7 +119,7 @@ var ajaxReport=function(url,target){
|
||||
dataType:"html",
|
||||
success:function(data){
|
||||
$(target).html(data);//#label
|
||||
//closeTip();
|
||||
closeTip();
|
||||
}
|
||||
});
|
||||
};
|
||||
@@ -192,9 +192,9 @@ var ajaxReport=function(url,target){
|
||||
<div id="reportTypeDiv" class="input-group">
|
||||
<div class="input-group-btn">
|
||||
<form:select path="reportType" class="selectpicker select2 input-small" >
|
||||
<form:option value="1"><spring:message code="小时报"/></form:option>
|
||||
<form:option value="2"><spring:message code="日报"/></form:option>
|
||||
<form:option value="3"><spring:message code="月报"/></form:option>
|
||||
<form:option value="1"><spring:message code="hour_of_day_report"/></form:option>
|
||||
<form:option value="2"><spring:message code="day_of_month_report"/></form:option>
|
||||
<form:option value="3"><spring:message code="month_report"/></form:option>
|
||||
</form:select>
|
||||
</div>
|
||||
<input id="intype" name="reportTime" class="form-control input-medium Wdate" type="text" value="${bean.reportTime }" readonly="readonly">
|
||||
|
||||
Reference in New Issue
Block a user