develop

Conflicts:
	src/main/webapp/WEB-INF/include/excel/importModal.jsp
	src/main/webapp/WEB-INF/views/cfg/ipaddr/ipList.jsp
增加region和service导入属性,动态控制导入业务
优化导入界面
This commit is contained in:
duandongmei
2018-10-19 17:19:52 +08:00
23 changed files with 250 additions and 70 deletions

View File

@@ -28,6 +28,14 @@ public class FunctionRegionDict extends BaseCfg<FunctionRegionDict> {
private String configDirection;
private String configProtocol;
private Integer configRegionSort;
private Integer isImport;
public Integer getIsImport() {
return isImport;
}
public void setIsImport(Integer isImport) {
this.isImport = isImport;
}
public Integer getConfigRegionSort() {
return configRegionSort;

View File

@@ -18,6 +18,15 @@ public class FunctionServiceDict extends BaseCfg<FunctionServiceDict> {
private String actionCode;
private String regionCode;
private Integer isImport;
public Integer getIsImport() {
return isImport;
}
public void setIsImport(Integer isImport) {
this.isImport = isImport;
}
public String getRegionCode() {
return regionCode;
}

View File

@@ -23,14 +23,14 @@ public class IpPayloadTemplate extends IpAllTemplate {
public String getUserRegion2() {
return userRegion2;
}
public void setUserRegion2(String userRegion1) {
public void setUserRegion2(String userRegion2) {
this.userRegion2 = userRegion2;
}
@ExcelField(title="replace_content",align=2,sort=4)
public String getUserRegion3() {
return userRegion3;
}
public void setUserRegion3(String userRegion1) {
public void setUserRegion3(String userRegion3) {
this.userRegion3 = userRegion3;
}
}

View File

@@ -359,7 +359,11 @@ public class ImportExcel {
ExcelField ef = (ExcelField)os[0];
// If is dict type, get dict value
if (StringUtils.isNotBlank(ef.dictType())){
val = DictUtils.getDictCode(ef.dictType(), val.toString(), "");
Object val1 = DictUtils.getDictCode(ef.dictType(), val.toString(), "");
//没有获取到字典值的话会影响验证判断
if(val1!=null&&StringUtils.isNotBlank(val1.toString())) {
val=val1;
}
//log.debug("Dictionary type value: ["+i+","+colunm+"] " + val);
}
// Get param type and type cast

View File

@@ -50,6 +50,7 @@ import com.nis.domain.configuration.RequestInfo;
import com.nis.domain.configuration.StringCfgTemplate;
import com.nis.domain.configuration.template.IpAllTemplate;
import com.nis.domain.configuration.template.IpCfgTemplate;
import com.nis.domain.configuration.template.IpPayloadTemplate;
import com.nis.domain.configuration.template.IpRateLimitTemplate;
import com.nis.domain.log.BaseLogEntity;
import com.nis.domain.log.SearchReport;
@@ -825,6 +826,44 @@ public class BaseController {
StringBuffer errInfo = new StringBuffer();
IpPortCfg baseIpCfg = new IpPortCfg();
BeanUtils.copyProperties(list.get(i), baseIpCfg);
//特殊字段验证
//packet ip ratelimit
if(serviceDict.getFunctionId().intValue()==5&&serviceDict.getAction().intValue()==64) {
String userRegion1=baseIpCfg.getUserRegion1();
try {
Double ratelimt= Double.parseDouble(userRegion1);
if(ratelimt>0.009||ratelimt<0.001) {
errInfo.append(prop.getProperty("ratelimit")+"."+String.format(prop.getProperty("must_between"),0.001,0.009)+";");
}
} catch (Exception e) {
// TODO: handle exception
errInfo.append(String.format(prop.getProperty("not_number"), prop.getProperty("ratelimit"))+";");
}
}
//payload ip
if(regionDict.getFunctionId().equals(212)) {
//replace_zone
String userRegion1=baseIpCfg.getUserRegion1();
if(StringUtils.isNotBlank(userRegion1)) {
Object val = DictUtils.getDictLabel("INTERCEPT_REPLACE_ZONE", userRegion1);
if(StringUtils.isBlank(val.toString())) {
errInfo.append(String.format(prop.getProperty("is_incorrect"), prop.getProperty("replace_zone"))+";");
}
}else {
errInfo.append(String.format(prop.getProperty("can_not_null"), prop.getProperty("replace_zone"))+";");
}
//replaced_content
String userRegion2=baseIpCfg.getUserRegion2();
if(StringUtils.isBlank(userRegion2)) {
errInfo.append(String.format(prop.getProperty("can_not_null"), prop.getProperty("replaced_content"))+";");
}
//replace_content
String userRegion3=baseIpCfg.getUserRegion3();
if(StringUtils.isBlank(userRegion3)) {
errInfo.append(String.format(prop.getProperty("can_not_null"), prop.getProperty("replace_content"))+";");
}
}
if (regionDict.getRegionType().equals(1)) {
// 校验必填的IP端口
for (String code : configIpPortShow.split(",")) {
@@ -1205,7 +1244,7 @@ public class BaseController {
}
}
if (!has) {
errInfo.append(String.format(prop.getProperty("is_incorrect"), prop.getProperty("direction")) + ","
errInfo.append(String.format(prop.getProperty("is_incorrect"), prop.getProperty("direction")) + "."
+ String.format(prop.getProperty("alternative_values"), directionPattern) + ";");
}
return has;
@@ -1233,7 +1272,7 @@ public class BaseController {
}
}
if (!has) {
errInfo.append(String.format(prop.getProperty("is_incorrect"), prop.getProperty("protocol")) + ","
errInfo.append(String.format(prop.getProperty("is_incorrect"), prop.getProperty("protocol")) + "."
+ String.format(prop.getProperty("alternative_values"), protocolPattern) + ";");
}
return has;
@@ -2415,6 +2454,11 @@ public class BaseController {
ipPortCfgs = this.checkIpCfg(serviceDict, regionDict, list);
}
}
}else if(regionDict.getFunctionId().equals(212)) {
if (regionDict.getRegionType().equals(1)) {
List<IpPayloadTemplate> list = ei.getDataList(IpPayloadTemplate.class);
ipPortCfgs = this.checkIpCfg(serviceDict, regionDict, list);
}
} else if (regionDict.getRegionType().equals(1)) {
List<IpAllTemplate> list = ei.getDataList(IpAllTemplate.class);
ipPortCfgs = this.checkIpCfg(serviceDict, regionDict, list);

View File

@@ -5,6 +5,7 @@ import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Properties;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@@ -232,29 +233,18 @@ public class IpController extends BaseController{
,FunctionRegionDict regionDict
,FunctionServiceDict serviceDict
,Integer requestId) throws Exception{
String fileName = "template.xlsx";
//ip类模板
if(regionDict.getRegionType().equals(1)){
if(regionDict.getFunctionId().equals(5)){// IP Address
if(serviceDict.getAction().equals(64)){//ip限速
List<IpRateLimitTemplate> classList=new ArrayList<IpRateLimitTemplate>();
ExportExcel excel=new ExportExcel(serviceDict,regionDict,this.getMsgProp(),null, IpRateLimitTemplate.class, 2);
excel.setDataList(this.getMsgProp(),classList,null).
write(request,response, fileName).dispose();
}else{
List<IpAllTemplate> classList=new ArrayList<IpAllTemplate>();
ExportExcel excel=new ExportExcel(serviceDict,regionDict,this.getMsgProp(),null, IpAllTemplate.class, 2);
excel.setDataList(this.getMsgProp(),classList,null).
write(request,response, fileName).dispose();
}
}else if(regionDict.getFunctionId().equals(212)){ //IP Payload
List<IpPayloadTemplate> classList=new ArrayList<IpPayloadTemplate>();
ExportExcel excel=new ExportExcel(serviceDict,regionDict,this.getMsgProp(),null, IpPayloadTemplate.class, 2);
excel.setDataList(this.getMsgProp(),classList,null).
write(request,response, fileName).dispose();
}else if(regionDict.getFunctionId().equals(7)){ //Dns IP
List<DnsIpTemplate> classList=new ArrayList<DnsIpTemplate>();
ExportExcel excel=new ExportExcel(serviceDict,regionDict,this.getMsgProp(),null, DnsIpTemplate.class, 2);
Properties pro=getMsgProp();
String serviceName=pro.getProperty(serviceDict.getServiceName());
String regionName=pro.getProperty(regionDict.getConfigRegionValue());
serviceName=StringUtil.isEmpty(serviceName) ?serviceDict.getServiceName():serviceName;
regionName=StringUtil.isEmpty(regionName) ?regionDict.getConfigRegionValue():regionName;
String fileName = serviceName+"_"+regionName+"_template.xlsx";
//ip类模板
if(regionDict.getRegionType().equals(1)){
if(regionDict.getFunctionId().equals(5)){// IP Address
if(serviceDict.getAction().equals(64)){//ip限速
List<IpRateLimitTemplate> classList=new ArrayList<IpRateLimitTemplate>();
ExportExcel excel=new ExportExcel(serviceDict,regionDict,this.getMsgProp(),null, IpRateLimitTemplate.class, 2);
excel.setDataList(this.getMsgProp(),classList,null).
write(request,response, fileName).dispose();
}else{
@@ -263,41 +253,57 @@ public class IpController extends BaseController{
excel.setDataList(this.getMsgProp(),classList,null).
write(request,response, fileName).dispose();
}
}
//str类模板
if(regionDict.getRegionType().equals(2)){
List<StringAllTemplate> classList=new ArrayList<StringAllTemplate>();
ExportExcel excel=new ExportExcel(serviceDict,regionDict,this.getMsgProp(),null, StringAllTemplate.class, 2);
}else if(regionDict.getFunctionId().equals(212)){ //IP Payload
List<IpPayloadTemplate> classList=new ArrayList<IpPayloadTemplate>();
ExportExcel excel=new ExportExcel(serviceDict,regionDict,this.getMsgProp(),null, IpPayloadTemplate.class, 2);
excel.setDataList(this.getMsgProp(),classList,null).
write(request,response, fileName).dispose();
}else if(regionDict.getFunctionId().equals(7)){ //Dns IP
List<DnsIpTemplate> classList=new ArrayList<DnsIpTemplate>();
ExportExcel excel=new ExportExcel(serviceDict,regionDict,this.getMsgProp(),null, DnsIpTemplate.class, 2);
excel.setDataList(this.getMsgProp(),classList,null).
write(request,response, fileName).dispose();
}else{
List<IpAllTemplate> classList=new ArrayList<IpAllTemplate>();
ExportExcel excel=new ExportExcel(serviceDict,regionDict,this.getMsgProp(),null, IpAllTemplate.class, 2);
excel.setDataList(this.getMsgProp(),classList,null).
write(request,response, fileName).dispose();
}
//district类模板
if(regionDict.getRegionType().equals(3)){
if(regionDict.getFunctionId().equals(7)){//DNS DISTRICT STRING
List<DnsComplexStringTemplate> classList=new ArrayList<DnsComplexStringTemplate>();
ExportExcel excel=new ExportExcel(serviceDict,regionDict,this.getMsgProp(),null, StringAllTemplate.class, 2);
excel.setDataList(this.getMsgProp(),classList,null).
write(request,response, fileName).dispose();
}else{
List<ComplexStringAllTemplate> classList=new ArrayList<ComplexStringAllTemplate>();
ExportExcel excel=new ExportExcel(serviceDict,regionDict,this.getMsgProp(),null, ComplexStringAllTemplate.class, 2);
excel.setDataList(this.getMsgProp(),classList,null).
write(request,response, fileName).dispose();
}
}
//str类模板
if(regionDict.getRegionType().equals(2)){
List<StringAllTemplate> classList=new ArrayList<StringAllTemplate>();
ExportExcel excel=new ExportExcel(serviceDict,regionDict,this.getMsgProp(),null, StringAllTemplate.class, 2);
excel.setDataList(this.getMsgProp(),classList,null).
write(request,response, fileName).dispose();
}
//district类模板
if(regionDict.getRegionType().equals(3)){
if(regionDict.getFunctionId().equals(7)){//DNS DISTRICT STRING
List<DnsComplexStringTemplate> classList=new ArrayList<DnsComplexStringTemplate>();
ExportExcel excel=new ExportExcel(serviceDict,regionDict,this.getMsgProp(),null, StringAllTemplate.class, 2);
excel.setDataList(this.getMsgProp(),classList,null).
write(request,response, fileName).dispose();
}else{
List<ComplexStringAllTemplate> classList=new ArrayList<ComplexStringAllTemplate>();
ExportExcel excel=new ExportExcel(serviceDict,regionDict,this.getMsgProp(),null, ComplexStringAllTemplate.class, 2);
excel.setDataList(this.getMsgProp(),classList,null).
write(request,response, fileName).dispose();
}
}
}
//ip配置导入
@RequestMapping(value = "import", method=RequestMethod.POST)
public String importIp(RedirectAttributes redirectAttributes,
@RequestParam("files") MultipartFile[] files
,Integer serviceDictId
,Integer requestId
,String regionDictIds) {
this._import(redirectAttributes, files,serviceDictId,regionDictIds,requestId);
return "redirect:" + adminPath +"/ntc/iplist/list?functionId="+5;
}
@RequestMapping(value = "import", method=RequestMethod.POST)
public String importIp(RedirectAttributes redirectAttributes,
@RequestParam("files") MultipartFile[] files
,Integer serviceDictId
,Integer requestId
,String regionDictIds
,String importPath) {
this._import(redirectAttributes, files,serviceDictId,regionDictIds,requestId);
return "redirect:" + adminPath+ importPath;
}
//ip配置导出
@RequestMapping(value = "exportIpAddr")
public void exportIp(Model model,HttpServletRequest request,HttpServletResponse response,

View File

@@ -23,12 +23,13 @@
<result column="config_direction" property="configDirection" jdbcType="VARCHAR" />
<result column="config_protocol" property="configProtocol" jdbcType="VARCHAR" />
<result column="config_region_sort" property="configRegionSort" jdbcType="INTEGER" />
<result column="is_import" property="isImport" jdbcType="INTEGER" />
</resultMap>
<sql id="Base_Column_List" >
dict_id, function_id, config_region_value,config_region_code, config_district, config_desc, is_valid,is_maat,region_type
,config_multi_keywords,config_hex,config_expr_type,config_match_method,config_service_type,config_ip_port_show,config_ip_type,
config_ip_pattern,config_port_pattern,config_direction,config_protocol,config_region_sort
config_ip_pattern,config_port_pattern,config_direction,config_protocol,config_region_sort,is_import
</sql>
<select id="getList" resultMap="BaseResultMap" >
select

View File

@@ -12,10 +12,11 @@
<result column="service_desc" property="serviceDesc" jdbcType="VARCHAR" />
<result column="is_valid" property="isValid" jdbcType="INTEGER" />
<result column="region_code" property="regionCode" jdbcType="VARCHAR" />
<result column="is_import" property="isImport" jdbcType="INTEGER" />
</resultMap>
<sql id="Base_Column_List" >
dict_id, function_id, protocol_id, action,action_code, service_id, service_name,service_desc,is_valid,region_code
dict_id, function_id, protocol_id, action,action_code, service_id, service_name,service_desc,is_valid,region_code,is_import
</sql>
<select id="getList" resultMap="BaseResultMap" >
select