diff --git a/src/main/java/com/nis/domain/SysUserWarn.java b/src/main/java/com/nis/domain/SysUserWarn.java new file mode 100644 index 000000000..177007e97 --- /dev/null +++ b/src/main/java/com/nis/domain/SysUserWarn.java @@ -0,0 +1,92 @@ +package com.nis.domain; + +import java.util.Date; + +import javax.xml.bind.annotation.XmlTransient; + +import org.apache.poi.ss.formula.functions.T; + +import com.fasterxml.jackson.annotation.JsonIgnore; + +public class SysUserWarn { + + private String serviceId; //业务Id + private String serviceDesc;//业务描述 + private Integer interfaceCfgTotal;//界面配置数量 + + private Integer systemCfgTotal;//服务端配置数量 + + private Date time;//时间 + private String remark;//备注 + + private Integer id;//serviceID + private String tableName;//表名 + /** + * 当前实体分页对象 + */ + protected Page page; + + public String getServiceId() { + return serviceId; + } + public void setServiceId(String serviceId) { + this.serviceId = serviceId; + } + public String getServiceDesc() { + return serviceDesc; + } + public void setServiceDesc(String serviceDesc) { + this.serviceDesc = serviceDesc; + } + public Integer getInterfaceCfgTotal() { + return interfaceCfgTotal; + } + public void setInterfaceCfgTotal(Integer interfaceCfgTotal) { + this.interfaceCfgTotal = interfaceCfgTotal; + } + public Integer getSystemCfgTotal() { + return systemCfgTotal; + } + public void setSystemCfgTotal(Integer systemCfgTotal) { + this.systemCfgTotal = systemCfgTotal; + } + public Date getTime() { + return time; + } + public void setTime(Date time) { + this.time = time; + } + public String getRemark() { + return remark; + } + public void setRemark(String remark) { + this.remark = remark; + } + public Integer getId() { + return id; + } + public void setId(Integer id) { + this.id = id; + } + public String getTableName() { + return tableName; + } + public void setTableName(String tableName) { + this.tableName = tableName; + } + @JsonIgnore + @XmlTransient + public Page getPage() { + if (page == null){ + page = new Page(); + } + return page; + } + + public Page setPage(Page page) { + this.page = page; + return page; + } + + +} diff --git a/src/main/java/com/nis/domain/SysUserWarnData.java b/src/main/java/com/nis/domain/SysUserWarnData.java new file mode 100644 index 000000000..c66ae9e19 --- /dev/null +++ b/src/main/java/com/nis/domain/SysUserWarnData.java @@ -0,0 +1,46 @@ +package com.nis.domain; + +import java.util.List; +import java.util.Map; + +public class SysUserWarnData { + + private Map> effective; + private Integer effectiveCount; + private Map> obsolete; + private Integer obsoleteCount; + + + public Map> getEffective() { + return effective; + } + public void setEffective(Map> effective) { + this.effective = effective; + } + public Integer getEffectiveCount() { + return effectiveCount; + } + public void setEffectiveCount(Integer effectiveCount) { + this.effectiveCount = effectiveCount; + } + public Map> getObsolete() { + return obsolete; + } + public void setObsolete(Map> obsolete) { + this.obsolete = obsolete; + } + public Integer getObsoleteCount() { + return obsoleteCount; + } + public void setObsoleteCount(Integer obsoleteCount) { + this.obsoleteCount = obsoleteCount; + } + @Override + public String toString() { + return "SysUserWarnData [effective=" + effective + ", effectiveCount=" + effectiveCount + ", obsolete=" + + obsolete + ", obsoleteCount=" + obsoleteCount + "]"; + } + + + +} diff --git a/src/main/java/com/nis/domain/SysUserWarnRecvData.java b/src/main/java/com/nis/domain/SysUserWarnRecvData.java new file mode 100644 index 000000000..ec15535c6 --- /dev/null +++ b/src/main/java/com/nis/domain/SysUserWarnRecvData.java @@ -0,0 +1,67 @@ +package com.nis.domain; + +public class SysUserWarnRecvData { + private Integer status; + private Integer businessCode; + private String reason; + private String msg; + private String fromuri; + private String logSource; + private String traceCode; + private SysUserWarnData data; + + + public Integer getStatus() { + return status; + } + public void setStatus(Integer status) { + this.status = status; + } + public Integer getBusinessCode() { + return businessCode; + } + public void setBusinessCode(Integer businessCode) { + this.businessCode = businessCode; + } + public String getReason() { + return reason; + } + public void setReason(String reason) { + this.reason = reason; + } + public String getMsg() { + return msg; + } + public void setMsg(String msg) { + this.msg = msg; + } + public String getFromuri() { + return fromuri; + } + public void setFromuri(String fromuri) { + this.fromuri = fromuri; + } + public String getLogSource() { + return logSource; + } + public void setLogSource(String logSource) { + this.logSource = logSource; + } + public String getTraceCode() { + return traceCode; + } + public void setTraceCode(String traceCode) { + this.traceCode = traceCode; + } + public SysUserWarnData getData() { + return data; + } + public void setData(SysUserWarnData data) { + this.data = data; + } + + + + + +} diff --git a/src/main/java/com/nis/util/Constants.java b/src/main/java/com/nis/util/Constants.java index 195e5d2e6..9fd57f34f 100644 --- a/src/main/java/com/nis/util/Constants.java +++ b/src/main/java/com/nis/util/Constants.java @@ -834,4 +834,8 @@ public final class Constants { * 配置保护名单字典key */ public static final String CACHE_PROTECTION_LIST_DICT = "protetionListDict"; + /** + * 管理员用户预警查询服务配置总量接口 + */ + public static final String CONFIG_BY_SERVICE = Configurations.getStringProperty("getConfigByService",""); } diff --git a/src/main/java/com/nis/web/controller/sys/StatisticSysUserWarnNumber.java b/src/main/java/com/nis/web/controller/sys/StatisticSysUserWarnNumber.java new file mode 100644 index 000000000..6e4a5860b --- /dev/null +++ b/src/main/java/com/nis/web/controller/sys/StatisticSysUserWarnNumber.java @@ -0,0 +1,110 @@ +package com.nis.web.controller.sys; + +import java.util.ArrayList; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import javax.servlet.http.HttpServletRequest; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; +import org.springframework.beans.factory.annotation.Autowired; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.reflect.TypeToken; +import com.nis.domain.SysUserWarn; +import com.nis.domain.SysUserWarnData; +import com.nis.domain.SysUserWarnRecvData; +import com.nis.util.Constants; +import com.nis.util.ServiceConfigTemplateUtil; +import com.nis.util.httpclient.HttpClientUtil; +import com.nis.web.service.SysUserWarnService; +/** + * 定时查询 界面配置总量和 服务配置总量 并添加到 sys_user_warn表中 + * + * + */ +public class StatisticSysUserWarnNumber { + + private Logger logger = Logger.getLogger(this.getClass()); + + + @Autowired + protected SysUserWarnService sysUserWarnService; + + @Autowired + private HttpServletRequest request; + + + + public void insertTotalInfo() { + logger.info("定时统计业务号的界面配置总量和服务配置总量-开始。。。。。。。。。。。。。。"); + long start=System.currentTimeMillis(); + //获取界面配置的所有业务信息 + List> serviceList = ServiceConfigTemplateUtil.getServiceList(); + getSysData(serviceList); + long end=System.currentTimeMillis(); + logger.info("定时统计业务号的界面配置总量和服务配置总量-结束:"+(end-start)+"。。。。。。。。。。。。。。"); + + } + + + public void getSysData(List> serviceList){ + //调用服务端接口,查询所有业务服务端的配置总量 + try{ + Map params = new HashMap(); + params.put("service", -1); + String url = Constants.SERVICE_URL + Constants.CONFIG_BY_SERVICE; + String recv = HttpClientUtil.getMsg(url, params, request); + if (StringUtils.isNotBlank(recv)) { + Gson gson = new GsonBuilder().create(); + SysUserWarnRecvData fromJson = gson.fromJson(recv, new TypeToken() { + }.getType()); + if (fromJson.getStatus().intValue() == 200) { + SysUserWarnData data = fromJson.getData(); + Map> effective = data.getEffective(); + List listTotal =new ArrayList(); + for (Map map1 : serviceList) { + SysUserWarn entity=new SysUserWarn(); + entity.setId(Integer.parseInt(map1.get("id").toString())); + entity.setTableName(map1.get("tableName").toString()); + //根据serviceID和表名查询界面各个业务的配置数量 + Integer cfgCount = sysUserWarnService.getCfgCount(entity); + //查询服务端的各个业务的配置数量 + List list = effective.get(map1.get("id")); + SysUserWarn sysUserWarn=new SysUserWarn(); + sysUserWarn.setServiceId(map1.get("id").toString()); + sysUserWarn.setServiceDesc(map1.get("desc").toString()); + if(cfgCount>0){ + sysUserWarn.setInterfaceCfgTotal(cfgCount); + }else{ + sysUserWarn.setInterfaceCfgTotal(0); + } + if(list !=null && list.size()>0){ + sysUserWarn.setSystemCfgTotal(list.size()); + }else { + sysUserWarn.setSystemCfgTotal(0); + } + sysUserWarn.setTime(new Date()); + listTotal.add(sysUserWarn); + } + //判断表中是否有数据 + Integer total = sysUserWarnService.getAllInfoCount(); + if(total !=null && total>0){//说明有数据 先删除 后添加 + sysUserWarnService.deleteAllData(); + sysUserWarnService.insert(listTotal); + }else{// 没有 直接 添加 + sysUserWarnService.insert(listTotal); + } + } + } + + }catch(Exception e) { + logger.error("更新所有业务的配置数量失败", e); + + } + } +} diff --git a/src/main/java/com/nis/web/controller/sys/SysUserWarnController.java b/src/main/java/com/nis/web/controller/sys/SysUserWarnController.java new file mode 100644 index 000000000..4e811fcd0 --- /dev/null +++ b/src/main/java/com/nis/web/controller/sys/SysUserWarnController.java @@ -0,0 +1,61 @@ +package com.nis.web.controller.sys; + +import java.util.List; +import java.util.Map; +import java.util.Properties; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import org.apache.shiro.authz.annotation.RequiresPermissions; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.ModelAttribute; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import com.nis.domain.Page; +import com.nis.domain.SysUserWarn; +import com.nis.util.ServiceConfigTemplateUtil; +import com.nis.web.controller.BaseController; +import com.nis.web.service.SysUserWarnService; + +@Controller +@RequestMapping(value = "${adminPath}/sys/warn") +public class SysUserWarnController extends BaseController{ + + @Autowired + protected SysUserWarnService sysUserWarnService; + + + + @RequiresPermissions("sys:warnList:view") + @RequestMapping(value = {"userWarnList", ""}) + public String list(@ModelAttribute("warn") SysUserWarn warn, Model model,HttpServletRequest request + ,HttpServletResponse response) { + Page pageCondition = new Page(request, response,"r"); + Properties msgProp = getMsgProp(); + Page page = sysUserWarnService.getAllList(pageCondition,warn,msgProp); + model.addAttribute("warn", warn); + model.addAttribute("page", page); + return "/sys/sysUserWarnList"; + } + + @RequiresPermissions("sys:warnList:view") + @ResponseBody + @RequestMapping(value = {"serviceSum", ""}) + public SysUserWarn findServiceSum() { + SysUserWarn findServiceSum = sysUserWarnService.findServiceSum(); + return findServiceSum; + } + + public static void main(String[] args) { + + List> serviceList = ServiceConfigTemplateUtil.getServiceList(); + System.out.println(serviceList); + for (Map map : serviceList) { + System.out.println(map.get("id")); + System.out.println(map.get("tableName")); + } + } +} diff --git a/src/main/java/com/nis/web/dao/SysUserWarnDao.java b/src/main/java/com/nis/web/dao/SysUserWarnDao.java new file mode 100644 index 000000000..3978a7224 --- /dev/null +++ b/src/main/java/com/nis/web/dao/SysUserWarnDao.java @@ -0,0 +1,22 @@ +package com.nis.web.dao; + +import java.util.List; + +import com.nis.domain.SysUserWarn; + +@MyBatisDao +public interface SysUserWarnDao extends CrudDao{ + + //查询所有的数据 + public List getAllList(SysUserWarn entity); + //查询总的记录数 + public Integer getAllInfoCount(); + //查询 所有数据中界面总量 和 服务总量 + public SysUserWarn getAllSum(SysUserWarn entity); + //根据serviceID和表名查询业务配置的数量 + public Integer getCfgCount(SysUserWarn entity); + //新增 + public int insert(List list); + //删除所有的数据 + public int deleteAllData(); +} diff --git a/src/main/java/com/nis/web/dao/SysUserWarnDao.xml b/src/main/java/com/nis/web/dao/SysUserWarnDao.xml new file mode 100644 index 000000000..d38d881d8 --- /dev/null +++ b/src/main/java/com/nis/web/dao/SysUserWarnDao.xml @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + insert into sys_user_warn ( + service_id, + service_desc, + interface_cfg_total, + system_cfg_total, + time, + remark + )values + + ( + #{item.serviceId,jdbcType=VARCHAR}, + #{item.serviceDesc,jdbcType=VARCHAR}, + #{item.interfaceCfgTotal,jdbcType=INTEGER}, + #{item.systemCfgTotal,jdbcType=INTEGER}, + #{item.time,jdbcType=TIMESTAMP}, + #{item.remark,jdbcType=VARCHAR} + ) + + + + + + + + delete from sys_user_warn + + + \ No newline at end of file diff --git a/src/main/java/com/nis/web/service/SysUserWarnService.java b/src/main/java/com/nis/web/service/SysUserWarnService.java new file mode 100644 index 000000000..b66abd20c --- /dev/null +++ b/src/main/java/com/nis/web/service/SysUserWarnService.java @@ -0,0 +1,72 @@ +package com.nis.web.service; + +import java.util.List; +import java.util.Properties; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import com.nis.domain.Page; +import com.nis.domain.SysUserWarn; +import com.nis.web.dao.SysUserWarnDao; + +@Service +public class SysUserWarnService extends BaseService{ + + @Autowired + private SysUserWarnDao sysUserWarnDao; + + //查询所有的数据 + public Page getAllList(Page page,SysUserWarn entity,Properties msgProp){ + + entity.setPage(page); + List allList = sysUserWarnDao.getAllList(entity); + if(allList !=null && allList.size()>0){ + SysUserWarn obj=new SysUserWarn(); + obj.setServiceId(entity.getServiceId()); + SysUserWarn allSum = sysUserWarnDao.getAllSum(obj); + SysUserWarn sysWarn=new SysUserWarn(); + String report_total = msgProp.getProperty("report_total"); + sysWarn.setServiceId(report_total); + sysWarn.setServiceDesc("--"); + sysWarn.setInterfaceCfgTotal(allSum.getInterfaceCfgTotal()); + sysWarn.setSystemCfgTotal(allSum.getSystemCfgTotal()); + sysWarn.setTime(allList.get(0).getTime()); + allList.add(0, sysWarn); + } + + page.setList(allList); + return page; + } + //根据serviceID和表名查询业务配置的数量 + public Integer getAllInfoCount(){ + + return sysUserWarnDao.getAllInfoCount(); + } + + //根据serviceID和表名查询业务配置的数量 + public Integer getCfgCount(SysUserWarn entity){ + + return sysUserWarnDao.getCfgCount(entity); + } + //新增 + @Transactional(readOnly=false,rollbackFor=RuntimeException.class) + public int insert(List list){ + return sysUserWarnDao.insert(list); + + } + //删除所有的数据 + @Transactional(readOnly=false,rollbackFor=RuntimeException.class) + public int deleteAllData(){ + return sysUserWarnDao.deleteAllData(); + + } + //查询 所有业务 界面总量和服务总量的和 + public SysUserWarn findServiceSum(){ + SysUserWarn obj=new SysUserWarn(); + SysUserWarn allSum = sysUserWarnDao.getAllSum(obj); + return allSum; + } + +} diff --git a/src/main/resources/messages/message_en.properties b/src/main/resources/messages/message_en.properties index aad27ea02..611155593 100644 --- a/src/main/resources/messages/message_en.properties +++ b/src/main/resources/messages/message_en.properties @@ -1481,7 +1481,7 @@ reedit=Please re-edit! intercep_domain_required_tip=Domain is required packets=packets GByte=GByte -#\u5B9A\u65F6\u5668\u53C2\u6570 +#\u5b9a\u65f6\u5668\u53c2\u6570 interval=Recure every month=Months day=Days @@ -1503,4 +1503,7 @@ cancel_all=Cancel all configurations! pre_version=Previous Version approved_all=Approve all configurations! protection_list_manage=Protection List Manage -effective=Effective \ No newline at end of file +effective=Effective +admin_user_warn=Admin User Warn +interface_total=Interface Total +service_total=Service Total \ No newline at end of file diff --git a/src/main/resources/messages/message_ru.properties b/src/main/resources/messages/message_ru.properties index 8514bf337..0da2cf990 100644 --- a/src/main/resources/messages/message_ru.properties +++ b/src/main/resources/messages/message_ru.properties @@ -1323,7 +1323,7 @@ address_pool_id=ID \u043f\u0443\u043b \u0430\u0434\u0440\u0435\u0441\u043e\u0432 outgoing_unicast_total_size=\u0417\u0430\u043a\u0430\u0447\u0430\u0442\u044c \u0431\u0430\u0439\u0442\u044b voip_sample_reject=\u0411\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043e\u0431\u0440\u0430\u0437\u0446\u043e\u0432 VOIP \u0430\u0443\u0434\u0438\u043e available_ip=\u0414\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0439 IP -block_by_app_server_ip=DNS-\u0421\u043F\u0443\u0444\u0438\u043D\u0433 +block_by_app_server_ip=DNS-\u0421\u043f\u0443\u0444\u0438\u043d\u0433 certificate_file=\u0424\u0430\u0439\u043b \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u0430 address_pool=\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043f\u0443\u043b\u0430 \u0430\u0434\u0440\u0435\u0441\u043e\u0432 transfer_bytes=\u041f\u0435\u0440\u0435\u0434\u0430\u0447\u0430 \u0431\u0430\u0439\u0442\u043e\u0432 @@ -1370,7 +1370,7 @@ keyword_log_tips=\u041a\u043e\u0433\u0434\u0430 \u0440\u0435\u0437\u0443\u043b\u conn_record=\u0417\u0430\u043f\u0438\u0441\u0438 \u041f\u043e\u0434\u043a\u044e\u0447\u0435\u043d\u0438\u0439 bps=\u0413\u0431\u0438\u0442/\u0441 bps_percent=Bps Percent -pps=\u041F\u0430\u043A\u0435\u0442/\u0441 +pps=\u041f\u0430\u043a\u0435\u0442/\u0441 pps_percent=pps Percent spoofing_ip_object=\u041f\u0443\u043b IP \u0421\u043f\u0443\u0444\u0438\u043d\u0433 spoofing_ip_policy=IP \u0421\u043f\u0443\u0444\u0438\u043d\u0433 @@ -1382,13 +1382,13 @@ d_asn=DASN asn_conn_report=\u0421\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0430 ASN https_url_report=\u0421\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0430 HTTP(s) URL url=URL -sum=\u0421\u0443\u043C\u043C\u0430 +sum=\u0421\u0443\u043c\u043c\u0430 url_count=\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e URL ip_range_report=\u0421\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0430 \u0425\u043e\u0441\u0442\u043e\u0432 \u0432 \u0433\u0440\u0430\u043d\u0438\u0446\u0430\u0445 \u0438 \u0437\u0430 \u0433\u0440\u0430\u043d\u0438\u0446\u0435\u0439 ip_start=\u041d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0439 IP ip_end=\u041a\u043e\u043d\u0435\u0447\u043d\u044b\u0439 IP -ip_start_num=\u041A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E \u041D\u0430\u0447\u0430\u043B\u044C\u043D\u044B\u0445 IP-\u0430\u0434\u0440\u0435\u0441\u043E\u0432 -ip_end_num=\u041A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E \u041A\u043E\u043D\u0435\u0447\u043D\u044B\u0445 IP-\u0430\u0434\u0440\u0435\u0441\u043E\u0432 +ip_start_num=\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u041d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0445 IP-\u0430\u0434\u0440\u0435\u0441\u043e\u0432 +ip_end_num=\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u041a\u043e\u043d\u0435\u0447\u043d\u044b\u0445 IP-\u0430\u0434\u0440\u0435\u0441\u043e\u0432 ip_sub=IP-\u043f\u043e\u0434\u0441\u0435\u0442\u044c start_ip=\u041d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0439 IP end_ip=\u041a\u043e\u043d\u0435\u0447\u043d\u044b\u0439 IP @@ -1403,21 +1403,21 @@ ip_spoofing_group_manage=\u0423\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\ min_tcp=\u041c\u0438\u043d. max_tcp=\u041c\u0430\u043a\u0441. APP_TCP_SESSION_BYTE=\u0421\u0435\u0430\u043d\u0441 -ip_count=\u0415\u0434\u0438\u043D\u0441\u0442\u0432\u0435\u043D\u043D\u044B\u0439 IP-\u0430\u0434\u0440\u0435\u0441 +ip_count=\u0415\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 IP-\u0430\u0434\u0440\u0435\u0441 counnection_count=\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0439 asn=ASN Unique_num=\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u041a\u043b\u0438\u0435\u043d\u0442\u0430 IP ip=IP country=\u0421\u0442\u0440\u0430\u043d\u0430 unique_num=\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u041a\u043b\u0438\u0435\u043d\u0442\u0430 IP -import_limit_is=\u041C\u0430\u043A\u0441\u0438\u043C\u0430\u043B\u044C\u043D\u044B\u0439 \u0440\u0430\u0437\u043C\u0435\u0440 \u0438\u043C\u043F\u043E\u0440\u0442\u0430 -upload_limit_is=\u041E\u0433\u0440\u0430\u043D\u0438\u0447\u0435\u043D\u0438\u0435 \u0437\u0430\u0433\u0440\u0443\u0437\u043A\u0438 \u0444\u0430\u0439\u043B\u0430 -count=\u041F\u043E\u0434\u0441\u0447\u0435\u0442 -do_blacklist=\u0427\u0435\u0440\u043D\u044B\u0439 \u0421\u043F\u0438\u0441\u043E\u043A -l3_header_error=\u0422\u043E\u043B\u044C\u043A\u043E \u0447\u0435\u0442\u044B\u0440\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F \u043F\u0440\u0438\u0437\u043D\u0430\u043A\u0438 \u043C\u043E\u0433\u0443\u0442 \u0431\u044B\u0442\u044C \u0432\u0432\u0435\u0434\u0435\u043D\u044B \u0432 -IP_HEADER=IP \u0417\u0430\u0433\u043E\u043B\u043E\u0432\u043A\u0430 -ICMP_HEADER=ICMP \u0417\u0430\u0433\u043E\u043B\u043E\u0432\u043A\u0430 -offset_expression=\u0421\u043C\u0435\u0449\u0435\u043D\u0438\u0435 \u0417\u0430\u0433\u043E\u043B\u043E\u0432\u043A\u0430 +import_limit_is=\u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u0440\u0430\u0437\u043c\u0435\u0440 \u0438\u043c\u043f\u043e\u0440\u0442\u0430 +upload_limit_is=\u041e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0444\u0430\u0439\u043b\u0430 +count=\u041f\u043e\u0434\u0441\u0447\u0435\u0442 +do_blacklist=\u0427\u0435\u0440\u043d\u044b\u0439 \u0421\u043f\u0438\u0441\u043e\u043a +l3_header_error=\u0422\u043e\u043b\u044c\u043a\u043e \u0447\u0435\u0442\u044b\u0440\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043f\u0440\u0438\u0437\u043d\u0430\u043a\u0438 \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0432\u0432\u0435\u0434\u0435\u043d\u044b \u0432 +IP_HEADER=IP \u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430 +ICMP_HEADER=ICMP \u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430 +offset_expression=\u0421\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430 cfg_custom=\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0435 \u0421\u0442\u043e\u043b\u0431\u0446\u044b event_report=\u041e\u0442\u0447\u0435\u0442 \u043e \u043c\u0435\u0440\u043e\u043f\u0440\u0438\u044f\u0442\u0438\u0438 ntc_event_monitor_report=\u0441\u043e\u0431\u044b\u0442\u0438\u044f \u041c\u043e\u043d\u0438\u0442\u043e\u0440 \u041e\u0442\u0447\u0435\u0442 @@ -1432,33 +1432,33 @@ letter_num=\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u041f\u config_num=\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0439 monitor_num=\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u041c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u0430 control_num=\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0423\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f -contains_non_hex_char=\u0421\u043E\u0434\u0435\u0440\u0436\u0438\u0442 \u043D\u0435 \u0448\u0435\u0441\u0442\u043D\u0430\u0434\u0446\u0430\u0442\u0435\u0440\u0438\u0447\u043D\u044B\u0435 \u0441\u0438\u043C\u0432\u043E\u043B\u044B -max_length=\u041C\u0430\u043A\u0441. \u0414\u043B\u0438\u043D\u0430 -min_length=\u041C\u0438\u043D. \u0414\u043B\u0438\u043D\u0430 -length_error=\u041E\u0448\u0438\u0431\u043A\u0430 \u0441 \u0414\u043B\u0438\u043D\u043E\u0439 -duplicate=\u0414\u0443\u0431\u043B\u0438\u043A\u0430\u0442 -print=\u041F\u0435\u0447\u0430\u0442\u044C +contains_non_hex_char=\u0421\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u043d\u0435 \u0448\u0435\u0441\u0442\u043d\u0430\u0434\u0446\u0430\u0442\u0435\u0440\u0438\u0447\u043d\u044b\u0435 \u0441\u0438\u043c\u0432\u043e\u043b\u044b +max_length=\u041c\u0430\u043a\u0441. \u0414\u043b\u0438\u043d\u0430 +min_length=\u041c\u0438\u043d. \u0414\u043b\u0438\u043d\u0430 +length_error=\u041e\u0448\u0438\u0431\u043a\u0430 \u0441 \u0414\u043b\u0438\u043d\u043e\u0439 +duplicate=\u0414\u0443\u0431\u043b\u0438\u043a\u0430\u0442 +print=\u041f\u0435\u0447\u0430\u0442\u044c traffic_connect_log=\u0416\u0443\u0440\u043d\u0430\u043b \u0422\u0440\u0430\u0444\u0438\u043a\u0430 -keyword_log_to_url=\u041E\u0442 \u041A\u043B\u044E\u0447\u0435\u0432\u043E\u0433\u043E \u0421\u043B\u043E\u0432\u0430 \u0414\u043E URL -http_log=HTTP \u0436\u0443\u0440\u043D\u0430\u043B\u044B -cut_sample_tool=\u0418\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442 \u0434\u043B\u044F \u0432\u044B\u0440\u0435\u0437\u043E\u043A \u043E\u0431\u0440\u0430\u0437\u0446\u0430 +keyword_log_to_url=\u041e\u0442 \u041a\u043b\u044e\u0447\u0435\u0432\u043e\u0433\u043e \u0421\u043b\u043e\u0432\u0430 \u0414\u043e URL +http_log=HTTP \u0436\u0443\u0440\u043d\u0430\u043b\u044b +cut_sample_tool=\u0418\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u0434\u043b\u044f \u0432\u044b\u0440\u0435\u0437\u043e\u043a \u043e\u0431\u0440\u0430\u0437\u0446\u0430 hex_minlength_3=\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u0448\u0435\u0441\u0442\u043d\u0430\u0434\u0446\u0430\u0442\u0435\u0440\u0438\u0447\u043d\u0443\u044e \u0441\u0442\u0440\u043e\u043a\u0443 \u0434\u043b\u0438\u043d\u043e\u0439 3 hex_minlength_4=\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u0448\u0435\u0441\u0442\u043d\u0430\u0434\u0446\u0430\u0442\u0435\u0440\u0438\u0447\u043d\u0443\u044e \u0441\u0442\u0440\u043e\u043a\u0443 \u0434\u043b\u0438\u043d\u043e\u0439 4 hex_minlength_8=\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u0448\u0435\u0441\u0442\u043d\u0430\u0434\u0446\u0430\u0442\u0435\u0440\u0438\u0447\u043d\u0443\u044e \u0441\u0442\u0440\u043e\u043a\u0443 \u0434\u043b\u0438\u043d\u043e\u0439 8 hex_minlength_16=\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u0448\u0435\u0441\u0442\u043d\u0430\u0434\u0446\u0430\u0442\u0435\u0440\u0438\u0447\u043d\u0443\u044e \u0441\u0442\u0440\u043e\u043a\u0443 \u0434\u043b\u0438\u043d\u043e\u0439 16 need_input=\u041d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0437\u0430\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e max_input=\u0417\u0430\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u0447\u0435\u0442\u044b\u0440\u0435 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430 -no_need_input=\u041D\u0435 \u043D\u0443\u0436\u043D\u043E \u0437\u0430\u043F\u043E\u043B\u043D\u044F\u0442\u044C \u043F\u0440\u0438\u0437\u043D\u0430\u043A\u0438 -close_link=\u0417\u0430\u043A\u0440\u044B\u0442\u043E\u0435 \u0441\u043E\u0435\u0434\u0438\u043D\u0435\u043D\u0438\u0435 -asn_group=ASN \u0433\u0440\u0443\u043F\u043F\u0430 -can_not_edit_issued_ans_group=\u041D\u0435\u0432\u043E\u0437\u043C\u043E\u0436\u043D\u043E \u0440\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043B\u044C\u043D\u0443\u044E \u0433\u0440\u0443\u043F\u043F\u0443 ASN -can_not_delete_asn_group_with_audited_ip=\u041D\u0435\u0432\u043E\u0437\u043C\u043E\u0436\u043D\u043E \u0443\u0434\u0430\u043B\u0438\u0442\u044C \u0433\u0440\u0443\u043F\u043F\u0443 ASN \u0441 \u0443\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043D\u043D\u044B\u043C IP-\u0430\u0434\u0440\u0435\u0441\u043E\u043C -organization=\u041E\u0440\u0433\u0430\u043D\u0438\u0437\u0430\u0446\u0438\u044F -mismatch=\u041D\u0435\u0441\u043E\u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0435 -can_not_delete_asn_group_with_audited_ip_address=\u041D\u0435\u0432\u043E\u0437\u043C\u043E\u0436\u043D\u043E \u0443\u0434\u0430\u043B\u0438\u0442\u044C \u0433\u0440\u0443\u043F\u043F\u0443 ASN \u0441 \u0443\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043D\u043D\u044B\u043C \u043F\u0430\u043A\u0435\u0442\u043E\u043C IP-\u0430\u0434\u0440\u0435\u0441\u0430 -country_code=\u041A\u043E\u0434 \u0421\u0442\u0440\u0430\u043D\u044B -asn_name=\u041D\u0430\u0437\u0432\u0430\u043D\u0438\u0435 ASN -details=\u041F\u043E\u0434\u0440\u043E\u0431\u043D\u043E\u0441\u0442\u0438 +no_need_input=\u041d\u0435 \u043d\u0443\u0436\u043d\u043e \u0437\u0430\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u043f\u0440\u0438\u0437\u043d\u0430\u043a\u0438 +close_link=\u0417\u0430\u043a\u0440\u044b\u0442\u043e\u0435 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 +asn_group=ASN \u0433\u0440\u0443\u043f\u043f\u0430 +can_not_edit_issued_ans_group=\u041d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u0443\u044e \u0433\u0440\u0443\u043f\u043f\u0443 ASN +can_not_delete_asn_group_with_audited_ip=\u041d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u0433\u0440\u0443\u043f\u043f\u0443 ASN \u0441 \u0443\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u043d\u044b\u043c IP-\u0430\u0434\u0440\u0435\u0441\u043e\u043c +organization=\u041e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u044f +mismatch=\u041d\u0435\u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0435 +can_not_delete_asn_group_with_audited_ip_address=\u041d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u0433\u0440\u0443\u043f\u043f\u0443 ASN \u0441 \u0443\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u043d\u044b\u043c \u043f\u0430\u043a\u0435\u0442\u043e\u043c IP-\u0430\u0434\u0440\u0435\u0441\u0430 +country_code=\u041a\u043e\u0434 \u0421\u0442\u0440\u0430\u043d\u044b +asn_name=\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 ASN +details=\u041f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0438 NTC_ASN_NUMBER=ASN application_layer_protocol=L7 \u041f\u0440\u043e\u0442\u043e\u043a\u043e\u043b traffic_statistics=\u041f\u0440\u043e\u043f\u0443\u0441\u043a\u043d\u0430\u044f \u0421\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u044c \u0422\u0440\u0430\u0444\u0438\u043a\u0430 @@ -1467,10 +1467,10 @@ protocol_statistics=\u0421\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0430 app_statistics=\u0421\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0430 \u041f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 service_statistics=\u0421\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0430 \u0421\u0435\u0440\u0432\u0438\u0441\u043e\u0432 website_statistics=\u0421\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0430 \u0412\u0435\u0431-\u0441\u0430\u0439\u0442\u043e\u0432 -not_exist=\u041D\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 -real_time=\u0412 \u0440\u0435\u0430\u043B\u044C\u043D\u043E\u043C \u0432\u0440\u0435\u043C\u0435\u043D\u0438 -history=\u0418\u0441\u0442\u043E\u0440\u0438\u044F -all_columns_hidden=\u0412\u0441\u0435 \u0441\u0442\u043E\u043B\u0431\u0446\u044B \u0441\u043A\u0440\u044B\u0442\u044B! +not_exist=\u041d\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 +real_time=\u0412 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u043c \u0432\u0440\u0435\u043c\u0435\u043d\u0438 +history=\u0418\u0441\u0442\u043e\u0440\u0438\u044f +all_columns_hidden=\u0412\u0441\u0435 \u0441\u0442\u043e\u043b\u0431\u0446\u044b \u0441\u043a\u0440\u044b\u0442\u044b! no_log=\u041d\u0435\u0442 \u0416\u0443\u0440\u043d\u0430\u043b\u043e\u0432 all_log=\u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0416\u0443\u0440\u043d\u0430\u043b \u0438 \u0416\u0443\u0440\u043d\u0430\u043b-\u0444\u0430\u0439\u043b framework_log=\u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0416\u0443\u0440\u043d\u0430\u043b @@ -1483,29 +1483,32 @@ ip_existed=IP \u0443\u0436\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u044 user_check=\u0414\u0430\u043d\u043d\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 \u0437\u0430\u043d\u044f\u0442, \u043d\u0435\u043b\u044c\u0437\u044f \u0443\u0434\u0430\u043b\u0438\u0442\u044c! deletedAsnTip=\u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f \u2116 cfgId \u0441 ASN asnId \u0431\u044b\u043b\u0430 \u0443\u0434\u0430\u043b\u0435\u043d\u0430; reedit=\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u0443\u0439\u0442\u0435 \u0437\u0430\u043d\u043e\u0432\u043e! -intercep_domain_required_tip=\u0422\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044F \u0434\u043E\u043C\u0435\u043D -packets=\u041F\u0430\u043A\u0435\u0442\u044B +intercep_domain_required_tip=\u0422\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0434\u043e\u043c\u0435\u043d +packets=\u041f\u0430\u043a\u0435\u0442\u044b GByte=GByte -#\u5B9A\u65F6\u5668\u53C2\u6570 -interval=\u041F\u0440\u043E\u043C\u0435\u0436\u0443\u0442\u043E\u043A -month=\u041C\u0435\u0441\u044F\u0446\u044B -day=\u0414\u043D\u0438 +#\u5b9a\u65f6\u5668\u53c2\u6570 +interval=\u041f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u043a +month=\u041c\u0435\u0441\u044f\u0446\u044b +day=\u0414\u043d\u0438 week=weeks -startTime=\u041D\u0430\u0447\u0430\u0442\u044C -endTime=\u0417\u0430\u0432\u0435\u0440\u0448\u0438\u0442\u044C -single=\u041E\u0434\u043D\u043E\u043A\u0440\u0430\u0442\u043D\u043E -everyDay=\u0415\u0436\u0435\u0434\u043D\u0435\u0432\u043D\u043E -everyWeek=\u0415\u0436\u0435\u043D\u0435\u0434\u0435\u043B\u044C\u043D\u043E -everyMonth=\u0415\u0436\u0435\u043C\u0435\u0441\u044F\u0447\u043D\u043E +startTime=\u041d\u0430\u0447\u0430\u0442\u044c +endTime=\u0417\u0430\u0432\u0435\u0440\u0448\u0438\u0442\u044c +single=\u041e\u0434\u043d\u043e\u043a\u0440\u0430\u0442\u043d\u043e +everyDay=\u0415\u0436\u0435\u0434\u043d\u0435\u0432\u043d\u043e +everyWeek=\u0415\u0436\u0435\u043d\u0435\u0434\u0435\u043b\u044c\u043d\u043e +everyMonth=\u0415\u0436\u0435\u043c\u0435\u0441\u044f\u0447\u043d\u043e on=On is_schduler=Scheduler validate_error=Unexpected error occurred while validating v4_num=IPv4 Number v6_num=IPv6 Number -always=\u041F\u043E\u0441\u0442\u043E\u044F\u043D\u043D\u043E +always=\u041f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e schedule=Scheduler cancel_all=Cancel all configurations! pre_version=Previous Version approved_all=Approve all configurations! protection_list_manage=Protection List Manage -effective=Effective \ No newline at end of file +effective=Effective +admin_user_warn=Admin User Warn +interface_total=Interface Total +service_total=Service Total \ No newline at end of file diff --git a/src/main/resources/messages/message_zh_CN.properties b/src/main/resources/messages/message_zh_CN.properties index 5e0770daa..6d6ba3e84 100644 --- a/src/main/resources/messages/message_zh_CN.properties +++ b/src/main/resources/messages/message_zh_CN.properties @@ -231,7 +231,7 @@ delete_failed_admin=\u5220\u9664\u5931\u8d25\uff0c\u7ba1\u7406\u5458\u7528\u6237 audit_success=\u5ba1\u6838\u6210\u529f audit_failed=\u5ba1\u6838\u5931\u8d25 turning_page=\u6b63\u5728\u4e3a\u60a8\u8df3\u8f6c\u9875\u9762 -login_timeout=\u767B\u5F55\u8D85\u65F6,\u8bf7\u91cd\u65b0\u767b\u5f55\u3002 +login_timeout=\u767b\u5f55\u8d85\u65f6,\u8bf7\u91cd\u65b0\u767b\u5f55\u3002 captcha_error=\u9a8c\u8bc1\u7801\u4e0d\u6b63\u786e enter_captcha=\u8bf7\u8f93\u5165\u9a8c\u8bc1\u7801 input=\u8bf7\u8f93\u5165 @@ -1481,24 +1481,27 @@ reedit=\u8bf7\u91cd\u65b0\u7f16\u8f91\uff01 intercep_domain_required_tip=\u57df\u540d\u4fe1\u606f\u5fc5\u987b\u914d\u7f6e packets=packets GByte=GByte -#\u5B9A\u65F6\u5668\u53C2\u6570 -interval=\u95F4\u9694 +#\u5b9a\u65f6\u5668\u53c2\u6570 +interval=\u95f4\u9694 month=\u6708 -day=\u65E5 -startTime=\u5F00\u59CB\u65F6\u95F4 -endTime=\u7ED3\u675F\u65F6\u95F4 -single=\u5355\u6B21 -everyDay=\u6BCF\u5929 -everyWeek=\u6BCF\u5468 -everyMonth=\u6BCF\u6708 -validate_error=\u9A8C\u8BC1\u65F6\u53D1\u751F\u610F\u5916\u9519\u8BEF +day=\u65e5 +startTime=\u5f00\u59cb\u65f6\u95f4 +endTime=\u7ed3\u675f\u65f6\u95f4 +single=\u5355\u6b21 +everyDay=\u6bcf\u5929 +everyWeek=\u6bcf\u5468 +everyMonth=\u6bcf\u6708 +validate_error=\u9a8c\u8bc1\u65f6\u53d1\u751f\u610f\u5916\u9519\u8bef v4_num=IPv4 Number v6_num=IPv6 Number -always=\u957F\u671F +always=\u957f\u671f schedule=Scheduler -cancel_all=\u53D6\u6D88\u6240\u6709\u914D\u7F6E! +cancel_all=\u53d6\u6d88\u6240\u6709\u914d\u7f6e! pre_version=\u4e0a\u4e00\u7248 is_schduler=\u5b9a\u65f6\u5668 -approved_all=\u5BA1\u6838\u901A\u8FC7\u6240\u6709\u914D\u7F6E! -protection_list_manage=\u5185\u7F6E\u4FDD\u62A4\u540D\u5355\u7BA1\u7406 -effective=\u6709\u6548 \ No newline at end of file +approved_all=\u5ba1\u6838\u901a\u8fc7\u6240\u6709\u914d\u7f6e! +protection_list_manage=\u5185\u7f6e\u4fdd\u62a4\u540d\u5355\u7ba1\u7406 +effective=\u6709\u6548 +admin_user_warn=\u7ba1\u7406\u5458\u7528\u6237\u9884\u8b66 +interface_total=\u754c\u9762\u603b\u91cf +service_total=\u670d\u52a1\u603b\u91cf \ No newline at end of file diff --git a/src/main/resources/nis.properties b/src/main/resources/nis.properties index f163f5c49..05d8e0163 100644 --- a/src/main/resources/nis.properties +++ b/src/main/resources/nis.properties @@ -621,4 +621,6 @@ ntcHttpRecordLog=v1/ntcHttpRecordLogs trafficAppPpsTrend=v1/trafficAppPpsTrend trafficAppBpsTrend=v1/trafficAppBpsTrend #vpn cgi error info -cgiError=cannot connect to vpnserver,Connection to the server has failed,Specified object can not be found,Too many users,User already exists,Too many created users,The destination server is not a VPN server,The connection has been interrupted, \ No newline at end of file +cgiError=cannot connect to vpnserver,Connection to the server has failed,Specified object can not be found,Too many users,User already exists,Too many created users,The destination server is not a VPN server,The connection has been interrupted, +#\u83b7\u53d6\u670d\u52a1\u914d\u7f6e\u603b\u91cf\u63a5\u53e3 +getConfigByService=v1/getConfigByService \ No newline at end of file diff --git a/src/main/resources/spring-mvc.xml b/src/main/resources/spring-mvc.xml index a094efb76..cae9c675a 100644 --- a/src/main/resources/spring-mvc.xml +++ b/src/main/resources/spring-mvc.xml @@ -109,6 +109,11 @@ + + + + + 管理员用户预警 +INSERT INTO `sys_menu` (`id`, `parent_id`, `parent_ids`, `code`, `name`, `sort`, `href`, `target`, `icon`, `is_show`, `permission`, `create_by`, `create_date`, `update_by`, `update_date`, `remarks`, `del_flag`, `menu_bg`, `quick_action`, `is_top`, `function_id`) VALUES ('1252', '2', '0,1,2,', 'admin_user_warn', '管理员用户预警', '5060', '/sys/warn/userWarnList', '', '', '1', 'sys:warnList:view', '1', '2019-03-28 10:06:26', '1', '2019-03-28 11:36:42', '', '1', NULL, '0', '0', NULL); \ No newline at end of file diff --git a/src/main/resources/sql/20190329/create_sys_user_warn.sql b/src/main/resources/sql/20190329/create_sys_user_warn.sql new file mode 100644 index 000000000..a338836ba --- /dev/null +++ b/src/main/resources/sql/20190329/create_sys_user_warn.sql @@ -0,0 +1,9 @@ +CREATE TABLE `sys_user_warn` ( + `service_id` int(11) NOT NULL COMMENT '业务ID', + `service_desc` varchar(255) DEFAULT '' COMMENT '业务描述', + `interface_cfg_total` int(11) DEFAULT NULL COMMENT '界面配置数量', + `system_cfg_total` int(11) DEFAULT NULL COMMENT '服务配置数量', + `time` datetime DEFAULT NULL COMMENT '数据插入时间', + `remark` varchar(255) DEFAULT NULL COMMENT '备注', + PRIMARY KEY (`service_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='管理员用户预警表'; \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/views/home.jsp b/src/main/webapp/WEB-INF/views/home.jsp index 85c81911a..8ae35af48 100644 --- a/src/main/webapp/WEB-INF/views/home.jsp +++ b/src/main/webapp/WEB-INF/views/home.jsp @@ -71,9 +71,32 @@ $("#searchText").click(function(){ $(this).val(""); }); - + //定时查询界面配置总量和服务配置总量 是否一致 + t2 = window.setInterval("getServiceSum()",5*60*1000); + //去掉定时器的方法 + //window.clearInterval(t2); + }); - + var t2; + //获取界面总量和服务总量 + function getServiceSum(){ + $.ajax({ + type:'post', + async:false, + cache:false, + url:'${ctx}/sys/warn/serviceSum', + dataType:"json", + success: function(data){ + if(data !=null && (data.interfaceCfgTotal !=data.systemCfgTotal)){ + top.$.jBox.tip("界面配置总量和服务配置总量不一致!"); + } + }, + error: function(){ +     top.$.jBox.tip("界面配置总量和服务配置总量查询失败!"); +         window.clearInterval(t2); + } + }); + } //页面跳转函数 level:级别,1顶级,2有子级。name:菜单名称,有多级#间隔。url:访问路径。object:点击元素对象。 function page_turn(id, functionId,level, name, url,obj){ //$(".page-bar").removeClass("hidden"); diff --git a/src/main/webapp/WEB-INF/views/sys/sysUserWarnList.jsp b/src/main/webapp/WEB-INF/views/sys/sysUserWarnList.jsp new file mode 100644 index 000000000..b94a6b637 --- /dev/null +++ b/src/main/webapp/WEB-INF/views/sys/sysUserWarnList.jsp @@ -0,0 +1,105 @@ +<%@ page contentType="text/html;charset=UTF-8"%> +<%@ include file="/WEB-INF/include/taglib.jsp"%> + + + + <spring:message code="admin_user_warn"/> + + + + + +
+ +

+ +

+ +
+
+
+
+ + + + +
+ +
+
+
+ +
+ +
+
+ +
+ + +
+ + +
+ + +
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + +
${log.serviceId }${log.serviceDesc }${log.interfaceCfgTotal }${log.systemCfgTotal }
+
${page}
+
+
+
+
+
+ + \ No newline at end of file