app主题网站增加关联关系

This commit is contained in:
zhanghongqing
2018-08-29 22:46:49 +08:00
parent dd59389e0a
commit 5335703255
11 changed files with 483 additions and 151 deletions

View File

@@ -28,12 +28,12 @@ public class AppTopicDomainCfg extends BaseCfg<AppTopicDomainCfg> {
@Expose
private String ratelimit;
// private Integer appCode;//specific_service_cfg表一级节点的spec_service_code
private Integer behavCode;//specific_service_cfg表二级节点的spec_service_code
private Long websiteServiceId;//specific_service_cfg表二级节点的spec_service_code
private Integer specServiceId;
private String domain;
private String cfgKeywords;
private String appName;
private String topic;
private Long topicId;
@Expose
@ExcelField(title="expression_type")
@@ -51,12 +51,14 @@ public class AppTopicDomainCfg extends BaseCfg<AppTopicDomainCfg> {
protected Integer isHexbin;
public String getTopic() {
return topic;
public Long getTopicId() {
return topicId;
}
public void setTopic(String topic) {
this.topic = topic;
public void setTopicId(Long topicId) {
this.topicId = topicId;
}
public Integer getExprType() {
@@ -142,12 +144,12 @@ public class AppTopicDomainCfg extends BaseCfg<AppTopicDomainCfg> {
this.appName = appName;
}
public Integer getBehavCode() {
return behavCode;
public Long getWebsiteServiceId() {
return websiteServiceId;
}
public void setBehavCode(Integer behavCode) {
this.behavCode = behavCode;
public void setWebsiteServiceId(Long websiteServiceId) {
this.websiteServiceId = websiteServiceId;
}
}

View File

@@ -0,0 +1,59 @@
package com.nis.domain.configuration;
import java.util.Date;
public class WebsiteDomainTopic {
private Long id; // `id` bigint(20) NOT NULL AUTO_INCREMENT,
private Long websiteServiceId; // `website_service_id` bigint(20) DEFAULT NULL COMMENT '网站服务Id',
private String domain; // `domain` varchar(200) DEFAULT NULL COMMENT '域名',
private Long topicId; // `topic_id` bigint(20) DEFAULT NULL COMMENT '主题Id',
private Date createTime; // `create_time` timestamp NULL DEFAULT NULL ON UPDATE current_timestamp(),
private Integer creatorId; // `creator_id` int(11) DEFAULT NULL,
private Integer isValid; // `is_valid` int(1) DEFAULT NULL,
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public Long getWebsiteServiceId() {
return websiteServiceId;
}
public void setWebsiteServiceId(Long websiteServiceId) {
this.websiteServiceId = websiteServiceId;
}
public String getDomain() {
return domain;
}
public void setDomain(String domain) {
this.domain = domain;
}
public Long getTopicId() {
return topicId;
}
public void setTopicId(Long topicId) {
this.topicId = topicId;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public Integer getCreatorId() {
return creatorId;
}
public void setCreatorId(Integer creatorId) {
this.creatorId = creatorId;
}
public Integer getIsValid() {
return isValid;
}
public void setIsValid(Integer isValid) {
this.isValid = isValid;
}
}

View File

@@ -4,11 +4,13 @@ import java.io.File;
import java.security.cert.X509Certificate;
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 javax.servlet.http.HttpServletResponse;
import javax.ws.rs.POST;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.authz.annotation.RequiresPermissions;
@@ -16,10 +18,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.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.nis.domain.Page;
import com.nis.domain.SysDataDictionaryItem;
@@ -35,6 +40,7 @@ import com.nis.domain.configuration.AppTcpCfg;
import com.nis.domain.configuration.AppTopicDomainCfg;
import com.nis.domain.configuration.IpPortCfg;
import com.nis.domain.configuration.NtcSubscribeIdCfg;
import com.nis.domain.configuration.WebsiteDomainTopic;
import com.nis.domain.configuration.AppBuiltInFeatureFile;
import com.nis.domain.maat.ToMaatResult;
import com.nis.domain.maat.ToMaatResult.ResponseData;
@@ -1017,23 +1023,35 @@ public class AppCfgController extends BaseController {
public String TopicDomainCfgList(Model model,@ModelAttribute("cfg")AppTopicDomainCfg cfg,HttpServletRequest request,HttpServletResponse response) {
Page<AppTopicDomainCfg> searchPage=new Page<AppTopicDomainCfg>(request,response,"r");
Page<AppTopicDomainCfg> page = appCfgService.findAppTopicDomainList(searchPage, cfg);
// for(AppTopicDomainCfg entity:page.getList()){
// SpecificServiceCfg app = specificServiceCfgService.getBySpecServiceId(entity.getSpecServiceId());
// entity.setAppName(app.getSpecServiceName());
// }
//设置topic主题
for (AppTopicDomainCfg entity:page.getList()) {
List<CodeResult> codeList = CodeDicUtils.getCodeList("serviceCode");
for (CodeResult codeResult : codeList) {
if(null!=entity.getTopic()&&codeResult.getCode().equals(entity.getTopic())){
entity.setAppName(codeResult.getItem());
}
}
}
model.addAttribute("page", page);
initPageCondition(model,cfg);
return "/cfg/app/appTopicDomainCfgList";
}
/**
*
* 获取服务与主题关系表中的域名
* @param websiteDomainTopic
* @param response
* @return
*/
@ResponseBody
@RequestMapping(value = "WebsiteDomainTopicList",method=RequestMethod.GET)
public List<Map<String, Object>> WebsiteDomainTopicList(@ModelAttribute("websiteDomainTopic")WebsiteDomainTopic websiteDomainTopic,@RequestParam("websiteServiceId") Long websiteServiceId,@RequestParam("topicId") Long topicId,HttpServletResponse response){
List<Map<String, Object>> mapList = Lists.newArrayList();
if(websiteServiceId!=null&&topicId!=null){
List<WebsiteDomainTopic> list = appCfgService.getDomainDict(websiteDomainTopic);
if(list!=null&&list.size()>0){
for (WebsiteDomainTopic domain : list) {
Map<String, Object> map = Maps.newHashMap();
map.put("domain",domain.getDomain());
map.put("domainId",domain.getId());
mapList.add(map);
}
}
}
return mapList;
}
/**
* app主题网站配置表单
* @param model
@@ -1065,12 +1083,34 @@ public class AppCfgController extends BaseController {
@RequestMapping(value = {"saveAppTopicDomainCfg"})
@RequiresPermissions(value={"app:topic:config"})
public String saveAppTopicDomainCfg(Model model,HttpServletRequest request,HttpServletResponse response,
AppTopicDomainCfg entity,RedirectAttributes redirectAttributes) {
AppTopicDomainCfg entity,@RequestParam("userDomain")String userDomain,RedirectAttributes redirectAttributes) {
try {
// SpecificServiceCfg specificService = specificServiceCfgService.getBySpecServiceId(entity.getSpecServiceId());
// if(specificService!=null){
// entity.setAppCode(specificService.getSpecServiceCode());
// }
//验证域名的重复行
if(!StringUtil.isBlank(userDomain)){
WebsiteDomainTopic websiteDomainTopic = new WebsiteDomainTopic();
websiteDomainTopic.setDomain(userDomain);
List<WebsiteDomainTopic> domainDict = appCfgService.getDomainDict(websiteDomainTopic);
if((domainDict!=null&&domainDict.size()>0)){
addMessage(redirectAttributes,"domain_existed");
return "redirect:" + adminPath +"/app/topicDomainCfgList?functionId="+entity.getFunctionId();
}else{
//保存到域名关联表中
if(entity!=null&&entity.getWebsiteServiceId()!=null&&entity.getTopicId()!=null){
websiteDomainTopic.setWebsiteServiceId(entity.getWebsiteServiceId());
websiteDomainTopic.setTopicId(entity.getTopicId());
websiteDomainTopic.setCreateTime(new Date());
websiteDomainTopic.setCreatorId(Integer.valueOf(UserUtils.getUser().getId().toString()));
websiteDomainTopic.setIsValid(Constants.VALID_YES);
appCfgService.saveDomainDict(websiteDomainTopic);
}else{
addMessage(redirectAttributes,"save_failed");
return "redirect:" + adminPath +"/app/topicDomainCfgList?functionId="+entity.getFunctionId();
}
}
}
if(entity!=null&&StringUtil.isBlank(entity.getDomain())&&!StringUtil.isBlank(userDomain)){
entity.setDomain(userDomain);//自定义域名
}
appCfgService.saveOrUpdateAppTopicDomainCfg(entity);
addMessage(redirectAttributes,"save_success");
} catch (Exception e) {

View File

@@ -23,6 +23,7 @@ import com.nis.domain.configuration.BaseCfg;
import com.nis.domain.configuration.BaseStringCfg;
import com.nis.domain.configuration.ComplexkeywordCfg;
import com.nis.domain.configuration.IpPortCfg;
import com.nis.domain.configuration.WebsiteDomainTopic;
import com.nis.web.dao.CrudDao;
import com.nis.web.dao.MyBatisDao;
@@ -94,4 +95,7 @@ public interface AppCfgDao {
//修改配置状态
public void updateCfgValid(BaseCfg entity);
public void deleteSubscribeIdCfg(AppPolicyCfg entity);
//域名关联表操作
public List<WebsiteDomainTopic> getDomainDict(WebsiteDomainTopic websiteDomainTopic);
public void saveDomainDict(WebsiteDomainTopic websiteDomainTopic);
}

View File

@@ -140,8 +140,8 @@
<resultMap id="AppTopicDomainCfgMap" type="com.nis.domain.configuration.AppTopicDomainCfg" >
<id column="cfg_id" property="cfgId" jdbcType="BIGINT" />
<result column="spec_service_id" property="specServiceId" jdbcType="INTEGER" />
<result column="topic" property="topic" jdbcType="VARCHAR" />
<result column="behav_code" property="behavCode" jdbcType="INTEGER" />
<result column="topic_id" property="topicId" jdbcType="BIGINT" />
<result column="website_service_id" property="websiteServiceId" jdbcType="BIGINT" />
<result column="domain" property="domain" jdbcType="VARCHAR" />
<result column="cfg_desc" property="cfgDesc" jdbcType="VARCHAR" />
<result column="action" property="action" jdbcType="INTEGER" />
@@ -358,6 +358,18 @@
<result column="do_log" property="doLog" jdbcType="INTEGER" />
</resultMap>
<resultMap id="WebsiteDomainTopicMap" type="com.nis.domain.configuration.WebsiteDomainTopic" >
<id column="id" property="id" jdbcType="BIGINT" />
<result column="website_service_id" property="websiteServiceId" jdbcType="BIGINT" />
<result column="domain" property="domain" jdbcType="VARCHAR" />
<result column="topic_id" property="topicId" jdbcType="BIGINT" />
<result column="create_time" property="createTime" jdbcType="TIMESTAMP" />
<result column="creator_id" property="creatorId" jdbcType="INTEGER" />
<result column="is_valid" property="isValid" jdbcType="INTEGER" />
</resultMap>
<sql id="WebsiteDomainTopic_Column">
id,website_service_id websiteServiceId,domain,topic_id topicId,create_time createTime,creator_id creatorId,is_valid isValid
</sql>
<sql id="AppTcpCfg_Column" >
r.CFG_ID, r.APP_CODE,r.BEHAV_CODE,r.SPEC_SERVICE_ID,r.CFG_DESC,r.ACTION,r.IS_VALID,r.IS_AUDIT,
r.CREATOR_ID,r.CREATE_TIME,r.EDITOR_ID,r.EDIT_TIME,r.AUDITOR_ID,r.AUDIT_TIME,
@@ -402,7 +414,7 @@
</sql>
<sql id="AppTopicDomainCfg_Column" >
r.CFG_ID, r.TOPIC,r.BEHAV_CODE,r.SPEC_SERVICE_ID,r.CFG_DESC,r.ACTION,r.IS_VALID,r.IS_AUDIT,
r.CFG_ID, r.TOPIC_ID,r.WEBSITE_SERVICE_ID,r.SPEC_SERVICE_ID,r.CFG_DESC,r.ACTION,r.IS_VALID,r.IS_AUDIT,
r.CREATOR_ID,r.CREATE_TIME,r.EDITOR_ID,r.EDIT_TIME,r.AUDITOR_ID,r.AUDIT_TIME,
r.SERVICE_ID,r.REQUEST_ID,r.COMPILE_ID,r.IS_AREA_EFFECTIVE,r.CLASSIFY,
r.ATTRIBUTE,r.LABLE,r.AREA_EFFECTIVE_IDS,r.RATELIMIT,r.FUNCTION_ID,r.CFG_TYPE,r.CFG_REGION_CODE,
@@ -436,7 +448,7 @@
#{cfgType,jdbcType=VARCHAR},#{cfgRegionCode,jdbcType=INTEGER}
</sql>
<sql id="AppTopicCommonCfg_Value_List" >
#{topic,jdbcType=VARCHAR},#{behavCode,jdbcType=INTEGER},#{specServiceId,jdbcType=INTEGER},
#{topicId,jdbcType=BIGINT},#{websiteServiceId,jdbcType=BIGINT},#{specServiceId,jdbcType=INTEGER},
#{cfgDesc,jdbcType=VARCHAR},#{action,jdbcType=INTEGER},
#{isValid,jdbcType=INTEGER},#{isAudit,jdbcType=INTEGER},#{creatorId,jdbcType=INTEGER},
#{createTime,jdbcType=TIMESTAMP},#{editorId,jdbcType=INTEGER},#{editTime,jdbcType=TIMESTAMP},
@@ -1728,7 +1740,7 @@
SELECT LAST_INSERT_ID()
</selectKey>
insert into app_topic_domain_cfg (
TOPIC,BEHAV_CODE,SPEC_SERVICE_ID,CFG_DESC,ACTION,IS_VALID,IS_AUDIT,
TOPIC_ID,WEBSITE_SERVICE_ID,SPEC_SERVICE_ID,CFG_DESC,ACTION,IS_VALID,IS_AUDIT,
CREATOR_ID,CREATE_TIME,EDITOR_ID,EDIT_TIME,AUDITOR_ID,AUDIT_TIME,
SERVICE_ID,REQUEST_ID,COMPILE_ID,IS_AREA_EFFECTIVE,CLASSIFY,
ATTRIBUTE,LABLE,AREA_EFFECTIVE_IDS,RATELIMIT,FUNCTION_ID,CFG_TYPE,CFG_REGION_CODE,
@@ -2306,11 +2318,11 @@
<if test="cfgDesc != null and cfgDesc != ''" >
cfg_desc = #{cfgDesc,jdbcType=VARCHAR},
</if>
<if test="topic != null">
TOPIC = #{topic,jdbcType=VARCHAR},
<if test="topicId != null">
TOPIC_ID = #{topicId,jdbcType=BIGINT},
</if>
<if test="behavCode != null">
BEHAV_CODE = #{behavCode,jdbcType=INTEGER},
<if test="websiteServiceId != null">
WEBSITE_SERVICE_ID = #{websiteServiceId,jdbcType=BIGINT},
</if>
<if test="specServiceId != null">
SPEC_SERVICE_ID = #{specServiceId,jdbcType=INTEGER},
@@ -2839,4 +2851,53 @@
<include refid="IpCfg_Column" />
FROM ip_port_cfg a where compile_id=#{compileId} and function_id=#{functionId}
</select>
<!-- 查询域名关联表 -->
<select id="getDomainDict" resultMap="WebsiteDomainTopicMap" parameterType="com.nis.domain.configuration.WebsiteDomainTopic" >
select
<include refid="WebsiteDomainTopic_Column"/>
from website_domain_topic r
<trim prefix="WHERE" prefixOverrides="AND |OR ">
<if test="id != null">
AND r.id=#{id,jdbcType=BIGINT}
</if>
<if test="websiteServiceId != null">
AND r.website_service_id=#{websiteServiceId,jdbcType=BIGINT}
</if>
<if test="topicId != null">
AND r.topic_id=#{topicId,jdbcType=BIGINT}
</if>
<if test="domain != null and domain !=''">
AND r.domain=#{domain,jdbcType=VARCHAR}
</if>
<if test="isValid != null">
AND r.IS_VALID=#{isValid,jdbcType=INTEGER}
</if>
<if test="isValid == null">
AND r.IS_VALID != -1
</if>
<if test="createTime != null and createTime != ''">
AND r.CREATE_TIME=#{createTime,jdbcType=TIMESTAMP}
</if>
<!-- 数据范围过滤 -->
<!-- ${sqlMap.dsf} -->
</trim>
</select>
<!--saveDomainDict -->
<insert id="saveDomainDict" parameterType="com.nis.domain.configuration.WebsiteDomainTopic" >
<selectKey resultType="java.lang.Long" order="AFTER" keyProperty="id">
SELECT LAST_INSERT_ID()
</selectKey>
insert into website_domain_topic (
website_service_id,domain,topic_id,create_time,creator_id,is_valid
)values (
#{websiteServiceId},
#{domain},
#{topicId},
#{createTime},
#{creatorId},
#{isValid}
)
</insert>
</mapper>

View File

@@ -23,6 +23,7 @@ import com.nis.domain.configuration.AppTopicDomainCfg;
import com.nis.domain.configuration.AreaIpCfg;
import com.nis.domain.configuration.IpPortCfg;
import com.nis.domain.configuration.NtcSubscribeIdCfg;
import com.nis.domain.configuration.WebsiteDomainTopic;
import com.nis.domain.maat.MaatCfg;
import com.nis.domain.maat.MaatCfg.DigestCfg;
import com.nis.domain.maat.MaatCfg.GroupCfg;
@@ -1220,8 +1221,14 @@ public class AppCfgService extends BaseService {
maatCfg.setIsValid(entity.getIsValid());
// 设置APP自定义域
String domain = entity.getDomain();
WebsiteDomainTopic websiteDomainTopic = new WebsiteDomainTopic();
websiteDomainTopic.setDomain(domain);
//查询domainId
List<WebsiteDomainTopic> domainDict = appCfgDao.getDomainDict(websiteDomainTopic);
Long domainId = domainDict.get(0).getId();
// "APP_ID="+entity.getAppCode()+Constants.USER_REGION_SPLIT+
String userRegion = "DOMAIN_ID=" + entity.getCompileId() + Constants.USER_REGION_SPLIT + "DOMAIN_STR="
String userRegion = "DOMAIN_ID=" + domainId + Constants.USER_REGION_SPLIT + "DOMAIN_STR="
+ keywordsEscape(entity.getDomain());
maatCfg.setUserRegion(userRegion);
@@ -1797,4 +1804,24 @@ public class AppCfgService extends BaseService {
logger.info("app Header配置取消配置响应信息" + result.getMsg());
}
}
/**
* 获取主题跟服务表中的域名
* @param websiteDomainTopic
* @return
*/
public List<WebsiteDomainTopic> getDomainDict(WebsiteDomainTopic websiteDomainTopic) {
return appCfgDao.getDomainDict(websiteDomainTopic);
}
/**
* 保存自定义的域名
* @param websiteDomainTopic
*/
@Transactional(readOnly = false, rollbackFor = RuntimeException.class)
public void saveDomainDict(WebsiteDomainTopic websiteDomainTopic) {
appCfgDao.saveDomainDict(websiteDomainTopic);
}
}

View File

@@ -617,7 +617,7 @@ val_dst_ip=Server IP format is incorrect or inconsistent with IP type
val_dst_mask=Server IP mask format is incorrect or inconsistent with IP type
val_dst_port=Server port is empty or incorrectly formatting(0-65535)
val_dst_port_mask=Server port mask format is incorrect(0-65535)
val_protocol=Protocol Can't be empty,and should be 6(TCP),17(UDP),0(\u4efb\u610f)
val_protocol=Protocol Can't be empty,and should be 6(TCP),17(UDP),0(\u4EFB\u610F)
val_direction=Direction should be 0(bidirectional) or 1(unidirectional)
#===============protocol IP Import end=================
@@ -1130,3 +1130,4 @@ limit_rate_type=Limit Rate Type
business_type=Business Type
topic=Topic
website_server=Website Server
domain_existed=Domain Has Existed

View File

@@ -1048,3 +1048,4 @@ file_desc=File Desc
content_type=Content Type
content_length=Content Length
response_file=Response File
domain_existed=Domain Has Existed

View File

@@ -1127,3 +1127,4 @@ limit_rate_type=\u9650\u901F\u65B9\u5F0F
business_type=\u4E1A\u52A1\u5206\u7C7B
topic=\u4E3B\u9898
website_server=\u7F51\u7AD9
domain_existed=\u57DF\u540D\u5DF2\u7ECF\u5B58\u5728

View File

@@ -41,7 +41,98 @@ $(function(){
},
errorContainer: "#messageBox",
});
//页面加载时触发初始化操作
var file = $("#domain").val();
if(!file){
$("#userDomain").hide();//隐藏输入框
$("#response").val("domain");
$("#domain").selectpicker("show");//隐藏选择框
}else{
$("#domain").selectpicker("hide");//隐藏选择框
$("#response").val("userDomain");
$("#userDomain").show();//隐藏输入框
}
alert($("#userDomain").val())
$("#response").on("change",function(){
var $this = $(this);
var inputId = $this.val();
$("#userDomain").val("");//清空
$("#domain").selectpicker("val","");
if("userDomain" == inputId){
$("#userDomain").show();//显示输入框
$("#domain").selectpicker("hide");//隐藏选择框
}else{
$("#userDomain").hide();//隐藏输入框
$("#domain").selectpicker("show");//显示选择框
}
});
//
if('${_cfg.domain}'){
ajaxDomain($("#websiteServiceId").val(),$("#topicId").val());
}
//选择主题跟服务 查询域名
$("#topicId").on("change",function(){
var websiteServiceId = $("#websiteServiceId").val();
if(websiteServiceId!=null&&websiteServiceId!=''){
ajaxDomain(websiteServiceId,$("#topicId").val());
}
});
$("#websiteServiceId").on("change",function(){
var topicId =$("#topicId").val();
if(topicId!=null&&topicId!=''){
ajaxDomain($("#websiteServiceId").val(),topicId);
}
});
});
function ajaxDomain(webId,topicId){
var pathName=window.document.location.pathname.substring(0,window.document.location.pathname.indexOf("/nis")+4);
console.log(webId+":"+topicId)
$.ajax({
type:'get',
url:'${ctx}/app/WebsiteDomainTopicList',
data:{"websiteServiceId":webId,"topicId":topicId},
dataType:'json',
async:true,
success:function(data,textStatus){//处理返回结果
if(textStatus=="success"){
var html='<select name="domain" data-live-search="true" class="selectpicker form-control">'
+'<option value=""><spring:message code="select"/></option>';
if(data.length>0){
for(i=0;i<data.length;i++){
html+='<option value="'+data[i].domain+'"';
if('${_cfg.domain}'==data[i].domain){
html+=" selected";
}
html+='>'+data[i].domain+'</option>';
}
html+='</select>';
$("#domain").html(html);
$("[name='domain']").selectpicker("refresh");
$("[name='domain']").selectpicker("render");
}else{
html+='</select>';
$("#domain").html(html);
$("[name='domain']").selectpicker("refresh");
$("[name='domain']").selectpicker("render");
}
}
},
complete:function(XMLHttpRequest,status){//超时设置
if(status=="timeout"){
var html='<select name="domain" data-live-search="true" class="selectpicker form-control">'
+'<option value=""><spring:message code="select"/></option></select>';
$("#domain").html(html);
$("[name='domain']").selectpicker("refresh");
$("[name='domain']").selectpicker("render");
}
}
});
}
</script>
</head>
<body>
@@ -70,39 +161,26 @@ $(function(){
<input type="hidden" name="functionId" value="${_cfg.functionId}">
<input type="hidden" id="serviceId" name="serviceId" value="${_cfg.serviceId}">
<%-- <input type="hidden" id="appCode" name="appCode" value="${_cfg.appCode}"> --%>
<%-- <input type="hidden" id="behavCode" name="behavCode" value="${_cfg.behavCode}"> --%>
<input type="hidden" id="domainId" name="domainId" value="">
<div class="form-body">
<!-- desc and action -->
<div class="row">
<%-- <div class="col-md-6">
<c:set var="spec_service_id"><spring:message code="social_app"/></c:set>
<div class="form-group">
<label class="control-label col-md-3"><font color="red">*</font><spring:message code="social_app"/></label>
<div class="col-md-6">
<sys:treeselect id="specServiceId" name="specServiceId" value="${_cfg.specServiceId}"
labelName="parent.specServiceName" notAllowSelectRoot="true" notAllowSelectParent="true"
labelValue="${empty _cfg.specServiceId?spec_service_id:fns:getBySpecServiceId(_cfg.specServiceId).specServiceName}"
title="${spec_service_id}" url="/specific/specificServiceCfg/treeData?isLeafShow=false&cfgType=1" extId=""
cssClass="form-control required"/>
</div>
<div for="parent.specServiceName"></div>
</div>
</div> --%>
<div class="col-md-6">
<div class="form-group">
<label class="control-label col-md-3">
<spring:message code="app_topic_domain_cfg" /></label>
<label class="control-label col-md-3"><font color="red">*</font>
<spring:message code="topic" /></label>
<div class="col-md-6">
<%-- <c:if test="${empty _cfg.topic}"> --%>
<form:select path="_cfg.topic" class="selectpicker form-control" data-live-search="true" data-live-search-placeholder="search">
<c:forEach items="${fns:getCodeList('serviceCode')}" var="dict">
<form:option value="${dict.code}"><spring:message code="${dict.item}"/></form:option>
<form:select path="_cfg.topicId" class="selectpicker form-control required" data-live-search="true" data-live-search-placeholder="search">
<option value=""><spring:message code="select"/></option>
<c:forEach items="${fns:getDictList('TOPIC') }" var="dict">
<form:option value="${dict.itemCode}"><spring:message code="${dict.itemValue}"/></form:option>
</c:forEach>
</form:select>
<%-- </c:if> --%>
</div>
<div for="topic"></div>
<div for="topicId"></div>
</div>
</div>
<div class="col-md-6">
@@ -148,13 +226,16 @@ $(function(){
<div class="col-md-6">
<div class="form-group">
<label class="control-label col-md-3"><font color="red">*</font>
<spring:message code="domain" /></label>
<spring:message code="website_server" /></label>
<div class="col-md-6">
<input class="form-control required domainCheck" type="text"
name="domain"
value="${_cfg.domain}">
<form:select path="_cfg.websiteServiceId" class="selectpicker form-control required" data-live-search="true" data-live-search-placeholder="search">
<option value=""><spring:message code="select"/></option>
<c:forEach items="${fns:getDictList('WEBSITE_SERVER') }" var="dict">
<form:option value="${dict.itemCode}"><spring:message code="${dict.itemValue}"/></form:option>
</c:forEach>
</form:select>
</div>
<div for="domain"></div>
<div for="websiteServiceId"></div>
</div>
</div>
<div class="col-md-6" hidden="true">
@@ -176,54 +257,72 @@ $(function(){
</c:forEach>
</div>
</div>
</div>
<!-- 是否区分大小写 ========== -->
<c:forEach items="${regionList}" var="region">
<c:if test="${_cfg.functionId eq region.functionId}">
<input type="hidden" name="cfgType" value="${region.configRegionValue}">
<input type="hidden" name="cfgRegionCode" value="${region.configRegionCode}">
<div class="row">
<c:if test="${!empty region.configHex}">
<div class="col-md-6">
<div class="form-group ">
<label class="control-label col-md-3"><font color="red">*</font>
<spring:message code="expression_type" /></label>
<label class="control-label col-md-3"><font color="red">*</font><spring:message code="is_case_insenstive"/></label>
<div class="col-md-6">
<c:if test="${!empty region.configExprType}">
<c:forEach var="exprType" items="${fn:split(region.configExprType,',')}">
<c:forEach items="${fns:getDictList('EXPRESSION_TYPE')}" var="exprTypeC">
<c:if test="${exprTypeC.itemCode eq exprType}">
<label class="radio-inline">
<input type="radio"
name="exprType" value="${exprType }"
class="required"
<c:if test="${_cfg.exprType eq exprType || (empty _cfg.exprType && exprType eq 0)}">
<input type="radio" name="isCaseSenstive" value="1" class="required"
><spring:message code="case_senstive"/>
</label>
<label class="radio-inline">
<input type="radio" name="isCaseSenstive" value="0" class="required"
><spring:message code="case_insenstive"/>
</label>
</div>
<div for="isCaseInsenstive"></div>
</div>
</div>
</c:if>
<c:if test="${empty region.configHex}">
<div class="col-md-6">
<div class="form-group ">
<label class="control-label col-md-3"><font color="red">*</font><spring:message code="is_case_insenstive"/></label>
<div class="col-md-6">
<label class="radio-inline">
<input type="radio" name="isCaseSenstive" value="0" class="required"
checked
</c:if>
>
<spring:message code="${exprTypeC.itemValue }" />
><spring:message code="case_insenstive"/>
</label>
</c:if>
</c:forEach>
</c:forEach>
</c:if>
<c:if test="${empty region.configExprType}">
<c:forEach items="${fns:getDictList('EXPRESSION_TYPE')}" var="exprTypeC">
<c:if test="${exprTypeC.itemCode eq 0}">
<label class="radio-inline">
<input type="radio"
name="exprType" value="${exprTypeC.itemCode }"
class="required" checked >
<spring:message code="${exprTypeC.itemValue }" />
</label>
</c:if>
</c:forEach>
</div>
<div for="isCaseInsenstive"></div>
</div>
</div>
</c:if>
</div>
<div for="exprType"></div>
</c:if>
</c:forEach>
</div>
<!-- 是否区分大小写end ========== -->
</div>
<div class="row">
<!-- 域名 -->
<div class="col-md-6">
<div class="form-group">
<div class="col-md-5"><label class="col-md-4"></label><font style="papadding-left: 10px" color="red">*</font>
<select id="response" class="selectpicker select2 input-small pull-right">
<option value="domain"><spring:message code="domain"></spring:message></option>
<option value="userDomain"><spring:message code="please_input"></spring:message></option>
</select>
</div>
<div class="col-md-4">
<input id="userDomain" name="userDomain" class="form-control required domainCheck" type="text" value="">
<select id="domain" name="domain" data-live-search="true" class="selectpicker form-control required domainCheck">
<option value=""><spring:message code="select"/></option>
</select>
<div for="domain"></div>
</div>
</div>
</div>
<!-- -->
<c:forEach items="${regionList}" var="region">
<c:if test="${_cfg.functionId eq region.functionId}">
<div class="col-md-6">
<div class="form-group ">
<label class="control-label col-md-3"><font color="red">*</font>
@@ -264,6 +363,58 @@ $(function(){
<div for="matchMethod"></div>
</div>
</div>
</c:if>
</c:forEach>
</div>
<c:forEach items="${regionList}" var="region">
<c:if test="${_cfg.functionId eq region.functionId}">
<input type="hidden" name="cfgType" value="${region.configRegionValue}">
<input type="hidden" name="cfgRegionCode" value="${region.configRegionCode}">
<div class="row">
<div class="col-md-6 ">
<div class="form-group">
<label class="control-label col-md-3"><font color="red">*</font>
<spring:message code="expression_type" /></label>
<div class="col-md-6">
<c:if test="${!empty region.configExprType}">
<c:forEach var="exprType" items="${fn:split(region.configExprType,',')}">
<c:forEach items="${fns:getDictList('EXPRESSION_TYPE')}" var="exprTypeC">
<c:if test="${exprTypeC.itemCode eq exprType}">
<label class="radio-inline">
<input type="radio"
name="exprType" value="${exprType }"
class="required"
<c:if test="${_cfg.exprType eq exprType || (empty _cfg.exprType && exprType eq 0)}">
checked
</c:if>
>
<spring:message code="${exprTypeC.itemValue }" />
</label>
</c:if>
</c:forEach>
</c:forEach>
</c:if>
<c:if test="${empty region.configExprType}">
<c:forEach items="${fns:getDictList('EXPRESSION_TYPE')}" var="exprTypeC">
<c:if test="${exprTypeC.itemCode eq 0}">
<label class="radio-inline">
<input type="radio"
name="exprType" value="${exprTypeC.itemCode }"
class="required" checked >
<spring:message code="${exprTypeC.itemValue }" />
</label>
</c:if>
</c:forEach>
</c:if>
</div>
<div for="exprType"></div>
</div>
</div>
</div>
<div class="row">
<c:if test="${!empty region.configHex}">
@@ -283,22 +434,6 @@ $(function(){
<div for="isHex"></div>
</div>
</div>
<div class="col-md-6">
<div class="form-group ">
<label class="control-label col-md-3"><font color="red">*</font><spring:message code="is_case_insenstive"/></label>
<div class="col-md-6">
<label class="radio-inline">
<input type="radio" name="isCaseSenstive" value="1" class="required"
><spring:message code="case_senstive"/>
</label>
<label class="radio-inline">
<input type="radio" name="isCaseSenstive" value="0" class="required"
><spring:message code="case_insenstive"/>
</label>
</div>
<div for="isCaseInsenstive"></div>
</div>
</div>
</c:if>
<c:if test="${empty region.configHex}">
<div class="col-md-6">
@@ -313,19 +448,6 @@ $(function(){
<div for="isHex"></div>
</div>
</div>
<div class="col-md-6">
<div class="form-group ">
<label class="control-label col-md-3"><font color="red">*</font><spring:message code="is_case_insenstive"/></label>
<div class="col-md-6">
<label class="radio-inline">
<input type="radio" name="isCaseSenstive" value="0" class="required"
checked
><spring:message code="case_insenstive"/>
</label>
</div>
<div for="isCaseInsenstive"></div>
</div>
</div>
</c:if>
</div>
<div class="row hidden">

View File

@@ -269,7 +269,8 @@
<th><input type="checkbox" class="i-checks" id="checkAll"></th>
<th style="display: none;"><spring:message code="cfg_id"/></th>
<th class="cfgDesc"><spring:message code="config_describe"/></th>
<th><spring:message code="app_topic_domain_cfg"/></th>
<th><spring:message code="topic"/></th>
<th><spring:message code="website_server"/></th>
<th><spring:message code="domain"/></th>
<th><spring:message code="whether_hexbinary"/></th>
<th><spring:message code="expression_type"/></th>
@@ -300,7 +301,20 @@
</td>
<td>${cfg.compileId }</td>
<td>${cfg.cfgDesc }</td>
<td>${cfg.appName }</td>
<td>
<c:forEach items="${fns:getDictList('TOPIC') }" var="dict">
<c:if test="${dict.itemCode eq cfg.topicId }">
<spring:message code="${dict.itemValue }"/>
</c:if>
</c:forEach>
</td>
<td>
<c:forEach items="${fns:getDictList('WEBSITE_SERVER') }" var="dict">
<c:if test="${dict.itemCode eq cfg.websiteServiceId }">
<spring:message code="${dict.itemValue }"/>
</c:if>
</c:forEach>
</td>
<td>${cfg.domain }</td>
<td>
<c:forEach items="${fns:getDictList('WHETHER_HEXBINARY')}" var="isHexbinC">