develop

Conflicts:
	src/main/resources/messages/message_en.properties
	src/main/resources/messages/message_ru.properties
	src/main/resources/messages/message_zh_CN.properties
	src/main/resources/nis.properties
This commit is contained in:
duandongmei
2018-10-12 22:33:13 +08:00
24 changed files with 2772 additions and 1899 deletions

View File

@@ -8,11 +8,22 @@ package com.nis.domain.configuration;
* @version V1.0
*/
public class AvContUrlCfg extends BaseStringCfg<AvContUrlCfg> {
private static final String tableName="av_cont_url_cfg";
/**
*
*/
private static final long serialVersionUID = 1249923766365462700L;
@Override
public void initDefaultValue() {
super.initDefaultValue();
this.exprType=0;
this.matchMethod=0;
}
public static String getTablename() {
return tableName;
}
}

View File

@@ -56,6 +56,8 @@ public class CfgIndexInfo extends BaseCfg<CfgIndexInfo> {
private NtcBgpAsCfg ntcBgpAsCfg;
private InterceptPktBin interceptPktBin;
private List<InterceptPktBin> interceptPktBinList;
private AvContUrlCfg avContUrlCfg;
private List<AvContUrlCfg> avContUrlCfgList;
private Long dnsStrategyId;
private String dnsStrategyName;
@@ -66,9 +68,18 @@ public class CfgIndexInfo extends BaseCfg<CfgIndexInfo> {
private List<P2pHashCfg> p2pHashList;
private List<P2pKeywordCfg> p2pKeywordList;
public AvContUrlCfg getAvContUrlCfg() {
return avContUrlCfg;
}
public void setAvContUrlCfg(AvContUrlCfg avContUrlCfg) {
this.avContUrlCfg = avContUrlCfg;
}
public List<AvContUrlCfg> getAvContUrlCfgList() {
return avContUrlCfgList;
}
public void setAvContUrlCfgList(List<AvContUrlCfg> avContUrlCfgList) {
this.avContUrlCfgList = avContUrlCfgList;
}
public Integer getAsnIpGroup() {
return asnIpGroup;
}

View File

@@ -416,6 +416,7 @@ public final class Constants {
public static final String NTC_MMSAMPLE_VOIP_LOG = Configurations.getStringProperty("mmSampleVoipLog", "");
public static final String NTC_MMAVIP_LOG = Configurations.getStringProperty("mmAvIpLog", "");
public static final String NTC_MMFILEDIGEST_LOG = Configurations.getStringProperty("mmFileDigestLog", "");
public static final String NTC_STREAMMEDIA_LOG = Configurations.getStringProperty("ntcStreamMediaLog", "");
public static final String NTC_MMPORNAUDIOSAMPLE_LOG = Configurations.getStringProperty("mmPornAudioLevelLog", "");
public static final String NTC_MMPORNVIDEOSAMPLE_LOG = Configurations.getStringProperty("mmPornVideoLevelLog", "");
public static final String NTC_MMAVURL_LOG = Configurations.getStringProperty("mmAvUrlLog", "");
@@ -670,6 +671,8 @@ public final class Constants {
public static final String TRAFFIC_PORT_ACTIVE=Configurations.getStringProperty("trafficPortActive","trafficPortActive");
public static final String TRAFFIC_TOPIC_AND_DOMAIN_CHART=Configurations.getStringProperty("trafficTopicAndDomainChart","trafficTopicAndDomainChart");
public static final String NTC_TOTAL_REPORT=Configurations.getStringProperty("ntcTotalReport","ntcTotalReport");
public static final String TRAFFIC_IPACTIVE_FIVEMINUTE=Configurations.getStringProperty("trafficIpActiveFiveMinute","trafficIpActiveFiveMinute");
public static final String TRAFFIC_IPACTIVE_ONEHOUR=Configurations.getStringProperty("trafficIpActiveOneHour","trafficIpActiveOneHour");
/**
* httpclient 工具超时时间设置

View File

@@ -9,6 +9,7 @@
package com.nis.util.httpclient;
import java.io.IOException;
import java.net.ConnectException;
import java.net.SocketTimeoutException;
import java.net.URI;
import java.util.ArrayList;
@@ -67,7 +68,7 @@ public class HttpClientUtil {
* @throws IOException
* @throws ClientProtocolException
*/
public static String get(String url) throws ClientProtocolException, IOException{
public static String get(String url) throws Exception{
//实例化httpclient
CloseableHttpClient httpclient = HttpClients.createDefault();
//实例化get方法
@@ -75,19 +76,16 @@ public class HttpClientUtil {
//请求结果
CloseableHttpResponse response = null;
String content ="";
try {
logger.info("流量统计数据请求路径:"+url);
//执行get方法
response = httpclient.execute(httpget);
if(response.getStatusLine().getStatusCode()==HttpStatus.SC_OK){
content = EntityUtils.toString(response.getEntity(),"utf-8");
logger.debug("获取消息成功,相应内容如下: " + content);
}
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
logger.info("dashboard图表数据请求路径:"+url);
logger.info("获取流量统计数据成功,相应内容如下: " + content);
}else {
logger.error("获取消息失败,相应内容如下: " + content);
throw new ConnectException("流量统计服务接口连接错误"+content);
}
return content;
}
@@ -322,13 +320,13 @@ public class HttpClientUtil {
}
public static void main(String[] args) throws ClientProtocolException, IOException {
HttpClientUtil hd = new HttpClientUtil();
hd.get("http://10.0.6.115:9200/_sql?sql=select * from dfipportlog-2016-09-07-15 limit 1 10");
Map<String,String> map = new HashMap();
map.put("id","1");
hd.post("http://localhost:8080/springMVC/menu/getChildren.do",map);
}
// public static void main(String[] args) throws ClientProtocolException, IOException {
// HttpClientUtil hd = new HttpClientUtil();
//// hd.get("http://10.0.6.115:9200/_sql?sql=select * from dfipportlog-2016-09-07-15 limit 1 10");
// Map<String,String> map = new HashMap();
// map.put("id","1");
// hd.post("http://localhost:8080/springMVC/menu/getChildren.do",map);
//
// }
}

View File

@@ -24,6 +24,7 @@ import com.nis.domain.basics.ServiceDictInfo;
import com.nis.domain.basics.SysDictInfo;
import com.nis.domain.configuration.AreaBean;
import com.nis.domain.configuration.AreaIpCfg;
import com.nis.domain.configuration.AvContUrlCfg;
import com.nis.domain.configuration.AvVoipAccountCfg;
import com.nis.domain.configuration.CfgIndexInfo;
import com.nis.domain.configuration.IpPortCfg;
@@ -545,12 +546,18 @@ public class AvContentController extends BaseController {
@RequestMapping(value = {"/contUrlList"})
public String contUrlList(Model model,HttpServletRequest request
,HttpServletResponse response
,@ModelAttribute("cfg")BaseStringCfg entity
,@ModelAttribute("cfg")CfgIndexInfo entity
,RedirectAttributes redirectAttributes){
if(entity.getIpPort()== null){
entity.setIpPort(new IpPortCfg());
}
Page<BaseStringCfg> page = avContentCfgService.findContUrlPage(new Page<BaseStringCfg>(request, response,"r"), entity);
if(entity.getAvContUrlCfgList()== null){
entity.setAvContUrlCfg(new AvContUrlCfg());;
}
if(entity.getNtcSubscribeIdCfg()==null){
entity.setNtcSubscribeIdCfg(new NtcSubscribeIdCfg());
}
Page<CfgIndexInfo> page = avContentCfgService.findPage(new Page<CfgIndexInfo>(request, response,"r"), entity);
model.addAttribute("page", page);
initPageCondition(model,entity);
return "/cfg/av/contUrl/contUrlList";
@@ -558,15 +565,25 @@ public class AvContentController extends BaseController {
//音视频CONTUrl新增界面
@RequestMapping(value = {"/contUrlForm"})
@RequiresPermissions(value={"avContUrl:config"})
public String contUrlForm(Model model,HttpServletRequest request
,HttpServletResponse response,String ids,String compileIds
,@ModelAttribute("cfg")BaseStringCfg cfg
,RedirectAttributes redirectAttributes){
if(!StringUtil.isEmpty(compileIds)){
cfg.setCompileId(Integer.parseInt(compileIds));
cfg = avContentCfgService.getContUrlCfgById(cfg);
public String contUrlForm(Model model,HttpServletRequest request ,HttpServletResponse response
,String compileIds,String ids, CfgIndexInfo cfg ,RedirectAttributes redirectAttributes){
if(!StringUtil.isEmpty(ids)){
cfg.setCfgId(Long.parseLong(ids));
cfg = avContentCfgService.getUrlCfgIndexInfo(cfg);
AvContUrlCfg urlCfg = new AvContUrlCfg();
urlCfg.setCfgType("NTC_STREAMING_MEDIA_URL");
cfg.setAvContUrlCfg(urlCfg);
if(cfg.getAvContUrlCfgList().size()==0){
cfg.getAvContUrlCfgList().add(urlCfg);
}
initUpdateFormCondition(model, cfg);
}else{
AvContUrlCfg urlCfg = new AvContUrlCfg();
urlCfg.setCfgType("NTC_STREAMING_MEDIA_URL");
cfg.setAvContUrlCfg(urlCfg);
List<AvContUrlCfg> urlList=new ArrayList<AvContUrlCfg>();
urlList.add(urlCfg);
cfg.setAvContUrlCfgList(urlList);
initFormCondition(model,cfg);
}
model.addAttribute("_cfg", cfg);
@@ -575,19 +592,22 @@ public class AvContentController extends BaseController {
//保存CONTUrl信息
@RequestMapping(value = {"/saveContUrl"})
public String saveContUrl(Model model,HttpServletRequest request
,HttpServletResponse response,
@ModelAttribute("cfg")BaseStringCfg cfg,
@ModelAttribute("areaCfgIds")String areaCfgIds
,RedirectAttributes redirectAttributes){
public String saveContUrl(Model model,HttpServletRequest request,HttpServletResponse response,String ids,
CfgIndexInfo cfg ,RedirectAttributes redirectAttributes){
try{
avContentCfgService.saveOrUpdateContUrl(cfg,areaCfgIds);
avContentCfgService.saveOrUpdateContUrl(cfg);
addMessage(redirectAttributes,"save_success");
}catch(Exception e){
logger.error("信息保存失败",e);
addMessage(redirectAttributes,"save_failed");
if(e instanceof MaatConvertException) {
e.printStackTrace();
logger.error("Stream Media 信息保存失败",e);
addMessage(redirectAttributes,"request_service_failed");
}else {
e.printStackTrace();
logger.error("Stream Media 信息保存失败",e);
addMessage(redirectAttributes,"save_failed");
}
}
return "redirect:" + adminPath +"/ntc/av/contUrlList?functionId="+cfg.getFunctionId();
}
@@ -606,8 +626,8 @@ public class AvContentController extends BaseController {
public String auditContUrl(Integer isAudit,Integer isValid,String ids
,String compileIds,Integer functionId
, RedirectAttributes redirectAttributes) {
if(!StringUtil.isEmpty(compileIds)){
String[] idArray = compileIds.split(",");
if(!StringUtil.isEmpty(ids)){
String[] idArray = ids.split(",");
Date auditTime=new Date();
for(String id :idArray){
try {
@@ -625,25 +645,44 @@ public class AvContentController extends BaseController {
// 获取域配置信息
@RequestMapping(value = {"ajaxAvContUrlList"})
public String ajaxAvContUrlList(Model model,Long cfgId,Integer index) {
BaseStringCfg baseStrCfg = new BaseStringCfg();
baseStrCfg.setCfgId(cfgId);
BaseStringCfg<NtcSubscribeIdCfg> cfg = avContentCfgService.getContUrlCfgById(baseStrCfg);
CfgIndexInfo cfgIndexInfo = new CfgIndexInfo();
cfgIndexInfo.setCfgId(cfgId);
CfgIndexInfo cfg = avContentCfgService.getUrlCfgIndexInfo(cfgIndexInfo);
List<String[]> tabList = new ArrayList();
if(cfg.getIpPortList()!=null){
String cfgType = null;
for(IpPortCfg ip:cfg.getIpPortList()){
if(!ip.getCfgType().equals(cfgType)){
tabList.add(new String[]{"1",ip.getCfgType()});
cfgType = ip.getCfgType();
}
}
}
if(cfg.getAvContUrlCfgList()!=null){
String cfgType = null;
for(AvContUrlCfg avContUrlCfg:cfg.getAvContUrlCfgList()){
if(!avContUrlCfg.getCfgType().equals(cfgType)){
tabList.add(new String[]{"2",avContUrlCfg.getCfgType()});
cfgType = avContUrlCfg.getCfgType();
}
}
}
tabList.add(new String[]{"2",cfg.getCfgType()});
//查询关键字
if(cfg.getNtcSubscribeIdCfgList()!=null){
String cfgType = null;
for(NtcSubscribeIdCfg subscribeId:cfg.getNtcSubscribeIdCfgList()){
if(!subscribeId.getCfgType().equals(cfgType)){
tabList.add(new String[]{"2",subscribeId.getCfgType()});
cfgType = subscribeId.getCfgType();
for(NtcSubscribeIdCfg ntc:cfg.getNtcSubscribeIdCfgList()){
if(!ntc.getCfgType().equals(cfgType)){
tabList.add(new String[]{"2",ntc.getCfgType()});
cfgType = ntc.getCfgType();
}
}
}
model.addAttribute("_cfg", cfg);
model.addAttribute("index", index);
model.addAttribute("tabList", tabList);
return "/cfg/av/subList";
return "/cfg/av/contUrl/contSubList";
}
/*****************************contUrl业务***************/

View File

@@ -1,9 +1,11 @@
package com.nis.web.controller.dashboard;
import java.lang.reflect.Type;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@@ -14,12 +16,17 @@ import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
import com.google.common.collect.Maps;
import com.beust.jcommander.internal.Maps;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.JsonDeserializationContext;
import com.google.gson.JsonDeserializer;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonParseException;
import com.google.gson.reflect.TypeToken;
import com.nis.domain.Page;
import com.nis.domain.PageLog;
import com.nis.domain.SysDataDictionaryItem;
import com.nis.domain.configuration.WebsiteDomainTopic;
@@ -64,6 +71,7 @@ public class DashboardController extends BaseController{
} catch (Exception e) {
e.printStackTrace();
logger.error("活跃端口数据错误"+e);
list.add(Maps.newHashMap("error","request_service_failed"));
}
return list;
}
@@ -85,9 +93,85 @@ public class DashboardController extends BaseController{
} catch (Exception e) {
e.printStackTrace();
logger.error("活跃IP错误"+e);
list.add(Maps.newHashMap("error","request_service_failed"));
}
return list;
}
/**
* 活跃IP TOP10 一小时 间隔5分钟数据
*/
@RequestMapping(value="ipActiveMinuteList")
@ResponseBody
public List ipActiveMinuteList(){
Map<String, Object> fromJsonList = new HashMap<String, Object>();
List list = new ArrayList();
try {
String string = HttpClientUtil.get(Constants.DASHBOARD_URL+Constants.TRAFFIC_IPACTIVE_FIVEMINUTE);
Gson gson = new GsonBuilder().create();
fromJsonList = gson.fromJson(string, new TypeToken<Map>(){}.getType());
logger.info("活跃IP1小时,间隔5分钟数据"+fromJsonList);
list = (ArrayList) fromJsonList.get("data");
return list;
} catch (Exception e) {
e.printStackTrace();
logger.error("活跃IP数据获取错误"+e);
list.add(Maps.newHashMap("error","request_service_failed"));
}
return list;
}
/**
* 活跃IP详情
* @param request
* @param response
* @param model
* @return
*/
public static Gson getIntGson() {
Gson gson = new GsonBuilder()
.registerTypeAdapter(
new TypeToken<Map<String, Object>>() {
}.getType(),
new JsonDeserializer<Map<String, Object>>() {
@Override
public Map<String, Object> deserialize(
JsonElement json, Type typeOfT,
JsonDeserializationContext context) throws JsonParseException {
Map<String, Object> treeMap = new HashMap<String, Object>();
JsonObject jsonObject = json.getAsJsonObject();
Set<Map.Entry<String, JsonElement>> entrySet = jsonObject.entrySet();
for (Map.Entry<String, JsonElement> entry : entrySet) {
treeMap.put(entry.getKey(), entry.getValue());
}
return treeMap;
}
}).create();
return gson;
}
@RequestMapping(value="ipActiveList")
public String ipActiveList( HttpServletRequest request, HttpServletResponse response, Model model, RedirectAttributes redirectAttributes){
Map<String, Object> fromJsonList = new HashMap<String, Object>();
List<TrafficIpActiveStatistic> ipActiveList = new ArrayList<TrafficIpActiveStatistic>();
try {
String string = HttpClientUtil.get(Constants.DASHBOARD_URL+Constants.TRAFFIC_IPACTIVE_ONEHOUR);
Gson gson = getIntGson();
fromJsonList = gson.fromJson(string, new TypeToken<Map<String, Object>>(){}.getType());
logger.info("活跃IP1小时"+fromJsonList);
ipActiveList = gson.fromJson(fromJsonList.get("data").toString(), new TypeToken<List<TrafficIpActiveStatistic>>() {}.getType()) ;
} catch (Exception e) {
e.printStackTrace();
logger.error("活跃IP统计错误"+e);
addMessage(redirectAttributes,"request_service_failed");
}
model.addAttribute("ipActiveList", ipActiveList);
return "/dashboard/trafficIpActiveList";
}
/**
* 协议统计
*/
@@ -123,6 +207,7 @@ public class DashboardController extends BaseController{
} catch (Exception e) {
e.printStackTrace();
logger.error("协议统计错误"+e);
resultList.add(Maps.newHashMap("error","request_service_failed"));
}
return resultList;
}
@@ -161,6 +246,7 @@ public class DashboardController extends BaseController{
} catch (Exception e) {
e.printStackTrace();
logger.error("app流量分析错误"+e);
resultList.add(Maps.newHashMap("error","request_service_failed"));
}
return resultList;
}
@@ -199,6 +285,7 @@ public class DashboardController extends BaseController{
} catch (Exception e) {
e.printStackTrace();
logger.error("终端用户-获取操作系统列表错误"+e);
resultList.add(Maps.newHashMap("error","request_service_failed"));
}
return resultList;
}
@@ -250,6 +337,7 @@ public class DashboardController extends BaseController{
} catch (Exception e) {
e.printStackTrace();
logger.error("终端用户-获取操作系统下浏览器类型错误"+e);
resultList.add(Maps.newHashMap("error","request_service_failed"));
}
return resultList;
}
@@ -288,6 +376,7 @@ public class DashboardController extends BaseController{
} catch (Exception e) {
e.printStackTrace();
logger.error("终端用户-获取浏览器列表错误"+e);
resultList.add(Maps.newHashMap("error","request_service_failed"));
}
return resultList;
}
@@ -339,6 +428,7 @@ public class DashboardController extends BaseController{
} catch (Exception e) {
e.printStackTrace();
logger.error("终端用户-获取浏览器下操作系统类型错误"+e);
resultList.add(Maps.newHashMap("error","request_service_failed"));
}
return resultList;
}
@@ -383,6 +473,7 @@ public class DashboardController extends BaseController{
} catch (Exception e) {
e.printStackTrace();
logger.error("http网站流量分析数据错误"+e);
resultList.add(Maps.newHashMap("error","request_service_failed"));
}
return resultList;
}
@@ -432,6 +523,7 @@ public class DashboardController extends BaseController{
} catch (Exception e) {
e.printStackTrace();
logger.error("http某个网站子域名流量统计错误"+e);
resultList.add(Maps.newHashMap("error","request_service_failed"));
}
return resultList;
}
@@ -498,13 +590,14 @@ public class DashboardController extends BaseController{
} catch (Exception e) {
e.printStackTrace();
logger.error("http网站主题流量分析数据错误"+e);
resultList.add(Maps.newHashMap("error","request_service_failed"));
}
return resultList;
}
@RequestMapping(value="webTypeList")
public String ipActiveList( HttpServletRequest request, HttpServletResponse response, Model model){
public String webTypeList( HttpServletRequest request, HttpServletResponse response, Model model){
PageLog<TrafficIpActiveStatistic> page = new PageLog<TrafficIpActiveStatistic>(request, response);
List list = new ArrayList();
for (int i = 1; i < 10; i++) {
@@ -516,7 +609,7 @@ public class DashboardController extends BaseController{
list.add(ip);
}
page.setList(list);
model.addAttribute("page", page);
model.addAttribute("page", page);
return "/dashboard/trafficWebTypeList";
}
@RequestMapping(value="bandwidthList")
@@ -637,4 +730,41 @@ public class DashboardController extends BaseController{
}
public static void main(String[] args) {
Map<String, Object> map = new HashMap<String, Object>();
map.put("a", 10);
map.put("b", "10");
map.put("c", 10L);
map.put("d", "fsaf");
//Gson gson = new Gson();
Gson gson = new GsonBuilder()
/* .registerTypeAdapter(
new TypeToken<Map<String, Object>>() {
}.getType(),
new JsonDeserializer<Map<String, Object>>() {
@Override
public Map<String, Object> deserialize(
JsonElement json, Type typeOfT,
JsonDeserializationContext context) throws JsonParseException {
Map<String, Object> treeMap = new HashMap<String, Object>();
JsonObject jsonObject = json.getAsJsonObject();
Set<Map.Entry<String, JsonElement>> entrySet = jsonObject.entrySet();
for (Map.Entry<String, JsonElement> entry : entrySet) {
treeMap.put(entry.getKey(), entry.getValue());
}
return treeMap;
}
})*/.create();
String json = gson.toJson(map);
System.out.println(json);
Map map1 = gson.fromJson(json, Map.class);
Map map2 = gson.fromJson(json, new TypeToken<Map<String, Object>>() {
}.getType());
System.out.println(map2.get("c"));
}
}

View File

@@ -67,6 +67,8 @@ public class TrafficStatisticsInfoController extends BaseController {
Double dropConnNum=0d;
Double monitorNum=0d;
Double loopConnNum=0d;
Double liveConnNum=0d;
Double newUniConnNum=0d;
Double inoctetsNum=0d;
Double outoctetsNum=0d;
Double bandwidth=0d;
@@ -76,6 +78,8 @@ 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");
newUniConnNum = (Double) map.get("newUniConnNum");
inoctetsNum = (Double) map.get("inoctets");
outoctetsNum = (Double) map.get("outoctets");
//单位换算 byte->bit/s
@@ -88,6 +92,8 @@ public class TrafficStatisticsInfoController extends BaseController {
m.put("monitorNum", monitorNum);
m.put("loopConnNum", loopConnNum);
m.put("dropConnNum", dropConnNum);
m.put("liveConnNum", liveConnNum);
m.put("newUniConnNum", newUniConnNum);
m.put("bandwidth", bandwidth);
m.put("inoctetsNum", inoctetsNum);

View File

@@ -57,7 +57,7 @@ public class MmAvUrlLogController extends BaseController{
model.addAttribute("serviceList", serviceList);
String url = "";
url = Constants.LOG_BASE_URL+Constants.NTC_MMAVURL_LOG;
url = Constants.LOG_BASE_URL+Constants.NTC_STREAMMEDIA_LOG;
String jsonString = HttpClientUtil.getMsg(url,params,request);
Gson gson = new GsonBuilder().create();

View File

@@ -3,7 +3,7 @@ package com.nis.web.dao.configuration;
import java.util.List;
import com.nis.domain.configuration.AvContUrlCfg;
import com.nis.domain.configuration.AvVoipAccountCfg;
import com.nis.domain.configuration.AvVoipIpCfg;
import com.nis.domain.configuration.BaseCfg;
@@ -21,11 +21,16 @@ public interface AvContentCfgDao {
public List<AvVoipIpCfg> findVoipIpCfgList(CfgIndexInfo entity);
public List<AvVoipAccountCfg> findVoipAccountCfgList(CfgIndexInfo entity);
public CfgIndexInfo getCfgIndexInfo(CfgIndexInfo entity);
public List<CfgIndexInfo> findStreamList(CfgIndexInfo entity) ;
public List<IpPortCfg> getIpPortList(CfgIndexInfo entity);
public void saveIpPortCfg(IpPortCfg entity);
public void deleteIpCfg(CfgIndexInfo entity);
public List<AvContUrlCfg> getAvContUrlList(CfgIndexInfo entity);
public void saveAvContUrlCfg(CfgIndexInfo entity);
public void deleteAvContUrlCfg(CfgIndexInfo entity);
public void insertCfgIndexInfo(CfgIndexInfo entity);
public void insertAvVoipIp(CfgIndexInfo entity);
public void insertAvVoipAccountCfg(CfgIndexInfo entity);

View File

@@ -155,6 +155,39 @@
<result column="cfg_type" property="cfgType" jdbcType="VARCHAR" />
<result column="do_log" property="doLog" jdbcType="INTEGER" />
</resultMap>
<resultMap id="AvContUrlCfgMap" type="com.nis.domain.configuration.AvContUrlCfg" >
<id column="cfg_id" property="cfgId" jdbcType="BIGINT" />
<result column="cfg_desc" property="cfgDesc" jdbcType="VARCHAR" />
<result column="cfg_keywords" property="cfgKeywords" jdbcType="VARCHAR" />
<result column="cfg_type" property="cfgType" jdbcType="VARCHAR" />
<result column="action" property="action" jdbcType="INTEGER" />
<result column="is_valid" property="isValid" jdbcType="INTEGER" />
<result column="is_audit" property="isAudit" jdbcType="INTEGER" />
<result column="creator_id" property="creatorId" jdbcType="INTEGER" />
<result column="create_time" property="createTime" jdbcType="TIMESTAMP" />
<result column="editor_id" property="editorId" jdbcType="INTEGER" />
<result column="edit_time" property="editTime" jdbcType="TIMESTAMP" />
<result column="auditor_id" property="auditorId" jdbcType="INTEGER" />
<result column="audit_time" property="auditTime" jdbcType="TIMESTAMP" />
<result column="service_id" property="serviceId" jdbcType="INTEGER" />
<result column="request_id" property="requestId" jdbcType="INTEGER" />
<result column="compile_id" property="compileId" jdbcType="INTEGER" />
<result column="is_area_effective" property="isAreaEffective" jdbcType="INTEGER" />
<result column="classify" property="classify" jdbcType="VARCHAR" />
<result column="attribute" property="attribute" jdbcType="VARCHAR" />
<result column="lable" property="lable" jdbcType="VARCHAR" />
<result column="expr_type " property="exprType" jdbcType="INTEGER" />
<result column="match_method" property="matchMethod" jdbcType="INTEGER" />
<result column="is_hexbin" property="isHexbin" jdbcType="INTEGER" />
<result column="area_effective_ids" property="areaEffectiveIds" jdbcType="VARCHAR" />
<result column="function_id" property="functionId" jdbcType="INTEGER" />
<result column="cfg_region_code" property="cfgRegionCode" jdbcType="INTEGER" />
<result column="cfg_type" property="cfgType" jdbcType="VARCHAR" />
<result column="do_log" property="doLog" jdbcType="INTEGER" />
</resultMap>
<resultMap id="ipPortMap" type="com.nis.domain.configuration.IpPortCfg" >
<id column="cfg_id" property="cfgId" jdbcType="BIGINT" />
<result column="cfg_desc" property="cfgDesc" jdbcType="VARCHAR" />
@@ -237,6 +270,12 @@
FROM ip_port_cfg a where compile_id=#{compileId} and function_id=#{functionId}
</select>
<select id="getAvContUrlList" resultMap="AvContUrlCfgMap" parameterType="com.nis.domain.configuration.CfgIndexInfo">
SELECT
<include refid="BaseStringCfg_Column" />
FROM av_cont_url_cfg r where compile_id=#{compileId} and function_id=#{functionId}
</select>
<!-- voip IP条件查询列表信息 -->
<select id="findVoipList" resultMap="CfgIndexInfoMap" parameterType="com.nis.domain.configuration.CfgIndexInfo" >
SELECT
@@ -373,6 +412,20 @@
</where>
)
</if>
<if test="avContUrlCfg!=null">
<if test="(avContUrlCfg.cfgKeywords != null and avContUrlCfg.cfgKeywords != '') ">
AND r.compile_id in (select s.compile_id from av_cont_url_cfg s
<where>
<if test="avContUrlCfg.cfgKeywords != null and avContUrlCfg.cfgKeywords != ''">
and s.cfg_keywords like concat(concat('%',#{avContUrlCfg.cfgKeywords,jdbcType=VARCHAR}),'%')
</if>
<if test="compileId != null">
and s.compile_id =#{compileId,jdbcType=INTEGER}
</if>
</where>
)
</if>
</if>
<!-- 数据范围过滤 -->
${sqlMap.dsf}
@@ -565,18 +618,71 @@
<if test="compileId != null">
and a.compile_Id=#{compileId,jdbcType=INTEGER}
</if>
<choose>
<when test="isValid != null">
and a.is_valid=#{isValid,jdbcType=INTEGER}
</when>
<otherwise>
and a.is_valid != -1
</otherwise>
</choose>
</where>
</select>
<!-- insert av_cont_url_cfg表信息 -->
<insert id="saveAvContUrlCfg" parameterType="com.nis.domain.configuration.AvContUrlCfg" >
<selectKey resultType="java.lang.Long" order="AFTER" keyProperty="cfgId">
SELECT LAST_INSERT_ID()
</selectKey>
insert into av_cont_url_cfg (
CFG_DESC,
ACTION,
IS_VALID,
IS_AUDIT,
CREATOR_ID,
CREATE_TIME,
EDITOR_ID,
EDIT_TIME,
AUDITOR_ID,
AUDIT_TIME,
SERVICE_ID,
REQUEST_ID,
COMPILE_ID,
IS_AREA_EFFECTIVE,
CLASSIFY,
ATTRIBUTE,
LABLE,
AREA_EFFECTIVE_IDS,
function_id,
cfg_keywords,
cfg_type,
cfg_region_code,
expr_type,
match_method,
is_hexbin,
do_log
)values (
#{cfgDesc,jdbcType=VARCHAR},
#{action,jdbcType=INTEGER},
0,
0,
#{creatorId,jdbcType=INTEGER},
#{createTime,jdbcType=TIMESTAMP},
#{editorId,jdbcType=INTEGER},
#{editTime,jdbcType=TIMESTAMP},
#{auditorId,jdbcType=INTEGER},
#{auditTime,jdbcType=TIMESTAMP},
#{serviceId,jdbcType=INTEGER},
#{requestId,jdbcType=INTEGER},
#{compileId,jdbcType=INTEGER},
#{isAreaEffective,jdbcType=INTEGER},
#{classify,jdbcType=VARCHAR},
#{attribute,jdbcType=VARCHAR},
#{lable,jdbcType=VARCHAR},
#{areaEffectiveIds,jdbcType=VARCHAR},
#{functionId,jdbcType=INTEGER},
#{avContUrlCfg.cfgKeywords,jdbcType=VARCHAR},
#{avContUrlCfg.cfgType,jdbcType=VARCHAR},
#{avContUrlCfg.cfgRegionCode,jdbcType=INTEGER},
#{avContUrlCfg.exprType,jdbcType=INTEGER},
#{avContUrlCfg.matchMethod,jdbcType=INTEGER},
#{avContUrlCfg.isHexbin,jdbcType=INTEGER},
#{doLog,jdbcType=INTEGER}
)
</insert>
<!-- insert cfgIndexInfox -->
<insert id="insertCfgIndexInfo" parameterType="com.nis.domain.configuration.CfgIndexInfo" >
insert into cfg_index_info(
@@ -1261,6 +1367,10 @@
</where>
</delete>
<delete id="deleteAvContUrlCfg">
delete from av_cont_url_cfg where compile_id=#{compileId} and function_id=#{functionId}
</delete>
<!-- 删除http子配置 -->
<delete id="deleteIpCfg" >

View File

@@ -15,11 +15,13 @@ import org.springframework.transaction.annotation.Transactional;
import com.nis.domain.Page;
import com.nis.domain.configuration.AreaBean;
import com.nis.domain.configuration.AreaIpCfg;
import com.nis.domain.configuration.AvContUrlCfg;
import com.nis.domain.configuration.AvVoipAccountCfg;
import com.nis.domain.configuration.AvVoipIpCfg;
import com.nis.domain.configuration.BaseIpCfg;
import com.nis.domain.configuration.BaseStringCfg;
import com.nis.domain.configuration.CfgIndexInfo;
import com.nis.domain.configuration.HttpUrlCfg;
import com.nis.domain.configuration.IpPortCfg;
import com.nis.domain.configuration.NtcSubscribeIdCfg;
import com.nis.domain.maat.MaatCfg;
@@ -117,15 +119,26 @@ public class AvContentCfgService extends BaseService{
public CfgIndexInfo getCfgIndexInfo(CfgIndexInfo entity) {
CfgIndexInfo cfg=avContentCfgDao.getCfgIndexInfo(entity);
List<NtcSubscribeIdCfg> ntcSubscribeList=getSubscribeIdCfgList(cfg);
//List<AvVoipIpCfg> voipIps=getVoipIpCfgList(cfg);
List<IpPortCfg> ipPortList = avContentCfgDao.getIpPortList(cfg);
List<AvVoipAccountCfg> voipAccounts=getVoipAccountCfgList(cfg);
cfg.setNtcSubscribeIdCfgList(ntcSubscribeList);
//cfg.setVoipIps(voipIps);
cfg.setVoipAccounts(voipAccounts);
cfg.setIpPortList(ipPortList);
return cfg;
}
public CfgIndexInfo getUrlCfgIndexInfo(CfgIndexInfo entity) {
CfgIndexInfo cfg=avContentCfgDao.getCfgIndexInfo(entity);
List<NtcSubscribeIdCfg> ntcSubscribeList=getSubscribeIdCfgList(cfg);
List<AvContUrlCfg> avContUrlList=avContentCfgDao.getAvContUrlList(cfg);
List<IpPortCfg> ipPortList = avContentCfgDao.getIpPortList(cfg);
cfg.setNtcSubscribeIdCfgList(ntcSubscribeList);
cfg.setIpPortList(ipPortList);
cfg.setAvContUrlCfgList(avContUrlList);
return cfg;
}
/* public CfgIndexInfo getCfgIndexInfo2(CfgIndexInfo entity) {
CfgIndexInfo cfg=avContentCfgDao.getCfgIndexInfo(entity);
List<AvVoipAccountCfg> voipAccounts=new ArrayList<>();
@@ -348,13 +361,15 @@ public class AvContentCfgService extends BaseService{
String[] idArray = compileIds.split(",");
for(String id :idArray){
CfgIndexInfo entity = new CfgIndexInfo();
entity.setCompileId(Integer.parseInt(id));
entity.setCfgId(Long.parseLong(id));
entity.setFunctionId(functionId);
entity.setIsAudit(isAudit);
entity.setIsValid(isValid);
entity.setEditorId(UserUtils.getUser().getId());
entity.setEditTime(new Date());
//avContentCfgDao.updateAvVoipIp(entity);
entity.setTableName(CfgIndexInfo.getTablename());
avContentCfgDao.updateCfgValid(entity);
entity = getCfgIndexInfo(entity);
if(entity.getIpPortList()!=null && entity.getIpPortList().size()>0){
IpPortCfg cfg = new IpPortCfg();
BeanUtils.copyProperties(entity, cfg, new String[]{"cfgId"});
@@ -1344,129 +1359,108 @@ public class AvContentCfgService extends BaseService{
NtcSubscribeIdCfg subscribeIdCfg = new NtcSubscribeIdCfg();
BeanUtils.copyProperties(cfg, subscribeIdCfg, new String[] {"cfgId","isValid"});
List<NtcSubscribeIdCfg> list = stringCfgDao.findSubscribeIdCfgList(subscribeIdCfg);
CfgIndexInfo cfgInfo=new CfgIndexInfo();
cfgInfo.setCompileId(cfg.getCompileId());
List<IpPortCfg> ipPortList=avContentCfgDao.getIpPortList(cfgInfo);
cfg.setNtcSubscribeIdCfgList(list);
return cfg;
}
@Transactional(readOnly=false,rollbackFor=RuntimeException.class)
public void saveOrUpdateContUrl(BaseStringCfg<BaseStringCfg> entity,String areaCfgIds){
Date createTime=new Date();
entity.setTableName("av_cont_url_cfg");
public void saveOrUpdateContUrl(CfgIndexInfo entity){
//设置区域运营商信息
setAreaEffectiveIds(entity);
//新增
entity.setIsValid(0);//无效
entity.setIsAudit(0);//未审核
if(entity.getCfgId()==null){
entity.setCreatorId(UserUtils.getUser().getId());
entity.setCreateTime(createTime);
entity.setIsValid(0);
entity.setIsAudit(0);
//调用服务接口获取compileId
List<Integer> compileIds = new ArrayList<Integer>();
Integer compileId = 0;
try {
compileIds = ConfigServiceUtil.getId(1,1);
List<Integer> idList = ConfigServiceUtil.getId(1, 1);
if(idList!=null && idList.size()>0){
compileId = idList.get(0);
}
entity.setCompileId(compileId);
entity.setCreateTime(new Date());
entity.setCreatorId(entity.getCurrentUser().getId());
avContentCfgDao.insertCfgIndexInfo(entity);
if(entity.getIpPortList()!=null){
for(IpPortCfg cfg:entity.getIpPortList()){
BeanUtils.copyProperties(entity, cfg,new String[]{"cfgRegionCode","cfgType"});
avContentCfgDao.saveIpPortCfg(cfg);
}
}
if(entity.getNtcSubscribeIdCfgList()!=null){
for(NtcSubscribeIdCfg cfg:entity.getNtcSubscribeIdCfgList()){
if(StringUtils.isNotBlank(cfg.getCfgKeywords())){
entity.setNtcSubscribeIdCfg(cfg);
avContentCfgDao.insertAvVoipKeywordCfg(entity);
}
}
}
if(entity.getAvContUrlCfgList()!=null&&entity.getAvContUrlCfgList().size()>0){
for(AvContUrlCfg avContUrlCfg : entity.getAvContUrlCfgList()){
entity.setAvContUrlCfg(avContUrlCfg);
avContentCfgDao.saveAvContUrlCfg(entity);
}
}
//保存区域IP信息
if(entity.getAreaCfg()!=null){
for(AreaIpCfg cfg:entity.getAreaCfg()){
cfg.initDefaultValue();
BeanUtils.copyProperties(entity, cfg,new String[]{"cfgRegionCode","cfgType"});
areaIpCfgDao.saveAreaIpCfg(cfg);
}
}
} catch (Exception e) {
e.printStackTrace();
logger.info("获取编译ID出错");
throw new MaatConvertException("<spring:message code=\"request_service_failed\"/>:"+e.getMessage());
}
// 添加subscribeId
if(entity.getNtcSubscribeIdCfgList()!=null){
for(NtcSubscribeIdCfg cfg:entity.getNtcSubscribeIdCfgList()){
if(StringUtils.isNotBlank(cfg.getCfgKeywords())){
entity.setCompileId(compileIds.get(0));
BeanUtils.copyProperties(entity, cfg,new String[]{"cfgRegionCode","cfgType",
"cfgKeywords","exprType",
"matchMethod","isHexbin"});
stringCfgDao.saveSubscribeIdCfg(cfg);
}
}
}
if(compileIds != null && compileIds.size() >0 && compileIds.get(0) != 0){
entity.setCompileId(compileIds.get(0));
//保存区域IP信息
if(entity.getAreaCfg()!=null&&entity.getAreaCfg().size()>0){
for (AreaIpCfg areaIpCfg : entity.getAreaCfg()) {
BeanUtils.copyProperties(entity, areaIpCfg,new String[]{"cfgRegionCode"
,"cfgType"
});
areaIpCfgDao.saveAreaIpCfg(areaIpCfg);
}
}
//保存cfgIndexInfo
avContentCfgDao.insertString(entity);
}else{
throw new MaatConvertException("<spring:message code=\"request_service_failed\"/>");
}
//修改
}else{
Date editTime=new Date();
entity.setIsValid(0);
entity.setIsAudit(0);
areaCfgIds=!StringUtil.isEmpty(areaCfgIds)? ","+areaCfgIds:"";
if(!StringUtil.isEmpty(entity.getAreaCfg())){
for (AreaIpCfg areaIpCfg : entity.getAreaCfg()) {
if(!StringUtil.isEmpty(areaIpCfg.getCfgId())){
if(areaCfgIds.contains(","+areaIpCfg.getCfgId()+",")){
areaCfgIds=areaCfgIds.replace(areaIpCfg.getCfgId()+",", "");
}
//修改
entity.setEditorId(UserUtils.getUser().getId());
entity.setEditTime(editTime);
BeanUtils.copyProperties(entity, areaIpCfg,new String[]{"cfgRegionCode"
,"cfgType"
,"cfgId"
});
areaIpCfgDao.updateAreaIpCfg(areaIpCfg);
}else{
//新增
entity.setCreatorId(UserUtils.getUser().getId());
entity.setCreateTime(createTime);
BeanUtils.copyProperties(entity, areaIpCfg,new String[]{"cfgRegionCode"
,"cfgType"
});
areaIpCfgDao.saveAreaIpCfg(areaIpCfg);
}
}
}
//delete 真是删除areaIpCfg信息
if(!StringUtil.isEmpty(areaCfgIds.replaceAll(",", ""))){
areaCfgIds=areaCfgIds.substring(1,areaCfgIds.length());
for (String cfgId : areaCfgIds.split(",")) {
AreaIpCfg areaIpCfg=new AreaIpCfg();
areaIpCfg.setCfgId(Long.parseLong(cfgId));
areaIpCfgDao.deleteAreaIpCfgByCfgId(areaIpCfg);
}
}
entity.setEditorId(UserUtils.getUser().getId());
entity.setEditTime(editTime);
entity.setTableName("av_cont_url_cfg");
avContentCfgDao.updateString(entity);
entity.setEditTime(new Date());
entity.setEditorId(entity.getCurrentUser().getId());
avContentCfgDao.updateCfgIndexInfo(entity);
//无效子配置后,再新增子配置
avContentCfgDao.deleteIpCfg(entity);
stringCfgDao.deleteSubscribeIdCfgByCfgIndexInfo(entity);
avContentCfgDao.deleteAvContUrlCfg(entity);
AreaIpCfg area = new AreaIpCfg();
area.setCompileId(entity.getCompileId());
area.setFunctionId(entity.getFunctionId());
areaIpCfgDao.deleteAreaIpCfg(area);
entity.setCreateTime(new Date());
entity.setCreatorId(entity.getCurrentUser().getId());
// 删除SubscribeId配置再进行添加
NtcSubscribeIdCfg subscribeIdCfg = new NtcSubscribeIdCfg();
BeanUtils.copyProperties(entity, subscribeIdCfg,new String[]{"cfgId","cfgType"});
stringCfgDao.deleteSubscribeIdCfg(subscribeIdCfg);
if(entity.getIpPortList()!=null){
for(IpPortCfg cfg:entity.getIpPortList()){
BeanUtils.copyProperties(entity, cfg,new String[]{"cfgRegionCode","cfgType"});
avContentCfgDao.saveIpPortCfg(cfg);
}
}
if(entity.getNtcSubscribeIdCfgList()!=null){
for(NtcSubscribeIdCfg cfg:entity.getNtcSubscribeIdCfgList()){
if(StringUtils.isNotBlank(cfg.getCfgKeywords())){
BeanUtils.copyProperties(entity, cfg,new String[]{"cfgRegionCode","cfgType",
"cfgKeywords","exprType",
"matchMethod","isHexbin"});
stringCfgDao.saveSubscribeIdCfg(cfg);
entity.setNtcSubscribeIdCfg(cfg);
avContentCfgDao.insertAvVoipKeywordCfg(entity);
}
}
}
if(entity.getAvContUrlCfgList()!=null&&entity.getAvContUrlCfgList().size()>0){
for(AvContUrlCfg avContUrlCfg : entity.getAvContUrlCfgList()){
entity.setAvContUrlCfg(avContUrlCfg);
avContentCfgDao.saveAvContUrlCfg(entity);
}
}
//保存区域IP信息
if(entity.getAreaCfg()!=null){
for(AreaIpCfg cfg:entity.getAreaCfg()){
cfg.initDefaultValue();
BeanUtils.copyProperties(entity, cfg,new String[]{"cfgDesc","cfgRegionCode","cfgType"});
areaIpCfgDao.saveAreaIpCfg(cfg);
}
}
}
}
}
/**
*
@@ -1478,24 +1472,30 @@ public class AvContentCfgService extends BaseService{
public void updateContUrlValid(Integer isAudit,Integer isValid,String ids,Integer functionId){
String[] idArray = ids.split(",");
for(String id :idArray){
BaseStringCfg entity = new BaseStringCfg();
CfgIndexInfo entity = new CfgIndexInfo();
entity.setCfgId(Long.parseLong(id));
BaseStringCfg urlCfg = this.getContUrlCfgById(entity);// 获取CompileId
entity.setCompileId(urlCfg.getCompileId());
entity.setTableName("av_cont_url_cfg");
entity.setFunctionId(functionId);
entity.setIsAudit(isAudit);
entity.setIsValid(isValid);
entity.setEditorId(UserUtils.getUser().getId());
entity.setEditTime(new Date());
avContentCfgDao.updateString(entity);
// 查询域配置信息
BaseStringCfg cfg = this.getContUrlCfgById(entity);
if(cfg.getNtcSubscribeIdCfgList() != null && cfg.getNtcSubscribeIdCfgList().size()>0) {
NtcSubscribeIdCfg subscribeIdCfg = new NtcSubscribeIdCfg();
BeanUtils.copyProperties(cfg, subscribeIdCfg, new String[] {"cfgId","cfgType","tableName"});
stringCfgDao.updateSubscribeIdCfg(subscribeIdCfg);
entity.setTableName(CfgIndexInfo.getTablename());
avContentCfgDao.updateCfgValid(entity);
entity = getUrlCfgIndexInfo(entity);
if(entity.getIpPortList()!=null && entity.getIpPortList().size()>0){
IpPortCfg cfg = new IpPortCfg();
BeanUtils.copyProperties(entity, cfg, new String[]{"cfgId"});
cfg.setTableName(IpPortCfg.getTablename());
avContentCfgDao.updateCfgValid(cfg);
}
if(entity.getAvContUrlCfgList()!=null && entity.getAvContUrlCfgList().size()>0){
AvContUrlCfg cfg = new AvContUrlCfg();
BeanUtils.copyProperties(entity, cfg, new String[]{"cfgId"});
cfg.setTableName(AvContUrlCfg.getTablename());
avContentCfgDao.updateCfgValid(cfg);
}
avContentCfgDao.updateAvVoipKeywordCfgt(entity);
avContentCfgDao.updateCfgIndexInfo(entity);
AreaIpCfg areaIpCfg=new AreaIpCfg();
BeanUtils.copyProperties(entity, areaIpCfg);
areaIpCfgDao.updateAreaIpCfgValid(areaIpCfg);
@@ -1510,31 +1510,30 @@ public class AvContentCfgService extends BaseService{
*/
@Transactional(readOnly=false,rollbackFor=RuntimeException.class)
public void auditContUrl(Integer isAudit,Integer isValid,Integer functionId,String id,Date auditTime){
BaseStringCfg entity = new BaseStringCfg();
entity.setTableName("av_cont_url_cfg");
List<BaseStringCfg> list = new ArrayList();
CfgIndexInfo entity = new CfgIndexInfo();
List<CfgIndexInfo> list = new ArrayList();
List<IpPortCfg> ipPortList =new ArrayList();
List <NtcSubscribeIdCfg> ntcList = new ArrayList();
List<AreaIpCfg> areaIpCfgList = new ArrayList();
List<AvContUrlCfg> avContUrlCfgList = new ArrayList();
CfgIndexInfo searchCfg=new CfgIndexInfo();
searchCfg.setCfgId(Long.parseLong(id));
entity.setCompileId(Integer.parseInt(id));
entity = avContentCfgDao.findStringCfgById(entity);
entity.setTableName("av_cont_url_cfg");
entity = avContentCfgDao.getCfgIndexInfo(searchCfg);
entity.setIsAudit(isAudit);
entity.setIsValid(isValid);
entity.setAuditorId(UserUtils.getUser().getId());
entity.setAuditTime(auditTime);
avContentCfgDao.updateString(entity);
avContentCfgDao.updateAvVoipKeywordCfgt(entity);
avContentCfgDao.updateCfgIndexInfo(entity);
AreaIpCfg areaIpCfg=new AreaIpCfg();
BeanUtils.copyProperties(entity, areaIpCfg,new String[]{"cfgRegionCode"
,"cfgType"
,"cfgId"
});
BeanUtils.copyProperties(entity, areaIpCfg,new String[]{"cfgRegionCode","cfgType","cfgId"});
areaIpCfgDao.updateAreaIpCfg(areaIpCfg);
list=avContentCfgDao.getStringList(entity);
ipPortList = avContentCfgDao.getIpPortList(entity);
ntcList=stringCfgDao.findSubscribeIdCfgListByCfgIndexInfo(entity);
areaIpCfgList=areaIpCfgDao.getByCompileId(entity.getCompileId());
avContUrlCfgList=avContentCfgDao.getAvContUrlList(entity);
ToMaatBean maatBean = new ToMaatBean();
MaatCfg maatCfg = new MaatCfg();
List<MaatCfg> configCompileList = new ArrayList();
@@ -1545,13 +1544,36 @@ public class AvContentCfgService extends BaseService{
List<DigestCfg> digestRegionList = new ArrayList();
List<IpCfg> areaIpRegionList = new ArrayList();
if(avContUrlCfgList!=null && avContUrlCfgList.size()>0){
entity.setAvContUrlCfgList(avContUrlCfgList);
AvContUrlCfg cfg = new AvContUrlCfg();
BeanUtils.copyProperties(entity, cfg, new String[]{"cfgId"});
cfg.setTableName(AvContUrlCfg.getTablename());
avContentCfgDao.updateCfgValid(cfg);
}
if(isAudit==1){
if(!StringUtil.isEmpty(list)){
Map<String,List> strMap = cfgConvert(strRegionList,list,2,entity,groupRelationList);
groupRelationList=strMap.get("groupList");
strRegionList=strMap.get("dstList");
if(!StringUtil.isEmpty(ipPortList)){
Map<String,List> ipMap = cfgConvert(ipRegionList,ipPortList,1,entity,groupRelationList);
groupRelationList=ipMap.get("groupList");
ipRegionList=ipMap.get("dstList");
if(ipMap.get("numRegionList")!=null){
numRegionList.addAll(ipMap.get("numRegionList"));
}
}
if(!StringUtil.isEmpty(avContUrlCfgList)){
Map<String,List> urlMap = cfgConvert(strRegionList,avContUrlCfgList,2,entity,groupRelationList);
groupRelationList=urlMap.get("groupList");
strRegionList=urlMap.get("dstList");
}
if(!StringUtil.isEmpty(ntcList)){
Map<String,List> ntcMap = cfgConvert(strRegionList,ntcList,2,entity,groupRelationList);
groupRelationList=ntcMap.get("groupList");
strRegionList=ntcMap.get("dstList");
}
if(!StringUtil.isEmpty(areaIpCfgList)){
Map<String,List> areaMap = cfgConvert(areaIpRegionList,areaIpCfgList,1,entity,groupRelationList);
groupRelationList=areaMap.get("groupList");
@@ -1559,20 +1581,6 @@ public class AvContentCfgService extends BaseService{
}
}
// 修改审核状态
BaseStringCfg baseStrCfg = this.getContUrlCfgById(entity);
if(!StringUtil.isEmpty(baseStrCfg.getNtcSubscribeIdCfgList())) {
NtcSubscribeIdCfg cfg = new NtcSubscribeIdCfg();
BeanUtils.copyProperties(entity, cfg, new String[] {"cfgId","cfgType","cfgKeywords",
"exprType","matchMethod","isHexbin"});
stringCfgDao.updateSubscribeIdCfg(cfg);
if(isAudit==1) {
Map<String,List> map = cfgConvert(strRegionList,baseStrCfg.getNtcSubscribeIdCfgList(),2,entity,groupRelationList);
groupRelationList=map.get("groupList");
strRegionList=map.get("dstList");
}
}
//构造提交综合服务参数格式,一条配置提交一次综合服务
if(isAudit==1){
maatCfg.initDefaultValue();
@@ -1595,11 +1603,11 @@ public class AvContentCfgService extends BaseService{
maatBean.setOpAction(Constants.INSERT_ACTION);
//调用服务接口下发配置数据
String json=gsonToJson(maatBean);
logger.info("contUrl配置下发配置参数"+json);
logger.info("contUrl 配置下发配置参数:"+json);
//调用服务接口下发配置
ToMaatResult result = ConfigServiceUtil.postMaatCfg(json);
logger.info("contUrl配置下发响应信息"+result.getMsg());
logger.info("contUrl 配置下发响应信息:"+result.getMsg());
}else if(isAudit==3){
maatCfg.setCompileId(entity.getCompileId());
maatCfg.setServiceId(entity.getServiceId());
@@ -1612,12 +1620,12 @@ public class AvContentCfgService extends BaseService{
maatBean.setOpAction(Constants.UPDATE_ACTION);
//调用服务接口取消配置
String json=gsonToJson(maatBean);
logger.info("contUrl配置下发配置参数"+json);
logger.info("contUrl 配置下发配置参数:"+json);
//调用服务接口下发配置
ToMaatResult result = ConfigServiceUtil.put(json,1);
logger.info("contUrl配置取消配置响应信息"+result.getMsg());
logger.info("contUrl 配置取消配置响应信息:"+result.getMsg());
}
}
}
/********************************contUrl业务*********************************/

File diff suppressed because it is too large Load Diff

View File

@@ -1,49 +1,49 @@
#\u7BA1\u7406\u57FA\u7840\u8DEF\u5F84, \u9700\u540C\u6B65\u4FEE\u6539\uFF1Aweb.xml
#\u7ba1\u7406\u57fa\u7840\u8def\u5f84, \u9700\u540c\u6b65\u4fee\u6539\uff1aweb.xml
adminPath=/nis
#Restful\u670D\u52A1\u9ED8\u8BA4\u8DEF\u5F84\uFFFD
#Restful\u670d\u52a1\u9ed8\u8ba4\u8def\u5f84\ufffd
servicePath=/service
#\u5206\u9875\u914D\u7F6E
#\u5206\u9875\u914d\u7f6e
page.pageSize=20
#\u5206\u9875\u914D\u7F6E
#\u5206\u9875\u914d\u7f6e
page.count=0
#\u7D22\u5F15\u9875\u8DEF\u5F84
#\u7d22\u5f15\u9875\u8def\u5f84
web.view.index=/nis/index
#\u7F13\u5B58\u8BBE\u7F6E
#\u7f13\u5b58\u8bbe\u7f6e
ehcache.configFile=cache/ehcache-local.xml
#ehcache.configFile=cache/ehcache-rmi.xml
#\u4F1A\u8BDD\u8D85\u65F6\uFF0C \u5355\u4F4D\uFF1A\u6BEB\u79D2\uFF0C 20m=1200000ms, 30m=1800000ms, 60m=3600000ms
#\u4f1a\u8bdd\u8d85\u65f6\uff0c \u5355\u4f4d\uff1a\u6beb\u79d2\uff0c 20m=1200000ms, 30m=1800000ms, 60m=3600000ms
session.sessionTimeout=1800000
#\u4F1A\u8BDD\u6E05\u7406\u95F4\u9694\u65F6\u95F4\uFF0C \u5355\u4F4D\uFF1A\u6BEB\u79D2\uFF0C2m=120000ms\u3002
#\u4f1a\u8bdd\u6e05\u7406\u95f4\u9694\u65f6\u95f4\uff0c \u5355\u4f4d\uff1a\u6beb\u79d2\uff0c2m=120000ms\u3002
session.sessionTimeoutClean=120000
#\u9759\u6001\u6587\u4EF6\u540E\u7F00
#\u9759\u6001\u6587\u4ef6\u540e\u7f00
web.staticFile=.css,.js,.png,.jpg,.gif,.jpeg,.bmp,.ico,.swf,.psd,.htc,.htm,.html,.crx,.xpi,.exe,.ipa,.apk
#\u7F51\u7AD9URL\u540E\u7F00
#\u7f51\u7ad9URL\u540e\u7f00
urlSuffix=.jsp
#\u89C6\u56FE\u6587\u4EF6\u5B58\u653E\u8DEF\u5F84
#\u89c6\u56fe\u6587\u4ef6\u5b58\u653e\u8def\u5f84
web.view.prefix=/WEB-INF/views/
web.view.suffix=.jsp
#\u662F\u5426\u4E0D\u5141\u8BB8\u5237\u65B0\u4E3B\u9875\uFF0C\u4E0D\u5141\u8BB8\u60C5\u51B5\u4E0B\uFF0C\u5237\u65B0\u4E3B\u9875\u4F1A\u5BFC\u81F4\u91CD\u65B0\u767B\u5F55
#\u662f\u5426\u4e0d\u5141\u8bb8\u5237\u65b0\u4e3b\u9875\uff0c\u4e0d\u5141\u8bb8\u60c5\u51b5\u4e0b\uff0c\u5237\u65b0\u4e3b\u9875\u4f1a\u5bfc\u81f4\u91cd\u65b0\u767b\u5f55
notAllowRefreshIndex=false
#\u524D\u7AEF\u57FA\u7840\u8DEF\u5F84
#\u524d\u7aef\u57fa\u7840\u8def\u5f84
frontPath=/f
#\u662F\u5426\u8FD0\u884C\u591A\u8D26\u6237\u540C\u65F6\u767B\u5F55?
#\u662f\u5426\u8fd0\u884c\u591a\u8d26\u6237\u540c\u65f6\u767b\u5f55?
user.multiAccountLogin=true
#\u7855\u6B63\u7EC4\u4EF6\u662F\u5426\u4F7F\u7528\u7F13\u5B58
#\u7855\u6b63\u7ec4\u4ef6\u662f\u5426\u4f7f\u7528\u7f13\u5b58
supcan.useCache=false
#\u901A\u77E5\u95F4\u9694\u65F6\u95F4\u8BBE\u7F6E, \u5355\u4F4D\uFF1A\u6BEB\u79D2, 30s=30000ms, 60s=60000ms
#\u901a\u77e5\u95f4\u9694\u65f6\u95f4\u8bbe\u7f6e, \u5355\u4f4d\uff1a\u6beb\u79d2, 30s=30000ms, 60s=60000ms
work.notify.remind.interval=60000
@@ -51,13 +51,13 @@ work.notify.remind.interval=60000
#===== System settings ======#
#============================#
#\u4EA7\u54C1\u4FE1\u606F\u8BBE\u7F6E
#\u4ea7\u54c1\u4fe1\u606f\u8bbe\u7f6e
productName=National Traffic Control System
copyrightYear=2015
version=V1.0.0
#\u4E0A\u4F20\u6587\u4EF6\u7EDD\u5BF9\u8DEF\u5F84, \u8DEF\u5F84\u4E2D\u4E0D\u5141\u8BB8\u5305\u542B\u201Cuserfiles\u201D
#\u4e0a\u4f20\u6587\u4ef6\u7edd\u5bf9\u8def\u5f84, \u8def\u5f84\u4e2d\u4e0d\u5141\u8bb8\u5305\u542b\u201cuserfiles\u201d
userfiles.basedir=upload
@@ -65,7 +65,7 @@ userfiles.basedir=upload
#===== webservice settings ======#
#============================#
#ESB\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u1E69\uFFFD\uFFFD\u0373\u04BB\uFFFD\uFFFD\u05B7
#ESB\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\u1e69\ufffd\ufffd\u0373\u04bb\ufffd\ufffd\u05b7
webservice.esb.endpoint=http://10.55.0.197:7879/TongServiceProxy_doprocess/services/WebService1/
#webservice RID
webservice.rid=XFBL
@@ -88,47 +88,47 @@ webservice.data.dict.code.sid=s_2042_0660BD17-35E4-4482-AA3A-556F2C024902
#webservice request timeout for seconds
webservice.request.timeout=30
#\uFFFD\uFFFD\uFFFD\uFFFD\uFFFDURL
#\ufffd\ufffd\ufffd\ufffd\ufffdURL
webservice.jg.service.url=http://10.55.0.155:8080/jgService
#\uFFFD\u00FB\uFFFD\uFFFD\uFFFD\uFFFD\uFFFDURL
#\ufffd\u00fb\ufffd\ufffd\ufffd\ufffd\ufffdURL
webservice.yh.service.url=http://10.55.0.155:8080/ryService
#\uFFFD\uFFFD\uFFFD\uFFFD\u05B5\uFFFDURL
#\ufffd\ufffd\ufffd\ufffd\u05b5\ufffdURL
webservice.data.dict.service.url=http://10.55.0.155:8080/sjzdService
#\uFFFD\uFFFD\uFFFD\uFFFD\u05B5\uFFFD\uFFFD\uFFFD\uFFFDURL
#\ufffd\ufffd\ufffd\ufffd\u05b5\ufffd\ufffd\ufffd\ufffdURL
webservice.data.dict.bm.url=http://10.55.0.155:8080/sjzdbmService
#\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFDURL
#\ufffd\ufffd\ufffd\ufffd\ufffd\ufffdURL
webservice.data.code.url=http://10.55.0.155:8080/sjmbService
#webservice\uFFFD\u04FF\uFFFD\uFFFD\uFFFD\uFFFD\u00FF\u04B3\uFFFD\uFFFD\uFFFD\uFFFD
#webservice\ufffd\u04ff\ufffd\ufffd\ufffd\ufffd\u00ff\u04b3\ufffd\ufffd\ufffd\ufffd
webservice.data.pagesize = 2000
#webservice\uFFFD\uFFFD\u01F0\u012C\uFFFD\uFFFD\u04B3
#webservice\ufffd\ufffd\u01f0\u012c\ufffd\ufffd\u04b3
webservice.data.currentpage = 1
#webservice \uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD
#webservice \ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd
webservice.jgmb.name=CK_T_JC_RY
#webservice \uFFFD\u00FB\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD
#webservice \ufffd\u00fb\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd
webservice.yhmb.name=CK_T_YH_RY
#webservice\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD \u022B\uFFFD\uFFFD
#webservice\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd \u022b\ufffd\ufffd
webservice.method.name.ql=getData
# webservice\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD \uFFFD\uFFFD\uFFFD\uFFFD
# webservice\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd \ufffd\ufffd\ufffd\ufffd
webservice.method.name.zl=getDataZL
# redis\u914D\u7F6E\u6587\u4EF6
#redis \u5404\u4E2A\u5206\u7247\u7684 IP\u7AEF\u53E3
# redis\u914d\u7f6e\u6587\u4ef6
#redis \u5404\u4e2a\u5206\u7247\u7684 IP\u7aef\u53e3
redis.cluster.host_port=10.0.6.32:6379,10.0.6.32:6380,10.0.6.32:6381,10.0.6.33:6379,10.0.6.33:6380,10.0.6.33:6381
#\u4E2D\u5FC3\u73B0\u573Aredis\u5730\u5740\u548C\u7AEF\u53E3
#\u4e2d\u5fc3\u73b0\u573aredis\u5730\u5740\u548c\u7aef\u53e3
#redis.cluster.host_port=10.174.196.33:6379,10.174.196.33:6380,10.174.196.33:6381,10.174.196.34:6379,10.174.196.34:6380,10.174.196.34:6381,10.174.196.35:6379,10.174.196.35:6380,10.174.196.35:6381,10.174.196.36:6379,10.174.196.36:6380,10.174.196.36:6381,10.174.196.37:6379,10.174.196.37:6380,10.174.196.37:6381,10.174.196.38:6379,10.174.196.38:6380,10.174.196.38:6381,10.174.196.39:6379,10.174.196.39:6380,10.174.196.39:6381
redis.cluster.connectiontimeout=5000
redis.cluster.sotimeout=5000
redis.cluster.maxattempts=3
#redis\u8FDE\u63A5\u6C60\u76F8\u5173\u914D\u7F6E
#redis\u8fde\u63a5\u6c60\u76f8\u5173\u914d\u7f6e
redis.pool.maxtotal=500
@@ -141,31 +141,31 @@ redis.pool.testonreturn=false
redis.pool.testwhileidle=true
redis.pool.timebetweenevictionrunsmillis=60000
redis.pool.minevictableidletimemillis=60000
#oracle\u6570\u636Eredis\u5B58\u50A8\u65F6\u95F4(\u79D2\u4E3A\u5355\u4F4D \u9ED8\u8BA43\u5206\u949F\u5373180s)
#oracle\u6570\u636eredis\u5b58\u50a8\u65f6\u95f4(\u79d2\u4e3a\u5355\u4f4d \u9ed8\u8ba43\u5206\u949f\u5373180s)
oracleExpire=180
#hive\u6570\u636E\u4E2D\u5FC3\u6570\u636Eredis\u5B58\u50A8\u65F6\u95F4(\u79D2\u4E3A\u5355\u4F4D \u9ED8\u8BA420\u5206\u949F\u53731200s)
#hive\u6570\u636e\u4e2d\u5fc3\u6570\u636eredis\u5b58\u50a8\u65f6\u95f4(\u79d2\u4e3a\u5355\u4f4d \u9ed8\u8ba420\u5206\u949f\u53731200s)
hiveExpire=300
#redis\u5F00\u5173
#redis\u5f00\u5173
isOpenRedis=false
#\u662F\u5426\u5C06\u6570\u636E\u4E2D\u5FC3\u7684\u65E5\u5FD7\u52A0\u5165\u5230redis\u4E2D
#\u662f\u5426\u5c06\u6570\u636e\u4e2d\u5fc3\u7684\u65e5\u5fd7\u52a0\u5165\u5230redis\u4e2d
dataCenterOpenRedis=true
#\u8DE8\u57DF\u95EE\u9898\u5141\u8BB8 \u7684url Access-Control-Allow-Origin *\u5141\u8BB8\u6240\u6709\uFF0C\u8BBE\u7F6E\u6210\u5176\u4ED6url\u53EA\u5141\u8BB8\u8BE5url.\u4E0D\u80FD\u8BBE\u7F6E\u591A\u4E2Aurl
#\u8de8\u57df\u95ee\u9898\u5141\u8bb8 \u7684url Access-Control-Allow-Origin *\u5141\u8bb8\u6240\u6709\uff0c\u8bbe\u7f6e\u6210\u5176\u4ed6url\u53ea\u5141\u8bb8\u8be5url.\u4e0d\u80fd\u8bbe\u7f6e\u591a\u4e2aurl
target_url=*
#\u8DE8\u57DF\u95EE\u9898 3600\uFF1A\u8868\u660E\u57283600\u79D2\u5185\uFF0C\u4E0D\u9700\u8981\u518D\u53D1\u9001\u9884\u8BF7\u6C42\uFF0C\u53EF\u4EE5\u7F13\u5B58\u8BE5\u7ED3\u679C
#\u8de8\u57df\u95ee\u9898 3600\uff1a\u8868\u660e\u57283600\u79d2\u5185\uff0c\u4e0d\u9700\u8981\u518d\u53d1\u9001\u9884\u8bf7\u6c42\uff0c\u53ef\u4ee5\u7f13\u5b58\u8be5\u7ed3\u679c
ACCESS_CONTROL_MAX_AGE=3600
##########HTTPCLIENT POOL START###################
#\u4ECE\u8FDE\u63A5\u6C60\u4E2D\u83B7\u53D6\u5230\u8FDE\u63A5\u7684\u6700\u957F\u65F6\u95F4
#\u4ece\u8fde\u63a5\u6c60\u4e2d\u83b7\u53d6\u5230\u8fde\u63a5\u7684\u6700\u957f\u65f6\u95f4
http.request.connectionRequestTimeout=500
#5000
http.request.connectTimeout=5000
#\u6570\u636E\u4F20\u8F93\u7684\u6700\u957F\u65F6\u95F4
#\u6570\u636e\u4f20\u8f93\u7684\u6700\u957f\u65f6\u95f4
http.request.socketTimeout=30000
#\u63D0\u4EA4\u8BF7\u6C42\u524D\u6D4B\u8BD5\u8FDE\u63A5\u662F\u5426\u53EF\u7528
#\u63d0\u4ea4\u8bf7\u6c42\u524d\u6d4b\u8bd5\u8fde\u63a5\u662f\u5426\u53ef\u7528
http.request.staleConnectionCheckEnabled=true
#\u8BBE\u7F6E\u8FDE\u63A5\u603B\u6570
#\u8bbe\u7f6e\u8fde\u63a5\u603b\u6570
http.pool.maxTotal=200
#\u8BBE\u7F6E\u6BCF\u4E2A\u5730\u5740\u7684\u5E76\u53D1\u6570
#\u8bbe\u7f6e\u6bcf\u4e2a\u5730\u5740\u7684\u5e76\u53d1\u6570
http.pool.defaultMaxPerRoute=100
##########HTTPCLIENT POOL END###################
search.dateformat=yyyy-MM-dd HH:mm:ss
@@ -176,45 +176,45 @@ search.eshostandport_C=10.0.6.115:9200
#search.eshostandport=10.174.196.135:9200
#\u65E5\u5FD7\u662F\u5426\u4ECEhive\u4E2D\u67E5\u8BE2
#\u65e5\u5fd7\u662f\u5426\u4ecehive\u4e2d\u67e5\u8be2
selFromHive=false
#\u662F\u5426\u83B7\u53D6\u6570\u636E\u4E2D\u5FC3\u67E5\u8BE2\u8BB0\u5F55\u7684\u603B\u6761\u6570
#\u662f\u5426\u83b7\u53d6\u6570\u636e\u4e2d\u5fc3\u67e5\u8be2\u8bb0\u5f55\u7684\u603b\u6761\u6570
isGetHiveCount=false
#\u6BCF\u6B21\u83B7\u53D6\u6570\u636E\u4E2D\u5FC3\u591A\u5C11\u6761\u6570\u636E,\u54B1\u4EEC\u5728\u5BF9\u83B7\u53D6\u7684\u6570\u636E\u8FDB\u884C\u5206\u9875\u5904\u7406
#\u6bcf\u6b21\u83b7\u53d6\u6570\u636e\u4e2d\u5fc3\u591a\u5c11\u6761\u6570\u636e,\u54b1\u4eec\u5728\u5bf9\u83b7\u53d6\u7684\u6570\u636e\u8fdb\u884c\u5206\u9875\u5904\u7406
everyGetHiveDataNum=10000
#oracle\u6570\u636E\u5E93\u6709\u95EE\u9898\u4E0D\u4ECEoracle\u67E5\u8BE2\u6570\u636E,\u6240\u6709\u65E5\u5FD7\u6570\u636E\u5747\u4ECE\u6570\u636E\u4E2D\u5FC3\u67E5\u8BE2
#oracle\u6570\u636e\u5e93\u6709\u95ee\u9898\u4e0d\u4eceoracle\u67e5\u8be2\u6570\u636e,\u6240\u6709\u65e5\u5fd7\u6570\u636e\u5747\u4ece\u6570\u636e\u4e2d\u5fc3\u67e5\u8be2
onlySelFromHive=false
#\u662F\u5426\u67E5\u8BE2\u795E\u901A\u6570\u636E\u5E93
#\u662f\u5426\u67e5\u8be2\u795e\u901a\u6570\u636e\u5e93
isSelectCluster=true
#\u7528\u6237\u67E5\u8BE2\u65E5\u5FD7\u8D85\u8FC7\u591A\u5C11\u5C0F\u65F6\u53BB\u6570\u636E\u4E2D\u5FC3\u67E5\u8BE2
#\u7528\u6237\u67e5\u8be2\u65e5\u5fd7\u8d85\u8fc7\u591a\u5c11\u5c0f\u65f6\u53bb\u6570\u636e\u4e2d\u5fc3\u67e5\u8be2
dataCenterTime=48
#\u662F\u5426\u5F00\u542F\u57FA\u7840\u9A8C\u8BC1
#\u662f\u5426\u5f00\u542f\u57fa\u7840\u9a8c\u8bc1
baseValidate=true
#\u662F\u5426\u5F00\u542F\u4E1A\u52A1\u9A8C\u8BC1
#\u662f\u5426\u5f00\u542f\u4e1a\u52a1\u9a8c\u8bc1
serviceValidate=true
#\u65E5\u5FD7\u5B58\u50A8\u672C\u5730\u65F6\u95F4(\u5355\u4F4D\u5C0F\u65F6)
#\u65e5\u5fd7\u5b58\u50a8\u672c\u5730\u65f6\u95f4(\u5355\u4f4d\u5c0f\u65f6)
logLocalTime=48
#\u5B9E\u65F6\u7EDF\u8BA1\u9ED8\u8BA4\u67E5\u8BE2\u672C\u5730\u4E00\u4E2A\u5C0F\u65F6\u7684\u6570\u636E(\u5355\u4F4D\uFF1A\u5C0F\u65F6)
#\u5b9e\u65f6\u7edf\u8ba1\u9ed8\u8ba4\u67e5\u8be2\u672c\u5730\u4e00\u4e2a\u5c0f\u65f6\u7684\u6570\u636e(\u5355\u4f4d\uff1a\u5c0f\u65f6)
reportLocalTime=1
#\u795E\u901A\u6570\u636E\u5E93\u6700\u65E9\u65E5\u5FD7\u65F6\u95F4(A\u7248\u6BEB\u79D2)
#\u795e\u901a\u6570\u636e\u5e93\u6700\u65e9\u65e5\u5fd7\u65f6\u95f4(A\u7248\u6beb\u79d2)
#2017-08-13 10:07:25
clusterAStartTime=1503504000725
#\u795E\u901A\u6570\u636E\u5E93\u6700\u65E9\u7ED3\u675F\u65F6\u95F4(B\u7248\u6BEB\u79D2)
#\u795e\u901a\u6570\u636e\u5e93\u6700\u65e9\u7ed3\u675f\u65f6\u95f4(B\u7248\u6beb\u79d2)
#2017-08-13 10:07:25
clusterBStartTime=1503504000725
############################################################################################################################################
#\u8BBE\u7F6E\u914D\u7F6E\u662F\u5426\u5165\u5E93
#\u8bbe\u7f6e\u914d\u7f6e\u662f\u5426\u5165\u5e93
############################################################################################################################################
isCommit=true
############################################################################################################################################
@@ -269,7 +269,7 @@ mmSpeakerRecognizationLog=mmSpeakerRecognizationLogs
mmLogoDetectionLog=mmLogoDetectionLogs
mmFaceRecognizationLog=mmFaceRecognizationLogs
########################################
#\u5927\u5C4F\u56FE\u8868\u5C55\u793A\u670D\u52A1\u63A5\u53E3
#\u5927\u5c4f\u56fe\u8868\u5c55\u793a\u670d\u52a1\u63a5\u53e3
dashboardUrl=http://192.168.10.204:7777/galaxy-service/service/log/v1/
trafficIpActive=trafficIpActive
trafficProtocol=trafficProtocol
@@ -283,6 +283,8 @@ trafficWebTypeChart=trafficWebTypeChart
trafficPortActive=trafficPortActive
trafficTopicAndDomainChart=trafficTopicAndDomainChart
ntcTotalReport=ntcTotalReport
trafficIpActiveFiveMinute=trafficIpActiveFiveMinute
trafficIpActiveOneHour=trafficIpActiveOneHour
client_connect_timeout=300000
client_read_timeout=300000
@@ -291,28 +293,28 @@ logsearch_menu_id=152
#use elasticsearch or not#
isUseES=false
#httpclient \u5DE5\u5177\u8BBE\u7F6E\u8D85\u65F6\u65F6\u95F4
#httpclient \u5de5\u5177\u8bbe\u7f6e\u8d85\u65f6\u65f6\u95f4
http_socket_timeout=300000
http_connect_timeout=10000
http_connect_request_timeout=50000
http_connect_retry_times=3
#\u6570\u636E\u4E2D\u5FC3A\u7248\u6570\u636E\u5E93\u540D\u79F0,\u7A0B\u5E8F\u4E2D\u6BCF\u6B21\u67E5\u8BE2\u65F6\u4F7F\u7528\u7684\u6570\u636E\u5E93\u540D\u79F0 use dbA
#\u6570\u636e\u4e2d\u5fc3A\u7248\u6570\u636e\u5e93\u540d\u79f0,\u7a0b\u5e8f\u4e2d\u6bcf\u6b21\u67e5\u8be2\u65f6\u4f7f\u7528\u7684\u6570\u636e\u5e93\u540d\u79f0 use dbA
jdbc.hive.AName=xa_dfbhit_hive
#\u6570\u636E\u4E2D\u5FC3B\u7248\u6570\u636E\u5E93\u540D\u79F0
#\u6570\u636e\u4e2d\u5fc3B\u7248\u6570\u636e\u5e93\u540d\u79f0
jdbc.hive.BName=xa_z2_mesalog_hive
maxPageSize=100000
#\u5BFC\u51FA\u6700\u5927\u6761\u6570
#\u5bfc\u51fa\u6700\u5927\u6761\u6570
maxExportSize=100000
#\u5141\u8BB8\u914D\u7F6E\u6700\u5927\u5C42\u7EA7
#\u5141\u8bb8\u914d\u7f6e\u6700\u5927\u5c42\u7ea7
maxLevelNo=4
#\u4E0A\u4E0B\u7EA7\u663E\u793A\u95F4\u9694\u6807\u8BC6\u7B26
#\u4e0a\u4e0b\u7ea7\u663e\u793a\u95f4\u9694\u6807\u8bc6\u7b26
childrenMark=.
#\u4E1A\u52A1\u5B57\u5178\u5728\u8BCD\u5178\u4E2D\u7684\u6807\u8BC6
#\u4e1a\u52a1\u5b57\u5178\u5728\u8bcd\u5178\u4e2d\u7684\u6807\u8bc6
SERVICE_DICT_ITM_TYPE=SERVICE_DICT_ITM_TYPE
#\u7CFB\u7EDF\u5B57\u5178\u5728\u8BCD\u5178\u4E2D\u7684\u6807\u8BC6
#\u7cfb\u7edf\u5b57\u5178\u5728\u8bcd\u5178\u4e2d\u7684\u6807\u8bc6
SYS_DICT_ITM_TYPE=SYS_DICT_ITM_TYPE
area_region=NTC_IP_RANGE
protocol_num_region=NTC_UNIVERSAL_PROTO_TYPE
@@ -340,16 +342,16 @@ ssl_ip_region=ssl_ip
bgp_ip_region=bgp_ip
behav_id_region=BEHAV_ID
rate_limit_region=Droprate
#\u5B58\u5728\u4E0E\u8868\u8FBE\u5F0F\u7684\u5173\u952E\u5B57\u7279\u6B8A\u5206\u9694\u7B26
#\u5b58\u5728\u4e0e\u8868\u8fbe\u5f0f\u7684\u5173\u952e\u5b57\u7279\u6b8a\u5206\u9694\u7b26
keyword_expr=***and***
#\u65F6\u533A
#\u65f6\u533a
time_zone=8
#\u9700\u8981\u7279\u6B8A\u5904\u7406\u7684\u4E1A\u52A1\u7C7B\u578B
#\u9700\u8981\u7279\u6b8a\u5904\u7406\u7684\u4e1a\u52a1\u7c7b\u578b
service_pxy_domain_intercept=513
service_ip_mulitiplex=768
service_ip_ratelimit=1057
service_domain_ratelimit=1058
#\u7528\u6237\u81EA\u5B9A\u4E49\u57DF
#\u7528\u6237\u81ea\u5b9a\u4e49\u57df
userregion_rate_limit=Droprate
userregion_ir_strategy=IR_STRATEGY
userregion_ir_type=IR_TYPE
@@ -359,25 +361,25 @@ userregion_replace_type_key=zone
userregion_replace_req_key_value=http_req_body
userregion_replace_res_key_value=http_res_body
userregion_replace_regex_key=regex
#\u7528\u6237\u81EA\u5B9A\u4E49\u57DF\u5360\u4F4D\u7B26
#\u7528\u6237\u81ea\u5b9a\u4e49\u57df\u5360\u4f4d\u7b26
user_region_placeholder=0
#\u7528\u6237\u81EA\u5B9A\u4E49\u57DF\u5206\u9694\u7B26
#\u7528\u6237\u81ea\u5b9a\u4e49\u57df\u5206\u9694\u7b26
user_region_split=;
#IP\u76F8\u5173\u9A8C\u8BC1\u6B63\u5219
#IP\u76f8\u5173\u9a8c\u8bc1\u6b63\u5219
ipv4_ip_subnet_regexp=^(0|1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|[1-9])\\.(0|1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)\\.(0|1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)\\.(0|1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)/(3[0-2]|1[6-9]|2[0-9])$
ipv6_ip_subnet_regexp=^((::)|(([0-9A-Fa-f]{1,4}:){7}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){1,7}:)|(([0-9A-Fa-f]{1,4}:){6}:[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){5}(:[0-9A-Fa-f]{1,4}){1,2})|(([0-9A-Fa-f]{1,4}:){4}(:[0-9A-Fa-f]{1,4}){1,3})|(([0-9A-Fa-f]{1,4}:){3}(:[0-9A-Fa-f]{1,4}){1,4})|(([0-9A-Fa-f]{1,4}:){2}(:[0-9A-Fa-f]{1,4}){1,5})|([0-9A-Fa-f]{1,4}:(:[0-9A-Fa-f]{1,4}){1,6})|(:(:[0-9A-Fa-f]{1,4}){1,7})|(([0-9A-Fa-f]{1,4}:){6}(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])(\\.(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])){3})|(([0-9A-Fa-f]{1,4}:){5}:(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])(\\.(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])){3})|(([0-9A-Fa-f]{1,4}:){4}(:[0-9A-Fa-f]{1,4}){0,1}:(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])(\\.(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])){3})|(([0-9A-Fa-f]{1,4}:){3}(:[0-9A-Fa-f]{1,4}){0,2}:(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])(\\.(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])){3})|(([0-9A-Fa-f]{1,4}:){2}(:[0-9A-Fa-f]{1,4}){0,3}:(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])(\\.(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])){3})|([0-9A-Fa-f]{1,4}:(:[0-9A-Fa-f]{1,4}){0,4}:(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])(\\.(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])){3})|(:(:[0-9A-Fa-f]{1,4}){0,5}:(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])(\\.(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])){3}))/(128)$
ipv4_ip_range_regexp=^(0|1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|[1-9])\\.(0|1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)\\.(0|1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)\\.(0|1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)-(0|1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|[1-9])\\.(0|1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)\\.(0|1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)\\.(0|1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)$
ipv6_ip_range_regexp=^((::)|(([0-9A-Fa-f]{1,4}:){7}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){1,7}:)|(([0-9A-Fa-f]{1,4}:){6}:[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){5}(:[0-9A-Fa-f]{1,4}){1,2})|(([0-9A-Fa-f]{1,4}:){4}(:[0-9A-Fa-f]{1,4}){1,3})|(([0-9A-Fa-f]{1,4}:){3}(:[0-9A-Fa-f]{1,4}){1,4})|(([0-9A-Fa-f]{1,4}:){2}(:[0-9A-Fa-f]{1,4}){1,5})|([0-9A-Fa-f]{1,4}:(:[0-9A-Fa-f]{1,4}){1,6})|(:(:[0-9A-Fa-f]{1,4}){1,7})|(([0-9A-Fa-f]{1,4}:){6}(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])(\\.(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])){3})|(([0-9A-Fa-f]{1,4}:){5}:(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])(\\.(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])){3})|(([0-9A-Fa-f]{1,4}:){4}(:[0-9A-Fa-f]{1,4}){0,1}:(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])(\\.(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])){3})|(([0-9A-Fa-f]{1,4}:){3}(:[0-9A-Fa-f]{1,4}){0,2}:(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])(\\.(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])){3})|(([0-9A-Fa-f]{1,4}:){2}(:[0-9A-Fa-f]{1,4}){0,3}:(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])(\\.(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])){3})|([0-9A-Fa-f]{1,4}:(:[0-9A-Fa-f]{1,4}){0,4}:(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])(\\.(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])){3})|(:(:[0-9A-Fa-f]{1,4}){0,5}:(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])(\\.(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])){3}))-((::)|(([0-9A-Fa-f]{1,4}:){7}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){1,7}:)|(([0-9A-Fa-f]{1,4}:){6}:[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){5}(:[0-9A-Fa-f]{1,4}){1,2})|(([0-9A-Fa-f]{1,4}:){4}(:[0-9A-Fa-f]{1,4}){1,3})|(([0-9A-Fa-f]{1,4}:){3}(:[0-9A-Fa-f]{1,4}){1,4})|(([0-9A-Fa-f]{1,4}:){2}(:[0-9A-Fa-f]{1,4}){1,5})|([0-9A-Fa-f]{1,4}:(:[0-9A-Fa-f]{1,4}){1,6})|(:(:[0-9A-Fa-f]{1,4}){1,7})|(([0-9A-Fa-f]{1,4}:){6}(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])(\\.(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])){3})|(([0-9A-Fa-f]{1,4}:){5}:(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])(\\.(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])){3})|(([0-9A-Fa-f]{1,4}:){4}(:[0-9A-Fa-f]{1,4}){0,1}:(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])(\\.(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])){3})|(([0-9A-Fa-f]{1,4}:){3}(:[0-9A-Fa-f]{1,4}){0,2}:(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])(\\.(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])){3})|(([0-9A-Fa-f]{1,4}:){2}(:[0-9A-Fa-f]{1,4}){0,3}:(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])(\\.(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])){3})|([0-9A-Fa-f]{1,4}:(:[0-9A-Fa-f]{1,4}){0,4}:(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])(\\.(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])){3})|(:(:[0-9A-Fa-f]{1,4}){0,5}:(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])(\\.(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])){3}))$
ipv4_ip_regexp=^(0|1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|[1-9])\\.(0|1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)\\.(0|1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)\\.(0|1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)$
ipv6_ip_regexp=^((::)|(([0-9A-Fa-f]{1,4}:){7}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){1,7}:)|(([0-9A-Fa-f]{1,4}:){6}:[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){5}(:[0-9A-Fa-f]{1,4}){1,2})|(([0-9A-Fa-f]{1,4}:){4}(:[0-9A-Fa-f]{1,4}){1,3})|(([0-9A-Fa-f]{1,4}:){3}(:[0-9A-Fa-f]{1,4}){1,4})|(([0-9A-Fa-f]{1,4}:){2}(:[0-9A-Fa-f]{1,4}){1,5})|([0-9A-Fa-f]{1,4}:(:[0-9A-Fa-f]{1,4}){1,6})|(:(:[0-9A-Fa-f]{1,4}){1,7})|(([0-9A-Fa-f]{1,4}:){6}(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])(\\.(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])){3})|(([0-9A-Fa-f]{1,4}:){5}:(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])(\\.(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])){3})|(([0-9A-Fa-f]{1,4}:){4}(:[0-9A-Fa-f]{1,4}){0,1}:(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])(\\.(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])){3})|(([0-9A-Fa-f]{1,4}:){3}(:[0-9A-Fa-f]{1,4}){0,2}:(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])(\\.(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])){3})|(([0-9A-Fa-f]{1,4}:){2}(:[0-9A-Fa-f]{1,4}){0,3}:(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])(\\.(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])){3})|([0-9A-Fa-f]{1,4}:(:[0-9A-Fa-f]{1,4}){0,4}:(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])(\\.(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])){3})|(:(:[0-9A-Fa-f]{1,4}){0,5}:(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])(\\.(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])){3}))$
#\u91CD\u5B9A\u5411\u4E1A\u52A1\u81EA\u5B9A\u4E49\u57DF\u76F8\u5173\u53C2\u6570
#\u91cd\u5b9a\u5411\u4e1a\u52a1\u81ea\u5b9a\u4e49\u57df\u76f8\u5173\u53c2\u6570
redirect_response_code_key=code
redirect_url_key=url
redirect_content_key=content
redirect_response_code_startwith=30
replace_zone_key=zone
replace_substitute_key=substitute
#\u6837\u4F8B\u6587\u4EF6\u4E0A\u4F20\u7684uri\u5173\u952E\u8BCD
#\u6837\u4f8b\u6587\u4ef6\u4e0a\u4f20\u7684uri\u5173\u952e\u8bcd
sample_upload_url_keyword=/av
digest_upload_url_keyword=/filetransfer
cert_upload_url_keyword=/intercept/strateagy
@@ -387,53 +389,53 @@ sample_total_file_max_size=12582912
#audio File Types
audio_file_type=,mp4,flv,asf,wmv,avi,mpeg,mov,dat,m4v,m4p,m4b,webm,ogv,wav,mp3,
#audio File Size 10M 10485760\uFF08single\uFF09
#audio File Size 10M 10485760\uff08single\uff09
audio_single_file_max_size=10485760
#speaker File Types \u8BF4\u8BDD\u4EBA\u8BC6\u522B\u6587\u4EF6\u7C7B\u578B
#speaker File Types \u8bf4\u8bdd\u4eba\u8bc6\u522b\u6587\u4ef6\u7c7b\u578b
speaker_file_type=,mp4,flv,asf,wmv,avi,mpeg,mov,dat,m4v,m4p,m4b,webm,ogv,wav,mp3,
#audio File Size 10M 10485760\uFF08single\uFF09
#audio File Size 10M 10485760\uff08single\uff09
speaker_single_file_max_size=10485760
#video File Types
video_file_type=,mp4,flv,asf,wmv,avi,mpeg,mov,dat,m4v,m4p,m4b,webm,ogv,
#video File Size 10M 10485760\uFF08single\uFF09
#video File Size 10M 10485760\uff08single\uff09
video_single_file_max_size=10485760
#face File Types \u4EBA\u8138\u8BC6\u522B
#face File Types \u4eba\u8138\u8bc6\u522b
face_file_type=,mp4,flv,asf,wmv,avi,mpeg,mov,dat,m4v,m4p,m4b,webm,ogv,
#face File Size 10M 10485760\uFF08single\uFF09
#face File Size 10M 10485760\uff08single\uff09
face_single_file_max_size=10485760
#picture File Types
picture_file_type=,bmp,jpg,tiff,raw,gif,
#picture File Size 10M 10485760\uFF08single\uFF09
#picture File Size 10M 10485760\uff08single\uff09
picture_single_file_max_size=10485760
#logo File Types \u53F0\u6807\u8BC6\u522B
#logo File Types \u53f0\u6807\u8bc6\u522b
logo_file_type=,bmp,jpg,tiff,raw,gif,
#logo File Size 10M 10485760\uFF08single\uFF09
#logo File Size 10M 10485760\uff08single\uff09
logo_single_file_max_size=10485760
#voip File Types
voip_file_type=,mp3,mp4,flv,ivf,mp2v,jpg,
#voip File Size 10M 10485760\uFF08single\uFF09
#voip File Size 10M 10485760\uff08single\uff09
voip_single_file_max_size=10485760
#digest File Types
digest_file_type=,txt,doc,img,docx,pptx,xlsx,xls,ppt,
#digest File Size 10M 10485760\uFF08single\uFF09
#digest File Size 10M 10485760\uff08single\uff09
digest_single_file_max_size=10485760
#digest File Size 12M 12582912\uFF08total\uFF09
#digest File Size 12M 12582912\uff08total\uff09
digest_total_file_max_size=12582912
#cert File Size 12M 12582912\uFF08total\uFF09
#cert File Size 12M 12582912\uff08total\uff09
cert_total_file_max_size=12582912
#public File Types
public_file_type=,cer,crt,pem,p12,
#public File Size 10M 10485760\uFF08single\uFF09
#public File Size 10M 10485760\uff08single\uff09
public_single_file_max_size=10485760
#private File Types
private_file_type=,cer,crt,pem,p12,
#private File Size 10M 10485760\uFF08single\uFF09
#private File Size 10M 10485760\uff08single\uff09
private_single_file_max_size=10485760
#YSP\u6587\u4EF6\u4FDD\u5B58\u8DEF\u5F84
#YSP\u6587\u4ef6\u4fdd\u5b58\u8def\u5f84
av_file_path=/home/ysp/
#av_file_path=D\:\\ysp\\
#YSP\u6587\u4EF6\u7279\u5F81\u7C7B\u578B
#YSP\u6587\u4ef6\u7279\u5f81\u7c7b\u578b
av_sample_audio_region=av_sample_audio
av_sample_video_region=av_sample_video
av_sample_picture_region=av_sample_picture
@@ -442,7 +444,7 @@ mm_speaker_recognization_region=MM_SPEAKER_RECOGNIZATION
mm_logo_detection_region=MM_LOGO_DETECTION
mm_face_recognization_region=MM_FACE_RECOGNIZATION
#\u6837\u4F8B\u6587\u4EF6\u751F\u6210\u7A0B\u5E8F
#\u6837\u4f8b\u6587\u4ef6\u751f\u6210\u7a0b\u5e8f
audio_sample_create_proc=java -jar /home/sampleTest.jar
video_sample_create_proc=java -jar /home/sampleTest.jar
picture_sample_create_proc=java -jar /home/sampleTest.jar
@@ -461,7 +463,7 @@ picture_sample_proc_param_is_translation=false
speaker_sample_proc_param_is_translation=false
logo_sample_proc_param_is_translation=false
face_sample_proc_param_is_translation=false
#\u672C\u5730\u6D4B\u8BD5
#\u672c\u5730\u6d4b\u8bd5
#audio_sample_create_proc=java -jar D\:\\sampleTest.jar
#video_sample_create_proc=java -jar D\:\\sampleTest.jar
#picture_sample_create_proc=java -jar D\:\\sampleTest.jar
@@ -480,39 +482,39 @@ face_sample_proc_param_is_translation=false
#speaker_sample_proc_param_is_translation=true
#logo_sample_proc_param_is_translation=true
#face_sample_proc_param_is_translation=true
#http\u81EA\u5B9A\u4E49\u57DF\u76F8\u5173\u53C2\u6570
#http\u81ea\u5b9a\u4e49\u57df\u76f8\u5173\u53c2\u6570
http_header_user_region_key=HTTP_HEADER
http_header_dict_module=HTTP_HEADER_DISTRICT
#dns\u81EA\u5B9A\u4E49\u57DF\u53C2\u6570key
#dns\u81ea\u5b9a\u4e49\u57df\u53c2\u6570key
dns_strategy_user_region_key=DNS_STRATEGY
#p2p\u81EA\u5B9A\u4E49\u57DFkey
#p2p\u81ea\u5b9a\u4e49\u57dfkey
p2p_ip_type_user_region_key=P2P_IP_TYPE
p2p_hash_type_user_region_key=P2P_HASH_TYPE
#\u7279\u5B9A\u670D\u52A1\u7C7B\u522B
#\u7279\u5b9a\u670d\u52a1\u7c7b\u522b
specific_service_cfg_type_app=social_app
specific_service_cfg_type_encrypted_tunnel_behavior=encrypted_tunnel_behavior
specific_service_cfg_type_basic_protocol=basic_protocol
#\u57FA\u7840\u534F\u8BAE\u81EA\u5B9A\u4E49\u57DF
#\u57fa\u7840\u534f\u8bae\u81ea\u5b9a\u4e49\u57df
proto_id_region=PROTO_ID
#\u62E6\u622AIP\u81EA\u5B9A\u4E49\u57DFkey
#\u62e6\u622aIP\u81ea\u5b9a\u4e49\u57dfkey
keyring_id=keyring_id
droprate=Droprate
bandwidth=Bandwidth
#IP\u9ED8\u8BA4\u503C
#IP\u9ed8\u8ba4\u503c
ipv4_default_ip_value=\:\:
ipv4_default_ip_subnet_value=0.0.0.0/32
ipv6_default_ip_subnet_value=::/128
ipv4_default_ip_range_value=0.0.0.0-0.0.0.0
ipv6_default_ip_range_value=::-::
#\u7AEF\u53E3\u9ED8\u8BA4\u503C
#\u7aef\u53e3\u9ed8\u8ba4\u503c
port_default=0
port_mask_default=0/65535
#MAAT CFG \u4E00\u4E9B\u9ED8\u8BA4\u503C
#MAAT CFG \u4e00\u4e9b\u9ed8\u8ba4\u503c
maat_cfg_dolog_default=1
maat_cfg_dolog_doblacklist_default=1
maat_cfg_dolog_configpercent_default=100
maat_cfg_dolog_configoption_default=1
#app\uFF0C\u57FA\u7840\u534F\u8BAE\uFF0C\u7279\u5B9A\u670D\u52A1\u7684userregion\u5206\u9694\u7B26
#app\uff0c\u57fa\u7840\u534f\u8bae\uff0c\u7279\u5b9a\u670d\u52a1\u7684userregion\u5206\u9694\u7b26
app_cfg_userregion_splitor=&
app_id_region=APP_ID
#application spec service code scope

View File

@@ -0,0 +1 @@
update function_region_dict set config_region_value ='NTC_SUBSCRIBE_ID' where dict_id='201';

View File

@@ -0,0 +1,328 @@
<%@ page contentType="text/html;charset=UTF-8"%>
<%@ include file="/WEB-INF/include/taglib.jsp"%>
<html>
<head>
<script>
$(document).ready(function() {
//$("div[name='tabTitle"+index+"']").get(0).click();
})
</script>
<style type="text/css">
</style>
</head>
<c:forEach items="${tabList}" var="region" varStatus="regionStatus">
<div id="${region[1]}Title${index}" onclick="switchSubCfgTabInfo('${region[1]}',${index})"
class="col-md-1 tabInfo" name="tabTitle${index }">
<spring:message code='${region[1]}' />
<i id="${region[1]}${index}" class="fa" name="tabFlag${index}"></i>
</div>
</c:forEach>
</div>
<c:forEach items="${tabList}" var="region">
<c:if test="${region[0] eq 1 }">
<c:forEach items="${_cfg.ipPortList}" var="cfg">
<c:if test="${region[1] eq cfg.cfgType }">
<div id="${region[1]}Info${index}" class="content" name="subCfg${index}">
<div class="row">
<div class="col-md-4">
<div class="form-group">
<label><spring:message code='ip_type'/>:</label>
<label>
<c:forEach items="${fns:getDictList('IP_TYPE')}" var="ipTypeC">
<c:if test="${cfg.ipType==ipTypeC.itemCode}"><spring:message code="${ipTypeC.itemValue }"/></c:if>
</c:forEach>
</label>
</div>
</div>
</div>
<div class="row">
<div class="col-md-4">
<div class="form-group">
<label><spring:message code='ip_pattern'/>:</label>
<label>
<c:forEach items="${fns:getDictList('IP_PATTERN')}" var="ipPatternC">
<c:if test="${cfg.ipPattern==ipPatternC.itemCode}"><spring:message code="${ipPatternC.itemValue }"/></c:if>
</c:forEach>
</label>
</div>
</div>
<div class="col-md-4">
<div class="form-group">
<label><spring:message code='client_ip'/>:</label>
<label>
${cfg.srcIpAddress}
</label>
</div>
</div>
</div>
<div class="row">
<div class="col-md-4">
<div class="form-group">
<label><spring:message code='port_pattern'/>:</label>
<label>
<c:forEach items="${fns:getDictList('PORT_PATTERN')}" var="portPatternC">
<c:if test="${cfg.portPattern eq portPatternC.itemCode}"><spring:message code="${portPatternC.itemValue }"/></c:if>
</c:forEach>
</label>
</div>
</div>
<div class="col-md-4">
<div class="form-group">
<label><spring:message code='client_port'/>:</label><label>${cfg.srcPort }</label>
</div>
</div>
</div>
<div class="row">
<div class="col-md-4">
<div class="form-group">
<label><spring:message code='server_ip'/>:</label><label>${cfg.destIpAddress }</label>
</div>
</div>
<div class="col-md-4">
<div class="form-group">
<label><spring:message code='server_port'/>:</label><label>${cfg.destPort }</label>
</div>
</div>
</div>
<div class="row">
<div class="col-md-4">
<div class="form-group">
<label><spring:message code='direction'/>:</label>
<label>
<c:forEach items="${fns:getDictList('DIRECTION')}" var="directionC">
<c:if test="${cfg.direction eq directionC.itemCode}"><spring:message code="${directionC.itemValue }"/></c:if>
</c:forEach>
</label>
</div>
</div>
<div class="col-md-4">
<div class="form-group">
<label><spring:message code='protocol'/>:</label>
<label>
<c:forEach items="${fns:getDictList('PROTOCOL')}" var="protocolC">
<c:if test="${cfg.protocol eq protocolC.itemCode}"><spring:message code="${protocolC.itemValue }"/></c:if>
</c:forEach>
</label>
</div>
</div>
</div>
</div>
</c:if>
</c:forEach>
</c:if>
<c:if test="${(region[0] eq 2) && (fn:length(_cfg.avContUrlCfgList) >0)}">
<c:forEach items="${_cfg.avContUrlCfgList}" var="cfg">
<c:if test="${region[1] eq cfg.cfgType }">
<div id="${region[1]}Info${index}" class="content content${region[0]}" name="subCfg${index}">
<div class="row">
<div class="col-md-8">
<div class="form-group">
<label><spring:message code='URL' />: ${fn:replace(cfg.cfgKeywords, "***and***", " ")}</label>
</div>
</div>
</div>
<div class="row">
<div class="col-md-4">
<div class="form-group">
<label><spring:message code='expression_type' />:</label>
<label>
<c:choose>
<c:when test="${cfg.exprType eq 1}"><spring:message code='and_expression'/></c:when>
<c:when test="${cfg.exprType eq 0}"><spring:message code='null_expression'/></c:when>
</c:choose>
</label>
</div>
</div>
</div>
<div class="row">
<div class="col-md-4">
<div class="form-group">
<label><spring:message code='match_method' />:</label>
<label>
<c:forEach items="${fns:getDictList('MATCH_METHOD')}" var="matchMethodC">
<c:if test="${cfg.matchMethod==matchMethodC.itemCode }"><spring:message code="${matchMethodC.itemValue}"/></c:if>
</c:forEach>
</label>
</div>
</div>
</div>
<c:if test="${cfg.isHexbin==0 }">
<div class="row">
<div class="col-md-4">
<div class="form-group">
<label><spring:message code="is_hex"/>:</label>
<label>
<spring:message code="not_hex"/>
</label>
</div>
</div>
</div>
<div class="row">
<div class="col-md-4">
<div class="form-group">
<label><spring:message code="is_case_insenstive"/>:</label>
<label>
<spring:message code="case_insenstive"/>
</label>
</div>
</div>
</div>
</c:if>
<c:if test="${cfg.isHexbin==1 }">
<div class="row">
<div class="col-md-4">
<div class="form-group">
<label><spring:message code="is_hex"/>:</label>
<label>
<spring:message code="hex"/>
</label>
</div>
</div>
</div>
<div class="row">
<div class="col-md-4">
<div class="form-group">
<label><spring:message code="is_case_insenstive"/>:</label>
<label>
<spring:message code="case_insenstive"/>
</label>
</div>
</div>
</div>
</c:if>
<c:if test="${cfg.isHexbin==2 }">
<div class="row">
<div class="col-md-4">
<div class="form-group">
<label><spring:message code="is_hex"/>:</label>
<label>
<spring:message code="not_hex"/>
</label>
</div>
</div>
</div>
<div class="row">
<div class="col-md-4">
<div class="form-group">
<label><spring:message code="is_case_insenstive"/>:</label>
<label>
<spring:message code="case_senstive"/>
</label>
</div>
</div>
</div>
</c:if>
</div>
</c:if>
</c:forEach>
</c:if>
<c:if test="${(region[0] eq 2) && (fn:length(_cfg.ntcSubscribeIdCfgList) >0)}">
<c:forEach items="${_cfg.ntcSubscribeIdCfgList}" var="cfg">
<c:if test="${region[1] eq cfg.cfgType }">
<div id="${region[1]}Info${index}" class="content content${region[0]}" name="subCfg${index}">
<div class="row">
<div class="col-md-10">
<div class="form-group">
<label><spring:message code='keywords' />: ${fn:replace(cfg.cfgKeywords, "***and***", " ")}</label>
</div>
</div>
</div>
<div class="row">
<div class="col-md-4">
<div class="form-group">
<label><spring:message code='expression_type' />:</label>
<label>
<c:choose>
<c:when test="${cfg.exprType eq 1}"><spring:message code='and_expression'/></c:when>
<c:when test="${cfg.exprType eq 0}"><spring:message code='null_expression'/></c:when>
</c:choose>
</label>
</div>
</div>
</div>
<div class="row">
<div class="col-md-4">
<div class="form-group">
<label><spring:message code='match_method' />:</label>
<label>
<c:forEach items="${fns:getDictList('MATCH_METHOD')}" var="matchMethodC">
<c:if test="${cfg.matchMethod==matchMethodC.itemCode }"><spring:message code="${matchMethodC.itemValue}"/></c:if>
</c:forEach>
</label>
</div>
</div>
</div>
<c:if test="${cfg.isHexbin==0 }">
<div class="row">
<div class="col-md-4">
<div class="form-group">
<label><spring:message code="is_hex"/>:</label>
<label>
<spring:message code="not_hex"/>
</label>
</div>
</div>
</div>
<div class="row">
<div class="col-md-4">
<div class="form-group">
<label><spring:message code="is_case_insenstive"/>:</label>
<label>
<spring:message code="case_insenstive"/>
</label>
</div>
</div>
</div>
</c:if>
<c:if test="${cfg.isHexbin==1 }">
<div class="row">
<div class="col-md-4">
<div class="form-group">
<label><spring:message code="is_hex"/>:</label>
<label>
<spring:message code="hex"/>
</label>
</div>
</div>
</div>
<div class="row">
<div class="col-md-4">
<div class="form-group">
<label><spring:message code="is_case_insenstive"/>:</label>
<label>
<spring:message code="case_insenstive"/>
</label>
</div>
</div>
</div>
</c:if>
<c:if test="${cfg.isHexbin==2 }">
<div class="row">
<div class="col-md-4">
<div class="form-group">
<label><spring:message code="is_hex"/>:</label>
<label>
<spring:message code="not_hex"/>
</label>
</div>
</div>
</div>
<div class="row">
<div class="col-md-4">
<div class="form-group">
<label><spring:message code="is_case_insenstive"/>:</label>
<label>
<spring:message code="case_senstive"/>
</label>
</div>
</div>
</div>
</c:if>
</div>
</c:if>
</c:forEach>
</c:if>
</c:forEach>
</html>

View File

@@ -3,216 +3,310 @@
<html>
<head>
<title><spring:message code="${cfgName}"></spring:message></title>
<style type="text/css">
.boxSolid {
border: 1px solid #eeeeee
}
</style>
<script type="text/javascript">
$(function(){
$("input[name='cfgKeywords']").addClass("url");
$(".action").on("change", function() {
$("#serviceId").val($(this).attr("serviceId"));
var action=$("input[name='action']:checked").val();
switchAction(action);
});
$("#serviceId").val($(".action:checked").attr("serviceId"));
$("#cfgFrom").validate({
errorPlacement: function(error,element){
if($(element).parents().hasClass("tagsinput")){
$(element).parents(".col-md-6").next("div").append(error);
}else{
$(element).parents(".form-group").find("div[for='"+element.attr("name")+"']").append(error);
}
},
submitHandler: function(form){
var flag = true;
$("input[name$='cfgKeywords']").each(function(){
if($(this).val()==''){
$(this).parents(".form-group").find(
"div[for='"
+ $(this).attr("name")
+ "']").html("<label id=\"cfgKeywordsError\" class=\"error\">"+$("#keywordError").text()+"</label>");
flag = false;
}/* else if(!(/^(https?|s?ftp):\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i.test($(this).val()))){
$(this).parents(".form-group").find(
"div[for='"
+ $(this).attr("name")
+ "']").html("<label id=\"cfgKeywordsError\" class=\"error\">"+$("#urlError").text()+"</label>");
flag = false;
return;
} */
})
$("select[name$='isHexbin']").each(function(){
var isHexbin=$(this).val();
if(isHexbin == 1){ //十六进制
var keywords=$("input[name$='"+$(this).attr("name").replace("isHexbin","cfgKeywords")+"']").val();
keywords=keywords.replace("***and***","")
if(!(/^([0-9|a-f|A-F]*)$/.test(keywords))){
$(this).parents(".form-body").find(
"div[for='"
+ $(this).attr("name").replace("isHexbin","cfgKeywords")
+ "']").html("<label id=\"cfgKeywordsError\" class=\"error\">"+$.validator.messages.hexCheck+"</label>");
flag = false;
}
}
});
if(flag){
//将disable属性的元素删除
$(".disabled").each(function(){
$(this).remove();
});
$("input[name$='exprType']").attr("disabled",false);
loading('onloading...');
form.submit();
}else{
return;
}
},
errorContainer: "#messageBox",
errorPlacement : function(error, element) {
$(element).parents(".form-group").find(
"div[for='" + element.attr("name") + "']")
.append(error);
},
});
});
//业务窗口打开
var addContent = function(obj, contentClassName) {
var showDiv = $(obj).parent().parent().next();
$(showDiv).removeClass("hidden").removeClass("disabled");
$(obj).addClass("hidden");
}
$(document)
.ready(
function() {
$(".glyphicon-plus").first().click();
/* $("#cancel").on("click", function() {
window.history.back();
});*/
$(".action").on("change", function() {
$("#serviceId").val($(this).attr("serviceId"));
$("#protocolId").val($(this).attr("protocolId"));
var action=$("input[name='action']:checked").val();
switchAction(action);
});
$("#serviceId").val($(".action:checked").attr("serviceId"));
$("#protocolId").val($(".action:checked").attr("protocolId"));
$("#cfgFrom").validate(
{ errorPlacement : function(error, element) {
if($(element).parents().hasClass("tagsinput")){
$(element).parents(".col-md-6").next("div").append(error);
}else{
$(element).parents(".form-group").find(
"div[for='"
+ element.attr("name")
+ "']").append(error);
}
},
submitHandler : function(form) {
var flag = true;
//存在隐藏的subscribeId不算进域配置
if($(".boxSolid[class~='subscribeId']").length>0){
if($(".boxSolid.hidden[class~='subscribeId']").is(":hidden")){
if(($(".boxSolid").length) == ($(".boxSolid.hidden").length)){
top.$.jBox.tip("<spring:message code='one_more'/>", "<spring:message code='info'/>");
return;
}
}
if(!$(".boxSolid.hidden[class~='subscribeId']").is(":hidden")){
if(($(".boxSolid").length) == ($(".boxSolid.hidden").length) + 1){
top.$.jBox.tip("<spring:message code='one_more'/>", "<spring:message code='info'/>");
return;
}
}
//代表所有业务都隐藏了,提示必须增加一种业务数据
}else{
if(($(".boxSolid").length) == ($(".boxSolid.hidden").length)){
top.$.jBox.tip("<spring:message code='one_more'/>", "<spring:message code='info'/>");
return;
}
}
//代表所有区域都隐藏了,提示必须增加个区域信息
if($("input[name='isAreaEffective']:checked").val()==1 && $(".container-fluid:visible").size()==0){
if($("#areaIsp").hasClass("hidden")) $("#areaIp").find(".glyphicon-plus").click();
if($("#areaIp").hasClass("hidden")) $("#areaIsp").find(".glyphicon-plus").click();
top.$.jBox.tip("<spring:message code='one_more_area'/>", "<spring:message code='info'/>");
return;
}
$(".boxSolid:visible").find("input[name$='cfgKeywords']").each(function(){
if($(this).val()==''){
$(this).parents(".form-group").find(
"div[for='"
+ $(this).attr("name")
+ "']").html("<label id=\"cfgKeywordsError\" class=\"error\">"+$("#keywordError").text()+"</label>");
flag = false;
}
})
//keywords非空校验完成校验二进制字符串
$(".boxSolid:visible").find("select[name$='isHexbin']").each(function(){
var isHexbin=$(this).val();
if(isHexbin == 1){ //十六进制
var keywords=$("input[name$='"+$(this).attr("name").replace("isHexbin","cfgKeywords")+"']").val();
keywords=keywords.replace("***and***","")
if(keywords != ''){
if(!(/^([0-9|a-f|A-F]*)$/.test(keywords))){
$(this).parents(".boxSolid").find(
"div[for='"
+ $(this).attr("name").replace("isHexbin","cfgKeywords")
+ "']").html("<label id=\"cfgKeywordsError\" class=\"error\">"+$.validator.messages.hexCheck+"</label>");
flag = false;
}
}
}
});
var flag1=validateInvisibleCharTag();
if(flag){
flag=flag1;
}
if(flag){
//将disable属性的元素删除
$(".disabled").each(function(){
$(this).remove();
});
$("input[name$='exprType']").attr("disabled",false);
loading('onloading...');
form.submit();
}else{
return;
}
},
errorContainer : "#messageBox",
});
//业务内容增加
/* $("span[title='add']").on("click", function() {
$(".ipPort0").removeClass("hidden");
}); */
//业务窗口关闭
var delContent = function(contentClassName, addBtnClassName) {
$("." + contentClassName).addClass("hidden").addClass("disabled");
$("." + addBtnClassName).removeClass("hidden");
}
});
//业务窗口打开
var addContent = function(obj, contentClassName) {
var showDiv = $(obj).parent().parent().next();
$(showDiv).removeClass("hidden").removeClass(
"disabled");
/* $("."+contentClassName+"0").find("input,select").each(function(){
$(this).removeAttr("disabled");
}); */
$(obj).addClass("hidden");
}
//业务窗口关闭
var delContent = function(contentClassName, addBtnClassName) {
$("." + contentClassName).addClass("hidden").addClass("disabled");
/* $("."+contentClassName).find("input,select").each(function(){
$(this).attr("disabled","true");
}); */
$("." + addBtnClassName).removeClass("hidden");
}
</script>
</head>
<body>
<span id="keywordError" style="display:none"><spring:message code="required"></spring:message></span>
<span id="keywordError" style="display:none"><spring:message code="required"></spring:message></span>
<span id="tagsinputTip" style="display:none"><spring:message code="multiple_keywords_tip"></spring:message></span>
<div class="page-content">
<h3 class="page-title">
<spring:message code="${_cfg.menuNameCode }"></spring:message>
</h3>
<span style="color: red;font-size: 14px;letter-spacing: 0px;"> <spring:message code="av_content_url_note"></spring:message></span>
<div class="row">
<div class="col-md-12">
<div class="portlet box blue">
<div class="portlet-title">
<div class="caption">
<i class="fa fa-gift"></i>
<c:if test="${empty _cfg.cfgId}"><spring:message code="add"></spring:message></c:if>
<c:if test="${not empty _cfg.cfgId}"><spring:message code="edit"></spring:message></c:if>
<div class="page-content">
<h3 class="page-title">
<spring:message code="${_cfg.menuNameCode }"></spring:message>
</h3>
<span style="color: red;font-size: 14px;letter-spacing: 0px;"> <spring:message code="protocol_note"></spring:message></span>
<div class="row">
<div class="col-md-12">
<div class="portlet box blue">
<div class="portlet-title">
<div class="caption">
<i class="fa fa-gift"></i>
<c:if test="${empty _cfg.cfgId}">
<spring:message code="add"></spring:message>
</c:if>
<c:if test="${not empty _cfg.cfgId}">
<spring:message code="edit"></spring:message>
</c:if>
</div>
</div>
</div>
<div class="portlet-body form">
<!-- BEGIN FORM-->
<form id="cfgFrom" action="${ctx}/ntc/av/saveContUrl" method="post" class="form-horizontal">
<input type="hidden" name="cfgId" value="${_cfg.cfgId}">
<input type="hidden" name="compileId" value="${_cfg.compileId}">
<input type="hidden" name="functionId" value="${_cfg.functionId}">
<input type="hidden" id="serviceId" name="serviceId" value="${_cfg.serviceId}">
<div class="form-body">
<!-- desc and action -->
<div class="row">
<div class="col-md-6">
<div class="form-group">
<label class="control-label col-md-3"><spring:message code="config_describe"/></label>
<div class="col-md-6">
<input class="form-control" type="text" name="cfgDesc" value="${_cfg.cfgDesc}">
</div>
</div>
</div>
<div class="col-md-6">
<div class="form-group">
<label class="control-label col-md-3"><spring:message code="action"/></label>
<div class="col-md-6">
<c:forEach items="${serviceList}" var="service"
varStatus="satus">
<label class="radio-inline"> <c:if
test="${_cfg.functionId eq service.functionId}">
<input type="radio" name="action"
serviceId="${service.serviceId }"
protocolId="${service.protocolId }"
value="${service.action }" class="required action"
<c:if test="${_cfg.action==service.action || (_cfg.action==null && satus.index==0)}">checked</c:if>>
<c:forEach items="${fns:getDictList('SERVICE_ACTION') }" var="dict">
<c:if test="${dict.itemCode eq service.action }">
<spring:message code="${dict.itemValue }"/>
</c:if>
</c:forEach>
</c:if>
</label>
</c:forEach>
</div>
<div for="action"></div>
</div>
</div>
</div>
<div class="row doLog">
<div class="portlet-body form">
<!-- BEGIN FORM-->
<form id="cfgFrom" action="${ctx}/ntc/av/saveContUrl"
method="post" class="form-horizontal">
<input type="hidden" name="cfgId" value="${_cfg.cfgId}">
<input type="hidden" name="compileId" value="${_cfg.compileId}">
<input type="hidden" name="functionId" value="${_cfg.functionId}">
<input type="hidden" id="serviceId" name="serviceId"
value="${_cfg.serviceId}">
<div class="form-body">
<div class="row">
<div class="col-md-6">
<div class="form-group">
<label class="control-label col-md-3"><spring:message code="do_log" /></label>
<c:forEach items="${fns:getDictList('DO_LOG') }" var="dict">
<c:choose>
<c:when test="${dict.itemCode eq _cfg.doLog}">
<label class="radio-inline">
<input type="radio" name="doLog" checked value="${dict.itemCode}" ><spring:message code="${dict.itemValue}"/>
</label>
</c:when>
<c:otherwise>
<label class="radio-inline">
<input type="radio" name="doLog" value="${dict.itemCode}" ><spring:message code="${dict.itemValue}"/>
</label>
</c:otherwise>
</c:choose>
<div class="form-group">
<label class="control-label col-md-3"><spring:message
code="config_describe" /></label>
<div class="col-md-6">
<input class="form-control" type="text" name="cfgDesc"
value="${_cfg.cfgDesc}">
</div>
</div>
</div>
<!-- 动作 -->
<div class="col-md-6">
<div class="form-group">
<label class="control-label col-md-3"><spring:message code="action" /></label>
<div class="col-md-6">
<c:forEach items="${serviceList}" var="service"
varStatus="satus">
<label class="radio-inline"> <c:if test="${_cfg.functionId eq service.functionId}">
<input type="radio" name="action" serviceId="${service.serviceId }"
protocolId="${service.protocolId }"
regionCode="${service.regionCode }"
value="${service.action }" class="required action"
<c:if test="${_cfg.action==service.action || (_cfg.action==null && satus.index==0)}">checked</c:if>>
<c:forEach items="${fns:getDictList('SERVICE_ACTION') }" var="dict">
<c:if test="${dict.itemCode eq service.action }">
<spring:message code="${dict.itemValue }"/>
</c:if>
</c:forEach>
</c:if>
</label>
</c:forEach>
</div>
<div for="action"></div>
</div>
</div>
</div>
<!-- dolog begin-->
<div class="row doLog">
<div class="col-md-6">
<div class="form-group">
<label class="control-label col-md-3"><spring:message code="do_log" /></label>
<c:forEach items="${fns:getDictList('DO_LOG') }" var="dict">
<c:choose>
<c:when test="${dict.itemCode eq _cfg.doLog}">
<label class="radio-inline">
<input type="radio" name="doLog" checked value="${dict.itemCode}" ><spring:message code="${dict.itemValue}"/>
</label>
</c:when>
<c:otherwise>
<label class="radio-inline">
<input type="radio" name="doLog" value="${dict.itemCode}" ><spring:message code="${dict.itemValue}"/>
</label>
</c:otherwise>
</c:choose>
</c:forEach>
</div>
</div>
</div>
<!-- desc and action -->
<!-- 配置域类型 -->
<%-- <c:forEach items="${regionList}" var="region">
<c:if test="${_cfg.functionId eq region.functionId}">
<%@include file="/WEB-INF/include/form/complexInfo.jsp" %>
</c:if>
</c:forEach> --%>
<!-- SubscribeID Start -->
<c:set var="subscribeIdCfgIndex" value="0"></c:set>
<c:forEach items="${regionList}" var="region" varStatus="status">
<c:if test="${region.configServiceType eq 'av_cont_url'}">
<h4 class="form-section">
<spring:message code="${region.configRegionValue}" />
</h4>
<%@include file="/WEB-INF/include/form/complexInfo.jsp" %>
</c:if>
<c:if test="${region.configServiceType eq 'subscribe_id'}">
<c:set var="tabName" value="${region.configRegionValue}Tab"></c:set>
<!-- dolog end-->
<c:set var="ipCfgIndex" value="0"></c:set>
<c:set var="strCfgIndex" value="0"></c:set>
<c:forEach items="${regionList}" var="region" varStatus="status">
<c:if test="${region.configServiceType eq 'av_cont_url'}">
<h4 class="form-section">
<spring:message code="${region.configRegionValue}" />
</h4>
<c:set var="tabName" value="avContUrlTab"></c:set>
<%-- <c:set var="regionValue" value="${_cfg.httpUrl.cfgType}"></c:set> --%>
<c:forEach items="${_cfg.avContUrlCfgList}" var="cfg"
varStatus="status">
<c:set var="cfgName" value="avContUrlCfgList[${status.index}]"></c:set>
<div class="row boxSolid ${tabName}${status.index}" >
<%@include file="/WEB-INF/views/cfg/complexCfgForm.jsp"%>
</div>
</c:forEach>
</c:if>
<c:if test="${region.regionType eq 1 }">
<!--ip info-->
<c:set var="tabName" value="${region.configRegionValue}Tab"></c:set>
<h4 class="form-section">
<spring:message code="${region.configRegionValue}" />
<small> <span
class="glyphicon glyphicon-plus ${tabName}Add"
onClick="addContent(this,'${tabName}')" title="add"></span></small>
</h4>
<c:set var="cfgName" value="ipPortList[${ipCfgIndex}]"></c:set>
<%-- <c:set var="regionValue" value="${region.configRegionValue}"></c:set> --%>
<c:choose>
<c:when test="${fn:length(_cfg.ipPortList)>0 and ipCfgIndex<fn:length(_cfg.ipPortList) }">
<c:forEach items="${_cfg.ipPortList}" var="ipPort">
<c:if test="${region.configRegionValue eq ipPort.cfgType }">
<div class="row boxSolid ${tabName}${status.index}">
<%@include file="/WEB-INF/views/cfg/ipCfgForm.jsp"%>
</div>
<c:set var="ipCfgIndex" value="${ipCfgIndex+1}"></c:set>
</c:if>
</c:forEach>
</c:when>
<c:otherwise>
<div class="row boxSolid ${tabName}${status.index} hidden disabled">
<%@include file="/WEB-INF/views/cfg/ipCfgForm.jsp"%>
</div>
<c:set var="ipCfgIndex" value="${ipCfgIndex+1 }"></c:set>
</c:otherwise>
</c:choose>
<!--/ip info-->
</c:if>
<c:if test="${region.regionType eq 2 }">
<!-- 关键字 -->
<c:if test="${region.configServiceType eq 'subscribe_id' }">
<c:set var="tabName" value="${region.configRegionValue}Tab"></c:set>
<h4 class="form-section">
<spring:message code="${region.configRegionValue}" />
<small> <span
class="glyphicon glyphicon-plus ${tabName}Add"
onClick="addContent(this,'${tabName}')" title="add"></span></small>
</h4>
<c:set var="cfgName" value="ntcSubscribeIdCfgList[${subscribeIdCfgIndex}]"></c:set>
<c:set var="regionValue" value="${region.configRegionValue}"></c:set>
<c:set var="cfgName" value="ntcSubscribeIdCfgList[${strCfgIndex}]"></c:set>
<c:choose>
<c:when test="${fn:length(_cfg.ntcSubscribeIdCfgList)>0}">
<c:set var="isBreak" value="false" ></c:set>
<c:forEach items="${_cfg.ntcSubscribeIdCfgList}" var="cfg">
<c:choose>
<c:when test="${region.configRegionValue eq cfg.cfgType and !isBreak}">
<div class="row boxSolid ${tabName}${status.index}">
<div class="row boxSolid subscribeId ${tabName}${status.index}">
<%@include file="/WEB-INF/views/cfg/complexCfgForm.jsp"%>
</div>
<c:set var="isBreak" value="true" ></c:set>
<c:set var="subscribeIdCfgIndex" value="${subscribeIdCfgIndex+1 }"></c:set>
<c:set var="strCfgIndex" value="${strCfgIndex+1 }"></c:set>
</c:when>
</c:choose>
</c:forEach>
@@ -220,43 +314,49 @@ var delContent = function(contentClassName, addBtnClassName) {
<div class="row boxSolid ${tabName}${status.index} hidden disabled">
<%@include file="/WEB-INF/views/cfg/complexCfgForm.jsp"%>
</div>
<c:set var="subscribeIdCfgIndex" value="${subscribeIdCfgIndex+1 }"></c:set>
<c:set var="strCfgIndex" value="${strCfgIndex+1 }"></c:set>
</c:if>
</c:when>
<c:otherwise>
<div class="row boxSolid ${tabName}${status.index} hidden disabled">
<div class="row boxSolid subscribeId ${tabName}${status.index} hidden disabled">
<%@include file="/WEB-INF/views/cfg/complexCfgForm.jsp"%>
</div>
<c:set var="subscribeIdCfgIndex" value="${subscribeIdCfgIndex+1 }"></c:set>
<c:set var="strCfgIndex" value="${strCfgIndex+1 }"></c:set>
</c:otherwise>
</c:choose>
</c:if>
</c:forEach>
<!-- SubscribeID End -->
<%@include file="/WEB-INF/include/form/areaInfo.jsp" %>
<%@include file="/WEB-INF/include/form/basicInfo.jsp" %>
</div>
<div class="form-actions">
<div class="row">
<div class="col-md-6">
<div class="row">
<div class="col-md-offset-3 col-md-8">
<button id="save" type="submit" class="btn green"><spring:message code="submit"/></button>
<button id="cancel" type="button" class="btn default"><spring:message code="cancel"/></button>
</div>
</div>
</div>
<div class="col-md-6"> </div>
</div>
</div>
</form>
<!-- END FORM-->
</div>
</div>
</c:if>
</c:if>
</c:forEach>
<br>
<%@include file="/WEB-INF/include/form/areaInfo.jsp"%>
<br>
<%@include file="/WEB-INF/include/form/basicInfo.jsp"%>
<div class="form-actions">
<div class="row">
<div class="col-md-6">
<div class="row">
<div class="col-md-offset-3 col-md-8">
<button id="save" type="submit" class="btn green">
<spring:message code="submit" />
</button>
<button id="cancel" type="button" class="btn default">
<spring:message code="cancel" />
</button>
</div>
</div>
</div>
<div class="col-md-6"></div>
</div>
</div>
</div>
</form>
<!-- END FORM-->
</div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>

View File

@@ -3,15 +3,35 @@
<html>
<head>
<title><spring:message code="${cfgName}"></spring:message></title>
<c:choose>
<c:when test="${cookie.Language.value eq 'zh_CN'}">
<script src="${pageContext.request.contextPath}/static/global/plugins/bootstrap-select/js/i18n/defaults-zh_CN.min.js"></script>
</c:when>
<c:when test="${cookie.Language.value eq 'en'}">
<script src="${pageContext.request.contextPath}/static/global/plugins/bootstrap-select/js/i18n/defaults-en_US.min.js"></script>
</c:when>
<c:when test="${cookie.Language.value eq 'ru_RU'}">
<script src="${pageContext.request.contextPath}/static/global/plugins/bootstrap-select/js/i18n/defaults-ru_RU.min.js"></script>
</c:when>
<c:otherwise>
<script src="${pageContext.request.contextPath}/static/global/plugins/bootstrap-select/js/i18n/defaults-en_US.min.js"></script>
</c:otherwise>
</c:choose>
<script>
$(document).ready(function() {
//搜索框提示语初始化
$(document).ready(function() {
//搜索框提示语初始化
if("${cfg.cfgDesc}"){
$("#intype").val("${cfg.cfgDesc}");
}else if("${cfg.cfgKeywords}"){
$("#intype").val("${cfg.cfgKeywords}");
}else if("${cfg.voipIp.srcIpAddress}"){
$("#intype").val("${cfg.voipIp.srcIpAddress}");
}else if("${cfg.voipAccount.cfgKeywords}"){
$("#intype").val("${cfg.voipAccount.cfgKeywords}");
}else if("${cfg.compileId}"){
$("#intype").val("${cfg.compileId}");
}else if("${cfg.voipIp.srcPort}"){
$("#intype").val("${cfg.voipIp.srcPort}");
}else if("${cfg.ntcSubscribeIdCfg.cfgKeywords}"){
$("#intype").val("${cfg.ntcSubscribeIdCfg.cfgKeywords}");
}else{
$("#intype").attr("placeholder","<spring:message code='input'/> "+$("#seltype").find("option:selected").text());
}
@@ -31,10 +51,11 @@
$(this).find("option:first").attr("selected",true);
});
$(".Wdate").attr("value",'');
$("#description").attr("value",'');
$("#level").attr("value",'');
$("#searchForm")[0].reset();
$("#intype").attr("placeholder","<spring:message code='input'/> "+$("#seltype").find("option:selected").text());
});
//异步获取voip相关信息
$("span[id^=open]").click(function(){
var openId=$(this).attr("id");
@@ -66,7 +87,7 @@
subTab+="</td>";
subTab+="</tr>";
$("#"+openId).parent().parent().after(subTab);
$("div[name='tabTitle"+index+"']").get(0).click();
$("div[name='tabTitle"+index+"']").eq(0).click();
}
});
}
@@ -80,37 +101,24 @@
$("#"+openId).show();
$("#"+closeId).parent().parent().next("tr").hide();
});
});
var edit=function(url){
var cked = $('tbody tr td input.i-checks:checkbox:checked');
if(cked.val()==1){
top.$.jBox.tip("<spring:message code='has_approved'/>", "<spring:message code='info'/>");
return;
}
if(cked.length==1){
window.location = url+"&compileId="+cked.attr("id");
}else{
top.$.jBox.tip("<spring:message code='check_one'/>", "<spring:message code='info'/>");
return;
}
}
});
</script>
</head>
<body>
<div class="page-content">
<div class="theme-panel hidden-xs hidden-sm">
<shiro:hasPermission name="avContUrl:config">
<button type="button" class="btn btn-primary"
<shiro:hasPermission name="avVoip:config">
<button type="button" class="btn btn-primary"
onClick="javascript:window.location='${ctx}/ntc/av/contUrlForm?functionId=${cfg.functionId}'">
<i class="fa fa-plus"></i>
<spring:message code="add"></spring:message></button>
</shiro:hasPermission>
<i class="fa fa-plus"></i>
<spring:message code="add"></spring:message></button>
</shiro:hasPermission>
</div>
<h3 class="page-title">
<spring:message code="${cfg.menuNameCode }"></spring:message>
<spring:message code="${cfg.menuNameCode }"></spring:message>
</h3>
<h5 class="page-header"></h5>
<div class="col-md-12">
@@ -135,7 +143,6 @@
<form:option value="0"><spring:message code="created"></spring:message></form:option>
<form:option value="1"><spring:message code="approved"></spring:message></form:option>
<form:option value="2"><spring:message code="unapproved"></spring:message></form:option>
<%-- <form:option value="3"><spring:message code="cancel_approved"></spring:message></form:option> --%>
</form:select>
</div>
@@ -146,9 +153,12 @@
<form:select path="seltype" class="selectpicker select2 input-small" >
<form:option value="cfgDesc"><spring:message code="config_describe"></spring:message></form:option>
<form:option value="compileId"><spring:message code="cfg_id"></spring:message></form:option>
<form:option value="cfgKeywords"><spring:message code="URL"></spring:message></form:option>
<form:option value="compileId"><spring:message code="cfg_id"/></form:option>
<form:option value="voipIp.srcIpAddress"><spring:message code="client_ip"/></form:option>
<form:option value="voipIp.srcPort"><spring:message code="client_port"/></form:option>
<form:option value="voipAccount.cfgKeywords"><spring:message code="av_voip_account_control"/></form:option>
<form:option value="action"><spring:message code="block_type"></spring:message></form:option>
<form:option value="ntcSubscribeIdCfg.cfgKeywords"><spring:message code="NTC_SUBSCRIBE_ID"/></form:option>
<form:option value="isValid"><spring:message code="valid_identifier"></spring:message></form:option>
</form:select>
@@ -177,11 +187,12 @@
<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="avContUrl:config">
<shiro:hasPermission name="avVoip:config">
<sys:delRow url="${ctx}/ntc/av/contUrlForm" id="contentTable" label="update"></sys:delRow>
<sys:delRow url="${ctx}/ntc/av/updateAvContUrlValid?isValid=-1&functionId=${cfg.functionId }" id="contentTable" label="delete"></sys:delRow>
</shiro:hasPermission>
<shiro:hasPermission name="avContUrl:confirm">
<%-- <sys:delRow url="${ctx}/ntc/av/voipExport?functionId=${cfg.functionId }" id="contentTable" label="export" maxRow="${page.maxExportSize }"></sys:delRow> --%>
<shiro:hasPermission name="avVoip:confirm">
<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="examine"></spring:message>
@@ -190,8 +201,8 @@
<ul class="dropdown-menu pull-right">
<li><sys:delRow url="${ctx}/ntc/av/auditAvContUrl?isAudit=1&isValid=1&functionId=${cfg.functionId }" id="contentTable" label="approved"></sys:delRow></li>
<li><sys:delRow url="${ctx}/ntc/av/auditAvContUrl?isAudit=2&isValid=0&functionId=${cfg.functionId }" id="contentTable" label="unapproved"></sys:delRow></li>
<li><sys:delRow url="${ctx}/ntc/av/auditAvContUrl?isAudit=3&isValid=0&functionId=${cfg.functionId }" id="contentTable" label="cancelPass"></sys:delRow></li>
</ul>
<li><sys:delRow url="${ctx}/ntc/av/auditAvContUrl?isAudit=3&isValid=0&functionId=${cfg.functionId }" id="contentTable" label="cancelPass"></sys:delRow></li>
</ul>
</div>
</shiro:hasPermission>
<a class="btn btn-icon-only btn-default setfields tooltips"
@@ -333,23 +344,18 @@
<thead>
<tr>
<th><input type="checkbox" class="i-checks" id="checkAll"></th>
<th class="sort-column r.compile_id" style="display: none"><spring:message code="cfg_id"/></th>
<th class="sort-column r.cfg_desc"><spring:message code="config_describe"/></th>
<th><spring:message code="URL"/></th>
<th><spring:message code="is_hex"/></th>
<th><spring:message code="is_case_insenstive"/></th>
<th><spring:message code="expression_type"/></th>
<th><spring:message code="match_method"/></th>
<th class="sort-column r.compile_id" style="display: none"><spring:message code="cfg_id"/></th>
<th class="sort-column r.cfg_desc cfgDesc"><spring:message code="config_describe"/></th>
<th class="sort-column r.action"><spring:message code="block_type"/></th>
<th><spring:message code="do_log"/></th>
<th><spring:message code="is_audit"/></th>
<th><spring:message code="log_total"/></th>
<th><spring:message code="whether_area_block"/></th>
<th><spring:message code="letter"/></th>
<th><spring:message code="classification"/></th>
<th><spring:message code="attribute"/></th>
<th><spring:message code="label"/></th>
<th class="sort-column r.is_valid"><spring:message code="valid_identifier"/></th>
<th><spring:message code="is_audit"/></th>
<th><spring:message code="log_total"/></th>
<th><spring:message code="creator"/></th>
<th class="sort-column r.create_time"><spring:message code="config_time"/></th>
<th><spring:message code="editor"/></th>
@@ -359,76 +365,40 @@
</tr>
</thead>
<tbody>
<c:forEach items="${page.list }" var="cfg" varStatus="status" step="1">
<tr>
<c:forEach items="${page.list }" var="indexCfg" varStatus="status" step="1">
<tr>
<td>
<span id="open${status.index}" class="" compileId="${cfg.compileId}" cfgId="${cfg.cfgId}"> ▷ </span><span style="display: none" id="close${status.index}" > ▼ </span>
<input type="checkbox" class="i-checks" id="${cfg.cfgId}" compileId="${cfg.compileId}" value="${cfg.isAudit}">
</td>
<td>${cfg.compileId }</td>
<td>${cfg.cfgDesc }</td>
<td>
<a href="javascript:;" data-original-title="${fn:replace(cfg.cfgKeywords, '***and***', ' ')}"
class="tooltips" data-flag="false" data-html="true" data-placement="top">
${fns:abbr(fn:replace(cfg.cfgKeywords, "***and***", " "),20)}
</a>
</td>
<c:if test="${cfg.isHexbin==0 }">
<td><spring:message code="not_hex"/></td>
<td><spring:message code="case_insenstive"/></td>
</c:if>
<c:if test="${cfg.isHexbin==1 }">
<td><spring:message code="hex"/></td>
<td><spring:message code="case_insenstive"/></td>
</c:if>
<c:if test="${cfg.isHexbin==2 }">
<td><spring:message code="not_hex"/></td>
<td><spring:message code="case_senstive"/></td>
</c:if>
<td>
<c:if test="${cfg.exprType==1}"><spring:message code="and_expression"/></c:if>
<c:if test="${cfg.exprType==0}"><spring:message code="null_expression"/></c:if>
</td>
<td>
<c:forEach items="${fns:getDictList('MATCH_METHOD')}" var="matchMethodC">
<c:if test="${cfg.matchMethod==matchMethodC.itemCode }"><spring:message code="${matchMethodC.itemValue}"/></c:if>
</c:forEach>
<span id="open${status.index}" class="" compileId="${indexCfg.compileId}" cfgId="${indexCfg.cfgId}"> ▷ </span><span style="display: none" id="close${status.index}" > ▼ </span>
<input type="checkbox" class="i-checks child-checks" compileId="${indexCfg.compileId}" id="${indexCfg.cfgId}" value="${indexCfg.isAudit}">
</td>
<td>${indexCfg.compileId }</td>
<td>${indexCfg.cfgDesc }</td>
<td>
<c:forEach items="${fns:getDictList('SERVICE_ACTION') }" var="dict">
<c:if test="${dict.itemCode eq cfg.action }">
<c:if test="${dict.itemCode eq indexCfg.action }">
<spring:message code="${dict.itemValue }"/>
</c:if>
</c:forEach>
</td>
<td>
<c:forEach items="${fns:getDictList('DO_LOG') }" var="dict">
<c:if test="${dict.itemCode eq cfg.doLog }">
<c:if test="${dict.itemCode eq indexCfg.doLog }">
<spring:message code="${dict.itemValue }"/>
</c:if>
</c:forEach>
</td>
<td>
<c:choose>
<c:when test="${cfg.isAudit eq '0'}"><span class="label label-danger"><spring:message code="created"></spring:message></span></c:when>
<c:when test="${cfg.isAudit eq '1'}"><span class="label label-success"><spring:message code="approved"></spring:message></span></c:when>
<c:when test="${cfg.isAudit eq '2'}"><span class="label label-warning"><spring:message code="unapproved"></spring:message></span></c:when>
<c:when test="${cfg.isAudit eq '3'}"><span class="label label-warning"><spring:message code="cancel_approved"></spring:message></span></c:when>
</c:choose>
</td>
<td audit="${cfg.isAudit}" functionId="${cfg.functionId}" compileId="${cfg.compileId}" action="${cfg.action}" serviceId="${cfg.serviceId}"><div class="loading-total"></div></td>
<td>
<c:if test="${cfg.isAreaEffective==0}"><spring:message code="all"/></c:if>
<c:if test="${cfg.isAreaEffective==1}">
<a href="javascript:viewAreaInfo('${ctx}','${cfg.areaEffectiveIds }','${cfg.compileId }')" >
<c:if test="${indexCfg.isAreaEffective==0}"><spring:message code="all"/></c:if>
<c:if test="${indexCfg.isAreaEffective==1}">
<a href="javascript:viewAreaInfo('${ctx}','${indexCfg.areaEffectiveIds }','${indexCfg.compileId }')" >
<spring:message code="selective"/>
</a>
</c:if>
</td>
<td>${cfg.requestName }</td>
<td>${indexCfg.requestName }</td>
<td >
<c:set var="classify"></c:set>
<c:forEach items="${fn:split(cfg.classify,',')}" var="classifyId" varStatus="status">
<c:forEach items="${fn:split(indexCfg.classify,',')}" var="classifyId" varStatus="status">
<c:forEach items="${fls}" var="fl">
<c:if test="${classifyId eq fn:trim(fl.serviceDictId)}">
<c:if test="${status.index+1 eq 1}">
@@ -447,7 +417,7 @@
</td>
<td>
<c:set var="attribute"></c:set>
<c:forEach items="${fn:split(cfg.attribute,',')}" var="attributeId" varStatus="status">
<c:forEach items="${fn:split(indexCfg.attribute,',')}" var="attributeId" varStatus="status">
<c:forEach items="${xzs}" var="xz">
<c:if test="${attributeId eq fn:trim(xz.serviceDictId)}">
<c:if test="${status.index+1 eq 1}">
@@ -466,7 +436,7 @@
</td>
<td>
<c:set var="lableInfo"></c:set>
<c:forEach items="${fn:split(cfg.lable,',')}" var="lableId" varStatus="status">
<c:forEach items="${fn:split(indexCfg.lable,',')}" var="lableId" varStatus="status">
<c:forEach items="${lables}" var="lable">
<c:if test="${lableId eq fn:trim(lable.serviceDictId)}">
<c:if test="${status.index+1 eq 1}">
@@ -483,26 +453,33 @@
${fns:abbr(lableInfo,20)}
</a>
</td>
<td>
<c:if test="${cfg.isValid==0}"><spring:message code="no"/></c:if>
<c:if test="${cfg.isValid==1}"><spring:message code="yes"/></c:if>
<c:if test="${cfg.isValid==-1}"><spring:message code="deleted"/></c:if>
<td>
<c:if test="${indexCfg.isValid==0}"><spring:message code="no"/></c:if>
<c:if test="${indexCfg.isValid==1}"><spring:message code="yes"/></c:if>
<c:if test="${indexCfg.isValid==-1}"><spring:message code="deleted"/></c:if>
</td>
<td>${cfg.creatorName }</td>
<td><fmt:formatDate value="${cfg.createTime }" pattern="yyyy-MM-dd HH:mm:ss"/></td>
<td>${cfg.editorName }</td>
<td><fmt:formatDate value="${cfg.editTime }" pattern="yyyy-MM-dd HH:mm:ss"/></td>
<td>${cfg.auditorName }</td>
<td><fmt:formatDate value="${cfg.auditTime }" pattern="yyyy-MM-dd HH:mm:ss"/></td>
<td>
<c:choose>
<c:when test="${indexCfg.isAudit eq '0'}"><span class="label label-danger"><spring:message code="created"></spring:message></span></c:when>
<c:when test="${indexCfg.isAudit eq '1'}"><span class="label label-success"><spring:message code="approved"></spring:message></span></c:when>
<c:when test="${indexCfg.isAudit eq '2'}"><span class="label label-warning"><spring:message code="unapproved"></spring:message></span></c:when>
<c:when test="${indexCfg.isAudit eq '3'}"><span class="label label-warning"><spring:message code="cancel_approved"></spring:message></span></c:when>
</c:choose>
</td>
<td audit="${indexCfg.isAudit}" functionId="${indexCfg.functionId}" compileId="${indexCfg.compileId}" action="${indexCfg.action}" serviceId="${indexCfg.serviceId}"><div class="loading-total"></div></td>
<td>${indexCfg.creatorName }</td>
<td><fmt:formatDate value="${indexCfg.createTime }" pattern="yyyy-MM-dd HH:mm:ss"/></td>
<td>${indexCfg.editorName }</td>
<td><fmt:formatDate value="${indexCfg.editTime }" pattern="yyyy-MM-dd HH:mm:ss"/></td>
<td>${indexCfg.auditorName }</td>
<td><fmt:formatDate value="${indexCfg.auditTime }" pattern="yyyy-MM-dd HH:mm:ss"/></td>
</tr>
</c:forEach>
</tbody>
</table>
<div class="page">${page}</div>
</div>
<div class="page" >${page}</div>
</div>
</div>
</div>
</div>

View File

@@ -79,7 +79,7 @@
<p class="numberRun2">0</p>
</div>
</div>
<div class="fr_fc">
<div class="fr_fc">
<div class="fl_visual">
<i class="fa fa-trash"> </i>
</div>
@@ -104,6 +104,34 @@
</div>
</div>
<div class="fr_fc">
<div class="fl_visual">
<i class="fa fa-link"> </i>
</div>
<div class="fl_fc">
<!-- <a href="javacript:;"> -->
<p data-original-title="<spring:message code="new_link"/>"
class="tooltips" data-flag="false" data-html="true" data-placement="top">
<!-- 新建链接数 --><spring:message code="new_link"/></p>
<p class="numberRun5">0</p>
</div>
</div>
<div class="fr_fc">
<div class="fl_visual">
<i class="fa fa-heartbeat"> </i>
</div>
<div class="fl_fc">
<!-- <a href="javacript:;"> -->
<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>
<p class="numberRun6">0</p>
</div>
</div>
</div>
</div>
</div>
@@ -114,7 +142,7 @@
<div class="main_left fl">
<div class="left_1">
<div class="main_title">
<spring:message code="traffic_ipactive_chart"/>&nbsp;&nbsp;<a href="javascipt:void(0)" onclick="ipActiveList();return false;"><i class="fa fa-refresh"></i></a>
<spring:message code="traffic_ipactive_chart"/>&nbsp;&nbsp;<a href="${ctx}/dashboard/ipActiveList"><i class="fa fa-line-chart"></i></a> <a href="javascipt:void(0)" onclick="ipActiveList();return false;"><i class="fa fa-refresh"></i></a>
</div>
<!-- 活跃IP图 --> <div id="chart_main" style="width:100%;height:400px;"></div>
</div>
@@ -341,10 +369,10 @@
<script type="text/javascript">
$(document).ready(function(){
//动态显示数据
ajaxinfo();
setInterval(function(){
ajaxinfo();
},20000);
// ajaxinfo();
// setInterval(function(){
// ajaxinfo();
// },20000);
protocolList();//协议统计
ipActiveList();//活跃IP
@@ -377,6 +405,8 @@ function ajaxinfo(){
dataScroll(".numberRun1",Math.floor(data.rejectNum));
dataScroll(".numberRun2",Math.floor(data.monitorNum));
dataScroll(".numberRun3",Math.floor(data.dropConnNum));
dataScroll(".numberRun5",Math.floor(data.newUniConnNum));
dataScroll(".numberRun6",Math.floor(data.liveConnNum));
var bandwidth=data.bandwidth;
var bandwidthK=bandwidth/1024;
var bandwidthM=bandwidthK/1024;
@@ -430,10 +460,6 @@ function ajaxinfo(){
}
} */
},
error: function(data, textStatus, errorThrown){
// warning_prompt("获取实时列表数据失败!",1500);
}
});
}
//动态显示数据
@@ -456,18 +482,19 @@ function uaSelectChange(){
//协议类型统计
function protocolList(){
$.ajax({
url: '${ctx}/dashboard/protocol',
type : "get" ,
dataType:"json",
cache:false,async:true,
success:function (rs) {
echart_1(rs);
if(rs[0].error!=null){
top.$.jBox.tip("<spring:message code='request_service_failed'/>", "<spring:message code='info'/>");
return;
}else{
echart_1(rs);
}
},
error: function(data, textStatus, errorThrown){
// warning_prompt("获取实时列表数据失败!",1500);
}
});
}
@@ -480,11 +507,13 @@ function ipActiveList(){
dataType:"json",
cache:false,async:true,
success:function (rs) {
echart_main(rs);
if(rs[0].error!=null){
top.$.jBox.tip("<spring:message code='request_service_failed'/>", "<spring:message code='info'/>");
return;
}else{
echart_main(rs);
}
},
error: function(data, textStatus, errorThrown){
// warning_prompt("获取实时列表数据失败!",1500);
}
});
}
@@ -511,28 +540,29 @@ function portActiveList(){
$("#tbodyDataPort").prepend(tr);
},
success:function (rs) {
success:function (rs) {
$("#tbodyDataPort").html("");
var n=rs.length;
var total=0;
if(n>0){
$(rs).each(function(i, itemObj) {
total+=itemObj.sum;
});
$(rs).each(function(i, itemObj) {
var tr = "<tr class='frist rowData' >";
tr += "<td class='list_c1'>"+itemObj.port+"</td>";
tr += "<td class='list_c2'>"+itemObj.sum+"</td>";
tr += "<td class='list_c3'>"+((itemObj.sum/total)*100).toFixed(1)+" %</td></tr>";
$("#tbodyDataPort").prepend(tr);
})
if(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>");
}else{
$("#tbodyDataPort").prepend("<tr class='frist rowData'><td></td><td style='color:#fff'>No Data</td><td></td></tr>");
if(n>0){
$(rs).each(function(i, itemObj) {
total+=itemObj.sum;
});
$(rs).each(function(i, itemObj) {
var tr = "<tr class='frist rowData' >";
tr += "<td class='list_c1'>"+itemObj.port+"</td>";
tr += "<td class='list_c2'>"+itemObj.sum+"</td>";
tr += "<td class='list_c3'>"+((itemObj.sum/total)*100).toFixed(1)+" %</td></tr>";
$("#tbodyDataPort").prepend(tr);
})
}else{
$("#tbodyDataPort").prepend("<tr class='frist rowData'><td></td><td style='color:#fff'>No Data</td><td></td></tr>");
}
}
},
error: function(data, textStatus, errorThrown){
// warning_prompt("获取实时列表数据失败!",1500);
}
});
}
@@ -545,11 +575,13 @@ function appTypeList(){
dataType:"json",
cache:false,async:true,
success:function (rs) {
echart_3(rs);
if(rs[0].error!=null){
top.$.jBox.tip("<spring:message code='request_service_failed'/>", "<spring:message code='info'/>");
return;
}else{
echart_3(rs);
}
},
error: function(data, textStatus, errorThrown){
// warning_prompt("获取实时列表数据失败!",1500);
}
});
}
@@ -580,33 +612,34 @@ function systemList(){
$("#tbodyData1").html("");
rs.reverse();
var n=rs.length;
if(n>0){
$(rs).each(function(i, itemObj) {
var count= itemObj.count;
var preCount = itemObj.preCount;
var tr = "<tr class='frist rowData select-row-tr' onclick='javascript:osClick(\""+itemObj.osType+"\",this);return false;'>";
tr += "<td class='list_c1' style='color:#fff'>"+n+"</td>";
tr += "<td class='list_c2' style='color:#fff' title='"+itemObj.osType+"'>"+itemObj.osType+"</td>";
if(preCount<count){
tr += "<td class='list_c3'>"+"<i class='fa fa-arrow-up' style='color:green'/>"+"</td></tr>";
}else if(preCount>count){
tr += "<td class='list_c3'>"+"<i class='fa fa-arrow-down' style='color:red'/>"+"</td></tr>";
}else{
tr += "<td class='list_c3'>"+""+"</td></tr>";
}
n=n-1;
$("#tbodyData1").prepend(tr);
})
if(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>");
}else{
$("#tbodyData1").prepend("<tr class='frist rowData'><td></td><td style='color:#fff'>No Data</td><td></td></tr>");
}
if(n>0){
$(rs).each(function(i, itemObj) {
var count= itemObj.count;
var preCount = itemObj.preCount;
var tr = "<tr class='frist rowData select-row-tr' onclick='javascript:osClick(\""+itemObj.osType+"\",this);return false;'>";
tr += "<td class='list_c1' style='color:#fff'>"+n+"</td>";
tr += "<td class='list_c2' style='color:#fff' title='"+itemObj.osType+"'>"+itemObj.osType+"</td>";
if(preCount<count){
tr += "<td class='list_c3'>"+"<i class='fa fa-arrow-up' style='color:green'/>"+"</td></tr>";
}else if(preCount>count){
tr += "<td class='list_c3'>"+"<i class='fa fa-arrow-down' style='color:red'/>"+"</td></tr>";
}else{
tr += "<td class='list_c3'>"+""+"</td></tr>";
}
n=n-1;
$("#tbodyData1").prepend(tr);
})
}else{
$("#tbodyData1").prepend("<tr class='frist rowData'><td></td><td style='color:#fff'>No Data</td><td></td></tr>");
}
//终端图-操作系统
echart_2(rs);
}
},
error: function(data, textStatus, errorThrown){
// warning_prompt("获取实时列表数据失败!",1500);
}
});
}
// 点击操作系统列表右侧显示 浏览器图
@@ -624,9 +657,6 @@ function osClick(osType,obj){
success:function (rs) {
echart_5(rs);
},
error: function(data, textStatus, errorThrown){
// warning_prompt("获取实时列表数据失败!",1500);
}
});
}
//点击浏览器列表右侧显示 操作系统图
@@ -642,9 +672,6 @@ function bsClick(bsType,obj){
success:function (rs) {
echart_2(rs);
},
error: function(data, textStatus, errorThrown){
// warning_prompt("获取实时列表数据失败!",1500);
}
});
}
@@ -677,33 +704,33 @@ function browserList() {
$("#tbodyData1").html("");
rs.reverse();
var n=rs.length;
if(n>0){
$(rs).each(function(i, itemObj) {
var count= itemObj.count;
var preCount = itemObj.preCount;
var tr = "<tr class='frist rowData select-row-tr' onclick='javascript:bsClick(\""+itemObj.bsType+"\",this);return false;'>";
tr += "<td class='list_c1' style='color:#fff'>"+n+"</td>";
tr += "<td class='list_c2' style='color:#fff' title='"+itemObj.bsType+"'>"+itemObj.bsType.substring(0,18)+"</td>";
if(preCount<count){
tr += "<td class='list_c3'>"+"<i class='fa fa-arrow-up' style='color:green'/>"+"</td></tr>";
}else if(preCount>count){
tr += "<td class='list_c3'>"+"<i class='fa fa-arrow-down' style='color:red'/>"+"</td></tr>";
}else{
tr += "<td class='list_c3'>"+""+"</td></tr>";
}
$("#tbodyData1").prepend(tr);
n=n-1;
})
}else{
$("#tbodyData1").prepend("<tr class='frist rowData'><td></td><td style='color:#fff'>No Data</td><td></td></tr>");
}
//终端图-浏览器
echart_5(rs);
if(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>");
}else{
if(n>0){
$(rs).each(function(i, itemObj) {
var count= itemObj.count;
var preCount = itemObj.preCount;
var tr = "<tr class='frist rowData select-row-tr' onclick='javascript:bsClick(\""+itemObj.bsType+"\",this);return false;'>";
tr += "<td class='list_c1' style='color:#fff'>"+n+"</td>";
tr += "<td class='list_c2' style='color:#fff' title='"+itemObj.bsType+"'>"+itemObj.bsType.substring(0,18)+"</td>";
if(preCount<count){
tr += "<td class='list_c3'>"+"<i class='fa fa-arrow-up' style='color:green'/>"+"</td></tr>";
}else if(preCount>count){
tr += "<td class='list_c3'>"+"<i class='fa fa-arrow-down' style='color:red'/>"+"</td></tr>";
}else{
tr += "<td class='list_c3'>"+""+"</td></tr>";
}
$("#tbodyData1").prepend(tr);
n=n-1;
})
}else{
$("#tbodyData1").prepend("<tr class='frist rowData'><td></td><td style='color:#fff'>No Data</td><td></td></tr>");
}
//终端图-浏览器
echart_5(rs);
}
},
error: function(data, textStatus, errorThrown){
// warning_prompt("获取实时列表数据失败!",1500);
}
});
}
@@ -732,31 +759,32 @@ function websiteList() {
success:function (rs) {
$("#tbodyData2").html("");
var n=rs.length;
if(n>0){
$(rs).each(function(i, itemObj) {
var tr = "<tr class='frist rowData select-row-tr' onclick='javascript:webClick(\""+itemObj.websiteServiceId+"\",this);return false;'>";
tr += "<td class='list_c1' style='color:#fff'>"+n+"</td>";
tr += "<td class='list_c2' style='color:#fff' title="+itemObj.websiteService+">"+itemObj.websiteService.substring(0,18)+"</td>";
if(itemObj.preCount<itemObj.count){
tr += "<td class='list_c3'>"+"<i class='fa fa-arrow-up' style='color:green'/>"+"</td></tr>";
}else if(itemObj.preCount>itemObj.count){
tr += "<td class='list_c3'>"+"<i class='fa fa-arrow-down' style='color:red'/>"+"</td></tr>";
}else{
tr += "<td class='list_c3'>"+""+"</td></tr>";
}
$("#tbodyData2").prepend(tr);
n=n-1;
})
}else{
$("#tbodyData2").prepend("<tr class='frist rowData'><td></td><td style='color:#fff'>No Data</td><td></td></tr>");
}
//网站统计图
if(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>");
}else{
if(n>0){
$(rs).each(function(i, itemObj) {
var tr = "<tr class='frist rowData select-row-tr' onclick='javascript:webClick(\""+itemObj.websiteServiceId+"\",this);return false;'>";
tr += "<td class='list_c1' style='color:#fff'>"+n+"</td>";
tr += "<td class='list_c2' style='color:#fff' title="+itemObj.websiteService+">"+itemObj.websiteService.substring(0,18)+"</td>";
if(itemObj.preCount<itemObj.count){
tr += "<td class='list_c3'>"+"<i class='fa fa-arrow-up' style='color:green'/>"+"</td></tr>";
}else if(itemObj.preCount>itemObj.count){
tr += "<td class='list_c3'>"+"<i class='fa fa-arrow-down' style='color:red'/>"+"</td></tr>";
}else{
tr += "<td class='list_c3'>"+""+"</td></tr>";
}
$("#tbodyData2").prepend(tr);
n=n-1;
})
}else{
$("#tbodyData2").prepend("<tr class='frist rowData'><td></td><td style='color:#fff'>No Data</td><td></td></tr>");
}
//网站统计图
echart_4(rs);
}
},
error: function(data, textStatus, errorThrown){
// warning_prompt("获取实时列表数据失败!",1500);
}
});
}
//点击http网站列表-显示域名图
@@ -774,9 +802,6 @@ function webClick(websiteServiceId,obj){
success:function (rs) {
echart_6(rs);
},
error: function(data, textStatus, errorThrown){
// warning_prompt("获取实时列表数据失败!",1500);
}
});
}
//点击http网站列表-显示域名图
@@ -790,9 +815,6 @@ function topicAndDomainList(){
//主题域名流量统计图
echart_topic_domain(rs);
},
error: function(data, textStatus, errorThrown){
// warning_prompt("获取实时列表数据失败!",1500);
}
});
}

View File

@@ -11,14 +11,14 @@
<div class="page-content">
<div class="theme-panel hidden-xs hidden-sm">
<button type="button" class="btn btn-default" onClick="javascript:window.location='${ctx}/dashboard/ipActiveList'"><spring:message code="refresh"/></button>
<button type="button" class="btn btn-default" onClick="javascript:window.location='${ctx}/dashboard/logChart'"><spring:message code="back"/></button>
</div>
<h3 class="page-title">
<spring:message code="活跃IP实时统计TOP100"></spring:message>
<spring:message code="traffic_ipactive_hour_trend"></spring:message>
</h3>
<h5 class="page-header"></h5>
<div id="chart" style="width:100%;height:400px;"></div>
<div id="chart" style="width:95%;height:350px;"></div>
<div class="col-md-12">
<div class="portlet">
@@ -30,25 +30,26 @@
</form:form>
</div>
<sys:message content="${message}"/>
<div class="table-responsive">
<table id="contentTable" class="table table-striped table-bordered table-condensed text-nowrap">
<h3 class="page-title">
<spring:message code="traffic_ipactive_hour_max"></spring:message>
</h3>
<div class="" align="center">
<table id="contentTable"class="table table-striped table-bordered table-condensed text-nowrap">
<thead>
<tr>
<th><spring:message code="chart"/></th>
<th><spring:message code="ip_addr"/></th>
<th><spring:message code="area_id"/></th>
<th><spring:message code="link_num"/></th>
<th><spring:message code="c2s_pkt_num"/></th>
<th><spring:message code="s2c_pkt_num"/></th>
<th><spring:message code="c2s_byte_len"/></th>
<th><spring:message code="s2c_byte_len"/></th>
<th><spring:message code="c2s_byte_num"/></th>
<th><spring:message code="s2c_byte_num"/></th>
<th><spring:message code="stat_time"/></th>
</tr>
</thead>
<tbody>
<c:forEach var="entry" items="${page.list }" varStatus="status">
<c:forEach var="entry" items="${ipActiveList }" varStatus="status">
<tr>
<td><a href="#" onclick="openChart();return false"><i class="fa fa-bar-chart"></i></a></td>
<td>${entry.ipAddr }</td>
<td>${entry.areaId }</td>
<td>${entry.linkNum }</td>
@@ -56,7 +57,8 @@
<td>${entry.s2cPktNum }</td>
<td>${entry.c2sByteLen }</td>
<td>${entry.s2cByteLen }</td>
<td><fmt:formatDate value="${entry.statTime }" pattern="yyyy-MM-dd HH:mm:ss"/></td>
<td>${entry.statTime }</td>
<%-- <td><fmt:formatDate value="${entry.statTime }" pattern="yyyy-MM-dd HH:mm:ss"/></td> --%>
</tr>
</c:forEach>
</tbody>
@@ -68,48 +70,61 @@
</div>
</div>
<script src="${pageContext.request.contextPath}/static/global/plugins/highcharts/js/highcharts.js"></script>
<%-- <script src="${pageContext.request.contextPath}/static/global/plugins/highcharts/themes/grid.js"></script> --%>
<script type="text/javascript">
$(document).ready(function(){
ipActiveMinuteList()
});
function showIpActiveChart(rs){
console.log(rs)
var data=new Array();
var xData=new Array();
xData=rs[0].statTime;
var series=new Array();
$(rs).each(function(i, d) {
series.push({
name: d.ipAddr,
data: d.linkNum
});
})
var chart = Highcharts.chart('chart', {
title: {
text: 'Traffic IP Active Total'
text: null
},
xAxis: {
type:'category',
categories: xData,
title: {
text: 'time',
align:'high',
},
// labels:{
// formatter:function(){
// if(this.value.length>15){
// return '<span>'+this.value.substring(10,20)+"..."+'</span>'
// }else{
// return this.value
// }
// },
// }
},
yAxis: {
title: {
text: 'IP'
text: 'linkNumber'
}
},
credits:{//是否有highcharts水印
enabled:false
},
legend: {
layout: 'vertical',
align: 'right',
verticalAlign: 'middle'
},
plotOptions: {
series: {
label: {
connectorAllowed: false
},
pointStart: 2010
}
},
series: [{
name: 'Installation',
data: [43934, 52503, 57177, 69658, 97031, 119931, 137133, 154175]
}, {
name: 'Manufacturing',
data: [24916, 24064, 29742, 29851, 32490, 30282, 38121, 40434]
}, {
name: 'Sales & Distribution',
data: [11744, 17722, 16005, 19771, 20185, 24377, 32147, 39387]
}, {
name: 'Project Development',
data: [null, null, 7988, 12169, 15112, 22452, 34400, 34227]
}, {
name: 'Other',
data: [12908, 5948, 8105, 11248, 8989, 11816, 18274, 18111]
}],
series: series,
responsive: {
rules: [{
@@ -127,22 +142,24 @@ $(document).ready(function(){
}
});
});
function showIpActiveChart(){
}
function openChart(){
var url = "${ctx}/traffic/showChart";
windowOpen(url, "", 900, 600);
// lay.open({
// type:1,
// area:['420px','240px'],
// content:''
// })
}
//活跃IP一小时间隔五分钟统计
function ipActiveMinuteList(){
$.ajax({
url: '${ctx}/dashboard/ipActiveMinuteList',
type : "get" ,
dataType:"json",
cache:false,async:true,
success:function (rs) {
showIpActiveChart(rs);
},
error: function(data, textStatus, errorThrown){
// warning_prompt("获取实时列表数据失败!",1500);
}
});
}
</script>
</body>
</html>

View File

@@ -48,13 +48,13 @@
<!-- 搜索内容与操作按钮栏 -->
<div class="col-md-12">
<div class="pull-left">
<form:select path="action" class="selectpicker select2 input-small">
<form:select path="service" class="selectpicker select2 input-small">
<form:option value=""><spring:message code="action"/></form:option>
<c:forEach items="${serviceList}" var="service"
varStatus="satus">
<%-- <c:forEach items="${fns:getDictList('SERVICE_ACTION') }" var="dict"> --%>
<c:if test="${(service.action ne 128) && (service.action ne 32) && (service.action ne 96)}">
<form:option value="${service.action}"><spring:message code="${service.serviceName}"/></form:option>
<form:option value="${service.serviceId}"><spring:message code="${service.serviceName}"/></form:option>
</c:if>
<%-- </c:forEach> --%>
</c:forEach>

View File

@@ -172,7 +172,7 @@ $(document).ready(function(){
<th><spring:message code='found_time'/></th>
<th><spring:message code='entrance'/></th>
<th><spring:message code='access_url'/></th>
<th><spring:message code='protocol'/></th>
<th><spring:message code='stream_media_protocol'/></th>
<th><spring:message code='clj_ip'/></th>
<th><spring:message code='transport_layer_protocol'/></th>

View File

@@ -1,60 +1,141 @@
<%@ page contentType="text/html;charset=UTF-8" %>
<%@ page contentType="text/html;charset=UTF-8"%>
<%@ include file="/WEB-INF/include/taglib.jsp"%>
<html>
<head>
<title>日志管理</title>
<script type="text/javascript">
function page(n,s){
$("#pageNo").val(n);
$("#pageSize").val(s);
$("#searchForm").submit();
return false;
}
</script>
<title>日志管理</title>
<script type="text/javascript">
function page(n, s) {
$("#pageNo").val(n);
$("#pageSize").val(s);
$("#searchForm").submit();
return false;
}
</script>
</head>
<body>
<!-- <ul class="nav nav-tabs"> -->
<%-- <li class="active"><a href="${ctx}/sys/log/">日志列表</a></li> --%>
<!-- </ul> -->
<form:form id="searchForm" action="${ctx}/sys/log" method="post" class="breadcrumb form-search">
<input id="pageNo" name="pageNo" type="hidden" value="${page.pageNo}"/>
<input id="pageSize" name="pageSize" type="hidden" value="${page.pageSize}"/>
<div>
<label>操作菜单:</label><input id="title" name="title" type="text" maxlength="50" class="input-mini" value="${sysLog.title}"/>
<label>用户:</label><input id="createBy" name="createBy" type="text" maxlength="50" class="input-mini" value="${sysLog.createBy}"/>
<label>URI</label><input id="requestUri" name="requestUri" type="text" maxlength="50" class="input-mini" value="${sysLog.requestUri}"/>
</div><div style="margin-top:8px;">
<label>日期范围:&nbsp;</label><input id="beginDate" name="beginDate" type="text" readonly="readonly" maxlength="20" class="input-mini Wdate"
value="<fmt:formatDate value="${sysLog.beginDate}" pattern="yyyy-MM-dd"/>" onclick="WdatePicker({dateFmt:'yyyy-MM-dd',isShowClear:false});"/>
<label>&nbsp;--&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</label><input id="endDate" name="endDate" type="text" readonly="readonly" maxlength="20" class="input-mini Wdate"
value="<fmt:formatDate value="${sysLog.endDate}" pattern="yyyy-MM-dd"/>" onclick="WdatePicker({dateFmt:'yyyy-MM-dd',isShowClear:false});"/>&nbsp;&nbsp;
&nbsp;<label for="exception"><input id="exception" name="exception" type="checkbox"${sysLog.exception eq '1'?' checked':''} value="1"/>只查询异常信息</label>
&nbsp;&nbsp;&nbsp;<input id="btnSubmit" class="btn btn-primary" type="submit" value="查询"/>&nbsp;&nbsp;
<%-- <ul class="nav nav-tabs">
<li class="active"><a href="${ctx}/sys/log/">日志列表</a></li>
</ul> --%>
<div class="page-content">
<h3 class="page-title">
<spring:message code="system_log"></spring:message>
</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" action="${ctx}/sys/log" method="post"
class="breadcrumb form-search" style="background-color:#fff">
<input id="pageNo" name="pageNo" type="hidden"
value="${page.pageNo}" />
<input id="pageSize" name="pageSize" type="hidden"
value="${page.pageSize}" />
<div class="col-md-12 filter-action-select-panle"
style="background-color: transparent">
<div class="row">
<div class="col-md-2">
<div class="form-group">
<label><spring:message code="log_menu" /></label> <input
id="title" name="title" type="text" maxlength="50"
class="form-control" value="${sysLog.title}" />
</div>
</div>
<div class="col-md-2">
<div class="form-group">
<label><spring:message code="user" /></label> <input
id="createBy" name="createBy" type="text" maxlength="50"
class="form-control" value="${sysLog.createBy}" />
</div>
</div>
<div class="col-md-2">
<div class="form-group">
<label><spring:message code="URL" /></label> <input
id="requestUri" name="requestUri" type="text"
maxlength="50" class="form-control"
value="${sysLog.requestUri}" />
</div>
</div>
<div class="col-md-2">
<div class="form-group">
<label><spring:message code="log_date" /></label> <input
id="beginDate" name="beginDate" type="text"
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});" />
</div>
</div>
<div class="col-md-2">
<div class="form-group">
<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});" />
</div>
</div>
<div class="col-md-1">
<div class="form-group">
<label for="exception"><input id="exception"
name="exception" type="checkbox"
${sysLog.exception eq '1'?' checked':''} value="1" /><spring:message code="log_exception" /></label>
<button type="submit" class="btn blue form-control"><i class="fa fa-search"></i><spring:message code="search" /></button>
</div>
</div>
</div>
</div>
</form:form>
</div>
<sys:message content="${message}" />
<div class="table-responsive">
<table id="contentTable1"
class="table table-striped table-bordered table-condensed">
<thead>
<tr>
<th><spring:message code="log_menu" /></th>
<th><spring:message code="log_user" /></th>
<th><spring:message code="URL" /></th>
<th><spring:message code="log_submission" /></th>
<th><spring:message code="log_ip" /></th>
<th><spring:message code="operate_time" /></th>
</thead>
<tbody>
<%
request.setAttribute("strEnter", "\n");
request.setAttribute("strTab", "\t");
%>
<c:forEach items="${page.list}" var="log">
<tr>
<td>${log.title}</td>
<td>${log.createBy}</td>
<td><strong>${log.requestUri}</strong></td>
<td>${log.method}</td>
<td>${log.remoteAddr}</td>
<td><fmt:formatDate value="${log.createDate}"
type="both" /></td>
</tr>
<c:if test="${not empty log.exception}">
<tr>
<td colspan="8"
style="word-wrap: break-word; word-break: break-all;">
<%-- 用户代理: ${log.userAgent}<br/> --%> <%-- 提交参数: ${fns:escapeHtml(log.params)} <br/> --%>
<spring:message code="log_exception_info" /><br />
${fn:replace(fn:replace(fns:escapeHtml(log.exception), strEnter, '<br/>'), strTab, '&nbsp; &nbsp; ')}
</td>
</tr>
</c:if>
</c:forEach>
</tbody>
</table>
<div class="page">${page}</div>
</div>
</div>
</div>
</div>
</div>
</form:form>
<sys:message content="${message}"/>
<table id="contentTable" class="table table-striped table-bordered table-condensed">
<thead><tr><th>操作菜单</th><th>操作用户</th><th>URI</th><th>提交方式</th><th>操作者IP</th><th>操作时间</th></thead>
<tbody><%request.setAttribute("strEnter", "\n");request.setAttribute("strTab", "\t");%>
<c:forEach items="${page.list}" var="log">
<tr>
<td>${log.title}</td>
<td>${log.createBy}</td>
<td><strong>${log.requestUri}</strong></td>
<td>${log.method}</td>
<td>${log.remoteAddr}</td>
<td><fmt:formatDate value="${log.createDate}" type="both"/></td>
</tr>
<c:if test="${not empty log.exception}"><tr>
<td colspan="8" style="word-wrap:break-word;word-break:break-all;">
<%-- 用户代理: ${log.userAgent}<br/> --%>
<%-- 提交参数: ${fns:escapeHtml(log.params)} <br/> --%>
异常信息: <br/>
${fn:replace(fn:replace(fns:escapeHtml(log.exception), strEnter, '<br/>'), strTab, '&nbsp; &nbsp; ')}</td>
</tr></c:if>
</c:forEach>
</tbody>
</table>
<div class="pagination">${page}</div>
</div>
</body>
</html>

View File

@@ -62,7 +62,7 @@
<%-- <li class="active"><a href="${ctx}/sys/office/list?id=${sysOffice.id}&parentIds=${sysOffice.parentIds}">机构列表</a></li> --%>
<%-- <shiro:hasPermission name="sys:office:edit"><li><a href="${ctx}/sys/office/form?parent.id=${sysOffice.id}">机构添加</a></li></shiro:hasPermission> --%>
<!-- </ul> -->
<div class="table-responsive">
<div class="">
<sys:message content="${message}"/>
<table id="treeTable" class="table table-striped table-bordered table-condensed">
<thead><tr><th><spring:message code="org_name"/></th><th><spring:message code="belong_area"/></th><th><spring:message code="org_coding"/></th><th><spring:message code="level"/></th><th><spring:message code="org_type"/></th><th><spring:message code="org_duty_type"/></th><th><spring:message code="remarks"/></th><shiro:hasPermission name="sys:office:edit"><th><spring:message code="operation"/></th></shiro:hasPermission></tr></thead>

View File

@@ -21,12 +21,12 @@ p{
display: inline-block;
}
.data_content .data_info .info_2{
width: 60%;
width: 70%;
height: 110px;
}
.data_content .data_info .fr_fc{
width: 155%;
width: 100%;
height: 110px;
border: 1px solid #303030;
border-width: 0 1px;
@@ -55,7 +55,7 @@ p{
}
.data_content .data_info .info_1{
width: 40%;
width: 30%;
height: 110px;
}
.data_content .data_info .info_2 .fr_fc:first-child{
@@ -82,7 +82,7 @@ p{
} */
.data_content .data_info>div.info_2>.text_2>div{
width: 33.333%;
width: 20%;
position: relative;
}
.data_content .data_info>div.info_1>div>div,
@@ -134,6 +134,18 @@ p{
color:#288dce;
margin-top: 2.1em;
}
.data_content .data_info .info_2 .fr_fc .numberRun5{
font-weight: 600;
font-size: 16px;
color:#288dce;
margin-top: 2.1em;
}
.data_content .data_info .info_2 .fr_fc .numberRun6{
font-weight: 600;
font-size: 16px;
color:#288dce;
margin-top: 2.1em;
}
.data_content .data_info .info_2 .fr_fc .numberRun{
font-weight: 600;
font-size: 16px;
@@ -153,9 +165,11 @@ p{
margin-top: 0.6px;
}
.data_content .data_info>div.info_1 .fl_fc .csNum{
font-size: 12px;
font-size: 11px;
color:#337ab7 !important;
margin-top: 1px;
margin-top: -6px;
text-align: center;
margin-left: 1.3px;
}
/* .data_info{
float: right;