diff --git a/src/main/java/com/nis/domain/SystemServiceInfo.java b/src/main/java/com/nis/domain/SystemServiceInfo.java index 77e589864..97ee505a8 100644 --- a/src/main/java/com/nis/domain/SystemServiceInfo.java +++ b/src/main/java/com/nis/domain/SystemServiceInfo.java @@ -16,7 +16,7 @@ public class SystemServiceInfo extends BaseEntity { private String serviceDesc;//业务描述 private Integer action;//业务动作 1:阻断;2:监测;5:FD白名单;6:监测白名单;7:FD监测白名单;8:灰名单; private Integer isValid;//有效标识 0:无效;1:有效; - private Integer serviceType;//业务类型 1:常规(单域)业务配置;2:多域业务配置; + private Integer serviceType;//业务类型 1:常规(单域)业务配置;2:多域业务配置;3.特定服务配置; private SysUser creator; private Date createTime; private SysUser editor; @@ -105,4 +105,13 @@ public class SystemServiceInfo extends BaseEntity { return e.getMessage(); } } + + private Integer serviceIdPre;//辅助用,用来存放serviceId前四位以获得最新serviceId + + public Integer getServiceIdPre() { + return serviceIdPre; + } + public void setServiceIdPre(Integer serviceIdPre) { + this.serviceIdPre = serviceIdPre; + } } diff --git a/src/main/java/com/nis/web/controller/systemService/SystemServiceController.java b/src/main/java/com/nis/web/controller/systemService/SystemServiceController.java index b37624c0b..e995a0877 100644 --- a/src/main/java/com/nis/web/controller/systemService/SystemServiceController.java +++ b/src/main/java/com/nis/web/controller/systemService/SystemServiceController.java @@ -1,6 +1,8 @@ package com.nis.web.controller.systemService; import java.util.ArrayList; +import java.util.Collections; +import java.util.Comparator; import java.util.Date; import java.util.List; @@ -12,11 +14,13 @@ 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 org.springframework.web.servlet.mvc.support.RedirectAttributes; import com.nis.domain.Page; import com.nis.domain.ServiceConfigInfo; import com.nis.domain.SystemServiceInfo; +import com.nis.util.Collections3; import com.nis.util.StringUtil; import com.nis.web.controller.BaseController; import com.nis.web.security.UserUtils; @@ -30,8 +34,6 @@ public class SystemServiceController extends BaseController { @ModelAttribute public SystemServiceInfo get(Long id) { if (!StringUtil.isEmpty(id)){ -// SystemServiceInfo systemServiceInfo = new SystemServiceInfo(); -// systemServiceInfo.setId(id); return systemServiceService.get(id); }else{ return new SystemServiceInfo(); @@ -123,5 +125,44 @@ public class SystemServiceController extends BaseController { return "/systemService/list"; } + @ResponseBody + @RequestMapping(value = "serviceIdValidate") + public String serviceIdValidate(String serviceId, Long id) { + List list = systemServiceService.getSystemServiceByServiceId(serviceId); + if (Collections3.isEmpty(list)) { + return "true"; + } else { + if (id != null) { + if (list.get(0).getId() == id) { + return "true"; + } else { + return "false"; + } + } else { + return "false"; + } + } + } + @ResponseBody + @RequestMapping(value = "newServiceId") + public Integer getNewServiceId(Integer serviceIdPre) { + if (serviceIdPre != null) { + SystemServiceInfo ssi = new SystemServiceInfo(); + ssi.setServiceIdPre(serviceIdPre); + List list = systemServiceService.findList(ssi); + if (!Collections3.isEmpty(list)) { + Collections.sort(list, new Comparator() { + @Override + public int compare(SystemServiceInfo arg0, SystemServiceInfo arg1) { + return arg1.getServiceId().compareTo(arg0.getServiceId()); + } + }); + return list.get(0).getServiceId() + 1; + } else { + return serviceIdPre * 100; + } + } + return 0; + } } diff --git a/src/main/java/com/nis/web/dao/systemService/SystemServiceInfoDao.java b/src/main/java/com/nis/web/dao/systemService/SystemServiceInfoDao.java index 65dbe0e36..8fd26b09c 100644 --- a/src/main/java/com/nis/web/dao/systemService/SystemServiceInfoDao.java +++ b/src/main/java/com/nis/web/dao/systemService/SystemServiceInfoDao.java @@ -1,5 +1,7 @@ package com.nis.web.dao.systemService; +import java.util.List; + import org.apache.ibatis.annotations.Param; import com.nis.domain.SystemServiceInfo; @@ -8,4 +10,6 @@ import com.nis.web.dao.MyBatisDao; @MyBatisDao public interface SystemServiceInfoDao extends CrudDao { + + List getSystemServiceByServiceId(String serviceId); } diff --git a/src/main/java/com/nis/web/dao/systemService/SystemServiceInfoDao.xml b/src/main/java/com/nis/web/dao/systemService/SystemServiceInfoDao.xml index de138f6db..fb0696c19 100644 --- a/src/main/java/com/nis/web/dao/systemService/SystemServiceInfoDao.xml +++ b/src/main/java/com/nis/web/dao/systemService/SystemServiceInfoDao.xml @@ -47,6 +47,9 @@ and ssi.service_type=#{serviceType} + + and service_id like concat(#{serviceIdPre}, '%') + + + insert into system_service_info ( service_id, service_name, service_desc, action, is_valid, service_type, diff --git a/src/main/java/com/nis/web/service/systemService/SystemServiceService.java b/src/main/java/com/nis/web/service/systemService/SystemServiceService.java index 2fc49d88f..50991dd0c 100644 --- a/src/main/java/com/nis/web/service/systemService/SystemServiceService.java +++ b/src/main/java/com/nis/web/service/systemService/SystemServiceService.java @@ -58,4 +58,8 @@ public class SystemServiceService extends CrudService getSystemServiceByServiceId(String serviceId) { + return dao.getSystemServiceByServiceId(serviceId); + } + } diff --git a/src/main/webapp/WEB-INF/views/systemService/form.jsp b/src/main/webapp/WEB-INF/views/systemService/form.jsp index 0519733db..ea99b86dc 100644 --- a/src/main/webapp/WEB-INF/views/systemService/form.jsp +++ b/src/main/webapp/WEB-INF/views/systemService/form.jsp @@ -14,7 +14,8 @@ required:true }, 'serviceId':{ - required:true + required:true, + remote:"${ctx}/systemService/serviceIdValidate?id=" + encodeURIComponent($("#id").val()) }, 'action':{ required:true @@ -31,7 +32,8 @@ required:'必填项' }, 'serviceId':{ - required:'必填项' + required:'必填项', + remote:'重复的serviceId' }, 'action':{ required:'必填项' @@ -72,8 +74,78 @@ } } }); + + changeType($("#serviceType").val(), $("#serviceType")); + + //类型、动作不允许修改 + if ("${systemServiceInfo.id}") { + $("#action").attr("disabled", true); + $("#serviceType").attr("disabled", true); + $("[name=tableType]").attr("disabled", true); + } }); + function changeType(v, obj) { + if ($(obj).val() == '') { + $("#addBtn").attr("disabled", true); + } else if ($(obj).val() == '1') { + if ($(".table-list").length > 1) { + alert("单域业务只能关联一个表"); + $(obj).val(v); + } else if ($(".table-list").length == 1) { + $("#addBtn").attr("disabled", true); + } else if ($(".table-list").length == 0) { + $("#addBtn").attr("disabled", false); + } + } else if ($(obj).val() == '2') { + $("#addBtn").attr("disabled", false); + } else if ($(obj).val() == '3') { + if ($(".table-list").length > 1) { + alert("特定服务只能关联一个表"); + $(obj).val(v); + } else if ($(".table-list").length == 1) { + $("#addBtn").attr("disabled", true); + } else if ($(".table-list").length == 0) { + $("#addBtn").attr("disabled", false); + } + } + + autoServiceId(); + } + + //自动获取serviceId + function autoServiceId() { + var type = $("[name=tableType]").val(); + var action = $("#action").val(); + var serviceIdPre; + if ($("#serviceType").val() == "1" && action && type) { + serviceIdPre = type + "0" + (action < 10 ? ("0" + action) : action); + } else if ($("#serviceType").val() == "2" && action) { + type = "60"; + serviceIdPre = type + (action < 10 ? ("0" + action) : action); + } else if ($("#serviceType").val() == "3" && action) { + type = "50"; + serviceIdPre = type + (action < 10 ? ("0" + action) : action); + } else { + serviceIdPre = ""; + } + + if (serviceIdPre) { + $.ajax({ + type:"get", + url:"${ctx}/systemService/newServiceId?serviceIdPre=" + serviceIdPre, + dataType:"text", + success: function(data) { + if (data) { + $("#serviceIdInput").val(data); + } + } + }) + } else { + $("#serviceIdInput").val(""); + } + } + function addDatatable() { $("#datatables").append( '
' + @@ -84,7 +156,7 @@ ' ' + '*表类型: ' + ' ' + - ' ' + '' + '' + '' + @@ -102,15 +174,21 @@ '
' + '' ); + + if ($("#serviceType").val() == '1' || $("#serviceType").val() == '3') { + $("#addBtn").attr("disabled", true); + } } function del(obj) { $(obj).parent().parent().find("[name=sciIsValid]").val("0"); - $(obj).parent().parent().css("display", "none"); + $(obj).parent().parent().css("display", "none").attr("class", "table-delete"); + changeType($("#serviceType").val(), $("#serviceType")); } function del2(obj) { $(obj).parent().parent().remove(); + changeType($("#serviceType").val(), $("#serviceType")); } @@ -138,7 +216,7 @@ - +
@@ -148,17 +226,10 @@
-
- -
- -
-
-
- + 请选择 阻断 监测 @@ -173,10 +244,11 @@
- + 请选择 单域 多域 + 特定服务
@@ -186,7 +258,7 @@
- +
@@ -223,6 +295,13 @@
+ +
+ +
+ +
+
diff --git a/src/main/webapp/WEB-INF/views/systemService/list.jsp b/src/main/webapp/WEB-INF/views/systemService/list.jsp index 499b0fa64..e5f847025 100644 --- a/src/main/webapp/WEB-INF/views/systemService/list.jsp +++ b/src/main/webapp/WEB-INF/views/systemService/list.jsp @@ -74,6 +74,7 @@ function deleteService(id) { 请选择 单域 多域 + 特定服务 @@ -121,6 +122,7 @@ function deleteService(id) { 单域 多域 + 特定服务 ${ssi.creator.loginId }