diff --git a/src/main/java/com/nis/domain/configuration/AvVoipAccountCfg.java b/src/main/java/com/nis/domain/configuration/AvVoipAccountCfg.java new file mode 100644 index 000000000..3988b16ff --- /dev/null +++ b/src/main/java/com/nis/domain/configuration/AvVoipAccountCfg.java @@ -0,0 +1,15 @@ +package com.nis.domain.configuration; + +/** + * @ClassName: AvVoipAccountCfg.java + * @Description: TODO + * @author (dell) + * @date 2018年2月6日 上午8:18:55 + * @version V1.0 + */ +public class AvVoipAccountCfg extends ComplexkeywordCfg{ + + + private static final long serialVersionUID = -7398698517584394431L; + +} diff --git a/src/main/java/com/nis/domain/configuration/AvVoipIpCfg.java b/src/main/java/com/nis/domain/configuration/AvVoipIpCfg.java new file mode 100644 index 000000000..039566aa4 --- /dev/null +++ b/src/main/java/com/nis/domain/configuration/AvVoipIpCfg.java @@ -0,0 +1,19 @@ +package com.nis.domain.configuration; + +/** + * @ClassName: AvVoipIpCfg.java + * @Description: 音视频VOIP + * @author (dell) + * @date 2018年2月6日 上午8:29:26 + * @version V1.0 + */ +public class AvVoipIpCfg extends BaseIpCfg { + + /** + * + */ + private static final long serialVersionUID = -942354218504312548L; + + + +} diff --git a/src/main/java/com/nis/domain/configuration/CfgIndexInfo.java b/src/main/java/com/nis/domain/configuration/CfgIndexInfo.java new file mode 100644 index 000000000..c1860d20a --- /dev/null +++ b/src/main/java/com/nis/domain/configuration/CfgIndexInfo.java @@ -0,0 +1,60 @@ +/** + *@Title: CfgIndexInfo.java + *@Package com.nis.domain.restful + *@Description 索引公共表 + *@author dell + *@date 2018年5月17日 下午16:59:17 + *@version 版本号 + */ +package com.nis.domain.configuration; + +import java.util.Date; +import java.util.List; + + +/** + * @ClassName: CfgIndexInfo.java + * @author (dell) + * @date 2018年5月17日 下午16:59:17 + * @version V1.0 + */ +public class CfgIndexInfo extends BaseCfg { + + + /** + * + */ + private static final long serialVersionUID = 2796500715438264119L; + + private List voipAccounts;//Add表单使用 + private List voipIps; //Add表单使用 + private AvVoipAccountCfg voipAccount;//Search使用 + private AvVoipIpCfg voipIp;//Search使用 + + + public AvVoipAccountCfg getVoipAccount() { + return voipAccount; + } + public void setVoipAccount(AvVoipAccountCfg voipAccount) { + this.voipAccount = voipAccount; + } + public List getVoipAccounts() { + return voipAccounts; + } + public void setVoipAccounts(List voipAccounts) { + this.voipAccounts = voipAccounts; + } + public AvVoipIpCfg getVoipIp() { + return voipIp; + } + public void setVoipIp(AvVoipIpCfg voipIp) { + this.voipIp = voipIp; + } + public void setVoipIps(List voipIps) { + this.voipIps = voipIps; + } + public List getVoipIps() { + return voipIps; + } + +} diff --git a/src/main/java/com/nis/domain/configuration/ComplexkeywordCfg.java b/src/main/java/com/nis/domain/configuration/ComplexkeywordCfg.java index 22435b107..905ea7fa4 100644 --- a/src/main/java/com/nis/domain/configuration/ComplexkeywordCfg.java +++ b/src/main/java/com/nis/domain/configuration/ComplexkeywordCfg.java @@ -38,7 +38,7 @@ public class ComplexkeywordCfg extends BaseCfg{ */ @Expose @SerializedName("keywords") - protected String keywords; + protected String cfgKeywords; protected String keywordsShowName; /** * 表达式类型 @@ -72,19 +72,11 @@ public class ComplexkeywordCfg extends BaseCfg{ public void setDistrict(String district) { this.district = district; } - /** - * keywords - * @return keywords - */ - - public String getKeywords() { - return keywords; + public String getCfgKeywords() { + return cfgKeywords; } - /** - * @param keywords the keywords to set - */ - public void setKeywords(String keywords) { - this.keywords = keywords; + public void setCfgKeywords(String cfgKeywords) { + this.cfgKeywords = cfgKeywords; } /** * exprType diff --git a/src/main/java/com/nis/web/controller/BaseController.java b/src/main/java/com/nis/web/controller/BaseController.java index 129a67861..b27d21a69 100644 --- a/src/main/java/com/nis/web/controller/BaseController.java +++ b/src/main/java/com/nis/web/controller/BaseController.java @@ -48,6 +48,7 @@ import com.nis.web.service.basics.ServiceDictInfoService; import com.nis.web.service.basics.SysDictInfoService; import com.nis.web.service.configuration.AppCfgService; import com.nis.web.service.configuration.AvCfgService; +import com.nis.web.service.configuration.AvContentCfgService; import com.nis.web.service.configuration.ComplexStringCfgService; import com.nis.web.service.configuration.DnsIpCfgService; import com.nis.web.service.configuration.FtpCfgService; @@ -146,6 +147,8 @@ public class BaseController { protected SpecificServiceHostCfgService specificServiceHostCfgService; @Autowired protected AvCfgService avCfgService; + @Autowired + protected AvContentCfgService avContentCfgService; /** * 管理基础路径 */ @@ -157,7 +160,6 @@ public class BaseController { */ @Value("${frontPath}") protected String frontPath; - /** * 前端URL后缀 */ diff --git a/src/main/java/com/nis/web/controller/configuration/ntc/AvContentController.java b/src/main/java/com/nis/web/controller/configuration/ntc/AvContentController.java new file mode 100644 index 000000000..59a73d7b5 --- /dev/null +++ b/src/main/java/com/nis/web/controller/configuration/ntc/AvContentController.java @@ -0,0 +1,101 @@ +package com.nis.web.controller.configuration.ntc; + +import java.util.ArrayList; +import java.util.HashMap; +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.ModelAttribute; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import com.nis.domain.Page; +import com.nis.domain.configuration.AvVoipAccountCfg; +import com.nis.domain.configuration.CfgIndexInfo; +import com.nis.domain.configuration.AvVoipIpCfg; + +import com.nis.util.StringUtil; +import com.nis.web.controller.BaseController; + +/** + * 处理音视频文本业务 + * @author ddm + * + */ +@Controller +@RequestMapping("${adminPath}/ntc/av") +public class AvContentController extends BaseController { + + + //音视频VOIP配置新增界面 + @RequestMapping(value = {"/voipForm"}) + public String voipFrom(Model model,HttpServletRequest request,HttpServletResponse response,String ids,CfgIndexInfo entity){ + if(!StringUtil.isEmpty(ids)){ + entity.setCfgId(Long.parseLong(ids)); + entity = avContentCfgService.getCfgIndexInfo(entity); + }else{ + List avVoipAccountCfgs=new ArrayList(); + avVoipAccountCfgs.add(new AvVoipAccountCfg()); + entity.setVoipAccounts(avVoipAccountCfgs); + List avVoipIpCfgs=new ArrayList(); + avVoipIpCfgs.add(new AvVoipIpCfg()); + entity.setVoipIps(avVoipIpCfgs); + } + + initFormCondition(model,entity); + model.addAttribute("_cfg", entity); + return "/cfg/av/voip/voipForm"; + } + //视频文本VOIP配置列表 + @RequestMapping(value = {"/voipList"}) + public String voipCfgList(@ModelAttribute("cfg")CfgIndexInfo entity,Model model,HttpServletRequest request,HttpServletResponse response){ + if(entity.getVoipIp()== null){ + entity.setVoipIp(new AvVoipIpCfg()); + } + if(entity.getVoipAccount()== null){ + entity.setVoipAccount(new AvVoipAccountCfg()); + } + Page page = avContentCfgService.findPage(new Page(request, response,"a"), entity); + model.addAttribute("page", page); + initPageCondition(model); + return "/cfg/av/voip/voipList"; + } + + + //修改VOIP例配置状态 + @RequestMapping(value = {"/updateAvVoip"}) + public String updateVoipValid(Integer isAudit,Integer isValid,String ids,Integer functionId){ + //avCfgService.updateAvFileSampleValid(isAudit,isValid,ids); + return "redirect:" + adminPath +"/ntc/av/voipList?functionId="+functionId; + } + //修改VOIP配置审核状态 + @RequestMapping(value = {"/auditAvVoip"}) + public String auditVoip(Integer isAudit,Integer isValid,String ids,Integer functionId){ + //avContentCfgService.auditAvVoip(isAudit,isValid,ids); + return "redirect:" + adminPath +"/ntc/av/voipList?functionId="+functionId; + } + + /** + * 根据索引表信息异步获取子表信息 + * @return + */ + @ResponseBody + @RequestMapping(value = "ajaxVoipAndAccountInfo") + public Map getVoipAndAccountInfo(CfgIndexInfo cfgIndexInfo) { + Map voipAndAccountInfoMap=new HashMap(); + //获取voipIpCfg信息 + List voipIpCfgList=new ArrayList(); + List voipAccountCfgList=new ArrayList(); + voipIpCfgList = avContentCfgService.getVoipIpCfgList(cfgIndexInfo); + voipAccountCfgList = avContentCfgService.getVoipAccountCfgList(cfgIndexInfo); + voipAndAccountInfoMap.put("ip", voipIpCfgList); + voipAndAccountInfoMap.put("account", voipAccountCfgList); + return voipAndAccountInfoMap; + } + +} diff --git a/src/main/java/com/nis/web/dao/configuration/AvContentCfgDao.java b/src/main/java/com/nis/web/dao/configuration/AvContentCfgDao.java new file mode 100644 index 000000000..b0b3c2354 --- /dev/null +++ b/src/main/java/com/nis/web/dao/configuration/AvContentCfgDao.java @@ -0,0 +1,24 @@ +package com.nis.web.dao.configuration; + + +import java.util.List; + +import org.apache.ibatis.annotations.Param; + +import com.nis.domain.configuration.AvVoipAccountCfg; +import com.nis.domain.configuration.AvVoipIpCfg; +import com.nis.domain.configuration.BaseIpCfg; +import com.nis.domain.configuration.CfgIndexInfo; +import com.nis.domain.configuration.AvFileSampleCfg; +import com.nis.domain.configuration.AvSignSampleCfg; +import com.nis.web.dao.CrudDao; +import com.nis.web.dao.MyBatisDao; + + +@MyBatisDao +public interface AvContentCfgDao extends CrudDao{ + public List findVoipList(@Param("cfg")CfgIndexInfo entity) ; + public List findVoipIpCfgList(@Param("cfg")CfgIndexInfo entity); + public List findVoipAccountCfgList(@Param("cfg")CfgIndexInfo entity); + public CfgIndexInfo getCfgIndexInfo(@Param("cfg")CfgIndexInfo entity); +} diff --git a/src/main/java/com/nis/web/dao/configuration/AvContentCfgDao.xml b/src/main/java/com/nis/web/dao/configuration/AvContentCfgDao.xml new file mode 100644 index 000000000..d72d95f62 --- /dev/null +++ b/src/main/java/com/nis/web/dao/configuration/AvContentCfgDao.xml @@ -0,0 +1,275 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + a.CFG_ID,a.CFG_DESC,a.ACTION,a.IS_VALID,a.IS_AUDIT, + a.CREATOR_ID,a.CREATE_TIME,a.EDITOR_ID,a.EDIT_TIME,a.AUDITOR_ID,a.AUDIT_TIME, + a.SERVICE_ID,a.REQUEST_ID,a.COMPILE_ID,a.IS_AREA_EFFECTIVE,a.CLASSIFY, + a.ATTRIBUTE,a.LABLE,a.AREA_EFFECTIVE_IDS,a.function_id + + + a.cfg_id,a.cfg_desc,a.ip_type,a.src_ip_address,a.ip_pattern,a.port_pattern,a.src_port + ,a.protocol,a.protocol_id,a.direction,a.cfg_type,a.action,a.dest_port,a.dest_ip_address + ,a.is_valid,a.is_audit,a.creator_id,a.create_time,a.editor_id + ,a.edit_time,a.auditor_id,a.audit_time,a.service_id,a.request_id, + a.compile_id,a.is_area_effective,a.classify,a.attribute,a.lable + ,a.area_effective_ids,a.function_id,a.cfg_region_code + + + a.cfg_id,a.cfg_desc,a.district,a.cfg_keywords,a.cfg_type, + a.action,a.is_valid,a.is_audit,a.creator_id,a.create_time,a.editor_id,a.edit_time, a.auditor_id, + a.audit_time,a.service_id,a.request_id,a.compile_id,a.is_area_effective,a.classify,a.attribute,a.lable, + a.expr_type,a.match_method,a.is_hexbin,a.area_effective_ids,a.function_id,a.cfg_region_code + + + + + + + + + \ No newline at end of file diff --git a/src/main/java/com/nis/web/service/configuration/AvContentCfgService.java b/src/main/java/com/nis/web/service/configuration/AvContentCfgService.java new file mode 100644 index 000000000..998ee8c71 --- /dev/null +++ b/src/main/java/com/nis/web/service/configuration/AvContentCfgService.java @@ -0,0 +1,145 @@ +package com.nis.web.service.configuration; + + +import java.io.File; +import java.util.ArrayList; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.nis.domain.Page; +import com.nis.domain.configuration.AvFileSampleCfg; +import com.nis.domain.configuration.AvVoipAccountCfg; +import com.nis.domain.configuration.AvVoipIpCfg; +import com.nis.domain.configuration.CfgIndexInfo; +import com.nis.exceptions.MaatConvertException; +import com.nis.util.ConfigServiceUtil; +import com.nis.util.FileUtils; +import com.nis.web.dao.FunctionRegionDictDao; +import com.nis.web.dao.FunctionServiceDictDao; +import com.nis.web.dao.configuration.AvCfgDao; +import com.nis.web.dao.configuration.AvContentCfgDao; +import com.nis.web.security.UserUtils; +import com.nis.web.service.BaseService; +import com.nis.web.service.CrudService; + +import net.sf.json.JSONObject; + + +/** + * 音视频文本 + * @author dell + * + */ +@Service +public class AvContentCfgService extends BaseService{ + @Autowired + protected AvContentCfgDao avContentCfgDao; + + /** + * 查询分页数据 + * @param page 分页对象 + * @param entity + * @return + */ + public Page findPage(Page page, CfgIndexInfo entity) { + entity.getSqlMap().put("dsf", configScopeFilter(entity.getCurrentUser(),"a")); + entity.setPage(page); + List list=avContentCfgDao.findVoipList(entity); + page.setList(list); + return page; + } + /** + * 根据索引表信息获取voipIpCfg信息 + * @param entity + * @return + */ + public List getVoipIpCfgList(CfgIndexInfo entity) { + return avContentCfgDao.findVoipIpCfgList(entity); + } + /** + * 根据索引表信息获取voipAccountCfg信息 + * @param entity + * @return + */ + public List getVoipAccountCfgList(CfgIndexInfo entity) { + return avContentCfgDao.findVoipAccountCfgList(entity); + } + /** + * 根据索引表信息获取voipAccountCfg信息 + * @param entity + * @return + */ + public CfgIndexInfo getCfgIndexInfo(CfgIndexInfo entity) { + CfgIndexInfo cfg=avContentCfgDao.getCfgIndexInfo(entity); + cfg.setVoipAccounts(getVoipAccountCfgList(entity)); + cfg.setVoipIps(getVoipIpCfgList(entity)); + + return cfg; + } + /** + * 审核 + * @param isAudit + * @param isValid + * @param ids **编译Id + * @param functionId 业务id + */ + public void auditAvVoip(Integer isAudit,Integer isValid,String ids){ + CfgIndexInfo entity = new CfgIndexInfo(); + String[] idArray = ids.split(","); + List list = new ArrayList(); + Gson gson=new GsonBuilder().disableHtmlEscaping() + .excludeFieldsWithoutExposeAnnotation() + .create(); + //多域配置审核时间为同一个时间 + Date auditTime=new Date(); + + for(String id :idArray){ + CfgIndexInfo cfgSearch=new CfgIndexInfo(); + cfgSearch.setCfgId(Long.parseLong(id)); + entity = avContentCfgDao.getCfgIndexInfo(cfgSearch); + entity.setIsAudit(isAudit); + entity.setIsValid(isValid); + entity.setAuditorId(UserUtils.getUser().getId()); + entity.setAuditTime(auditTime); + + /*avCfgDao.auditAvFileSample(entity); + list.add(entity);*/ + + } + /*if(isAudit==1){ + //调用服务接口下发配置数据 + String json=gson.toJson(list); + logger.info("音视频文件样例下发配置参数:"+json); + //调用服务接口下发配置 + try { + String result = ConfigServiceUtil.postCallbackCfg(json); + logger.info("音视频文件样例配置下发响应信息:"+result); + } catch (Exception e) { + e.printStackTrace(); + logger.info("音视频文件样例配置下发失败"); + throw new MaatConvertException(":"+e.getMessage()); + } + }else if(isAudit==3){ + //调用服务接口取消配置 + String json=gson.toJson(list); + logger.info("音视频文件样例下发配置参数:"+json); + //调用服务接口下发配置 + try { + String result = ConfigServiceUtil.put(json,2); + logger.info("音视频文件样例取消配置响应信息:"+result); + } catch (Exception e) { + e.printStackTrace(); + logger.info("音视频文件样取消配置失败"); + throw new MaatConvertException(":"+e.getMessage()); + } + }*/ + } + +} diff --git a/src/main/resources/messages/message_zh_CN.properties b/src/main/resources/messages/message_zh_CN.properties index 8ec131550..4b21cabba 100644 --- a/src/main/resources/messages/message_zh_CN.properties +++ b/src/main/resources/messages/message_zh_CN.properties @@ -556,3 +556,7 @@ no_permission=\u6743\u9650\u4E0D\u8DB3 param_error=\u53C2\u6570\u6709\u8BEF\uFF0C\u670D\u52A1\u5668\u65E0\u6CD5\u89E3\u6790\u3002 request_service_failed=\u8BF7\u6C42\u670D\u52A1\u63A5\u53E3\u5931\u8D25 request_error=\u8BF7\u6C42\u9519\u8BEF +av_voip_ip_title=VoIP IP +av_voip_account_title=VoIP\u8D26\u53F7 +ip_pattern=IP \u683C\u5F0F +port_pattern=\u7AEF\u53E3\u683C\u5F0F \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/views/cfg/av/voip/voipForm.jsp b/src/main/webapp/WEB-INF/views/cfg/av/voip/voipForm.jsp new file mode 100644 index 000000000..6e03ef6c0 --- /dev/null +++ b/src/main/webapp/WEB-INF/views/cfg/av/voip/voipForm.jsp @@ -0,0 +1,407 @@ +<%@ page contentType="text/html;charset=UTF-8"%> +<%@ include file="/WEB-INF/include/taglib.jsp"%> + + +<spring:message code="${cfgName}"></spring:message> + + + + + + + + +
+ + <%--

+ +

--%> + +
+
+
+
+
+ + + +
+
+
+ +
+ + + + + + + + + + + +
+
+
+
+ +
+ +
+
+
+
+
+
+
+ +
+ +
+
+
+
+
+ +
+ + + +
+
+
+
+
+ + +

+ +
+
+
+ +
+
+
+
+
+ +
+ +
+
+
+
+
+
+
+
+ +
+ +
+
+
+
+
+
+ +
+ +
+
+
+
+
+ + + +
+ +
+
+
+
+ + +

+ +
+
+
+ +
+
+
+
+
+ +
+ +
+
+
+
+
+
+ +
+ +
+
+
+
+ +
+
+
+
+ +
+ + +
+
+
+
+
+
+ +
+ +
+
+
+
+
+
+
+
+ +
+ +
+
+
+
+
+
+
+ +
+ <%-- <%@include file="/WEB-INF/include/form/areaInfo.jsp" %> --%> +
+ <%@include file="/WEB-INF/include/form/basicInfo.jsp" %> +
+
+
+
+
+
+ + +
+
+
+
+
+
+
+ +
+
+
+
+
+ + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/views/cfg/av/voip/voipList.jsp b/src/main/webapp/WEB-INF/views/cfg/av/voip/voipList.jsp new file mode 100644 index 000000000..2fe7a77a9 --- /dev/null +++ b/src/main/webapp/WEB-INF/views/cfg/av/voip/voipList.jsp @@ -0,0 +1,712 @@ +<%@ page contentType="text/html;charset=UTF-8"%> +<%@ include file="/WEB-INF/include/taglib.jsp"%> + + +<spring:message code="${cfgName}"></spring:message> + + + + + + + + + + + + + + + + + + + + + +
+ + +

+ + +

+ +
+
+
+
+ + + + + + + + + + +
+
+ + + + + + + + +
+ +
+ +
+
+ + + + + + + + + +
+ + + +
+
+
+ + + +
+
+ + + + + +
+ + +
+
+ href="javascript:;"> + + +
+
+ + + +
+
+ +
+ +
+ + + + + + + + +
+ +
+ +
+ +
+ + + + + + + +
+ +
+ +
+ +
+ + + + + + + + +
+ +
+ +
+ +
+ + + + + + + +
+ +
+ +
+ +
+
+
+ + +
+
+ +
+
+ + " onclick="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss',isShowClear:true});"/> + +
+
+ +
+
+ + " onclick="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss',isShowClear:true});"/> + +
+
+ +
+
+ + " onclick="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss',isShowClear:true});"/> + +
+
+ +
+
+ + " onclick="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss',isShowClear:true});"/> + +
+
+ +
+
+ + " onclick="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss',isShowClear:true});"/> + +
+
+
+ + +
+ + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + ${indexCfg.cfgDesc } + + + + + + + + + ${indexCfg.requestName } + + + + ${fl.itemValue}, + + + + ${classifyName[status]} + + + + ${xz.itemValue}, + + + + + + ${lable.itemValue}, + + + + + + + + + + + + + + ${indexCfg.creatorName }${indexCfg.editorName }${indexCfg.auditorName }
+
${page}
+
+ +
+
+
+ + + \ No newline at end of file diff --git a/src/main/webapp/static/global/scripts/jeesite.js b/src/main/webapp/static/global/scripts/jeesite.js index ec325ae7b..1c8e0193d 100644 --- a/src/main/webapp/static/global/scripts/jeesite.js +++ b/src/main/webapp/static/global/scripts/jeesite.js @@ -368,11 +368,12 @@ function customColumnClick(){ return true; } } - + if($(this).hasClass("cfgDesc")){ + return true; + } var checked = ($(this).is(":visible") ? "checked='checked'":""); var ckbox_html = ""; html+="
"; - }) html +="
"; @@ -394,7 +395,9 @@ function customColumnInit() { //选中则显示 showColumn(indexCol); }else { - hideColumn(indexCol); + if($(".table tr th[class='cfgDesc']").index()!=indexCol){ + hideColumn(indexCol); + } } }) }else {