首页增加配置统计列表

This commit is contained in:
duandongmei
2018-07-11 16:15:23 +08:00
parent 23c2da6dee
commit 89ec630a33
12 changed files with 1411 additions and 696 deletions

View File

@@ -202,6 +202,22 @@ public class DictUtils {
}
return dictList;
}
/**
* 功能业务字典,获取相应功能菜单对应的业务信息
* @param functionId
* @return
*/
public static List<FunctionServiceDict> getFunctionServiceDictList(){
List<FunctionServiceDict> allDictList = (List<FunctionServiceDict>)CacheUtils.get(Constants.CACHE_FUNCTION_SERVICE_DICT);
List<FunctionServiceDict> dictList = new ArrayList();
if(StringUtil.isEmpty(allDictList)){
FunctionServiceDict entity = new FunctionServiceDict();
allDictList = functionServiceDictDao.getList(entity);
CacheUtils.put(Constants.CACHE_FUNCTION_SERVICE_DICT, allDictList);
}
return allDictList;
}
/**
* 功能配置域字典,获取相应功能菜单对应的配置域信息
* @param functionId

View File

@@ -85,6 +85,7 @@ import com.nis.web.service.configuration.NumCfgService;
import com.nis.web.service.configuration.RequestInfoService;
import com.nis.web.service.configuration.WebsiteCfgService;
import com.nis.web.service.configuration.XmppCfgService;
import com.nis.web.service.configuration.statistics.ConfigureStatisticsService;
import com.nis.web.service.specific.SpecificServiceCfgService;
import com.nis.web.service.specific.SpecificServiceHostCfgService;
import com.nis.web.service.systemService.ServiceConfigInfoService;
@@ -179,6 +180,8 @@ public class BaseController {
protected DdosCfgService ddosCfgService;
@Autowired
protected IpMultiplexPoolCfgService ipMultiplexPoolCfgService;
@Autowired
protected ConfigureStatisticsService configureStatisticsService;
/**
* 管理基础路径
*/
@@ -337,6 +340,9 @@ public class BaseController {
protected void initReportCondition(Model model,SearchReport report){
List<FunctionServiceDict> serviceList = DictUtils.getFunctionServiceDictList(report.getFunctionId());
model.addAttribute("serviceList", serviceList);
if (StringUtils.isBlank(report.getReportTime())) {
report.setReportTime(DateUtils.formatDate(new Date(), "yyyy-MM-dd"));
}
}
protected void initFormCondition(Model model){
List<RequestInfo> requestInfos=requestInfoService.getValidRequestInfo();

View File

@@ -0,0 +1,48 @@
package com.nis.web.controller.configuration.statistics;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
import com.nis.domain.FunctionServiceDict;
import com.nis.domain.configuration.CfgIndexInfo;
import com.nis.util.CacheUtils;
import com.nis.util.Constants;
import com.nis.util.DictUtils;
import com.nis.web.controller.BaseController;
import com.nis.web.service.BaseService;
import com.nis.web.service.CommonService;
/**
* 配置统计
* @author ddm
*
*/
@Controller
@RequestMapping("${adminPath}/configure/statistics")
public class ConfigureStatisticsController extends BaseController{
@RequestMapping(value = {"/configureStateStatistics"})
public String configStateStatistics(Model model,HttpServletRequest request
,HttpServletResponse response
,RedirectAttributes redirectAttributes){
List<FunctionServiceDict> serviceDictList = DictUtils.getFunctionServiceDictList();
List<Object[]> list = configureStatisticsService.getConfigStateStatistics();
model.addAttribute("serviceList", serviceDictList);
model.addAttribute("configStatistics", list);
return "/index";
}
}

View File

@@ -0,0 +1,15 @@
package com.nis.web.dao.configuration.statistics;
import java.util.List;
import org.apache.ibatis.annotations.Param;
import com.nis.domain.configuration.HttpBodyCfg;
import com.nis.web.dao.MyBatisDao;
@MyBatisDao
public interface ConfigureStatisticsDao {
public List<Object[]> getConfigStateStatistics( ) ;
}

View File

@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.nis.web.dao.configuration.statistics.ConfigureStatisticsDao" >
<select id="getConfigStateStatistics" resultType="map">
select service_id service,
sum(case when c.cfg_state =1 then 1 else 0 end) as approved,
sum(case when c.cfg_state =2 then 1 else 0 end) as unapproved,
sum(case when c.cfg_state =3 then 1 else 0 end) as cancle_approved,
sum(case when c.cfg_state =0 then 1 else 0 end) as created,
sum(case when c.cfg_state =-1 then 1 else 0 end) as deleted
from cfg_num_statistics c
group by service_id;
</select>
</mapper>

View File

@@ -0,0 +1,28 @@
package com.nis.web.service.configuration.statistics;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.nis.domain.configuration.AreaIpCfg;
import com.nis.domain.configuration.BaseIpCfg;
import com.nis.domain.configuration.NumBoundaryCfg;
import com.nis.util.Constants;
import com.nis.web.dao.configuration.NumCfgDao;
import com.nis.web.dao.configuration.statistics.ConfigureStatisticsDao;
import com.nis.web.service.CrudService;
/**
*配置统计service
*/
@Service
public class ConfigureStatisticsService extends CrudService<NumCfgDao,NumBoundaryCfg> {
@Autowired
protected ConfigureStatisticsDao configureStatisticsDao;
public List<Object[]> getConfigStateStatistics(){
return configureStatisticsDao.getConfigStateStatistics();
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -546,6 +546,7 @@ av_sample_voip_control=VoIP sample control
av_sample_audio_porn_control=audio porn sample control
av_sample_vedio_porn_control=vedio porn sample control
av_sample_control=sample control
configure_statistics_info=Configure statistics info
harm_level=harm level
src_file=src file
select_file=please select file
@@ -728,3 +729,90 @@ total_file_upload_size_error=The total size of uploaded files is %s,allowing the
file_upload_type_error=%s file type of error,allowing uploaded file type with %s!
file_upload_error=File upload failure !
#=============multipart upload error info=================
#=============function_service_dict==>service_name=================
audio_sample_reject=Audio and video sample control
audio_sample_monit=Audio and video sample monitoring
video_sample_reject=Video sample control
video_sample_monit=Video sample monitoring
pic_sample_reject=Picture sample control
pic_sample_monit=Picture sample monitoring
voip_sample_reject=VoIp sample control
voip_sample_monit=VoIp sample monitoring
audio_pornography_sample_reject=Audio pornography control
audio_pornography_sample_monit=Audio pornography monitoring
video_pornography_sample_reject=Video pornography control
video_pornography_sample_monit=Video pornography monitoring
ip_white_monit=IP address white list monitoring
ip_white_reject=IP address white list control
ip_white_whitelist=IP address white list
av_voip_ip_reject=Audio and video VoIp control
av_voip_ip_monit=Audio and video VoIp monitoring
website_http_reject=Web site http control
website_http_monit=Web site http monitoring
domain_white_whitelist=Global domain name white list
av_content_ip_reject=Audio and video content IP control
av_content_ip_monit=Audio and video content IP monitoring
ip_reject=IP configure control
ip_monit=IP configure monitoring
ip_drop=IP configure drop
ssl_monit=SSL monitoring
ssl_reject=SSL control
av_pic_ip_reject=Audio and video picture IP control
av_pic_ip_monit=Audio and video picture IP monitoring
av_content_url_reject=Audio and video content url control
av_content_url_monit=Audio and video content url monitoring
av_pic_url_reject=Audio and video picture url control
av_pic_url_monit=Audio and video picture url monitoring
ip_loop=IP configure backflow
website_dns_reject=Web sit dns control
website_dns_monit=Web sit dns monitoring
mail_reject=mail control
mail_monit=mail monitoring
ssh_monit=SSH monitoring
ssh_reject=SSH control
ftp_monit=FTP monitoring
ftp_reject=FTP control
openvpn_reject=OpenVPN control
openvpn_monit=OpenVPN monitoring
l2tp_reject=L2TP control
l2tp_monit=L2TP monitoring
pptp_reject=PPTP control
pptp_monit=PPTP monitoring
socks_reject=SOCKS control
socks_monit=SOCKS monitoring
gre_drop=GRE drop
gre_monit=GRE monitoring
ike_drop=IKE drop
ike_monit=IKE monitoring
ipsec_drop=IPSEC drop
ipsec_monit=IPSEC monitoring
bgp_reject=BGP control
bgp_monit=BGP monitoring
file_transfer_digest_monit=File transfer summary monitoring
file_transfer_digest_reject=File transfer summary control
xmpp_monit=XMPP monitoring
xmpp_reject=XMPP control
ip_intercepter_monit=IP intercepter
domain_monit=Domain intercepter
dns_strategy_reject=DNS response strategy control
proxy_http_req_body_replace=HTTP request content replacement
proxy_http_res_body_replace=PXYHTTP response content replacement
dns_fake_ip_reject=DNS fake IP control
app_strategy_reject=APP strategy control
app_strategy_ratelimit=APP strategy speed limit
proxy_ip_redirect=IP redirect
proxy_ip_forward=IP forward
app_protocol_ip_reject=APP protocol IP control
app_http_feature_monit=APP HTTP feature monitoring
app_domain_feature_monit=APP domain feature monitoring
app_byte_feature_monit=APP byte feature monitoring
proxy_domain_forward=Domain forward
ip_ratelimit=IP speed limit
domain_ratelimit=Domain speed limit
ip_complex_loop=IP complex
http_redirect=HTTP redirect
ddos_ip_drop=DDOS IP
ip_reuse_adress_pool_loop=IP reuse address pool
app_strategy_monit=APP strategy monitoring
app_strategy_drop=APP strategy drop
#=============function_service_dict==>service_name=================

View File

@@ -562,6 +562,7 @@ av_sample_voip_control=VoIP\u6837\u4F8B\u7BA1\u63A7
av_sample_audio_porn_control=\u97F3\u9891\u8272\u60C5\u6837\u4F8B\u7BA1\u63A7
av_sample_vedio_porn_control=\u89C6\u9891\u8272\u60C5\u6837\u4F8B\u7BA1\u63A7
av_sample_control=\u6837\u4F8B\u7BA1\u63A7
configure_statistics_info=\u914D\u7F6E\u7EDF\u8BA1\u4FE1\u606F
harm_level=\u5371\u5BB3\u7A0B\u5EA6
src_file=\u6E90\u6587\u4EF6
select_file=\u8BF7\u9009\u62E9\u4E0A\u4F20\u6587\u4EF6
@@ -772,7 +773,7 @@ not_number=%s\u5FC5\u987B\u4E3A\u6570\u5B57
#=============region_value,config form title=================
av_sample_audio=\u97F3\u9891\u6837\u4F8B
av_sample_vedio=\u89C6\u9891\u6837\u4F8B
av_sample_pitrue=\u56FE\u7247\u6837\u4F8B
av_sample_picture=\u56FE\u7247\u6837\u4F8B
av_sample_voip=voip\u6837\u4F8B
av_sample_audio_porn=\u97F3\u9891\u8272\u60C5\u573A\u666F\u6837\u4F8B
av_sample_vedio_porn=\u89C6\u9891\u8272\u60C5\u573A\u666F\u6837\u4F8B
@@ -845,3 +846,175 @@ total_file_upload_size_error=\u4E0A\u4F20\u6587\u4EF6\u7684\u603B\u5927\u5C0F\u6
file_upload_type_error=%s\u6587\u4EF6\u7C7B\u578B\u51FA\u9519\uFF0C\u5141\u8BB8\u4E0A\u4F20\u7684\u6587\u4EF6\u7C7B\u578B\u6709%s\uFF01
file_upload_error=\u6587\u4EF6\u4E0A\u4F20\u5931\u8D25\uFF01
#=============multipart upload error info=================
audio_sample_reject=\u97F3\u9891\u6837\u4F8B\u7BA1\u63A7
audio_sample_monit=\u97F3\u9891\u6837\u4F8B\u76D1\u6D4B
video_sample_reject=\u89C6\u9891\u6837\u4F8B\u7BA1\u63A7
video_sample_monit=\u89C6\u9891\u6837\u4F8B\u76D1\u6D4B
pic_sample_reject=\u56FE\u7247\u6837\u4F8B\u7BA1\u63A7
pic_sample_monit=\u56FE\u7247\u6837\u4F8B\u76D1\u6D4B
voip_sample_reject=VoIP\u6837\u4F8B\u7BA1\u63A7
voip_sample_monit=VoIP\u6837\u4F8B\u76D1\u6D4B
audio_pornography_sample_reject=\u97F3\u9891\u8272\u60C5\u6837\u4F8B\u7BA1\u63A7
audio_pornography_sample_monit=\u97F3\u9891\u8272\u60C5\u6837\u4F8B\u76D1\u6D4B
video_pornography_sample_reject=\u89C6\u9891\u8272\u60C5\u6837\u4F8B\u7BA1\u63A7
video_pornography_sample_monit=\u89C6\u9891\u8272\u60C5\u6837\u4F8B\u76D1\u6D4B
ip_white_monit=IP\u5730\u5740\u767D\u540D\u5355\u76D1\u6D4B
ip_white_reject=IP\u5730\u5740\u767D\u540D\u5355\u7BA1\u63A7
ip_white_whitelist=IP\u5730\u5740\u767D\u540D\u5355
av_voip_ip_reject=\u97F3\u89C6\u9891VoIP IP\u7BA1\u63A7
av_voip_ip_monit=\u97F3\u89C6\u9891VoIP IP\u76D1\u6D4B
website_http_reject=\u7F51\u7AD9HTTP\u7BA1\u63A7
website_http_monit=\u7F51\u7AD9HTTP\u76D1\u6D4B
domain_white_whitelist=\u5168\u5C40\u57DF\u540D\u767D\u540D\u5355
av_content_ip_reject=\u97F3\u89C6\u9891\u5185\u5BB9IP\u914D\u7F6E\u7BA1\u63A7
av_content_ip_monit=\u97F3\u89C6\u9891\u5185\u5BB9IP\u914D\u7F6E\u76D1\u6D4B
ip_reject=IP\u914D\u7F6E\u7BA1\u63A7
ip_monit=IP\u914D\u7F6E\u76D1\u6D4B
ip_drop=IP\u914D\u7F6E\u4E22\u5F03
ssl_monit=SSL\u76D1\u6D4B
ssl_reject=SSL\u7BA1\u63A7
av_pic_ip_reject=\u97F3\u89C6\u9891\u56FE\u7247IP\u914D\u7F6E\u7BA1\u63A7
av_pic_ip_monit=\u97F3\u89C6\u9891\u56FE\u7247IP\u914D\u7F6E\u76D1\u6D4B
av_content_url_reject=\u97F3\u89C6\u9891\u5185\u5BB9URL\u914D\u7F6E\u7BA1\u63A7
av_content_url_monit=\u97F3\u89C6\u9891\u5185\u5BB9URL\u914D\u7F6E\u76D1\u6D4B
av_pic_url_reject=\u97F3\u89C6\u9891\u56FE\u7247URL\u914D\u7F6E\u7BA1\u63A7
av_pic_url_monit=\u97F3\u89C6\u9891\u56FE\u7247URL\u914D\u7F6E\u76D1\u6D4B
ip_loop=IP\u914D\u7F6E\u56DE\u6D41
website_dns_reject=\u7F51\u7AD9DNS\u7BA1\u63A7
website_dns_monit=\u7F51\u7AD9DNS\u76D1\u6D4B
mail_reject=\u90AE\u4EF6\u7BA1\u63A7
mail_monit=\u90AE\u4EF6\u76D1\u6D4B
ssh_monit=ssh\u76D1\u6D4B
ssh_reject=ssh\u7BA1\u63A7
ftp_monit=FTP\u76D1\u6D4B
ftp_reject=FTP\u7BA1\u63A7
openvpn_reject=openvpn\u7BA1\u63A7
openvpn_monit=openvpn\u76D1\u6D4B
l2tp_reject=l2tp\u7BA1\u63A7
l2tp_monit=l2tp\u76D1\u6D4B
pptp_reject=pptp\u7BA1\u63A7
pptp_monit=pptp\u76D1\u6D4B
socks_reject=SOCKS\u7BA1\u63A7
socks_monit=socks\u76D1\u6D4B
gre_drop=GRE\u4E22\u5F03
gre_monit=GRE\u76D1\u6D4B
ike_drop=ike\u4E22\u5F03
ike_monit=ike\u76D1\u6D4B
ipsec_drop=IPSEC\u4E22\u5F03
ipsec_monit=IPSEC\u76D1\u6D4B
bgp_reject=BGP\u7BA1\u63A7
bgp_monit=BGP\u76D1\u6D4B
file_transfer_digest_monit=\u6587\u4EF6\u4F20\u8F93\u6458\u8981\u914D\u7F6E\u76D1\u6D4B
file_transfer_digest_reject=\u6587\u4EF6\u4F20\u8F93\u6458\u8981\u914D\u7F6E\u7BA1\u63A7
xmpp_monit=XMPP\u76D1\u6D4B
xmpp_reject=xmpp\u7BA1\u63A7
ip_intercepter_monit=IP\u62E6\u622A
domain_monit=\u57DF\u540D\u62E6\u622A
dns_strategy_reject=DNS\u54CD\u5E94\u7B56\u7565\u7BA1\u63A7
proxy_http_req_body_replace=PXY HTTP\u8BF7\u6C42\u5185\u5BB9\u66FF\u6362
proxy_http_res_body_replace=PXY HTTP\u54CD\u5E94\u5185\u5BB9\u66FF\u6362
dns_fake_ip_reject=DNS\u6B3A\u9A97Ip\u7BA1\u63A7
app_strategy_reject=APP\u7B56\u7565\u7BA1\u63A7
app_strategy_ratelimit=APP\u7B56\u7565\u9650\u901F
proxy_ip_redirect=PXY IP \u91CD\u5B9A\u5411
proxy_ip_forward=PXY IP\u8F6C\u53D1
app_protocol_ip_reject=APP\u534F\u8BAEIP\u7BA1\u63A7
app_http_feature_monit=APP HTTP\u7279\u5F81\u76D1\u6D4B
app_domain_feature_monit=APP\u57DF\u540D\u7279\u5F81\u76D1\u6D4B
app_byte_feature_monit=APP\u5B57\u8282\u7279\u5F81\u76D1\u6D4B
proxy_domain_forward=PXY\u57DF\u540D\u8F6C\u53D1
ip_ratelimit=IP\u9650\u6D41
domain_ratelimit=\u57DF\u540D\u9650\u6D41
ip_complex_loop=IP\u590D\u7528
http_redirect=HTTP\u91CD\u5B9A\u5411\u914D\u7F6E
ddos_ip_drop=DDOS\u76EE\u6807\u9632\u62A4IP
ip_reuse_adress_pool_loop=IP\u590D\u7528\u5730\u5740\u6C60\u914D\u7F6E
app_strategy_monit=APP\u7B56\u7565\u76D1\u6D4B
app_strategy_drop=APP\u7B56\u7565\u4E22\u5F03
#=============function_service_dict==>service_name=================
audio_sample_reject=\u97F3\u9891\u6837\u4F8B\u7BA1\u63A7
audio_sample_monit=\u97F3\u9891\u6837\u4F8B\u76D1\u6D4B
video_sample_reject=\u89C6\u9891\u6837\u4F8B\u7BA1\u63A7
video_sample_monit=\u89C6\u9891\u6837\u4F8B\u76D1\u6D4B
pic_sample_reject=\u56FE\u7247\u6837\u4F8B\u7BA1\u63A7
pic_sample_monit=\u56FE\u7247\u6837\u4F8B\u76D1\u6D4B
voip_sample_reject=VoIP\u6837\u4F8B\u7BA1\u63A7
voip_sample_monit=VoIP\u6837\u4F8B\u76D1\u6D4B
audio_pornography_sample_reject=\u97F3\u9891\u8272\u60C5\u6837\u4F8B\u7BA1\u63A7
audio_pornography_sample_monit=\u97F3\u9891\u8272\u60C5\u6837\u4F8B\u76D1\u6D4B
video_pornography_sample_reject=\u89C6\u9891\u8272\u60C5\u6837\u4F8B\u7BA1\u63A7
video_pornography_sample_monit=\u89C6\u9891\u8272\u60C5\u6837\u4F8B\u76D1\u6D4B
ip_white_monit=IP\u5730\u5740\u767D\u540D\u5355\u76D1\u6D4B
ip_white_reject=IP\u5730\u5740\u767D\u540D\u5355\u7BA1\u63A7
ip_white_whitelist=IP\u5730\u5740\u767D\u540D\u5355
av_voip_ip_reject=\u97F3\u89C6\u9891VoIP IP\u7BA1\u63A7
av_voip_ip_monit=\u97F3\u89C6\u9891VoIP IP\u76D1\u6D4B
website_http_reject=\u7F51\u7AD9HTTP\u7BA1\u63A7
website_http_monit=\u7F51\u7AD9HTTP\u76D1\u6D4B
domain_white_whitelist=\u5168\u5C40\u57DF\u540D\u767D\u540D\u5355
av_content_ip_reject=\u97F3\u89C6\u9891\u5185\u5BB9IP\u914D\u7F6E\u7BA1\u63A7
av_content_ip_monit=\u97F3\u89C6\u9891\u5185\u5BB9IP\u914D\u7F6E\u76D1\u6D4B
ip_reject=IP\u914D\u7F6E\u7BA1\u63A7
ip_monit=IP\u914D\u7F6E\u76D1\u6D4B
ip_drop=IP\u914D\u7F6E\u4E22\u5F03
ssl_monit=SSL\u76D1\u6D4B
ssl_reject=SSL\u7BA1\u63A7
av_pic_ip_reject=\u97F3\u89C6\u9891\u56FE\u7247IP\u914D\u7F6E\u7BA1\u63A7
av_pic_ip_monit=\u97F3\u89C6\u9891\u56FE\u7247IP\u914D\u7F6E\u76D1\u6D4B
av_content_url_reject=\u97F3\u89C6\u9891\u5185\u5BB9URL\u914D\u7F6E\u7BA1\u63A7
av_content_url_monit=\u97F3\u89C6\u9891\u5185\u5BB9URL\u914D\u7F6E\u76D1\u6D4B
av_pic_url_reject=\u97F3\u89C6\u9891\u56FE\u7247URL\u914D\u7F6E\u7BA1\u63A7
av_pic_url_monit=\u97F3\u89C6\u9891\u56FE\u7247URL\u914D\u7F6E\u76D1\u6D4B
ip_loop=IP\u914D\u7F6E\u56DE\u6D41
website_dns_reject=\u7F51\u7AD9DNS\u7BA1\u63A7
website_dns_monit=\u7F51\u7AD9DNS\u76D1\u6D4B
mail_reject=\u90AE\u4EF6\u7BA1\u63A7
mail_monit=\u90AE\u4EF6\u76D1\u6D4B
ssh_monit=ssh\u76D1\u6D4B
ssh_reject=ssh\u7BA1\u63A7
ftp_monit=FTP\u76D1\u6D4B
ftp_reject=FTP\u7BA1\u63A7
openvpn_reject=openvpn\u7BA1\u63A7
openvpn_monit=openvpn\u76D1\u6D4B
l2tp_reject=l2tp\u7BA1\u63A7
l2tp_monit=l2tp\u76D1\u6D4B
pptp_reject=pptp\u7BA1\u63A7
pptp_monit=pptp\u76D1\u6D4B
socks_reject=SOCKS\u7BA1\u63A7
socks_monit=socks\u76D1\u6D4B
gre_drop=GRE\u4E22\u5F03
gre_monit=GRE\u76D1\u6D4B
ike_drop=ike\u4E22\u5F03
ike_monit=ike\u76D1\u6D4B
ipsec_drop=IPSEC\u4E22\u5F03
ipsec_monit=IPSEC\u76D1\u6D4B
bgp_reject=BGP\u7BA1\u63A7
bgp_monit=BGP\u76D1\u6D4B
file_transfer_digest_monit=\u6587\u4EF6\u4F20\u8F93\u6458\u8981\u914D\u7F6E\u76D1\u6D4B
file_transfer_digest_reject=\u6587\u4EF6\u4F20\u8F93\u6458\u8981\u914D\u7F6E\u7BA1\u63A7
xmpp_monit=XMPP\u76D1\u6D4B
xmpp_reject=xmpp\u7BA1\u63A7
ip_intercepter_monit=IP\u62E6\u622A
domain_monit=\u57DF\u540D\u62E6\u622A
dns_strategy_reject=DNS\u54CD\u5E94\u7B56\u7565\u7BA1\u63A7
proxy_http_req_body_replace=PXY HTTP\u8BF7\u6C42\u5185\u5BB9\u66FF\u6362
proxy_http_res_body_replace=PXY HTTP\u54CD\u5E94\u5185\u5BB9\u66FF\u6362
dns_fake_ip_reject=DNS\u6B3A\u9A97Ip\u7BA1\u63A7
app_strategy_reject=APP\u7B56\u7565\u7BA1\u63A7
app_strategy_ratelimit=APP\u7B56\u7565\u9650\u901F
proxy_ip_redirect=PXY IP \u91CD\u5B9A\u5411
proxy_ip_forward=PXY IP\u8F6C\u53D1
app_protocol_ip_reject=APP\u534F\u8BAEIP\u7BA1\u63A7
app_http_feature_monit=APP HTTP\u7279\u5F81\u76D1\u6D4B
app_domain_feature_monit=APP\u57DF\u540D\u7279\u5F81\u76D1\u6D4B
app_byte_feature_monit=APP\u5B57\u8282\u7279\u5F81\u76D1\u6D4B
proxy_domain_forward=PXY\u57DF\u540D\u8F6C\u53D1
ip_ratelimit=IP\u9650\u6D41
domain_ratelimit=\u57DF\u540D\u9650\u6D41
ip_complex_loop=IP\u590D\u7528
http_redirect=HTTP\u91CD\u5B9A\u5411\u914D\u7F6E
ddos_ip_drop=DDOS\u76EE\u6807\u9632\u62A4IP
ip_reuse_adress_pool_loop=IP\u590D\u7528\u5730\u5740\u6C60\u914D\u7F6E
app_strategy_monit=APP\u7B56\u7565\u76D1\u6D4B
app_strategy_drop=APP\u7B56\u7565\u4E22\u5F03
#=============function_service_dict==>service_name=================

View File

@@ -59,7 +59,7 @@ $(function(){
},
errorContainer: "#messageBox",
errorPlacement: function(error, element) {
$("#messageBox").text("输入有误,请先更正。");
$("#messageBox").text("<spring:message code='enter_error'/>");
if (element.is(":checkbox")||element.is(":radio")||element.parent().is(".input-append")){
error.appendTo(element.parent().parent());
} else {

View File

@@ -14,7 +14,7 @@
<script type="text/javascript">
$(document).ready(function() {
window.frames['mainFrame'].location="${ctx}/configure/statistics/configureStateStatistics";
//国际化切换
var lang = "${cookie.Language.value }".toLowerCase();
var $obj;
@@ -105,7 +105,6 @@ function page_turn(id, functionId,level, name, url,obj){
App.scrollTo()
App.startPageLoading({animate:true});
//调入页面
if(url.indexOf("?")>0){
url = url+"&functionId="+functionId;
@@ -363,13 +362,24 @@ window.onresize=function(){
<div class="page-bar">
<ul class="page-breadcrumb">
<li><a href="index.html"><spring:message code="home"></spring:message></a> <i class="fa fa-circle"></i></li>
<li><a href="${ctx}/configure/statistics/configureStateStatistics" target="mainFrame"><spring:message code="home"></spring:message></a> <i class="fa fa-circle"></i></li>
</ul>
</div>
<iframe id="mainFrame" name="mainFrame" width="100%" onload="changeFrameHeight()" frameborder="0" srcolling="no">
浏览器不支持嵌入式框架或配置为不显示嵌入式框架。
<table id="contentTable" class="table table-striped table-bordered table-condensed text-nowrap">
<thead>
<tr>
<th><input type="checkbox" class="i-checks" id="checkAll"></th>
</tr>
</thead>
<tbody>
<tr>
<td></td>
</tr>
</tbody>
</table>
</iframe>

View File

@@ -0,0 +1,127 @@
<%@ page contentType="text/html;charset=UTF-8"%>
<%@ include file="/WEB-INF/include/taglib.jsp"%>
<html>
<head>
<style type="text/css">
.table > thead > tr > th {
vertical-align: bottom;
border-bottom: 2px solid #e7ecf1; }
.table > caption + thead > tr:first-child > th,
.table > caption + thead > tr:first-child > td,
.table > colgroup + thead > tr:first-child > th,
.table > colgroup + thead > tr:first-child > td,
.table > thead:first-child > tr:first-child > th,
.table > thead:first-child > tr:first-child > td {
border-top: 0;
background-color: #E9E9E9;
color: #333333;
height: 38px;
line-height: 38px;
padding-top: 0px;
padding-right: 10px;
padding-bottom: 0px;
padding-left: 10px;
}
.table > tbody + tbody {
border-top: 2px solid #D9D9D9; }
.table .table {
background-color: #fff; }
.table-condensed > thead > tr > th,
.table-condensed > thead > tr > td,
.table-condensed > tbody > tr > th,
.table-condensed > tbody > tr > td,
.table-condensed > tfoot > tr > th,
.table-condensed > tfoot > tr > td {
padding-left:10px; }
.table-bordered {
border: 1px solid #D9D9D9; }
.table-bordered > thead > tr > th,
.table-bordered > thead > tr > td,
.table-bordered > tbody > tr > th,
.table-bordered > tbody > tr > td,
.table-bordered > tfoot > tr > th,
.table-bordered > tfoot > tr > td {
border: 1px solid #D9D9D9; }
.table-bordered > thead > tr > th,
.table-bordered > thead > tr > td {
border-bottom-width: 2px; }
</style>
</head>
<title>index</title>
</head>
<body class="page-full-width">
<!--<input id="page_load_num" type="hidden" />
<div id="alert" class="modal hide fade">
<div class="modal-header" id="modal_title">
<button type="button" class="close" data-dismiss="modal"
aria-hidden="true"></button>
<h3>
Note
</h3>
</div>
<div class="modal-body" id="modal_body">
</div>
<div class="modal-footer">
<button type="button" id="OK" class="btn red"
onclick="statisticProtocol()">
<s:text name="button.confirm"/>
</button>
<button type="button" data-dismiss="modal" class="btn">
<s:text name="button.cancel"/>
</button>
</div>
</div> -->
<div class="page-content">
<font size="4"><i class="fa fa-cogs"><spring:message code="configure_statistics_info"/></i></font> <a style="color:#333333" href="${ctx}/configure/statistics/configureStateStatistics" class="icon-refresh pull-right"> </a>
<h5 class="page-header"></h5>
<table id="contentTable" class="table table-striped table-bordered table-condensed text-nowrap">
<thead>
<tr>
<th><spring:message code="service_name"/></th>
<th><spring:message code="approved"/></th>
<th><spring:message code="unapproved"/></th>
<th><spring:message code="cancel_approved"/></th>
<th><spring:message code="created"/></th>
<th><spring:message code="deleted"/></th>
</tr>
</thead>
<tbody>
<c:forEach items="${configStatistics }" var="statistics" varStatus="status" step="1">
<tr>
<td>
<c:forEach items="${serviceList }" var="serviceDict" varStatus="status" step="1">
<c:if test="${serviceDict.serviceId eq statistics.service }">
<spring:message code="${serviceDict.serviceName }"/>
</c:if>
</c:forEach>
</td>
<td>
${statistics.approved }
</td>
<td>
${statistics.unapproved }
</td>
<td>
${statistics.cancle_approved }
</td>
<td>
${statistics.created }
</td>
<td>
${statistics.deleted }
</td>
</tr>
</c:forEach>
</tbody>
</table>
</div>
</body>
</html>