完善社交应用审核通过、取消审核通过界面端功能逻辑。

This commit is contained in:
zhangwei
2018-04-03 11:12:49 +08:00
parent 33b7df09c9
commit 83a60871c0
15 changed files with 773 additions and 68 deletions

View File

@@ -0,0 +1,54 @@
/**
*@Title: BaseEnhancedStringConfig.java
*@Package com.nis.domain.restful
*@Description TODO
*@author dell
*@date 2018年2月5日 下午5:42:52
*@version 版本号
*/
package com.nis.domain.configuration;
import org.apache.commons.lang3.StringUtils;
import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;
/**
* @ClassName: BaseEnhancedStringConfig.java
* @Description: APP增强字符串类配置
* @author (zhangwei)
* @date 2018年4月3日 下午5:42:52
* @version V1.0
*/
public class AppComplexKeywordCfg extends ComplexkeywordCfg{
/**
* @Fields serialVersionUID:TODO用一句话描述这个变量表示什么
*
* @since 1.0.0
*/
/**
*
*/
private static final long serialVersionUID = -8058690163147881374L;
@Expose
private Integer compileId;
public Integer getCompileId() {
return compileId;
}
public void setCompileId(Integer compileId) {
this.compileId = compileId;
}
/* (non-Javadoc)
* @see com.nis.domain.configuration.BaseCfg#initDefaultValue()
*/
@Override
public void initDefaultValue() {
// TODO Auto-generated method stub
super.initDefaultValue();
this.exprType=0;
this.isHexbin = 0 ;
this.matchMethod=3;
}
}

View File

@@ -32,7 +32,7 @@ public class AppIdCfg extends BaseCfg<AppIdCfg> {
/**
* 应用协议id
*/
private Long appId;
private Integer appId;
/**
* 编译id
@@ -42,12 +42,17 @@ public class AppIdCfg extends BaseCfg<AppIdCfg> {
/**
* 协议字符串特征表信息列表
*/
private List<ComplexkeywordCfg> complexFeaturesList;
private List<AppComplexKeywordCfg> complexFeaturesList;
/**
* 协议增强字符串特征配置信息列表
*/
private List<BaseStringCfg> strFeaturesCfgList;
private List<AppStringCfg> strFeaturesCfgList;
/**
* 协议服务器IP配置信息列表
*/
private List<BaseIpCfg> ipCfgList;
private List<AppFeaturesIndex> featuresList;
@@ -111,14 +116,14 @@ public class AppIdCfg extends BaseCfg<AppIdCfg> {
* @return appId
*/
public Long getAppId() {
public Integer getAppId() {
return appId;
}
/**
* @param appId the appId to set
*/
public void setAppId(Long appId) {
public void setAppId(Integer appId) {
this.appId = appId;
}
@@ -149,19 +154,19 @@ public class AppIdCfg extends BaseCfg<AppIdCfg> {
}
public List<ComplexkeywordCfg> getComplexFeaturesList() {
public List<AppComplexKeywordCfg> getComplexFeaturesList() {
return complexFeaturesList;
}
public void setComplexFeaturesList(List<ComplexkeywordCfg> complexFeaturesList) {
public void setComplexFeaturesList(List<AppComplexKeywordCfg> complexFeaturesList) {
this.complexFeaturesList = complexFeaturesList;
}
public List<BaseStringCfg> getStrFeaturesCfgList() {
public List<AppStringCfg> getStrFeaturesCfgList() {
return strFeaturesCfgList;
}
public void setStrFeaturesCfgList(List<BaseStringCfg> strFeaturesCfgList) {
public void setStrFeaturesCfgList(List<AppStringCfg> strFeaturesCfgList) {
this.strFeaturesCfgList = strFeaturesCfgList;
}
@@ -172,5 +177,13 @@ public class AppIdCfg extends BaseCfg<AppIdCfg> {
public void setFeaturesList(List<AppFeaturesIndex> featuresList) {
this.featuresList = featuresList;
}
public List<BaseIpCfg> getIpCfgList() {
return ipCfgList;
}
public void setIpCfgList(List<BaseIpCfg> ipCfgList) {
this.ipCfgList = ipCfgList;
}
}

View File

@@ -0,0 +1,50 @@
/**
*@Title: BaseStringConfig.java
*@Package com.nis.domain.restful
*@Description TODO
*@author dell
*@date 2018年2月5日 下午5:26:02
*@version 版本号
*/
package com.nis.domain.configuration;
import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;
/**
* @ClassName: BaseStringConfig.java
* @Description: 基础字符串类配置
* @author (dell)
* @date 2018年2月5日 下午5:26:02
* @version V1.0
*/
public class AppStringCfg extends BaseStringCfg {
/**
* @Fields serialVersionUID:TODO用一句话描述这个变量表示什么
*
* @since 1.0.0
*/
private static final long serialVersionUID = 4938724489988587634L;
@Expose
private Integer compileId;
/* (non-Javadoc)
* @see com.nis.domain.configuration.BaseCfg#initDefaultValue()
*/
@Override
public void initDefaultValue() {
// TODO Auto-generated method stub
super.initDefaultValue();
this.isHexbin = 0;
}
public Integer getCompileId() {
return compileId;
}
public void setCompileId(Integer compileId) {
this.compileId = compileId;
}
}

View File

@@ -0,0 +1,200 @@
/**
*@Title: MaatCfg.java
*@Package com.nis.domain.maat
*@Description TODO
*@author dell
*@date 2018年3月1日 上午10:29:29
*@version 版本号
*/
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;
import com.nis.domain.configuration.AppComplexKeywordCfg;
import com.nis.domain.configuration.AppStringCfg;
import com.nis.domain.configuration.AreaIpCfg;
import com.nis.domain.configuration.BaseIpCfg;
import com.nis.domain.configuration.BaseStringCfg;
import com.nis.domain.configuration.ComplexkeywordCfg;
import com.nis.domain.configuration.NumBoundaryCfg;
import com.nis.domain.specific.SpecificServiceHostCfg;
/**
* @ClassName: MaatCfg.java
* @Description: TODO
* @author (dell)
* @date 2018年3月1日 上午10:29:29
* @version V1.0
*/
public class AppMaatCfg implements Serializable {
/**
* @Fields serialVersionUID:TODO用一句话描述这个变量表示什么
*
* @since 1.0.0
*/
private static final long serialVersionUID = -7745084076394247318L;
/**
* APP字符串特征配置
*/
@Expose
@SerializedName("strFeaturesCfg")
private List<AppStringCfg> strCfg;
/**
* APP服务器IP配置
*/
@Expose
@SerializedName("specificServiceIpCfg")
private List<SpecificServiceHostCfg> ipCfg;
/**
* APP服务器IP生效区域配置
*/
@Expose
@SerializedName("areaCfg")
private List<BaseIpCfg> areaCfg;
/**
* APP增强字符串特征配置
*/
@Expose
@SerializedName("complexStrFeaturesCfg")
private List<AppComplexKeywordCfg> complexStrCfg;
@Expose
@SerializedName("action")
private Integer action;
@Expose
@SerializedName("areaEffectiveIds")
private String areaEffectiveIds;
@Expose
@SerializedName("attribute")
private String attribute;
@Expose
@SerializedName("classify")
private String classify;
@Expose
@SerializedName("lable")
private String lable;
@Expose
@SerializedName("compileId")
private Integer compileId;
@Expose
@SerializedName("isAreaEffective")
private Integer isAreaEffective;
@Expose
@SerializedName("isValid")
private Integer isValid;
@Expose
@SerializedName("requestId")
private Integer requestId;
@Expose
@SerializedName("serviceId")
private Integer serviceId;
@Expose
@SerializedName("specificServiceId")
private Integer specificServiceId;
@Expose
private String maatTable;
public List<AppStringCfg> getStrCfg() {
return strCfg;
}
public void setStrCfg(List<AppStringCfg> strCfg) {
this.strCfg = strCfg;
}
public List<SpecificServiceHostCfg> getIpCfg() {
return ipCfg;
}
public void setIpCfg(List<SpecificServiceHostCfg> ipCfg) {
this.ipCfg = ipCfg;
}
public List<AppComplexKeywordCfg> getComplexStrCfg() {
return complexStrCfg;
}
public void setComplexStrCfg(List<AppComplexKeywordCfg> complexStrCfg) {
this.complexStrCfg = complexStrCfg;
}
public List<BaseIpCfg> getAreaCfg() {
return areaCfg;
}
public void setAreaCfg(List<BaseIpCfg> areaCfg) {
this.areaCfg = areaCfg;
}
public Integer getAction() {
return action;
}
public void setAction(Integer action) {
this.action = action;
}
public String getAreaEffectiveIds() {
return areaEffectiveIds;
}
public void setAreaEffectiveIds(String areaEffectiveIds) {
this.areaEffectiveIds = areaEffectiveIds;
}
public String getAttribute() {
return attribute;
}
public void setAttribute(String attribute) {
this.attribute = attribute;
}
public String getClassify() {
return classify;
}
public void setClassify(String classify) {
this.classify = classify;
}
public String getLable() {
return lable;
}
public void setLable(String lable) {
this.lable = lable;
}
public Integer getCompileId() {
return compileId;
}
public void setCompileId(Integer compileId) {
this.compileId = compileId;
}
public Integer getIsAreaEffective() {
return isAreaEffective;
}
public void setIsAreaEffective(Integer isAreaEffective) {
this.isAreaEffective = isAreaEffective;
}
public Integer getIsValid() {
return isValid;
}
public void setIsValid(Integer isValid) {
this.isValid = isValid;
}
public Integer getRequestId() {
return requestId;
}
public void setRequestId(Integer requestId) {
this.requestId = requestId;
}
public Integer getServiceId() {
return serviceId;
}
public void setServiceId(Integer serviceId) {
this.serviceId = serviceId;
}
public Integer getSpecificServiceId() {
return specificServiceId;
}
public void setSpecificServiceId(Integer specificServiceId) {
this.specificServiceId = specificServiceId;
}
public String getMaatTable() {
return maatTable;
}
public void setMaatTable(String maatTable) {
this.maatTable = maatTable;
}
}

View File

@@ -0,0 +1,56 @@
package com.nis.domain.specific;
import java.util.Date;
public class ConfigGroupInfo {
private Integer id;
private Integer groupId;
private String groupName;
private Integer isIssued;
private Date insertTime;
private Date updateTime;
private Integer groupType;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public Integer getGroupId() {
return groupId;
}
public void setGroupId(Integer groupId) {
this.groupId = groupId;
}
public String getGroupName() {
return groupName;
}
public void setGroupName(String groupName) {
this.groupName = groupName;
}
public Integer getIsIssued() {
return isIssued;
}
public void setIsIssued(Integer isIssued) {
this.isIssued = isIssued;
}
public Date getInsertTime() {
return insertTime;
}
public void setInsertTime(Date insertTime) {
this.insertTime = insertTime;
}
public Date getUpdateTime() {
return updateTime;
}
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
public Integer getGroupType() {
return groupType;
}
public void setGroupType(Integer groupType) {
this.groupType = groupType;
}
}

View File

@@ -4,6 +4,8 @@ import java.util.Date;
import java.util.List;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;
import com.nis.domain.BaseEntity;
import com.nis.domain.SysUser;
@@ -15,21 +17,34 @@ import com.nis.domain.SysUser;
public class SpecificServiceHostCfg extends BaseEntity<SpecificServiceHostCfg>{
private static final long serialVersionUID = -301627652860717175L;
@Expose
@SerializedName("cfgId")
private Integer hostId; //host_id 配置ID bigint N 主键,自增
private Integer specServiceId; //spec_service_id 协议id int N protocol_info_cfg.protocol_id
@Expose
private Integer ipType; //ip地址类型 ipV4=4 ipV6=6
@Expose
private String srcIp; //src_ip 源IP地址 varchar(64) N 缺省0.0.0.0值表示任意
@Expose
private String srcIpMask; //src_ip_mask 源地址掩码 varchar(64) N IPV4:255.255.255.255表示无掩码即精确IP匹配0.0.0.0值表示任意;
//IPV6FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF表示无掩码::两个半角冒号表示任意。非0掩码值必须是2的指数幂下同。
@Expose
private String srcPort; //src_port 源端口 varchar(6) N 0表示任意值
@Expose
private String srcPortMask; //src_port_mask 源端口掩码 varchar(6) N 65535表示无掩码即精确端口匹配0表示任意
@Expose
private String dstIp; //dst_ip 目的IP地址 varchar(64) N 缺省0.0.0.0值表示任意
@Expose
private String dstIpMask; //dst_ip_mask 目的地址掩码 varchar(64) N 同源ip地址掩码
@Expose
private String dstPort; //dst_port 目的端口 varchar(6) N 目的端口,0表示任意值
@Expose
private String dstPortMask; //dst_port_mask 目的端口掩码 varchar(6) N 同源端口掩码
@Expose
private Integer direction;; //direction 方向 int N 0双向1单向默认缺省为双向。
@Expose
private Integer protocol; //protocol 协议 int N 6表示tcp,17表示udp0表示任意
private Integer isValid; //is_valid 有效标识 int N 0无效1有效
private Integer isAudit; //is_audit 是否审核 int N 0未审核1审核通过2审核未通过3取消审核通过即删除
private SysUser creator; //creator_id 创建人员 int N 取自sys_user.id
@@ -38,9 +53,12 @@ public class SpecificServiceHostCfg extends BaseEntity<SpecificServiceHostCfg>{
private Date editTime; //edit_time 修改时间 date Y
private SysUser auditor; //auditor_id 审核人员 int Y 取自sys_user.id
private Date auditTime; //audit_time 审核时间 date Y
@Expose
private Integer protocolId;//配置转json下发时使用
@Expose
private String maatTable;//配置转json下发时使用
@Expose
private Integer groupId;//配置转json下发时使用
private Date beginDate;
private Date endDate;
@@ -226,11 +244,23 @@ public class SpecificServiceHostCfg extends BaseEntity<SpecificServiceHostCfg>{
public static void sort(List<SpecificServiceHostCfg> list, List<SpecificServiceHostCfg> sourceList, Integer ParentId, boolean cascade){
}
public Integer getProtocolId() {
return protocolId;
}
public void setProtocolId(Integer protocolId) {
this.protocolId = protocolId;
}
public String getMaatTable() {
return maatTable;
}
public void setMaatTable(String maatTable) {
this.maatTable = maatTable;
}
public Integer getGroupId() {
return groupId;
}
public void setGroupId(Integer groupId) {
this.groupId = groupId;
}
}

View File

@@ -247,7 +247,13 @@ public class AppCfgController extends BaseController {
}else if(cfg.getIsAudit()==Constants.AUDIT_YES){//审核通过设置有效标志为1
cfg.setIsValid(Constants.VALID_YES);
}
int result=appCfgService.auditAppCfg(cfg);
try {
int result=appCfgService.auditAppCfg(cfg);
} catch (Exception e) {
e.printStackTrace();
logger.error("配置下发maat失败"+e.getMessage());
addMessage(model,"配置审核下发失败!");
}
model.addAttribute("serviceId", cfg.getServiceId());
model.addAttribute("action", cfg.getAction());
}
@@ -264,11 +270,11 @@ public class AppCfgController extends BaseController {
* @since 1.0.0
*/
@RequestMapping(value = {"deleteCfg"})
public String deleteAppCfg(int action,long cfgId,String cfgName,Integer serviceId,Model model) {
public String deleteAppCfg(int action,long cfgId,Integer compileId,String cfgName,Integer serviceId,Model model) {
model.addAttribute("serviceId", serviceId);
model.addAttribute("cfgName", cfgName);
model.addAttribute("action", action);
model.addAttribute("cfgType","complex");
model.addAttribute("cfgType","app");
model.addAttribute("audit", Constants.CFG_PAGE);
int audit=appCfgService.getIsAudit(cfgId);
//未审核时可删除
@@ -278,6 +284,7 @@ public class AppCfgController extends BaseController {
cfg.setEditorId(cfg.getCurrentUser().getId());
cfg.setEditTime(new Date());
cfg.setIsValid(Constants.VALID_DEL);
cfg.setCompileId(compileId);
int result=appCfgService.deleteAppCfg(cfg);
addMessage(model,"删除成功,正在为您跳转页面...");
}else{

View File

@@ -1,11 +1,14 @@
package com.nis.web.dao.configuration;
import java.util.Date;
import java.util.List;
import org.apache.ibatis.annotations.Param;
import com.nis.domain.configuration.AppComplexKeywordCfg;
import com.nis.domain.configuration.AppIdCfg;
import com.nis.domain.configuration.AppIdCfg.AppFeaturesIndex;
import com.nis.domain.configuration.AppStringCfg;
import com.nis.domain.configuration.BaseStringCfg;
import com.nis.domain.configuration.ComplexkeywordCfg;
import com.nis.web.dao.CrudDao;
@@ -26,16 +29,19 @@ public interface AppCfgDao extends CrudDao<AppIdCfg> {
public int updateByPrimaryKeySelective(AppIdCfg entity) ;
public int updateValid(AppIdCfg entity) ;
public int audit(AppIdCfg entity) ;
// public int getIsValid(@Param("tableName")String tableName,@Param("cfgId")Long id);
public int updateFeaturesTableValid(@Param("tableName")String tableName,@Param("compileId")Integer compileId,
@Param("isValid")Integer isValid,@Param("editorId")Long editorId,@Param("editTime")Date editTime) ;
public int auditFeaturesTable(@Param("tableName")String tableName,@Param("compileId")Integer compileId,
@Param("isValid")Integer isValid,@Param("isAudit")Integer isAudit,
@Param("auditorId")Long auditorId,@Param("auditTime")Date auditTime) ;
public int getIsValid(@Param("tableName")String tableName,@Param("cfgId")Long id);
public int getIsValid(@Param("cfgId")Long id);
// public int getIsAudit(@Param("tableName")String tableName,@Param("cfgId")Long id);
public int getIsAudit(@Param("tableName")String tableName,@Param("cfgId")Long id);
public int getIsAudit(@Param("cfgId")Long id);
public List<ComplexkeywordCfg> getComplexkeywordCfgList();
public List<AppFeaturesIndex> getFeaturesTableListByAppCompileId(@Param("appCompileId")Integer appCompileId) ;
public List<ComplexkeywordCfg> getFeaturesCfgListByCompileId(@Param("compileId")Integer compileId) ;
public int insertFeatures(AppFeaturesIndex entity) ;
public int updateFeaturesByAppId(AppFeaturesIndex entity) ;
public int deleteFeaturesByAppId(AppFeaturesIndex entity) ;
public List<ComplexkeywordCfg> getComplexkeywordFeaturesCfgListByCompileId(@Param("featuresTable") String featuresTable,@Param("compileId")Integer compileId);
public List<BaseStringCfg> getStrFeaturesCfgListByCompileId(@Param("featuresTable") String featuresTable,@Param("compileId")Integer compileId);
public List<AppComplexKeywordCfg> getComplexkeywordFeaturesCfgListByCompileId(@Param("featuresTable") String featuresTable,@Param("compileId")Integer compileId);
public List<AppStringCfg> getStrFeaturesCfgListByCompileId(@Param("featuresTable") String featuresTable,@Param("compileId")Integer compileId);
}

View File

@@ -38,7 +38,7 @@
<result column="FEATURES_TABLE_TYPE" property="featuresTableType" jdbcType="INTEGER" />
</resultMap>
<resultMap id="ComplexkeywordFeaturesCfgMap" type="com.nis.domain.configuration.ComplexkeywordCfg" >
<resultMap id="ComplexkeywordFeaturesCfgMap" type="com.nis.domain.configuration.AppComplexKeywordCfg" >
<id column="cfg_id" property="cfgId" jdbcType="BIGINT" />
<result column="cfg_desc" property="cfgDesc" jdbcType="VARCHAR" />
<result column="district" property="district" jdbcType="VARCHAR" />
@@ -64,7 +64,7 @@
<result column="is_hexbin" property="isHexbin" jdbcType="INTEGER" />
<result column="area_effective_ids" property="areaEffectiveIds" jdbcType="VARCHAR" />
</resultMap>
<resultMap id="BaseStringFeaturesCfgMap" type="com.nis.domain.configuration.BaseStringCfg" >
<resultMap id="BaseStringFeaturesCfgMap" type="com.nis.domain.configuration.AppStringCfg" >
<id column="cfg_id" property="cfgId" jdbcType="BIGINT" />
<result column="cfg_desc" property="cfgDesc" jdbcType="VARCHAR" />
<result column="cfg_keywords" property="cfgKeywords" jdbcType="VARCHAR" />
@@ -504,6 +504,16 @@
</if>
where cfg_id = #{cfgId,jdbcType=BIGINT}
</update>
<update id="updateFeaturesTableValid">
update ${tableName} set is_valid = #{isValid,jdbcType=INTEGER}, editor_id = #{editorId,jdbcType=INTEGER} , edit_time = #{editTime,jdbcType=TIMESTAMP} where compile_id = #{compileId,jdbcType=INTEGER}
</update>
<update id="auditFeaturesTable">
update ${tableName} set is_audit = #{isAudit,jdbcType=INTEGER}, auditor_id = #{auditorId,jdbcType=INTEGER}, audit_time = #{auditTime,jdbcType=TIMESTAMP}
<if test="isValid != null" >
,is_valid = #{isValid,jdbcType=INTEGER}
</if>
where compile_id = #{compileId,jdbcType=INTEGER}
</update>
<select id="getIsValid" resultType="java.lang.Integer" parameterType="java.lang.Long" >
SELECT IS_VALID FROM app_id_cfg
WHERE CFG_ID = #{cfgId,jdbcType=BIGINT}

View File

@@ -4,6 +4,7 @@ import java.util.List;
import org.apache.ibatis.annotations.Param;
import com.nis.domain.specific.ConfigGroupInfo;
import com.nis.domain.specific.SpecificServiceCfg;
import com.nis.web.dao.CrudDao;
import com.nis.web.dao.MyBatisDao;
@@ -41,6 +42,10 @@ public interface SpecificServiceCfgDao extends CrudDao<SpecificServiceCfg> {
*/
List<SpecificServiceCfg> getChildrenById(Integer specServiceId);
ConfigGroupInfo getConfigGroupInfoByGroupId(Integer groupId);
Integer insertConfigGroupInfo(ConfigGroupInfo entity);
Integer updateConfigGroupInfobyGroupId(ConfigGroupInfo entity);
}

View File

@@ -148,4 +148,21 @@
<select id="getChildrenById" resultMap="CFGResultMap" parameterType="java.lang.Integer">
SELECT * FROM specific_service_cfg s WHERE s.is_valid = 1 and s.parent_id = #{specServiceId}
</select>
<!-- 根据groupId查出配置分组信息 -->
<select id="getConfigGroupInfoByGroupId" resultType="com.nis.domain.specific.ConfigGroupInfo" parameterType="java.lang.Integer">
select id,group_id,group_name,is_issued,insert_time,update_time,group_type
from config_group_info c where c.group_id= #{groupId}
</select>
<!-- 修改配置分组状态信息 -->
<update id="updateConfigGroupInfobyGroupId" parameterType="com.nis.domain.specific.ConfigGroupInfo">
UPDATE config_group_info set is_issued = #{isIssued},update_time=now() where group_id = #{groupId}
</update>
<!-- 新增配置分组信息 -->
<insert id="insertConfigGroupInfo" parameterType="com.nis.domain.specific.ConfigGroupInfo" useGeneratedKeys="true">
insert into config_group_info (id,group_id,group_name,is_issued,insert_time,group_type)
values(#{id},#{groupId},#{groupName},#{isIssued},now(),#{groupType})
</insert>
</mapper>

View File

@@ -1,25 +1,40 @@
package com.nis.web.service.configuration;
import java.lang.annotation.Annotation;
import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.nis.domain.Page;
import com.nis.domain.ServiceConfigInfo;
import com.nis.domain.configuration.AppComplexKeywordCfg;
import com.nis.domain.configuration.AppIdCfg;
import com.nis.domain.configuration.BaseStringCfg;
import com.nis.domain.configuration.AppStringCfg;
import com.nis.domain.configuration.AreaIpCfg;
import com.nis.domain.configuration.BaseIpCfg;
import com.nis.domain.configuration.AppIdCfg.AppFeaturesIndex;
import com.nis.domain.configuration.ComplexkeywordCfg;
import com.nis.domain.maat.AppMaatCfg;
import com.nis.domain.specific.ConfigGroupInfo;
import com.nis.domain.specific.SpecificServiceCfg;
import com.nis.domain.specific.SpecificServiceHostCfg;
import com.nis.main.ConvertTool;
import com.nis.util.Constants;
import com.nis.util.StringUtil;
import com.nis.web.dao.configuration.AppCfgDao;
import com.nis.web.dao.configuration.ComplexStringCfgDao;
import com.nis.web.dao.configuration.IpCfgDao;
import com.nis.web.dao.configuration.StringCfgDao;
import com.nis.web.dao.specific.SpecificServiceCfgDao;
import com.nis.web.dao.specific.SpecificServiceHostCfgDao;
import com.nis.web.dao.systemService.ServiceConfigInfoDao;
import com.nis.web.service.CrudService;
@@ -39,6 +54,12 @@ public class AppCfgService extends CrudService<AppCfgDao,AppIdCfg> {
protected StringCfgDao stringCfgDao;
@Autowired
protected ComplexStringCfgDao complexStringCfgDao;
@Autowired
private SpecificServiceCfgDao specificServiceCfgDao;
@Autowired
private SpecificServiceHostCfgDao specificServiceHostCfgDao;
@Autowired
protected IpCfgDao ipCfgDao;
public Page<AppIdCfg> findPage(Page<AppIdCfg> page, AppIdCfg entity) {
entity.setPage(page);
@@ -49,18 +70,18 @@ public class AppCfgService extends CrudService<AppCfgDao,AppIdCfg> {
public AppIdCfg findAppIdCfg(AppIdCfg entity) {
//查询协议关联特征表
List<AppFeaturesIndex> featuresTableList = appCfgDao.getFeaturesTableListByAppCompileId(entity.getCompileId());
List<ComplexkeywordCfg> complexList = new ArrayList();
List<BaseStringCfg> strList = new ArrayList();
List<AppComplexKeywordCfg> complexList = new ArrayList();
List<AppStringCfg> strList = new ArrayList();
if(!StringUtil.isEmpty(featuresTableList)){
for(AppFeaturesIndex features:featuresTableList){
if(features.getFeaturesTableType().equals(4)){//增强字符串特征配置
List<ComplexkeywordCfg> complexFeaturesList = appCfgDao.getComplexkeywordFeaturesCfgListByCompileId(
List<AppComplexKeywordCfg> complexFeaturesList = appCfgDao.getComplexkeywordFeaturesCfgListByCompileId(
features.getFeaturesTable(),features.getFeaturesCompileId());
complexList.addAll(complexFeaturesList);
}else if(features.getFeaturesTableType().equals(2)){//普通字符串特征配置
List<BaseStringCfg> strFeaturesCfgList = appCfgDao.getStrFeaturesCfgListByCompileId(
List<AppStringCfg> strFeaturesCfgList = appCfgDao.getStrFeaturesCfgListByCompileId(
features.getFeaturesTable(),features.getFeaturesCompileId());
strList.addAll(strFeaturesCfgList);
}
@@ -90,7 +111,7 @@ public class AppCfgService extends CrudService<AppCfgDao,AppIdCfg> {
cfg.setCompileId(appCompileId);
cfgId = appCfgDao.insert(cfg);
if(cfg.getComplexFeaturesList()!=null){
for(ComplexkeywordCfg c:cfg.getComplexFeaturesList()){
for(AppComplexKeywordCfg c:cfg.getComplexFeaturesList()){
Integer featuresCompileId = new ConvertTool().getCompileId();
AppFeaturesIndex f = new AppFeaturesIndex();
f.setAppCompileId(cfg.getCompileId());
@@ -119,7 +140,7 @@ public class AppCfgService extends CrudService<AppCfgDao,AppIdCfg> {
}
}
if(cfg.getStrFeaturesCfgList()!=null){
for(BaseStringCfg s:cfg.getStrFeaturesCfgList()){
for(AppStringCfg s:cfg.getStrFeaturesCfgList()){
Integer featuresCompileId = new ConvertTool().getCompileId();
AppFeaturesIndex f = new AppFeaturesIndex();
f.setAppCompileId(cfg.getCompileId());
@@ -162,7 +183,7 @@ public class AppCfgService extends CrudService<AppCfgDao,AppIdCfg> {
@Transactional(readOnly=false,rollbackFor=RuntimeException.class)
public int updateAppCfg(AppIdCfg cfg) throws Exception{
if(cfg.getComplexFeaturesList()!=null){
for(ComplexkeywordCfg c:cfg.getComplexFeaturesList()){
for(AppComplexKeywordCfg c:cfg.getComplexFeaturesList()){
Integer featuresCompileId = 0;
c.setIsAreaEffective(cfg.getIsAreaEffective());
c.setAreaEffectiveIds(cfg.getAreaEffectiveIds());
@@ -191,14 +212,14 @@ public class AppCfgService extends CrudService<AppCfgDao,AppIdCfg> {
c.setIsValid(cfg.getIsValid());
complexStringCfgDao.insert(c);
}else{
complexStringCfgDao.update(c);
complexStringCfgDao.updateByPrimaryKeySelective(c);
}
}
}
if(cfg.getStrFeaturesCfgList()!=null){
for(BaseStringCfg s:cfg.getStrFeaturesCfgList()){
for(AppStringCfg s:cfg.getStrFeaturesCfgList()){
Integer featuresCompileId = 0;
s.setIsAreaEffective(cfg.getIsAreaEffective());
s.setAreaEffectiveIds(cfg.getAreaEffectiveIds());
@@ -227,7 +248,7 @@ public class AppCfgService extends CrudService<AppCfgDao,AppIdCfg> {
s.setIsValid(cfg.getIsValid());
stringCfgDao.insert(s);
}else{
stringCfgDao.update(s);
stringCfgDao.updateByPrimaryKeySelective(s);
}
}
@@ -241,12 +262,221 @@ public class AppCfgService extends CrudService<AppCfgDao,AppIdCfg> {
* @param cfg
* @return
*int
* @throws Exception
* @exception
* @since 1.0.0
*/
@Transactional(readOnly=false,rollbackFor=RuntimeException.class)
public int auditAppCfg(AppIdCfg cfg){
return appCfgDao.audit(cfg);
public int auditAppCfg(AppIdCfg entity) throws Exception{
boolean sendFlag = false;
AppIdCfg appCfg = appCfgDao.getById(entity.getCfgId());
List<AppFeaturesIndex> featuresTableList = appCfgDao.getFeaturesTableListByAppCompileId(appCfg.getCompileId());
List<AppStringCfg> strList = new ArrayList();
List<AppComplexKeywordCfg> complexList = new ArrayList();
List<SpecificServiceHostCfg> hostList =new ArrayList();
List<BaseIpCfg> areaList = new ArrayList();
ConfigGroupInfo group = new ConfigGroupInfo();
Gson gson=new GsonBuilder().disableHtmlEscaping()
.excludeFieldsWithoutExposeAnnotation()
.create();
//配置审核状态即将改变后的状态
if(Constants.AUDIT_NOT_YES==entity.getIsAudit().intValue()||
Constants.AUDIT_YES==entity.getIsAudit().intValue()){//审核通过,取消审核通过需要发到maat
if(Constants.AUDIT_YES==entity.getIsAudit().intValue()){//审核通过
if(StringUtil.isEmpty(featuresTableList)){
SpecificServiceCfg protocol = specificServiceCfgDao.getBySpecServiceId(appCfg.getAppId().intValue());
SpecificServiceHostCfg hostCfg = new SpecificServiceHostCfg();
hostCfg.setSpecServiceId(protocol.getSpecServiceId());
hostList = specificServiceHostCfgDao.findSpecHostList(hostCfg);
//featuresTableList为空的时候该service只有特定服务IP一个配置表
ServiceConfigInfo serviceCfg=serviceConfigInfoDao.findSysServiceConfigInfo(appCfg.getServiceId());
for(SpecificServiceHostCfg host:hostList){
SpecificServiceCfg specServiceCfg = specificServiceCfgDao.getBySpecServiceId(host.getSpecServiceId());
host.setProtocolId(0);
host.setGroupId(specServiceCfg.getGroupId());
if(StringUtil.isEmpty(serviceCfg)){
host.setMaatTable("DF_PROTOCOL_APP");
}else{
host.setMaatTable(serviceCfg.getMaatTable());
}
group.setGroupId(specServiceCfg.getGroupId());
group.setIsIssued(1);
}
//生效区域列表信息
if(appCfg.getIsAreaEffective()==1){
if(StringUtil.isEmpty(appCfg.getAreaEffectiveIds())){
BaseIpCfg ipCfg = new BaseIpCfg();
ipCfg.setCompileId(appCfg.getCompileId());
ipCfg.setTableName("area_ip_cfg");
areaList = ipCfgDao.findList(ipCfg);
}
}
}else{
for(AppFeaturesIndex featuresCfg:featuresTableList){
if(featuresCfg.getFeaturesTableType()==2){
List<AppStringCfg> list =appCfgDao.getStrFeaturesCfgListByCompileId(featuresCfg.getFeaturesTable(), featuresCfg.getFeaturesCompileId());
for(AppStringCfg cfg:list){
List<ServiceConfigInfo> cList = serviceConfigInfoDao.findList(appCfg.getServiceId());
if(!StringUtil.isEmpty(cList)){
for(ServiceConfigInfo c:cList){
if(c.getTableName().equals(featuresCfg.getFeaturesTable())){
cfg.setMaatTable(c.getMaatTable());
}
}
}
cfg.setCompileId(featuresCfg.getFeaturesCompileId());
strList.add(cfg);
}
}
if(featuresCfg.getFeaturesTableType()==4){
List<AppComplexKeywordCfg> list = appCfgDao.getComplexkeywordFeaturesCfgListByCompileId(featuresCfg.getFeaturesTable(), featuresCfg.getFeaturesCompileId());
for(AppComplexKeywordCfg cfg:list){
List<ServiceConfigInfo> cList = serviceConfigInfoDao.findList(appCfg.getServiceId());
if(!StringUtil.isEmpty(cList)){
for(ServiceConfigInfo c:cList){
if(c.getTableName().equals(featuresCfg.getFeaturesTable())){
cfg.setMaatTable(c.getMaatTable());
}
}
}
cfg.setCompileId(featuresCfg.getFeaturesCompileId());
complexList.add(cfg);
}
}
}
}
AppMaatCfg maatCfg = new AppMaatCfg();
if(StringUtil.isEmpty(featuresTableList)){
maatCfg.setIpCfg(hostList);
maatCfg.setAreaCfg(areaList);
if(appCfg.getCompileId()==0){
throw new RuntimeException("转换出错,未获取到正确的compileId");
}else{
maatCfg.setCompileId(appCfg.getCompileId());
}
}else{//特征配置
maatCfg.setStrCfg(strList);
maatCfg.setComplexStrCfg(complexList);
}
if(appCfg.getAction()==null){
throw new RuntimeException("转换出错,未获取到正确的action");
}else{
maatCfg.setAction(appCfg.getAction());
}
if(appCfg.getIsAreaEffective()==null){
throw new RuntimeException("转换出错,未获取到正确的isAreaEffective");
}else{
maatCfg.setIsAreaEffective(appCfg.getIsAreaEffective());
}
if(appCfg.getIsValid()==null){
throw new RuntimeException("转换出错,未获取到正确的isValid");
}else{
maatCfg.setIsValid(appCfg.getIsValid());
}
if(appCfg.getRequestId()==null){
throw new RuntimeException("转换出错,未获取到正确的requestId");
}else{
maatCfg.setRequestId(appCfg.getRequestId());
}
if(appCfg.getServiceId()==null){
throw new RuntimeException("转换出错,未获取到正确的serviceId");
}else{
maatCfg.setServiceId(appCfg.getServiceId());
}
maatCfg.setSpecificServiceId(appCfg.getAppId());
maatCfg.setAreaEffectiveIds(appCfg.getAreaEffectiveIds()==null?"":appCfg.getAreaEffectiveIds());
maatCfg.setAttribute(appCfg.getAttribute()==null?"":appCfg.getAttribute());
maatCfg.setClassify(appCfg.getClassify()==null?"":appCfg.getClassify());
maatCfg.setLable(appCfg.getLable()==null?"":appCfg.getLable());
String json=gson.toJson(maatCfg);
//下发maat
// new ConvertTool().saveAppConfig(json);
sendFlag = true;
}else{//取消审核通过
AppMaatCfg maatCfg = new AppMaatCfg();
if(StringUtil.isEmpty(featuresTableList)){
ServiceConfigInfo serviceCfg=serviceConfigInfoDao.findSysServiceConfigInfo(appCfg.getServiceId());
maatCfg.setMaatTable(serviceCfg.getMaatTable());
if(appCfg.getCompileId()==0){
throw new RuntimeException("转换出错,未获取到正确的compileId");
}else{
maatCfg.setCompileId(appCfg.getCompileId());
}
}else{//特征配置
for(AppFeaturesIndex featuresCfg:featuresTableList){
if(featuresCfg.getFeaturesTableType()==2){
List<AppStringCfg> list =appCfgDao.getStrFeaturesCfgListByCompileId(featuresCfg.getFeaturesTable(), featuresCfg.getFeaturesCompileId());
for(AppStringCfg cfg:list){
AppStringCfg strCfg = new AppStringCfg();
List<ServiceConfigInfo> cList = serviceConfigInfoDao.findList(appCfg.getServiceId());
if(!StringUtil.isEmpty(cList)){
for(ServiceConfigInfo c:cList){
if(c.getTableName().equals(featuresCfg.getFeaturesTable())){
strCfg.setMaatTable(c.getMaatTable());
}
}
}
strCfg.setCompileId(featuresCfg.getFeaturesCompileId());
strList.add(strCfg);
}
}
if(featuresCfg.getFeaturesTableType()==4){
List<AppComplexKeywordCfg> list = appCfgDao.getComplexkeywordFeaturesCfgListByCompileId(featuresCfg.getFeaturesTable(), featuresCfg.getFeaturesCompileId());
for(AppComplexKeywordCfg cfg:list){
AppComplexKeywordCfg complexCfg = new AppComplexKeywordCfg();
List<ServiceConfigInfo> cList = serviceConfigInfoDao.findList(appCfg.getServiceId());
if(!StringUtil.isEmpty(cList)){
for(ServiceConfigInfo c:cList){
if(c.getTableName().equals(featuresCfg.getFeaturesTable())){
complexCfg.setMaatTable(c.getMaatTable());
}
}
}
complexCfg.setCompileId(featuresCfg.getFeaturesCompileId());
complexList.add(complexCfg);
}
}
}
maatCfg.setStrCfg(strList);
maatCfg.setComplexStrCfg(complexList);
}
String json=gson.toJson(maatCfg);
//下发maat
// new ConvertTool().saveAppConfig(json);
sendFlag = true;
}
}else{
sendFlag = false;
}
if(sendFlag){
//修改appId配置审核下发状态
appCfgDao.audit(entity);
//修改特定服务IP分组下发状态
specificServiceCfgDao.updateConfigGroupInfobyGroupId(group);
//修改特征表配置审核下发状态
for(AppFeaturesIndex cfg:featuresTableList){
appCfgDao.auditFeaturesTable(cfg.getFeaturesTable(), cfg.getFeaturesCompileId(), entity.getIsValid(),
entity.getIsAudit(), entity.getAuditorId(), entity.getAuditTime());
}
return 1;
}else{
return 0;
}
}
/**
*
@@ -259,8 +489,22 @@ public class AppCfgService extends CrudService<AppCfgDao,AppIdCfg> {
* @since 1.0.0
*/
@Transactional(readOnly=false,rollbackFor=RuntimeException.class)
public int deleteAppCfg(AppIdCfg cfg){
return appCfgDao.updateValid(cfg);
public int deleteAppCfg(AppIdCfg entity){
Integer status = appCfgDao.updateValid(entity);
if(status==1){
List<AppFeaturesIndex> featuresTableList = appCfgDao.getFeaturesTableListByAppCompileId(entity.getCompileId());
for(AppFeaturesIndex cfg:featuresTableList){
status = appCfgDao.updateFeaturesTableValid(cfg.getFeaturesTable(), cfg.getFeaturesCompileId(),
entity.getIsValid(), entity.getEditorId(), entity.getEditTime());
if(status==0){
return 0;
}
}
return status;
}else{
return status;
}
// return appCfgDao.updateValid(cfg);
}
/**
*
@@ -288,18 +532,18 @@ public class AppCfgService extends CrudService<AppCfgDao,AppIdCfg> {
public AppIdCfg getAppCfgById(AppIdCfg cfg){
cfg = appCfgDao.get(cfg);
List<AppFeaturesIndex> featuresTableList = appCfgDao.getFeaturesTableListByAppCompileId(cfg.getCompileId());
List<ComplexkeywordCfg> complexList = new ArrayList();
List<BaseStringCfg> strList = new ArrayList();
List<AppComplexKeywordCfg> complexList = new ArrayList();
List<AppStringCfg> strList = new ArrayList();
if(!StringUtil.isEmpty(featuresTableList)){
for(AppFeaturesIndex features:featuresTableList){
if(features.getFeaturesTableType().equals(4)){//增强字符串特征配置
List<ComplexkeywordCfg> complexFeaturesList = appCfgDao.getComplexkeywordFeaturesCfgListByCompileId(
List<AppComplexKeywordCfg> complexFeaturesList = appCfgDao.getComplexkeywordFeaturesCfgListByCompileId(
features.getFeaturesTable(),features.getFeaturesCompileId());
complexList.addAll(complexFeaturesList);
}else if(features.getFeaturesTableType().equals(2)){//普通字符串特征配置
List<BaseStringCfg> strFeaturesCfgList = appCfgDao.getStrFeaturesCfgListByCompileId(
List<AppStringCfg> strFeaturesCfgList = appCfgDao.getStrFeaturesCfgListByCompileId(
features.getFeaturesTable(),features.getFeaturesCompileId());
strList.addAll(strFeaturesCfgList);
}
@@ -313,13 +557,13 @@ public class AppCfgService extends CrudService<AppCfgDao,AppIdCfg> {
public Integer getIsValid(Long cfgId){
return appCfgDao.getIsValid(cfgId);
}
/*public Integer getIsValid(String tableName, long id){
public Integer getIsValid(String tableName, long id){
return appCfgDao.getIsValid(tableName,id);
}*/
}
public Integer getIsAudit(Long cfgId){
return appCfgDao.getIsAudit(cfgId);
}
/*public Integer getIsAudit(String tableName, long id){
public Integer getIsAudit(String tableName, long id){
return appCfgDao.getIsAudit(tableName,id);
}*/
}
}

View File

@@ -10,7 +10,9 @@ import org.springframework.transaction.annotation.Transactional;
import com.beust.jcommander.internal.Lists;
import com.nis.domain.Page;
import com.nis.domain.specific.ConfigGroupInfo;
import com.nis.domain.specific.SpecificServiceCfg;
import com.nis.main.ConvertTool;
import com.nis.util.StringUtil;
import com.nis.web.dao.specific.SpecificServiceCfgDao;
import com.nis.web.service.BaseService;
@@ -60,11 +62,22 @@ public class SpecificServiceCfgService extends BaseService{
/**
* 保存或修改
* @param specificServiceCfg
* @throws Exception
*/
@Transactional(readOnly=false,rollbackFor=RuntimeException.class)
public void saveOrUpdate(SpecificServiceCfg specificServiceCfg, Integer oldId) {
if(specificServiceCfg.getGroupId()==null){
specificServiceCfg.setGroupId(0);
public void saveOrUpdate(SpecificServiceCfg specificServiceCfg, Integer oldId) throws Exception {
if(specificServiceCfg.getGroupId()==null || specificServiceCfg.getGroupId()==0){
specificServiceCfg.setGroupId(new ConvertTool().getGroupId());
}
//新增协议分组
ConfigGroupInfo group = specificServiceCfgDao.getConfigGroupInfoByGroupId(specificServiceCfg.getGroupId());
if(group==null){
group = new ConfigGroupInfo();
group.setGroupId(specificServiceCfg.getGroupId());
group.setGroupName(specificServiceCfg.getSpecServiceName());
group.setIsIssued(0);
group.setGroupType(1);
specificServiceCfgDao.insertConfigGroupInfo(group);
}
if(oldId==null){//新增
specificServiceCfg.setIsValid(1);

View File

@@ -285,7 +285,7 @@
<c:if test="${isContainFeaturesCfg}">
<td>
<a href="${ctx}/cfg/app/showFeaturesCfg?serviceId=${cfg.serviceId}&compileId=${cfg.compileId }&action=${cfg.action}&cfgId=${cfg.cfgId}&cfgName=${cfgName}">
<spring:message code="show"></spring:message>
<spring:message code="detail"></spring:message>
</a>
</td>
</c:if>
@@ -361,10 +361,10 @@
</c:when>
<c:when test="${cfg.isAudit eq '0'}">
<shiro:hasPermission name="cfg:edit">
<li><a href="${ctx}/cfg/app/updateForm?serviceId=${cfg.serviceId}&action=${cfg.action}&cfgId=${cfg.cfgId}&cfgName=${cfgName}" onclick="javascript:return confirm('sure', this.href)"><spring:message code="edit"></spring:message></a></li>
<li><a href="${ctx}/cfg/app/updateForm?serviceId=${cfg.serviceId}&action=${cfg.action}&compileId=${cfg.compileId}&cfgId=${cfg.cfgId}&cfgName=${cfgName}" onclick="javascript:return confirm('sure', this.href)"><spring:message code="edit"></spring:message></a></li>
</shiro:hasPermission>
<shiro:hasPermission name="cfg:delete">
<li><a href="${ctx}/cfg/app/deleteCfg?serviceId=${cfg.serviceId}&action=${cfg.action}&cfgId=${cfg.cfgId}&cfgName=${cfgName}" onclick="return confirm('sure', this.href)"><spring:message code="delete"></spring:message></a></li>
<li><a href="${ctx}/cfg/app/deleteCfg?serviceId=${cfg.serviceId}&action=${cfg.action}&compileId=${cfg.compileId}&cfgId=${cfg.cfgId}&cfgName=${cfgName}" onclick="return confirm('sure', this.href)"><spring:message code="delete"></spring:message></a></li>
</shiro:hasPermission>
</c:when>
</c:choose>
@@ -373,15 +373,15 @@
<c:choose>
<c:when test="${cfg.isAudit eq '1'}">
<shiro:hasPermission name="cfg:audit:cancel">
<li><a href="${ctx}/cfg/app/auditCfg?serviceId=${cfg.serviceId}&action=${cfg.action}&cfgId=${cfg.cfgId}&isAudit=3&cfgName=${cfgName}" onclick="return confirm('sure', this.href)"><spring:message code="cancel"></spring:message></a></li>
<li><a href="${ctx}/cfg/app/auditCfg?serviceId=${cfg.serviceId}&action=${cfg.action}&compileId=${cfg.compileId}&cfgId=${cfg.cfgId}&isAudit=3&cfgName=${cfgName}" onclick="return confirm('sure', this.href)"><spring:message code="cancel"></spring:message></a></li>
</shiro:hasPermission>
</c:when>
<c:when test="${cfg.isAudit eq '0'}">
<shiro:hasPermission name="cfg:audit:valid">
<li><a href="${ctx}/cfg/app/auditCfg?serviceId=${cfg.serviceId}&action=${cfg.action}&cfgId=${cfg.cfgId}&isAudit=1&cfgName=${cfgName}" onclick="return confirm('sure', this.href)"><spring:message code="approved"></spring:message></a></li>
<li><a href="${ctx}/cfg/app/auditCfg?serviceId=${cfg.serviceId}&action=${cfg.action}&compileId=${cfg.compileId}&cfgId=${cfg.cfgId}&isAudit=1&cfgName=${cfgName}" onclick="return confirm('sure', this.href)"><spring:message code="approved"></spring:message></a></li>
</shiro:hasPermission>
<shiro:hasPermission name="cfg:audit:invalid">
<li><a href="${ctx}/cfg/app/auditCfg?serviceId=${cfg.serviceId}&action=${cfg.action}&cfgId=${cfg.cfgId}&isAudit=2&cfgName=${cfgName}" onclick="return confirm('sure', this.href)"><spring:message code="unapproved"></spring:message></a></li>
<li><a href="${ctx}/cfg/app/auditCfg?serviceId=${cfg.serviceId}&action=${cfg.action}&compileId=${cfg.compileId}&cfgId=${cfg.cfgId}&isAudit=2&cfgName=${cfgName}" onclick="return confirm('sure', this.href)"><spring:message code="unapproved"></spring:message></a></li>
</shiro:hasPermission>
</c:when>
</c:choose>

View File

@@ -159,10 +159,10 @@
$("#addBtn").attr("disabled", false);
} else if ($(obj).val() == '3') {
if ($(".table-list").length > 1) {
alert('<spring:message code="special_service_message"/>');
$(obj).val(v);
//alert('<spring:message code="special_service_message"/>');
//$(obj).val(v);
} else if ($(".table-list").length == 1) {
$("#addBtn").attr("disabled", true);
//$("#addBtn").attr("disabled", true);
} else if ($(".table-list").length == 0) {
$("#addBtn").attr("disabled", false);
}
@@ -241,7 +241,7 @@
'</div>'
);
$("[name=tableType]").selectpicker('refresh');
if ($("#serviceType").val() == '1' || $("#serviceType").val() == '3') {
if ($("#serviceType").val() == '1') {
$("#addBtn").attr("disabled", true);
}