From ab50f585609200a23c94bf028b41073652407880 Mon Sep 17 00:00:00 2001 From: wangxin Date: Fri, 28 Sep 2018 11:49:53 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E8=B0=83=E6=95=B4=E5=88=A0=E9=99=A4asn=20i?= =?UTF-8?q?p=E9=AA=8C=E8=AF=81=EF=BC=8C=E5=8F=AA=E6=9C=89=E4=B8=8B?= =?UTF-8?q?=E5=8F=91=E8=BF=87=E7=9A=84asn=20ip=E9=9C=80=E8=A6=81ajax?= =?UTF-8?q?=E5=90=8E=E5=8F=B0=E5=88=A4=E6=96=AD=E3=80=82=E8=B0=83=E6=95=B4?= =?UTF-8?q?ajax=E5=88=A4=E6=96=ADsql?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/basics/AsnIpController.java | 6 +- .../com/nis/web/dao/basics/AsnIpCfgDao.java | 2 +- .../com/nis/web/dao/basics/AsnIpCfgDao.xml | 2 +- .../web/service/basics/AsnIpCfgService.java | 9 +- src/main/webapp/WEB-INF/tags/sys/delRow.tag | 567 +++++++++--------- 5 files changed, 296 insertions(+), 290 deletions(-) diff --git a/src/main/java/com/nis/web/controller/basics/AsnIpController.java b/src/main/java/com/nis/web/controller/basics/AsnIpController.java index 9c30be14e..d3d8a4dc6 100644 --- a/src/main/java/com/nis/web/controller/basics/AsnIpController.java +++ b/src/main/java/com/nis/web/controller/basics/AsnIpController.java @@ -120,9 +120,9 @@ public class AsnIpController extends BaseController{ } @RequestMapping(value="ajaxIsLast",method=RequestMethod.POST) @ResponseBody - public boolean ajaxIsLast(Model model,@RequestParam(required=true,value="serviceGroupIds")String serviceGroupIds){ - if(StringUtils.isNotBlank(serviceGroupIds)) { - return asnIpCfgService.hasLastIp(serviceGroupIds); + public boolean ajaxIsLast(Model model,@RequestParam(required=true,value="serviceGroupIds")String serviceGroupIds,@RequestParam(required=true,value="ids")String ids){ + if(StringUtils.isNotBlank(serviceGroupIds)&&StringUtils.isNotBlank(ids)) { + return asnIpCfgService.hasLastIp(serviceGroupIds,ids); } return false; } diff --git a/src/main/java/com/nis/web/dao/basics/AsnIpCfgDao.java b/src/main/java/com/nis/web/dao/basics/AsnIpCfgDao.java index 17f0787d2..9b16b1019 100644 --- a/src/main/java/com/nis/web/dao/basics/AsnIpCfgDao.java +++ b/src/main/java/com/nis/web/dao/basics/AsnIpCfgDao.java @@ -18,5 +18,5 @@ public interface AsnIpCfgDao extends CrudDao{ public List findAllList(AsnIpCfg cfg); public List findPolicyGroupInfosByType(@Param("groupId")Integer groupId); public List findOtherIps(@Param("groupId")Integer groupId,@Param("cfgId")Integer cfgId); - public List countValidIPs(@Param("ids")String ids); + public List countValidIPs(@Param("groups")String groups,@Param("ids")String ids); } diff --git a/src/main/java/com/nis/web/dao/basics/AsnIpCfgDao.xml b/src/main/java/com/nis/web/dao/basics/AsnIpCfgDao.xml index b63525dfd..94e20ea0e 100644 --- a/src/main/java/com/nis/web/dao/basics/AsnIpCfgDao.xml +++ b/src/main/java/com/nis/web/dao/basics/AsnIpCfgDao.xml @@ -387,7 +387,7 @@ select 1 from asn_ip_cfg where is_valid !=-1 and asn_ip_group in(${ids}) limit 1 \ No newline at end of file diff --git a/src/main/java/com/nis/web/service/basics/AsnIpCfgService.java b/src/main/java/com/nis/web/service/basics/AsnIpCfgService.java index b579046a5..5689593e8 100644 --- a/src/main/java/com/nis/web/service/basics/AsnIpCfgService.java +++ b/src/main/java/com/nis/web/service/basics/AsnIpCfgService.java @@ -178,14 +178,17 @@ public class AsnIpCfgService extends CrudService, AsnIpCfg> { * @param serviceGroupIds * @return */ - public boolean hasLastIp(String serviceGroupIds) { + public boolean hasLastIp(String serviceGroupIds,String ids) { // TODO Auto-generated method stub for(String groupId:serviceGroupIds.split(",")) { Long.parseLong(groupId); } - List countList=asnIpCfgDao.countValidIPs(serviceGroupIds); + List countList=asnIpCfgDao.countValidIPs(serviceGroupIds,ids); + if(countList.size()==0) { + return true; + } for(Integer count:countList) { - if(count==1) { + if(count==0) { return true; } } diff --git a/src/main/webapp/WEB-INF/tags/sys/delRow.tag b/src/main/webapp/WEB-INF/tags/sys/delRow.tag index 2fba386a5..3d3e0f246 100644 --- a/src/main/webapp/WEB-INF/tags/sys/delRow.tag +++ b/src/main/webapp/WEB-INF/tags/sys/delRow.tag @@ -1,283 +1,286 @@ -<%@ tag language="java" pageEncoding="UTF-8"%> -<%@ include file="/WEB-INF/include/taglib.jsp"%> -<%@ attribute name="id" type="java.lang.String" required="true"%> -<%@ attribute name="url" type="java.lang.String" required="true"%> -<%@ attribute name="label" type="java.lang.String" required="false"%> -<%@ attribute name="maxRow" type="java.lang.Long" required="false"%> - - - - - - - - - - - - - - - - - - - - - - - - - - -<%-- 使用方法: 1.将本tag写在查询的form之前;2.传入table的id和controller的url --%> - \ No newline at end of file From 9ce49b9e25e38f760c13843df3c246f25143c0cf Mon Sep 17 00:00:00 2001 From: zhangwenqing Date: Fri, 28 Sep 2018 12:00:13 +0800 Subject: [PATCH 2/2] =?UTF-8?q?1.=E7=94=9F=E6=95=88=E5=8C=BA=E5=9F=9F?= =?UTF-8?q?=E4=B8=8B=E5=8F=91=E6=A0=BC=E5=BC=8F=E4=BF=AE=E6=94=B9=202.?= =?UTF-8?q?=E6=97=A5=E5=BF=97=E6=80=BB=E9=87=8F=E6=97=A5=E5=BF=97=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2=E6=97=B6=E9=97=B4=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../nis/domain/maat/EffectiveRangeCfg.java | 50 ++++++++++ .../java/com/nis/domain/maat/MaatCfg.java | 11 ++- src/main/java/com/nis/util/Constants.java | 4 + src/main/java/com/nis/util/StringUtils.java | 14 +++ .../nis/web/controller/BaseController.java | 15 ++- .../nis/web/dao/basics/SysDictInfoDao.java | 4 +- .../com/nis/web/dao/basics/SysDictInfoDao.xml | 18 ++++ .../service/basics/SysDictInfoService.java | 96 ++++++++++++++++--- src/main/resources/nis.properties | 4 +- 9 files changed, 194 insertions(+), 22 deletions(-) create mode 100644 src/main/java/com/nis/domain/maat/EffectiveRangeCfg.java diff --git a/src/main/java/com/nis/domain/maat/EffectiveRangeCfg.java b/src/main/java/com/nis/domain/maat/EffectiveRangeCfg.java new file mode 100644 index 000000000..e5c6a6367 --- /dev/null +++ b/src/main/java/com/nis/domain/maat/EffectiveRangeCfg.java @@ -0,0 +1,50 @@ +package com.nis.domain.maat; + +import java.io.Serializable; +import java.util.List; + +import com.google.gson.annotations.Expose; +import com.google.gson.annotations.SerializedName; + +public class EffectiveRangeCfg implements Serializable{ + + /** + * + */ + private static final long serialVersionUID = -4503782443649076836L; + @Expose + @SerializedName("tag_sets") + private List> effectiveRangeList; + + public List> getEffectiveRangeList() { + return effectiveRangeList; + } + + public void setEffectiveRangeList(List> effectiveRangeList) { + this.effectiveRangeList = effectiveRangeList; + } + + public static class AreaIsp{ + @Expose + private String tag; + @Expose + private List value; + + public String getTag() { + return tag; + } + public void setTag(String tag) { + this.tag = tag; + } + public List getValue() { + return value; + } + public void setValue(List value) { + this.value = value; + } + @Override + public String toString() { + return "AreaIsp [tag=" + tag + ", value=" + value + "]"; + } + } +} diff --git a/src/main/java/com/nis/domain/maat/MaatCfg.java b/src/main/java/com/nis/domain/maat/MaatCfg.java index bc141a992..0a3074b87 100644 --- a/src/main/java/com/nis/domain/maat/MaatCfg.java +++ b/src/main/java/com/nis/domain/maat/MaatCfg.java @@ -12,13 +12,14 @@ import java.io.Serializable; import java.util.Date; import java.util.List; -import org.apache.commons.lang3.StringUtils; - import com.google.gson.annotations.Expose; import com.google.gson.annotations.SerializedName; import com.nis.util.Constants; import com.nis.util.DateUtils; +import com.nis.util.StringUtils; import com.nis.web.service.BaseService; +import com.nis.web.service.SpringContextHolder; +import com.nis.web.service.basics.SysDictInfoService; /** * @ClassName: MaatCfg.java @@ -543,8 +544,10 @@ public class MaatCfg implements Serializable { public void setAreaEffectiveIds(String areaEffectiveIds) { if(StringUtils.isEmpty(areaEffectiveIds)){ areaEffectiveIds="0"; - }else if(areaEffectiveIds.contains(":")){ - areaEffectiveIds = areaEffectiveIds.replace(":", ""); + }else { + // 组织区域、运营商配置下发格式 + SysDictInfoService service = SpringContextHolder.getBean(SysDictInfoService.class); + areaEffectiveIds = service.setEffectiveRange(areaEffectiveIds); } this.areaEffectiveIds = areaEffectiveIds; } diff --git a/src/main/java/com/nis/util/Constants.java b/src/main/java/com/nis/util/Constants.java index d039e3d39..b4cb584ec 100644 --- a/src/main/java/com/nis/util/Constants.java +++ b/src/main/java/com/nis/util/Constants.java @@ -677,4 +677,8 @@ public final class Constants { public static final int HTTP_CONNECT_TIMEOUT= Configurations.getIntProperty("http_connect_timeout", 10000); public static final int HTTP_CONNECT_REQUEST_TIMEOUT = Configurations.getIntProperty("http_connect_request_timeout", 50000); public static final int HTTP_CONNECT_RETRY_TIMES = Configurations.getIntProperty("http_connect_retry_times", 3); + + // 区域/运营商配置下发时tag值 + public static final String AREA_TAG=Configurations.getStringProperty("area_tag","location"); + public static final String ISP_TAG=Configurations.getStringProperty("isp_tag","isp"); } diff --git a/src/main/java/com/nis/util/StringUtils.java b/src/main/java/com/nis/util/StringUtils.java index 4170452e9..e1113c80c 100644 --- a/src/main/java/com/nis/util/StringUtils.java +++ b/src/main/java/com/nis/util/StringUtils.java @@ -503,4 +503,18 @@ public class StringUtils extends org.apache.commons.lang3.StringUtils { } return str; } + + public static String revertStr(String str,String regex){ + String[] split = str.split(regex); + String value = ""; + for (int i = split.length-1; i >= 0 ; i--) { + if( i != 0) { + value += split[i]+"/"; + }else { + value += split[i]; + } + + } + return value; + } } diff --git a/src/main/java/com/nis/web/controller/BaseController.java b/src/main/java/com/nis/web/controller/BaseController.java index 57bcda365..a837b196e 100644 --- a/src/main/java/com/nis/web/controller/BaseController.java +++ b/src/main/java/com/nis/web/controller/BaseController.java @@ -678,8 +678,19 @@ public class BaseController { }else{ // 判断是否是从配置界面过来的日志查询 if(StringUtils.isNotBlank(entry.getIsLogTotalSearch())) { + Calendar time = Calendar.getInstance(); + time.add(Calendar.MINUTE, -5); + String searchEndTime = DateUtils.formatDateTime(time.getTime()); + params.put("searchFoundEndTime",searchEndTime); + entry.setSearchFoundEndTime(searchEndTime); + + time.add(Calendar.MINUTE, -5); + String searchStartTime = DateUtils.formatDateTime(time.getTime()); + params.put("searchFoundStartTime", searchStartTime); + entry.setSearchFoundStartTime(searchStartTime); + // 判断startTime是否有值 - if(StringUtils.isNotBlank(Constants.LOG_TIME_START)) { + /*if(StringUtils.isNotBlank(Constants.LOG_TIME_START)) { String endTime = Constants.LOG_TIME_END; if(StringUtils.isBlank(endTime)) { endTime = DateUtils.getDateTime(); @@ -717,7 +728,7 @@ public class BaseController { params.put("searchFoundEndTime",searchEndTime); entry.setSearchFoundStartTime(searchStartTime); entry.setSearchFoundEndTime(searchEndTime); - } + }*/ }else { //设置默认查询当前时间及前五分钟 diff --git a/src/main/java/com/nis/web/dao/basics/SysDictInfoDao.java b/src/main/java/com/nis/web/dao/basics/SysDictInfoDao.java index fb7615c9e..dd2daa119 100644 --- a/src/main/java/com/nis/web/dao/basics/SysDictInfoDao.java +++ b/src/main/java/com/nis/web/dao/basics/SysDictInfoDao.java @@ -85,9 +85,9 @@ public interface SysDictInfoDao extends CrudDao { */ List getDistrictDict(String itemCode); + List getEffectiveArea(String itemCode); - - + SysDictInfo getDictByItemCode(String itemCode); diff --git a/src/main/java/com/nis/web/dao/basics/SysDictInfoDao.xml b/src/main/java/com/nis/web/dao/basics/SysDictInfoDao.xml index e9163d5f1..9521430ae 100644 --- a/src/main/java/com/nis/web/dao/basics/SysDictInfoDao.xml +++ b/src/main/java/com/nis/web/dao/basics/SysDictInfoDao.xml @@ -263,4 +263,22 @@ FROM sys_dict_info s WHERE s.is_valid = 1 AND item_type = 3 AND item_code like concat(#{itemCode,jdbcType=VARCHAR},'%') + + + + \ No newline at end of file diff --git a/src/main/java/com/nis/web/service/basics/SysDictInfoService.java b/src/main/java/com/nis/web/service/basics/SysDictInfoService.java index d2113e174..46bd22378 100644 --- a/src/main/java/com/nis/web/service/basics/SysDictInfoService.java +++ b/src/main/java/com/nis/web/service/basics/SysDictInfoService.java @@ -1,5 +1,6 @@ package com.nis.web.service.basics; +import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -11,9 +12,13 @@ import com.google.common.collect.Lists; import com.nis.domain.Page; import com.nis.domain.SysUser; import com.nis.domain.basics.SysDictInfo; +import com.nis.domain.maat.EffectiveRangeCfg; +import com.nis.domain.maat.EffectiveRangeCfg.AreaIsp; import com.nis.util.ConfigDictUtils; import com.nis.util.Configurations; +import com.nis.util.Constants; import com.nis.util.StringUtil; +import com.nis.util.StringUtils; import com.nis.web.dao.basics.SysDictInfoDao; import com.nis.web.security.UserUtils; import com.nis.web.service.BaseService; @@ -22,7 +27,7 @@ import com.nis.web.service.BaseService; public class SysDictInfoService extends BaseService{ @Autowired - private SysDictInfoDao sysDictInfoDao; + private SysDictInfoDao sysDictInfoDao; @@ -216,17 +221,82 @@ public class SysDictInfoService extends BaseService{ public List getDistrictDict(String tableName){ return sysDictInfoDao.getDistrictDict(tableName); } - - - - - - - - - - - - + + // 组织区域、运营商配置下发格式 + public String setEffectiveRange(String areaEffectiveIds){ + EffectiveRangeCfg rangeCfg = new EffectiveRangeCfg(); + List areaIspList = new ArrayList(); + + List locaValueList = new ArrayList(); + List ispValueList = new ArrayList(); + + for (String areaEffectiveId : StringUtils.split(areaEffectiveIds, ",")) { + String area = ""; + // 区域和运营商 + if(areaEffectiveId.contains(":")) { + int index = areaEffectiveId.indexOf(":"); + String areaCode = areaEffectiveId.substring(0, index); + String ispCode = areaEffectiveId.substring(index+1); + // 查询该区域信息及其所有父节点信息 + List list = sysDictInfoDao.getEffectiveArea(areaCode); + for (SysDictInfo sysDictInfo : list) { + area += sysDictInfo.getItemValue(); + while(sysDictInfo.getParent().getSysDictId() != 0) { + sysDictInfo = sysDictInfoDao.getDictById(sysDictInfo.getParent().getSysDictId()); + area += "/"+sysDictInfo.getItemValue(); + } + } + String areaItemValue = StringUtils.revertStr(area, "/"); + if(!locaValueList.contains(areaItemValue)) { + locaValueList.add(areaItemValue); + } + + // 查询运营商信息 + SysDictInfo isp = sysDictInfoDao.getDictByItemCode(ispCode); + if(!ispValueList.contains(isp.getItemValue())) { + ispValueList.add(isp.getItemValue()); + } + }else { + // 区域或运营商 + SysDictInfo dict = sysDictInfoDao.getDictByItemCode(areaEffectiveId); + if(dict.getItemType() == 1) { + // 查询所有父节点区域信息 + area += dict.getItemValue(); + while(dict.getParent().getSysDictId() != 0) { + dict = sysDictInfoDao.getDictById(dict.getParent().getSysDictId()); + area += "/"+dict.getItemValue(); + } + String areaItemValue = StringUtils.revertStr(area, "/"); + if(!locaValueList.contains(areaItemValue)) { + locaValueList.add(areaItemValue); + } + }else { + if(!ispValueList.contains(dict.getItemValue())) { + ispValueList.add(dict.getItemValue()); + } + } + + } + + } + + if(locaValueList.size() > 0) { + AreaIsp area = new AreaIsp(); + area.setTag(Constants.AREA_TAG); + area.setValue(locaValueList); + areaIspList.add(area); + } + if(ispValueList.size() > 0) { + AreaIsp isp = new AreaIsp(); + isp.setTag(Constants.ISP_TAG); + isp.setValue(ispValueList); + areaIspList.add(isp); + } + + List> effectiveRangeList = new ArrayList(); + effectiveRangeList.add(areaIspList); + rangeCfg.setEffectiveRangeList(effectiveRangeList); + return gsonToJson(rangeCfg); + } } diff --git a/src/main/resources/nis.properties b/src/main/resources/nis.properties index 1d2fbaf05..5c40f348d 100644 --- a/src/main/resources/nis.properties +++ b/src/main/resources/nis.properties @@ -521,4 +521,6 @@ app_spec_service_code_min_val=300001 groupReuseSources=groupReuseSources log_time_range=3600000 log_time_start=2018-08-01 00:00:00 -log_time_end=2018-10-01 00:00:00 \ No newline at end of file +log_time_end=2018-10-01 00:00:00 +area_tag=location +isp_tag=isp \ No newline at end of file