1、修复voip修改时,无法及时更新去信息bug

2、增加voip配置下发功能
3、修改区域信息选择,至少添加一条ip或isp信息
This commit is contained in:
duandongmei
2018-05-30 14:37:35 +08:00
parent 8fb868ecca
commit d8c21e1f3a
7 changed files with 146 additions and 81 deletions

View File

@@ -1,6 +1,7 @@
package com.nis.web.controller.configuration.ntc; package com.nis.web.controller.configuration.ntc;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@@ -15,12 +16,14 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.ResponseBody;
import com.nis.domain.Page; import com.nis.domain.Page;
import com.nis.domain.configuration.AreaIpCfg;
import com.nis.domain.configuration.AvContIpCfg; import com.nis.domain.configuration.AvContIpCfg;
import com.nis.domain.configuration.AvVoipAccountCfg; import com.nis.domain.configuration.AvVoipAccountCfg;
import com.nis.domain.configuration.CfgIndexInfo; import com.nis.domain.configuration.CfgIndexInfo;
import com.nis.domain.configuration.AvVoipIpCfg; import com.nis.domain.configuration.AvVoipIpCfg;
import com.nis.util.StringUtil; import com.nis.util.StringUtil;
import com.nis.web.controller.BaseController; import com.nis.web.controller.BaseController;
import com.nis.web.security.UserUtils;
/** /**
* 处理音视频文本业务 * 处理音视频文本业务
@@ -97,7 +100,14 @@ public class AvContentController extends BaseController {
//修改VOIP配置审核状态 //修改VOIP配置审核状态
@RequestMapping(value = {"/auditAvVoip"}) @RequestMapping(value = {"/auditAvVoip"})
public String auditVoip(Integer isAudit,Integer isValid,String ids,Integer functionId){ public String auditVoip(Integer isAudit,Integer isValid,String ids,Integer functionId){
avContentCfgService.auditAvVoip(isAudit,isValid,ids,functionId); if(!StringUtil.isEmpty(ids)){
String[] idArray = ids.split(",");
Date auditTime=new Date();
for(String id :idArray){
avContentCfgService.auditAvVoip(isAudit,isValid,functionId,id,auditTime);
}
}
return "redirect:" + adminPath +"/ntc/av/voipList?functionId="+functionId; return "redirect:" + adminPath +"/ntc/av/voipList?functionId="+functionId;
} }

View File

@@ -75,9 +75,6 @@
</select> </select>
<!-- insert area_ip_cfg表信息 --> <!-- insert area_ip_cfg表信息 -->
<insert id="saveAreaIpCfg" parameterType="com.nis.domain.configuration.AreaIpCfg" > <insert id="saveAreaIpCfg" parameterType="com.nis.domain.configuration.AreaIpCfg" >
<selectKey resultType="java.lang.Long" order="AFTER" keyProperty="cfgId">
SELECT LAST_INSERT_ID()
</selectKey>
insert into area_ip_cfg ( insert into area_ip_cfg (
CFG_DESC, CFG_DESC,
ACTION, ACTION,
@@ -146,9 +143,6 @@
</insert> </insert>
<!-- insert area_ip_cfg表信息 --> <!-- insert area_ip_cfg表信息 -->
<insert id="saveAreaIpCfgFromCfgIndexInfo" parameterType="com.nis.domain.configuration.CfgIndexInfo" > <insert id="saveAreaIpCfgFromCfgIndexInfo" parameterType="com.nis.domain.configuration.CfgIndexInfo" >
<selectKey resultType="java.lang.Long" order="AFTER" keyProperty="cfgId">
SELECT LAST_INSERT_ID()
</selectKey>
insert into area_ip_cfg ( insert into area_ip_cfg (
CFG_DESC, CFG_DESC,
ACTION, ACTION,

View File

@@ -343,9 +343,6 @@
</select> </select>
<!-- insert cfgIndexInfox --> <!-- insert cfgIndexInfox -->
<insert id="insertCfgIndexInfo" parameterType="com.nis.domain.configuration.CfgIndexInfo" > <insert id="insertCfgIndexInfo" parameterType="com.nis.domain.configuration.CfgIndexInfo" >
<selectKey resultType="java.lang.Long" order="AFTER" keyProperty="cfgId">
SELECT LAST_INSERT_ID()
</selectKey>
insert into cfg_index_info( insert into cfg_index_info(
CFG_DESC, CFG_DESC,
ACTION, ACTION,
@@ -390,9 +387,6 @@
</insert> </insert>
<!-- insert AV_VOIP_IP_CFG表信息 --> <!-- insert AV_VOIP_IP_CFG表信息 -->
<insert id="insertAvVoipIp" parameterType="com.nis.domain.configuration.CfgIndexInfo" > <insert id="insertAvVoipIp" parameterType="com.nis.domain.configuration.CfgIndexInfo" >
<selectKey resultType="java.lang.Long" order="AFTER" keyProperty="cfgId">
SELECT LAST_INSERT_ID()
</selectKey>
insert into av_voip_ip_cfg ( insert into av_voip_ip_cfg (
CFG_DESC, CFG_DESC,
ACTION, ACTION,
@@ -461,9 +455,6 @@
</insert> </insert>
<!-- insert AV_VOIP_ACCOUNT_CFG表信息 --> <!-- insert AV_VOIP_ACCOUNT_CFG表信息 -->
<insert id="insertAvVoipAccount" parameterType="com.nis.domain.configuration.CfgIndexInfo" > <insert id="insertAvVoipAccount" parameterType="com.nis.domain.configuration.CfgIndexInfo" >
<selectKey resultType="java.lang.Long" order="AFTER" keyProperty="cfgId">
SELECT LAST_INSERT_ID()
</selectKey>
insert into av_voip_account_cfg ( insert into av_voip_account_cfg (
CFG_DESC, CFG_DESC,
ACTION, ACTION,

View File

@@ -8,6 +8,7 @@ import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
@@ -23,6 +24,19 @@ import com.nis.domain.configuration.AvSignSampleCfg;
import com.nis.domain.configuration.AvVoipAccountCfg; import com.nis.domain.configuration.AvVoipAccountCfg;
import com.nis.domain.configuration.AvVoipIpCfg; import com.nis.domain.configuration.AvVoipIpCfg;
import com.nis.domain.configuration.CfgIndexInfo; import com.nis.domain.configuration.CfgIndexInfo;
import com.nis.domain.configuration.HttpBodyCfg;
import com.nis.domain.configuration.HttpReqHeadCfg;
import com.nis.domain.configuration.HttpResHeadCfg;
import com.nis.domain.configuration.HttpUrlCfg;
import com.nis.domain.configuration.IpPortCfg;
import com.nis.domain.maat.MaatCfg;
import com.nis.domain.maat.ToMaatBean;
import com.nis.domain.maat.ToMaatResult;
import com.nis.domain.maat.MaatCfg.DigestCfg;
import com.nis.domain.maat.MaatCfg.GroupCfg;
import com.nis.domain.maat.MaatCfg.IpCfg;
import com.nis.domain.maat.MaatCfg.NumBoundaryCfg;
import com.nis.domain.maat.MaatCfg.StringCfg;
import com.nis.exceptions.MaatConvertException; import com.nis.exceptions.MaatConvertException;
import com.nis.util.ConfigServiceUtil; import com.nis.util.ConfigServiceUtil;
import com.nis.util.Constants; import com.nis.util.Constants;
@@ -137,9 +151,8 @@ public class AvContentCfgService extends BaseService{
//调用服务接口获取compileId //调用服务接口获取compileId
List<Integer> compileIds = new ArrayList<Integer>(); List<Integer> compileIds = new ArrayList<Integer>();
try { try {
//TODO compileIds = ConfigServiceUtil.getId(1,1);
//compileIds = ConfigServiceUtil.getId(1,1); //compileIds.add((int)Math.floor(Math.random()*1000000+1));
compileIds.add((int)Math.floor(Math.random()*1000000+1));
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
logger.info("获取编译ID出错"); logger.info("获取编译ID出错");
@@ -316,63 +329,108 @@ public class AvContentCfgService extends BaseService{
* @param ids 编译Id * @param ids 编译Id
* @param functionId * @param functionId
*/ */
public void auditAvVoip(Integer isAudit,Integer isValid,String ids,Integer functionId){ @Transactional(readOnly=false,rollbackFor=RuntimeException.class)
public void auditAvVoip(Integer isAudit,Integer isValid,Integer functionId,String compileId,Date auditTime){
CfgIndexInfo entity = new CfgIndexInfo(); CfgIndexInfo entity = new CfgIndexInfo();
String[] idArray = ids.split(",");
List<CfgIndexInfo> list = new ArrayList(); List<CfgIndexInfo> list = new ArrayList();
List<AvVoipIpCfg> voipIpList = new ArrayList(); List<AvVoipIpCfg> voipIpList = new ArrayList();
List<AvVoipAccountCfg> voipAccountList = new ArrayList(); List<AvVoipAccountCfg> voipAccountList = new ArrayList();
List<AreaIpCfg> areaIpCfgList = new ArrayList(); List<AreaIpCfg> areaIpCfgList = new ArrayList();
Map<String, Object> childMap=new HashMap<>();
CfgIndexInfo searchCfg=new CfgIndexInfo(); CfgIndexInfo searchCfg=new CfgIndexInfo();
Date auditTime=new Date(); searchCfg.setCompileId(Integer.parseInt(compileId));
for(String id :idArray){
searchCfg.setCompileId(Integer.parseInt(id)); entity = avContentCfgDao.getCfgIndexInfo(searchCfg);
entity = avContentCfgDao.getCfgIndexInfo(searchCfg); entity.setIsAudit(isAudit);
entity.setIsAudit(isAudit); entity.setIsValid(isValid);
entity.setIsValid(isValid); entity.setAuditorId(UserUtils.getUser().getId());
entity.setAuditorId(UserUtils.getUser().getId()); entity.setAuditTime(auditTime);
entity.setAuditTime(auditTime);
voipIpList=avContentCfgDao.findVoipIpCfgList(entity);
voipAccountList=avContentCfgDao.findVoipAccountCfgList(entity); avContentCfgDao.updateAvVoipIp(entity);
areaIpCfgList=areaIpCfgDao.findAreaIpCfgList(entity); avContentCfgDao.updateAvVoipAccount(entity);
avContentCfgDao.updateCfgIndexInfo(entity);
areaIpCfgDao.updateAreaIpCfgFromCfgIndexInfo(entity);
voipIpList=avContentCfgDao.findVoipIpCfgList(entity);
voipAccountList=avContentCfgDao.findVoipAccountCfgList(entity);
areaIpCfgList=areaIpCfgDao.findAreaIpCfgList(entity);
ToMaatBean maatBean = new ToMaatBean();
MaatCfg maatCfg = new MaatCfg();
List<MaatCfg> configCompileList = new ArrayList();
List<GroupCfg> groupRelationList = new ArrayList();
List<IpCfg> ipRegionList = new ArrayList();
List<StringCfg> strRegionList = new ArrayList();
List<NumBoundaryCfg> numRegionList = new ArrayList();
List<DigestCfg> digestRegionList = new ArrayList();
List<IpCfg> areaIpRegionList = new ArrayList();
if(isAudit==1){
if(!StringUtil.isEmpty(voipIpList)){
Map<String,List> ipMap = cfgConvert(ipRegionList,voipIpList,1,entity,groupRelationList);
groupRelationList=ipMap.get("groupList");
ipRegionList=ipMap.get("dstList");
}
avContentCfgDao.updateAvVoipIp(entity); if(!StringUtil.isEmpty(voipAccountList)){
avContentCfgDao.updateAvVoipAccount(entity); Map<String,List> accountMap = cfgConvert(strRegionList,voipAccountList,2,entity,groupRelationList);
avContentCfgDao.updateCfgIndexInfo(entity); groupRelationList=accountMap.get("groupList");
areaIpCfgDao.updateAreaIpCfgFromCfgIndexInfo(entity); strRegionList=accountMap.get("dstList");
childMap.put("voipIps", voipIpList); }
childMap.put("voipAccounts", voipAccountList); if(!StringUtil.isEmpty(areaIpCfgList)){
childMap.put("areaIpCfgs", areaIpCfgList); Map<String,List> areaMap = cfgConvert(areaIpRegionList,areaIpCfgList,1,entity,groupRelationList);
list.add(entity); groupRelationList=areaMap.get("groupList");
areaIpRegionList=areaMap.get("dstList");
}
} }
/*if(isAudit==1){
//构造提交综合服务参数格式,一条配置提交一次综合服务
if(isAudit==1){
maatCfg.initDefaultValue();
BeanUtils.copyProperties(entity, maatCfg);
maatCfg.setAction(entity.getAction());
maatCfg.setAuditTime(entity.getAuditTime());
maatCfg.setIpRegionList(ipRegionList);
maatCfg.setStrRegionList(strRegionList);
maatCfg.setNumRegionList(numRegionList);
maatCfg.setDigestRegionList(digestRegionList);
maatCfg.setGroupRelationList(groupRelationList);
maatCfg.setGroupNum(groupRelationList.size());
maatCfg.setAreaIpRegionList(areaIpRegionList);
maatCfg.setIsValid(entity.getIsValid());
configCompileList.add(maatCfg);
maatBean.setConfigCompileList(configCompileList);
maatBean.setAuditTime(entity.getAuditTime());
maatBean.setCreatorName(entity.getCurrentUser().getName());
maatBean.setVersion(Constants.MAAT_VERSION);
maatBean.setOpAction(Constants.INSERT_ACTION);
//调用服务接口下发配置数据 //调用服务接口下发配置数据
String json=gsonToJson(list); String json=gsonToJson(maatBean);
logger.info("文件样例下发配置参数:"+json); logger.info("voip配置下发配置参数"+json);
//调用服务接口下发配置 //调用服务接口下发配置
try { ToMaatResult result = ConfigServiceUtil.postMaatCfg(json);
ToMaatResult result = ConfigServiceUtil.postCallbackCfg(json); logger.info("voip配置下发响应信息"+result.getMsg());
logger.info("音视频VOIP配置下发响应信息"+result.getMsg());
} catch (Exception e) {
e.printStackTrace();
logger.info("音视频VOIP配置下发失败");
throw new MaatConvertException("<spring:message code=\"request_service_failed\"/>:"+e.getMessage());
}
}else if(isAudit==3){ }else if(isAudit==3){
maatCfg.setCompileId(entity.getCompileId());
maatCfg.setServiceId(entity.getServiceId());
maatCfg.setIsValid(0);//无效
configCompileList.add(maatCfg);
maatBean.setConfigCompileList(configCompileList);
maatBean.setAuditTime(entity.getAuditTime());
maatBean.setCreatorName(entity.getCurrentUser().getName());
maatBean.setVersion(Constants.MAAT_VERSION);
maatBean.setOpAction(Constants.UPDATE_ACTION);
//调用服务接口取消配置 //调用服务接口取消配置
String json=gsonToJson(list); String json=gsonToJson(maatBean);
logger.info("音视频VOIP配置参数"+json); logger.info("http配置下发配置参数"+json);
//调用服务接口取消配置 //调用服务接口下发配置
try { ToMaatResult result = ConfigServiceUtil.put(json,1);
ToMaatResult result = ConfigServiceUtil.put(json, 2); logger.info("http配置取消配置响应信息"+result.getMsg());
logger.info("音视频VOIP取消配置响应信息"+result.getMsg()); }
} catch (Exception e) {
e.printStackTrace();
logger.info("音视频VOIP消配置失败");
throw new MaatConvertException("<spring:message code=\"request_service_failed\"/>:"+e.getMessage());
}
}*/
} }
@@ -411,9 +469,8 @@ public class AvContentCfgService extends BaseService{
//调用服务接口获取compileId //调用服务接口获取compileId
List<Integer> compileIds = new ArrayList<Integer>(); List<Integer> compileIds = new ArrayList<Integer>();
try { try {
//TODO compileIds = ConfigServiceUtil.getId(1,1);
//compileIds = ConfigServiceUtil.getId(1,1); //compileIds.add((int)Math.floor(Math.random()*1000000+1));
compileIds.add((int)Math.floor(Math.random()*1000000+1));
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
logger.info("获取编译ID出错"); logger.info("获取编译ID出错");

View File

@@ -88,7 +88,7 @@ $(function(){
<div class="container-fluid"> <div class="container-fluid">
<div class="row"> <div class="row">
<div class="pull-right"> <div class="pull-right">
<span class="glyphicon glyphicon-remove" title="remove" onClick="delAreaIsp(this);"/> <span class="glyphicon glyphicon-remove <c:if test="${status.index==0 }">hidden</c:if>" title="remove" onClick="delAreaIsp(this);"/>
</div> </div>
</div> </div>
<div class="row"> <div class="row">
@@ -142,13 +142,15 @@ $(function(){
</div> </div>
</div> </div>
<div class="row"> <div class="row">
<div class="col-md-6"> <div class="col-md-6">
<div class="form-group"> <div class="form-group">
<label class="control-label col-md-3"><font color="red">*</font><spring:message code="ip_type"/></label> <label class="control-label col-md-3"><font color="red">*</font><spring:message code="ip_pattern"/></label>
<div class="col-md-6"> <div class="col-md-6">
<select name="_areaCfg.ipType" class="selectpicker show-tick form-control required">
<c:forEach items="${fns:getDictList('IP_TYPE')}" var="ipType"> <select id="_areaCfg.ipType" class="show-tick form-control required">
<option value="${ipType.itemCode}">${ipType.itemValue}</option> <c:forEach items="${fns:getDictList('IP_TYPE')}" var="ipTypeC">
<option value="${ipTypeC.itemCode}">${ipTypeC.itemValue}</option>
</c:forEach> </c:forEach>
</select> </select>
</div> </div>
@@ -263,7 +265,7 @@ $(function(){
<input type="hidden" name="areaCfg[${status.index}].isAreaEffective" value="${areaCfg.isAreaEffective}"> <input type="hidden" name="areaCfg[${status.index}].isAreaEffective" value="${areaCfg.isAreaEffective}">
<input name="areaCfg[${status.index}].cfgId" type="hidden" value="${areaCfg.cfgId}"> <input name="areaCfg[${status.index}].cfgId" type="hidden" value="${areaCfg.cfgId}">
<div class="pull-right"> <div class="pull-right">
<span class="glyphicon glyphicon-remove" title="remove" onClick="delAreaIp(this);"/> <span class="glyphicon glyphicon-remove <c:if test="${status.index==0 }">hidden</c:if>" title="remove" onClick="delAreaIp(this);"/>
</div> </div>
</div> </div>
<div class="row"> <div class="row">

View File

@@ -30,13 +30,6 @@ $(function(){
top.$.jBox.tip("<spring:message code='one_more'/>", "<spring:message code='info'/>"); top.$.jBox.tip("<spring:message code='one_more'/>", "<spring:message code='info'/>");
return; 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;
}
form.submit(); form.submit();
}, },
errorContainer: "#messageBox", errorContainer: "#messageBox",

View File

@@ -43,6 +43,9 @@ $(function(){
$("#areaIsp").find(".container-fluid").each(function(){ $("#areaIsp").find(".container-fluid").each(function(){
if(!$(this).hasClass("hidden")) $(this).remove(); if(!$(this).hasClass("hidden")) $(this).remove();
}); });
if(len==0){
$("#areaIp").find(".container-fluid:visible").eq(0).find("span[title=remove]").addClass("hidden");
}
}else if($(this).parent().parent().parent().attr("id")=="areaIsp"){ }else if($(this).parent().parent().parent().attr("id")=="areaIsp"){
obj.find("[name^='areaCode']").each(function(){ obj.find("[name^='areaCode']").each(function(){
$(this).attr("name","areaIsp["+len+"].area"); $(this).attr("name","areaIsp["+len+"].area");
@@ -58,6 +61,9 @@ $(function(){
$("#areaIp").find(".container-fluid").each(function(){ $("#areaIp").find(".container-fluid").each(function(){
if(!$(this).hasClass("hidden")) $(this).remove(); if(!$(this).hasClass("hidden")) $(this).remove();
}); });
if(len==0){
$("#areaIsp").find(".container-fluid:visible").eq(0).find("span[title=remove]").addClass("hidden");
}
} }
}); });
$("input[name='areaType']").on('change',function(){ $("input[name='areaType']").on('change',function(){
@@ -65,16 +71,28 @@ $(function(){
if($(this).is(":visible")){ if($(this).is(":visible")){
if(val==0){ if(val==0){
$("#areaIp").removeClass("hidden"); $("#areaIp").removeClass("hidden");
/*$("#areaIsp").find(".container-fluid:visible").find("input,select,div,button").each(function(){
$(this).attr("disabled","true");
});*/
$("#areaIsp").addClass("hidden"); $("#areaIsp").addClass("hidden");
if($("#areaIp").find(".container-fluid:visible").size() <1){ if($("#areaIp").find(".container-fluid:visible").size() <1){
$("#areaIp").find(".glyphicon-plus").click(); $("#areaIp").find(".glyphicon-plus").click();
} }
/*$("#areaIp").find(".container-fluid:visible").find("input,select,div,button").each(function(){
$(this).removeAttr("disabled");
});*/
}else{ }else{
$("#areaIsp").removeClass("hidden"); $("#areaIsp").removeClass("hidden");
/*$("#areaIp").find(".container-fluid:visible").find("input,select,div,button").each(function(){
$(this).attr("disabled","true");
});*/
$("#areaIp").addClass("hidden"); $("#areaIp").addClass("hidden");
if($("#areaIsp").find(".container-fluid:visible").size() <1){ if($("#areaIsp").find(".container-fluid:visible").size() <1){
$("#areaIsp").find(".glyphicon-plus").click(); $("#areaIsp").find(".glyphicon-plus").click();
} }
/*$("#areaIsp").find(".container-fluid:visible").find("input,select,div,button").each(function(){
$(this).removeAttr("disabled");
});*/
} }
}else{ }else{
$("#areaIsp").addClass("hidden"); $("#areaIsp").addClass("hidden");