1、修改APP配置,appCode根据特定服务ID从后台查询;2、ip复用地址池下发参数修正;3、修改配置文件参数

Signed-off-by: zhangwei <zhangwei@intranet.com>
This commit is contained in:
zhangwei
2018-07-12 19:29:36 +08:00
parent 65eba098e2
commit ac11f8d462
8 changed files with 128 additions and 85 deletions

View File

@@ -20,7 +20,7 @@ public class IpMultiplexPoolCfg extends BaseCfg<IpMultiplexPoolCfg> {
@SerializedName("cfgId")
private Integer compileId;
@Expose
@SerializedName("addType")
@SerializedName("addrType")
private String ipType;
@Expose
private Integer protocol;

View File

@@ -16,6 +16,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
import com.nis.domain.Page;
import com.nis.domain.ServiceConfigInfo;
import com.nis.domain.configuration.AppByteCfg;
import com.nis.domain.configuration.AppDomainCfg;
import com.nis.domain.configuration.AppHttpCfg;
@@ -115,6 +116,10 @@ public class AppCfgController extends BaseController {
public String saveAppPolicyCfg(Model model,HttpServletRequest request,HttpServletResponse response,
AppPolicyCfg entity,RedirectAttributes redirectAttributes) {
try {
SpecificServiceCfg specificService = specificServiceCfgService.getBySpecServiceId(entity.getSpecServiceId());
if(specificService!=null){
entity.setAppCode(specificService.getSpecServiceCode());
}
appCfgService.saveOrUpdateAppPolicyCfg(entity);
} catch (Exception e) {
e.printStackTrace();
@@ -221,6 +226,10 @@ public class AppCfgController extends BaseController {
public String saveAppIpCfg(Model model,HttpServletRequest request,HttpServletResponse response,
AppIpCfg entity,RedirectAttributes redirectAttributes) {
try {
SpecificServiceCfg specificService = specificServiceCfgService.getBySpecServiceId(entity.getSpecServiceId());
if(specificService!=null){
entity.setAppCode(specificService.getSpecServiceCode());
}
appCfgService.saveOrUpdateAppIpCfg(entity);
} catch (Exception e) {
e.printStackTrace();
@@ -327,6 +336,10 @@ public class AppCfgController extends BaseController {
public String saveAppHttpCfg(Model model,HttpServletRequest request,HttpServletResponse response,
AppHttpCfg entity,RedirectAttributes redirectAttributes) {
try {
SpecificServiceCfg specificService = specificServiceCfgService.getBySpecServiceId(entity.getSpecServiceId());
if(specificService!=null){
entity.setAppCode(specificService.getSpecServiceCode());
}
appCfgService.saveOrUpdateAppHttpCfg(entity);
} catch (Exception e) {
e.printStackTrace();
@@ -432,6 +445,10 @@ public class AppCfgController extends BaseController {
public String saveAppDomainCfg(Model model,HttpServletRequest request,HttpServletResponse response,
AppDomainCfg entity,RedirectAttributes redirectAttributes) {
try {
SpecificServiceCfg specificService = specificServiceCfgService.getBySpecServiceId(entity.getSpecServiceId());
if(specificService!=null){
entity.setAppCode(specificService.getSpecServiceCode());
}
appCfgService.saveOrUpdateAppDomainCfg(entity);
} catch (Exception e) {
e.printStackTrace();
@@ -537,6 +554,10 @@ public class AppCfgController extends BaseController {
public String saveAppByteCfg(Model model,HttpServletRequest request,HttpServletResponse response,
AppByteCfg entity,RedirectAttributes redirectAttributes) {
try {
SpecificServiceCfg specificService = specificServiceCfgService.getBySpecServiceId(entity.getSpecServiceId());
if(specificService!=null){
entity.setAppCode(specificService.getSpecServiceCode());
}
appCfgService.saveOrUpdateAppByteCfg(entity);
} catch (Exception e) {
e.printStackTrace();

View File

@@ -118,7 +118,7 @@ public class AppCfgService extends BaseService {
entity.setCreateTime(new Date());
entity.setCreatorId(entity.getCurrentUser().getId());
entity.setIsValid(0);
entity.setIsAudit(0);
entity.setIsAudit(0);
appCfgDao.insertAppPolicyCfg(entity);
//保存策略IP配置
if(entity.getIpPortList()!=null){

View File

@@ -99,81 +99,100 @@ public class AvCfgService extends BaseService{
avCfgDao.insertAvFileSample(entity);
//调用外部脚本,生成样例文件
List list = new ArrayList();
Map<String,Object> map = new HashMap();
map.put("srcFile", entity.getSrcPath());
map.put("dstFile", entity.getSamplePath());
map.put("resultFile", entity.getResultPath());
map.put("fileId", entity.getCfgId());
list.add(map);
String param = gsonToJson(list);
String sampleCreatelProc = "";
if(entity.getCfgType().equals(Constants.AV_SAMPLE_AUDIO_REGION)||
entity.getCfgType().equals(Constants.AV_SAMPLE_VOIP_REGION)){//音频样例配置或VOIP样例配置
sampleCreatelProc = Constants.AUDIO_SAMPLE_CREATE_PROC;
if(Constants.AUDIO_SAMPLE_PROC_PARAM_IS_TRANSLATION){
param = StringEscapeUtils.escapeJava(param);
}
if(Constants.AUDIO_SAMPLE_PROC_PARAM_IS_QUOTATION){//json参数是否需要前后单引号处理
param = "'"+param+"'";
}
}else if(entity.getCfgType().equals(Constants.AV_SAMPLE_VEDIO_REGION)){//视频样例配置
sampleCreatelProc = Constants.VEDIO_SAMPLE_CREATE_PROC;
if(Constants.VEDIO_SAMPLE_PROC_PARAM_IS_TRANSLATION){
param = StringEscapeUtils.escapeJava(param);
}
if(Constants.VEDIO_SAMPLE_PROC_PARAM_IS_QUOTATION){//json参数是否需要前后单引号处理
param = "'"+param+"'";
}
}else if(entity.getCfgType().equals(Constants.AV_SAMPLE_PICTURE_REGION)){//图片样例配置
sampleCreatelProc = Constants.PICTURE_SAMPLE_CREATE_PROC;
if(Constants.PICTURE_SAMPLE_PROC_PARAM_IS_TRANSLATION){
param = StringEscapeUtils.escapeJava(param);
}
if(Constants.PICTURE_SAMPLE_PROC_PARAM_IS_QUOTATION){//json参数是否需要前后单引号处理
param = "'"+param+"'";
}
}
entity = createSampleFileParam(entity);
avCfgDao.updateAvFileSample(entity);
logger.info("调用外部程序输入参数:"+param);
Map resultMap = execShell(sampleCreatelProc,param);
logger.info("调用外部程序结果:"+resultMap);
if(resultMap.get("exitStatus").equals(0)){//调用外部程序成功
String out = resultMap.get("out").toString();//输出参数
JSONArray resArray =JSONArray.fromObject(out);
JSONObject resObject = resArray.getJSONObject(0);
logger.info("调用外部程序输出参数:"+resObject);
int state = resObject.getInt("state");
int fileSize = resObject.getInt("fileSize");
Integer fileId = resObject.getInt("fileId");
if(state==1 && fileSize>0){//成功
entity.setIsSampleCreated(1);//样例文件创建成功
}else{
entity.setIsSampleCreated(-1);//样例文件创建失败
}
if(fileId.equals(entity.getCfgId().intValue())){
File uploadSampleFile = new File(entity.getSamplePath());
String sampleMd5 = FileUtils.getFileMD5(uploadSampleFile);
entity.setSampleMd5(sampleMd5);
avCfgDao.updateAvFileSample(entity);
}else{
logger.info("调用外部程序返回fileId错误,输入的fileId为"+entity.getCfgId()+",输出的fileId为"+fileId);
}
}else{
throw new MaatConvertException(resultMap.get("error")!=null?resultMap.get("error").toString():resultMap.get("message").toString());
}
}else{
throw new MaatConvertException("<spring:message code=\"request_service_failed\"/>");
}
}else{
AvFileSampleCfg oldEntity = this.getAvFileSampleById(entity.getCfgId());
entity.setEditorId(UserUtils.getUser().getId());
entity.setEditTime(new Date());
entity.setIsValid(0);
entity.setIsAudit(0);
if(!oldEntity.getSrcMd5().equals(entity.getSrcMd5())){
//删除旧的文件
FileUtils.deleteFile(oldEntity.getSrcPath());
FileUtils.deleteFile(oldEntity.getSamplePath());
//调用外部脚本,生成样例文件
entity = createSampleFileParam(entity);
}
avCfgDao.updateAvFileSample(entity);
}
}
/**
* 处理创建样例文件所需输入输出参数
* @param entity
* @return
*/
public AvFileSampleCfg createSampleFileParam(AvFileSampleCfg entity){
List list = new ArrayList();
Map<String,Object> map = new HashMap();
map.put("srcFile", entity.getSrcPath());
map.put("dstFile", entity.getSamplePath());
map.put("resultFile", entity.getResultPath());
map.put("fileId", entity.getCfgId());
list.add(map);
String param = gsonToJson(list);
String sampleCreatelProc = "";
if(entity.getCfgType().equals(Constants.AV_SAMPLE_AUDIO_REGION)||
entity.getCfgType().equals(Constants.AV_SAMPLE_VOIP_REGION)){//音频样例配置或VOIP样例配置
sampleCreatelProc = Constants.AUDIO_SAMPLE_CREATE_PROC;
if(Constants.AUDIO_SAMPLE_PROC_PARAM_IS_TRANSLATION){
param = StringEscapeUtils.escapeJava(param);
}
if(Constants.AUDIO_SAMPLE_PROC_PARAM_IS_QUOTATION){//json参数是否需要前后单引号处理
param = "'"+param+"'";
}
}else if(entity.getCfgType().equals(Constants.AV_SAMPLE_VEDIO_REGION)){//视频样例配置
sampleCreatelProc = Constants.VEDIO_SAMPLE_CREATE_PROC;
if(Constants.VEDIO_SAMPLE_PROC_PARAM_IS_TRANSLATION){
param = StringEscapeUtils.escapeJava(param);
}
if(Constants.VEDIO_SAMPLE_PROC_PARAM_IS_QUOTATION){//json参数是否需要前后单引号处理
param = "'"+param+"'";
}
}else if(entity.getCfgType().equals(Constants.AV_SAMPLE_PICTURE_REGION)){//图片样例配置
sampleCreatelProc = Constants.PICTURE_SAMPLE_CREATE_PROC;
if(Constants.PICTURE_SAMPLE_PROC_PARAM_IS_TRANSLATION){
param = StringEscapeUtils.escapeJava(param);
}
if(Constants.PICTURE_SAMPLE_PROC_PARAM_IS_QUOTATION){//json参数是否需要前后单引号处理
param = "'"+param+"'";
}
}
logger.info("调用外部程序输入参数:"+param);
Map resultMap = execShell(sampleCreatelProc,param);
logger.info("调用外部程序结果:"+resultMap);
if(resultMap.get("exitStatus").equals(0)){//调用外部程序成功
String out = resultMap.get("out").toString();//输出参数
JSONArray resArray =JSONArray.fromObject(out);
JSONObject resObject = resArray.getJSONObject(0);
logger.info("调用外部程序输出参数:"+resObject);
int state = resObject.getInt("state");
int fileSize = resObject.getInt("fileSize");
Integer fileId = resObject.getInt("fileId");
if(state==1 && fileSize>0){//成功
entity.setIsSampleCreated(1);//样例文件创建成功
}else{
entity.setIsSampleCreated(-1);//样例文件创建失败
}
if(fileId.equals(entity.getCfgId().intValue())){
File uploadSampleFile = new File(entity.getSamplePath());
String sampleMd5 = FileUtils.getFileMD5(uploadSampleFile);
entity.setSampleMd5(sampleMd5);
}else{
logger.info("调用外部程序返回fileId错误,输入的fileId为"+entity.getCfgId()+",输出的fileId为"+fileId);
}
}else{
throw new MaatConvertException(resultMap.get("error")!=null?resultMap.get("error").toString():resultMap.get("message").toString());
}
return entity;
}
public void saveOrUpdateAvSignSample(AvSignSampleCfg entity){
//设置区域运营商信息
setAreaEffectiveIds(entity);

View File

@@ -420,7 +420,7 @@ success=Success
password=Password
nochange_blank=If don't modify,please keep blank
confirm_password=Confirm Password
manager_info=Management\u4EBA\u5458\u9700\u6307\u5B9A\u8EAB\u4EFD\u6807\u8BC6\u4E3A\u201C Management\u4EBA\u5458\u201D,\u5426\u5219\u5F71\u54CDAudited\u6D41\u7A0B!
manager_info=Management\u4EBA\u5458\u9700\u6307\u5B9A\u8EAB\u4EFD\u6807\u8BC6\u4E3A\u201C Management\u4EBA\u5458\u201D,\u5426\u5219\u5F71\u54CDAudited\u6D41\u7A0B\!
name_existed=Login id has existed
company_range=\u90E8\u95E8\u4E0D\u518D\u516C\u53F8\u8303\u56F4\u5185
equal_password=\u8F93\u5165\u4E0E\u4E0A\u9762\u76F8\u540C\u7684\u5BC6\u7801
@@ -444,7 +444,7 @@ master=\u8D1F\u8D23\u4EBA
post_code=\u90AE\u653F\u7F16\u7801
phone=\u7535\u8BDD
fax=\u4F20\u771F
nochange=\u6682\u65E0\u4FEE\u6539\u8BB0\u5F55!
nochange=\u6682\u65E0\u4FEE\u6539\u8BB0\u5F55\!
module_name=\u6A21\u5757Name
dict_mark=\u5B57\u5178\u6807\u8BC6
run_state=\u8FD0\u884CState
@@ -458,10 +458,10 @@ edit_record=\u4FEE\u6539\u8BB0\u5F55
edit_record_view=\u4FEE\u6539\u8BB0\u5F55\u67E5\u770B
dict_edit_info=\u6570\u636E\u5B57\u5178\u5728\u7CFB\u7EDF\u4E2D\u975E\u5E38\u91CD\u8981,\u60A8\u786E\u8BA4\u8981\u4FEE\u6539\u5417\uFF1F
dict_delete_info=\u6570\u636E\u5B57\u5178\u5728\u7CFB\u7EDF\u4E2D\u975E\u5E38\u91CD\u8981,\u60A8\u786E\u8BA4\u8981\u5220\u9664\u5417\uFF1F
dict_saveitem_error=\u4FDD\u5B58\u4FE1\u606F\u51FA\u73B0\u95EE\u9898,\u8BF7\u6DFB\u52A0\u8BCD\u6761\u9879!
dict_saveitem_nullerror=\u4FDD\u5B58\u4FE1\u606F\u51FA\u73B0\u95EE\u9898,\u6BCF\u4E2A\u8BCD\u6761\u6807\u8BC6\u4E0E\u503C\u90FDCan't be empty!
submit_error=\u63D0\u4EA4Configuration\u51FA\u73B0\u95EE\u9898,\u8BF7\u770B\u9519\u8BEF\u63D0\u793A!
form_validate=\u8868\u5355\u9A8C\u8BC1\u6210\u529F!
dict_saveitem_error=\u4FDD\u5B58\u4FE1\u606F\u51FA\u73B0\u95EE\u9898,\u8BF7\u6DFB\u52A0\u8BCD\u6761\u9879\!
dict_saveitem_nullerror=\u4FDD\u5B58\u4FE1\u606F\u51FA\u73B0\u95EE\u9898,\u6BCF\u4E2A\u8BCD\u6761\u6807\u8BC6\u4E0E\u503C\u90FDCan't be empty\!
submit_error=\u63D0\u4EA4Configuration\u51FA\u73B0\u95EE\u9898,\u8BF7\u770B\u9519\u8BEF\u63D0\u793A\!
form_validate=\u8868\u5355\u9A8C\u8BC1\u6210\u529F\!
entry=\u8BCD\u6761\u9879
add_entry=\u6DFB\u52A0\u8BCD\u6761
click_add_entry=\u70B9\u51FB\u6DFB\u52A0\u8BCD\u6761
@@ -482,21 +482,21 @@ menu=\u83DC\u5355
parent_menu=\u4E0A\u7EA7\u83DC\u5355
aim=\u76EE\u6807
click_menu_turn=\u70B9\u51FB\u83DC\u5355\u8DF3\u8F6C\u7684\u9875\u9762
link_window_info=\u94FE\u63A5\u5730\u5740\u6253\u5F00\u7684\u76EE\u6807\u7A97\u53E3,\u9ED8\u8BA4:mainFrame
link_window_info=\u94FE\u63A5\u5730\u5740\u6253\u5F00\u7684\u76EE\u6807\u7A97\u53E3,\u9ED8\u8BA4\:mainFrame
is_top_menu=\u662F\u5426\u9876\u90E8\u5BFC\u822A\u83DC\u5355
icon=\u56FE\u6807
is_top_menu_info=\u8BE5\u83DC\u5355\u6216\u64CD\u4F5C\u662F\u5426\u9876\u90E8\u5BFC\u822A\u83DC\u5355
sort_info=\u6392\u5217\u987A\u5E8F,\u5347\u5E8F.
is_show_sysmenu=\u8BE5\u83DC\u5355\u6216\u64CD\u4F5C\u662F\u5426\u663E\u793A\u5230\u7CFB\u7EDF\u83DC\u5355\u4E2D
control_permission_info=\u63A7\u5236\u5668\u4E2D\u5B9A\u4E49\u7684\u6743\u9650\u6807\u8BC6,\u5982:@RequiresPermissions("\u6743\u9650\u6807\u8BC6")
control_permission_info=\u63A7\u5236\u5668\u4E2D\u5B9A\u4E49\u7684\u6743\u9650\u6807\u8BC6,\u5982\:@RequiresPermissions("\u6743\u9650\u6807\u8BC6")
role_name=\u89D2\u8272Name
data_range=\u6570\u636E\u8303\u56F4
allot=\u5206\u914D
role_type=\u89D2\u8272Type
role_permission=\u89D2\u8272\u6743\u9650
task_allot=\u4EFB\u52A1\u5206\u914D
role_type_title=activiti\u67093\u79CD\u9884\u5B9A\u4E49\u7684\u7EC4Type:security-role\u3001assignment\u3001user \u5982\u679C\u4F7F\u7528Activiti Explorer,\u9700\u8981security-role\u624D\u80FD\u770B\u5230manage\u9875\u7B7E,\u9700\u8981assignment\u624D\u80FDclaim\u4EFB\u52A1
role_type_info=\u5DE5\u4F5C\u6D41\u7EC4\u7528\u6237\u7EC4Type\uFF08\u4EFB\u52A1\u5206\u914D:assignment\u3001 Management\u89D2\u8272:security-role\u3001\u666E\u901A\u89D2\u8272:user\uFF09
role_type_title=activiti\u67093\u79CD\u9884\u5B9A\u4E49\u7684\u7EC4Type\:security-role\u3001assignment\u3001user \u5982\u679C\u4F7F\u7528Activiti Explorer,\u9700\u8981security-role\u624D\u80FD\u770B\u5230manage\u9875\u7B7E,\u9700\u8981assignment\u624D\u80FDclaim\u4EFB\u52A1
role_type_info=\u5DE5\u4F5C\u6D41\u7EC4\u7528\u6237\u7EC4Type\uFF08\u4EFB\u52A1\u5206\u914D\:assignment\u3001 Management\u89D2\u8272\:security-role\u3001\u666E\u901A\u89D2\u8272\:user\uFF09
data_range_info=\u7279\u6B8A\u60C5\u51B5\u4E0B,\u8BBE\u7F6E\u4E3A\u201C\u6309\u660E\u7EC6\u8BBE\u7F6E\u201D,\u53EF\u8FDB\u884C\u8DE8\u673A\u6784\u6388\u6743
permission_list=\u6743\u9650\u5217\u8868
area_name=\u533ADomain\u79F0
@@ -518,11 +518,11 @@ new_password=New Password
sure_new_password=Confirm New Password
be_selected_staff=\u5F85\u9009\u4EBA\u5458
selected_staff=\u5DF2\u9009\u4EBA\u5458
old_remove_error=\u89D2\u8272\u539F\u6709\u6210\u5458\u4E0D\u80FD\u6E05\u9664!
selected_clear_success=\u5DF2\u9009\u4EBA\u5458\u6E05\u9664\u6210\u529F!
cancel_clear=\u53D6\u6D88\u6E05\u9664\u64CD\u4F5C!
old_remove_error=\u89D2\u8272\u539F\u6709\u6210\u5458\u4E0D\u80FD\u6E05\u9664\!
selected_clear_success=\u5DF2\u9009\u4EBA\u5458\u6E05\u9664\u6210\u529F\!
cancel_clear=\u53D6\u6D88\u6E05\u9664\u64CD\u4F5C\!
sure_clear=\u6E05\u9664\u786E\u8BA4
role_no_new=\u89D2\u8272\u672A\u5206\u914D\u65B0\u6210\u5458!
role_no_new=\u89D2\u8272\u672A\u5206\u914D\u65B0\u6210\u5458\!
role_unique=\u89D2\u8272Name\u5DF2\u5B58\u5728
role_error_info=\u8F93\u5165\u6709\u8BEF,\u8BF7\u5148\u66F4\u6B63.
user=User
@@ -570,7 +570,7 @@ src_file=Source File
select_file=Please Select Upload File
sample_file=Sample File
sample_sign=Sample Sign
click_detail=\u8BF7\u70B9\u51FB\u201C\u67E5\u770B\u8BE6\u7EC6\u4FE1\u606F\u201D\u6309\u94AE,\u5C06\u8BE6\u7EC6\u9519\u8BEF\u4FE1\u606F\u53D1\u9001\u7ED9\u7CFB\u7EDF Management\u5458,\u8C22\u8C22!
click_detail=\u8BF7\u70B9\u51FB\u201C\u67E5\u770B\u8BE6\u7EC6\u4FE1\u606F\u201D\u6309\u94AE,\u5C06\u8BE6\u7EC6\u9519\u8BEF\u4FE1\u606F\u53D1\u9001\u7ED9\u7CFB\u7EDF Management\u5458,\u8C22\u8C22\!
return_lastpage=\u8FD4\u56DE\u4E0A\u4E00\u9875
show_detail=\u67E5\u770B\u8BE6\u7EC6\u4FE1\u606F
hidden_detail=\u9690\u85CF\u4FE1\u606F\u4FE1\u606F
@@ -950,4 +950,7 @@ lwhh_report=Request info report
src_ip_report=Domestic source IP report
dest_ip_report=Destination country IP report
isp_report=ISP report
#=============about report===================
#=============about report===================
ip_multiplex_policy=IP Reuse Policy Configuration
target_ip_protect=Target IP Protect Configuration
ip_multiplex_pool_config=IP Reuse Addr Pool Configuration

View File

@@ -299,7 +299,7 @@ service_domain_ratelimit=1058
#用户自定义域
userregion_rate_limit=RATE_LIMIT
userregion_ir_strategy=IR_STRATEGY
userregion_ir_type=ir_type
userregion_ir_type=IR_TYPE
userregion_domian_id=DOMIAN_ID
userregion_domian_str=DOMIAN_STR
userregion_replace_type_key=zone

View File

@@ -50,7 +50,7 @@ $(function(){
$(this).remove();
});
$("input[name$='exprType']").attr("disabled",false);
$("#appCode").val($("#specServiceIdId").val());
/* $("#appCode").val($("#specServiceIdId").val()); */
loading('onloading...');
form.submit();
}
@@ -96,7 +96,7 @@ var delContent = function(contentClassName, addBtnClassName) {
<input type="hidden" name="compileId" value="${_cfg.compileId}">
<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="appCode" name="appCode" value="${_cfg.appCode}"> --%>
<input type="hidden" id="behavCode" name="behavCode" value="${_cfg.behavCode}">
<input type="hidden" id="exprType" name="exprType" value="0">
<input type="hidden" id="matchMethod" name="matchMethod" value="3">

View File

@@ -65,7 +65,7 @@ $(function(){
<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="config_describe"/></label>
<label class="control-label col-md-3"><spring:message code="config_describe"/></label>
<div class="col-md-6">
<input class="form-control" type="text" name="cfgDesc" value="${_cfg.cfgDesc}">
</div>