(2)BaseCfg字段调整,加入functionId字段,去掉maatTable字段 (3)删除SystemService相关代码 (4)字符串,增强字符串配置加入字段cfgType (5)邮件,ssl,Ftp pojo调整,删除多余的,新增keywordCfg (6)spring-mvc.xml注释redisDao
336 lines
12 KiB
Java
336 lines
12 KiB
Java
package com.nis.web.controller.configuration;
|
||
import java.util.ArrayList;
|
||
import java.util.Date;
|
||
import java.util.List;
|
||
|
||
import javax.servlet.http.HttpServletRequest;
|
||
import javax.servlet.http.HttpServletResponse;
|
||
|
||
import org.apache.commons.lang3.StringUtils;
|
||
import org.apache.shiro.authz.annotation.Logical;
|
||
import org.apache.shiro.authz.annotation.RequiresPermissions;
|
||
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 com.nis.domain.Page;
|
||
import com.nis.domain.ServiceConfigInfo;
|
||
import com.nis.domain.configuration.AreaIpCfg;
|
||
import com.nis.domain.configuration.BaseIpCfg;
|
||
import com.nis.domain.configuration.ComplexkeywordCfg;
|
||
import com.nis.main.ConvertTool;
|
||
import com.nis.util.Constants;
|
||
import com.nis.web.controller.BaseController;
|
||
|
||
/**
|
||
* 增强字符串相关配置控制类
|
||
* @author dell
|
||
*
|
||
*/
|
||
@Controller
|
||
@RequestMapping("${adminPath}/cfg/complex")
|
||
public class ComplexStringCfgController extends BaseController{
|
||
|
||
@RequestMapping(value = {"list"})
|
||
@RequiresPermissions(value={"cfg:complex:view"})
|
||
public String cfgList(Model model,Integer audit,String cfgName,@ModelAttribute("cfg")ComplexkeywordCfg cfg,HttpServletRequest request,HttpServletResponse response) {
|
||
model.addAttribute("cfgName", cfgName);
|
||
model.addAttribute("audit", audit);
|
||
if(cfg!=null){
|
||
Integer serviceId=cfg.getServiceId();
|
||
logger.info("servcice id is "+serviceId);
|
||
if(serviceId!=null){
|
||
model.addAttribute("serviceId", serviceId);
|
||
ServiceConfigInfo serviceConfigInfo=serviceConfigInfoService.findSysServiceConfigInfo(serviceId);
|
||
if(serviceConfigInfo!=null){
|
||
String tableName=serviceConfigInfo.getTableName();
|
||
if(!StringUtils.isBlank(tableName)){
|
||
logger.info("table name is "+tableName);
|
||
cfg.setTableName(tableName);
|
||
Page<ComplexkeywordCfg> searchPage=new Page<ComplexkeywordCfg>(request,response,"r");
|
||
String addWhrere=null;
|
||
if(audit==Constants.CFG_PAGE){//
|
||
addWhrere="r.is_audit in ("+Constants.AUDIT_NOT_YET+","+Constants.AUDIT_NO+")";
|
||
}else if(audit==Constants.AUDIT_PAGE){
|
||
addWhrere="r.is_audit in ("+Constants.AUDIT_NOT_YET+","+Constants.AUDIT_YES+")";
|
||
}
|
||
if(addWhrere!=null){
|
||
if(StringUtils.isNotBlank(searchPage.getWhere())){
|
||
searchPage.setWhere(searchPage.getWhere()+" AND "+addWhrere);
|
||
}else{
|
||
searchPage.setWhere(addWhrere);
|
||
}
|
||
}
|
||
Page<ComplexkeywordCfg> page = complexStringCfgService.findPage(searchPage, cfg);
|
||
model.addAttribute("page", page);
|
||
model.addAttribute("action", cfg.getAction());
|
||
model.addAttribute("tableName", tableName);
|
||
initPageCondition(model);
|
||
}
|
||
}else{
|
||
logger.error("未获取到正确的serviceId");
|
||
}
|
||
}
|
||
}
|
||
|
||
return "/cfg/complexCfgList";
|
||
}
|
||
|
||
|
||
@RequestMapping(value = {"form"})
|
||
@RequiresPermissions(value={"cfg:complex:add"})
|
||
public String cfgForm(int action,String cfgName,Integer serviceId,Model model) {
|
||
model.addAttribute("cfgName", cfgName);
|
||
model.addAttribute("action", action);
|
||
model.addAttribute("serviceId", serviceId);
|
||
model.addAttribute("audit", Constants.CFG_PAGE);
|
||
logger.info("sercice id is "+serviceId);
|
||
ServiceConfigInfo serviceConfigInfo=serviceConfigInfoService.findSysServiceConfigInfo(serviceId);
|
||
if(serviceConfigInfo!=null){
|
||
String tableName=serviceConfigInfo.getTableName();
|
||
if(!StringUtils.isBlank(tableName)){
|
||
logger.info("table name is "+tableName);
|
||
String className=complexStringCfgService.getClassName(tableName);
|
||
logger.info("class name is "+className);
|
||
String packageName=ComplexkeywordCfg.class.getPackage().getName();
|
||
try {
|
||
//通过反射获得ComplexkeywordCfg的子类的实例,并调用子类的initDefaultValue初始化默认值
|
||
Class clazz=Class.forName(packageName+"."+className);
|
||
ComplexkeywordCfg cfg=(ComplexkeywordCfg)clazz.newInstance();
|
||
cfg.setTableName(tableName);
|
||
cfg.initDefaultValue();
|
||
cfg.setAction(action);
|
||
//监测缺省不需要区域管控
|
||
if(action==Constants.ACTION_DJ){
|
||
cfg.setIsAreaEffective(0);
|
||
}
|
||
cfg.setServiceId(serviceId);
|
||
model.addAttribute("_cfg", cfg);
|
||
model.addAttribute("tableName", tableName);
|
||
initFormCondition(model);
|
||
} catch (ClassNotFoundException | InstantiationException | IllegalAccessException e) {
|
||
// TODO Auto-generated catch block
|
||
logger.error("打开新增IP窗口失败",e);
|
||
e.printStackTrace();
|
||
}
|
||
}
|
||
}
|
||
return "/cfg/complexCfgForm";
|
||
}
|
||
@RequestMapping(value = {"updateForm"})
|
||
@RequiresPermissions(value={"cfg:complex:edit"})
|
||
public String updateStringCfgForm(String tableName,int action,int compileId,String cfgName,Integer serviceId,Model model) {
|
||
model.addAttribute("cfgName", cfgName);
|
||
model.addAttribute("serviceId", serviceId);
|
||
model.addAttribute("action", action);
|
||
model.addAttribute("tableName", tableName);
|
||
model.addAttribute("audit", Constants.CFG_PAGE);
|
||
try{
|
||
if(StringUtils.isBlank(tableName)){
|
||
ServiceConfigInfo serviceConfigInfo=serviceConfigInfoService.findSysServiceConfigInfo(serviceId);
|
||
if(serviceConfigInfo!=null){
|
||
tableName=serviceConfigInfo.getTableName();
|
||
}
|
||
}
|
||
logger.info("table name is "+tableName);
|
||
ComplexkeywordCfg searchBean=new ComplexkeywordCfg();
|
||
searchBean.setCompileId(compileId);
|
||
searchBean.setTableName(tableName);
|
||
ComplexkeywordCfg cfg=complexStringCfgService.get(searchBean);
|
||
model.addAttribute("_cfg", cfg);
|
||
model.addAttribute("tableName", tableName);
|
||
initUpdateFormCondition(model,cfg);
|
||
}catch(Exception e){
|
||
logger.error("发生异常", e);
|
||
}
|
||
return "/cfg/complexCfgForm";
|
||
}
|
||
|
||
/**
|
||
*
|
||
* addStringCfg(新增IP配置)
|
||
* (这里描述这个方法适用条件 – 可选)
|
||
* @return
|
||
*String
|
||
* @exception
|
||
* @since 1.0.0
|
||
*/
|
||
@RequestMapping(value = {"saveOrUpdateCfg"})
|
||
@RequiresPermissions(value={"cfg:complex:add","cfg:complex:edit"},logical=Logical.OR)
|
||
public String saveOrUpdateStringCfg(String cfgName,Model model, ComplexkeywordCfg cfg,String areaCfgIds) {
|
||
model.addAttribute("cfgName",cfgName);
|
||
model.addAttribute("cfgType","complex");
|
||
model.addAttribute("audit", Constants.CFG_PAGE);
|
||
model.addAttribute("serviceId",cfg.getServiceId());
|
||
model.addAttribute("action",cfg.getAction());
|
||
logger.info("saveOrUpdateStringCfg loaded");
|
||
try {
|
||
setSaveOrUpdateProps(model,cfg,areaCfgIds);
|
||
} catch (Exception e) {
|
||
// TODO Auto-generated catch block
|
||
logger.error("保存失败!",e);
|
||
addMessage(model,"save_failed");
|
||
}
|
||
return "/cfg/resultPage";
|
||
}
|
||
|
||
/**
|
||
*
|
||
* auditStringCfg(审核IP配置)
|
||
* (这里描述这个方法适用条件 – 可选)
|
||
* @return
|
||
*String
|
||
* @exception
|
||
* @since 1.0.0
|
||
*/
|
||
@RequestMapping(value = {"audit"})
|
||
@RequiresPermissions(value={"cfg:complex:audit"})
|
||
public String auditStringCfg(String cfgName,int serviceId,int isAudit,int action,String tableName,String ids,Model model) {
|
||
model.addAttribute("cfgName", cfgName);
|
||
model.addAttribute("audit", Constants.AUDIT_PAGE);
|
||
model.addAttribute("cfgType", "complex");
|
||
model.addAttribute("serviceId", serviceId);
|
||
model.addAttribute("action", action);
|
||
try{
|
||
String maatTable=null;
|
||
ServiceConfigInfo serviceConfigInfo=serviceConfigInfoService.findSysServiceConfigInfo(serviceId);
|
||
if(serviceConfigInfo!=null){
|
||
if(StringUtils.isBlank(tableName)){
|
||
tableName=serviceConfigInfo.getTableName();
|
||
}
|
||
maatTable=serviceConfigInfo.getMaatTable();
|
||
}
|
||
if(StringUtils.isNotBlank(ids)){
|
||
List<ComplexkeywordCfg> beans=complexStringCfgService.getList(tableName,ids);
|
||
List<ComplexkeywordCfg> auditBeans=new ArrayList<>();
|
||
List<BaseIpCfg> auditAreaBeans=new ArrayList<>();
|
||
Date date=new Date();
|
||
for(ComplexkeywordCfg bean:beans){
|
||
ComplexkeywordCfg auditBean=new ComplexkeywordCfg();
|
||
auditBean.setTableName(tableName);
|
||
auditBean.setCfgId(bean.getCfgId());
|
||
bean.setTableName(tableName);
|
||
int audit=bean.getIsAudit().intValue();
|
||
if(audit==Constants.AUDIT_YES&&isAudit!=Constants.AUDIT_NOT_YES){
|
||
logger.error("审核通过的配置只能取消审核通过!");
|
||
addMessage(model, "audit_failed");
|
||
return "/cfg/resultPage";
|
||
}else{
|
||
auditBean.setAuditorId(bean.getCurrentUser().getId());
|
||
auditBean.setAuditTime(date);
|
||
auditBean.setIsAudit(isAudit);
|
||
bean.setAuditorId(bean.getCurrentUser().getId());
|
||
bean.setAuditTime(date);
|
||
bean.setIsAudit(isAudit);
|
||
if(isAudit==Constants.AUDIT_NOT_YES){//取消审核通过,设置有效标志为0
|
||
auditBean.setIsValid(Constants.VALID_NO);
|
||
bean.setIsValid(Constants.VALID_NO);
|
||
}else if(isAudit==Constants.AUDIT_YES){//审核通过,设置有效标志为1
|
||
auditBean.setIsValid(Constants.VALID_YES);
|
||
bean.setIsValid(Constants.VALID_YES);
|
||
}
|
||
List<AreaIpCfg> areaCfg=ipCfgService.getAreaCfgByCompileId(bean.getCompileId());
|
||
for(AreaIpCfg c:areaCfg){
|
||
c.setTableName(AreaIpCfg.getTablename());
|
||
c.setAuditorId(c.getCurrentUser().getId());
|
||
c.setAuditTime(date);
|
||
c.setIsAudit(isAudit);
|
||
if(isAudit==Constants.AUDIT_NOT_YES){//取消审核通过,设置有效标志为0
|
||
c.setIsValid(Constants.VALID_NO);
|
||
}else if(isAudit==Constants.AUDIT_YES){//审核通过,设置有效标志为1
|
||
c.setIsValid(Constants.VALID_YES);
|
||
}
|
||
}
|
||
bean.setAreaCfg(areaCfg);
|
||
auditAreaBeans.addAll(areaCfg);
|
||
}
|
||
auditBeans.add(auditBean);
|
||
}
|
||
complexStringCfgService.auditStringCfg(isAudit,auditBeans,auditAreaBeans,beans);
|
||
}
|
||
addMessage(model,"audit_success");
|
||
}catch(Exception e){
|
||
logger.error("发生异常",e);
|
||
addMessage(model,"audit_failed");
|
||
}
|
||
return "/cfg/resultPage";
|
||
}
|
||
/**
|
||
*
|
||
* auditStringCfg(删除IP配置,逻辑删除)
|
||
* (这里描述这个方法适用条件 – 可选)
|
||
* @return
|
||
*String
|
||
* @exception
|
||
* @since 1.0.0
|
||
*/
|
||
@RequestMapping(value = {"delete"})
|
||
@RequiresPermissions(value={"cfg:complex:delete"})
|
||
public String deleteStringCfg(String tableName,int action,String ids,String cfgName,Integer serviceId,Model model) {
|
||
model.addAttribute("serviceId", serviceId);
|
||
model.addAttribute("cfgName", cfgName);
|
||
model.addAttribute("action", action);
|
||
model.addAttribute("cfgType","complex");
|
||
model.addAttribute("audit", Constants.CFG_PAGE);
|
||
try{
|
||
if(StringUtils.isBlank(tableName)){
|
||
ServiceConfigInfo serviceConfigInfo=serviceConfigInfoService.findSysServiceConfigInfo(serviceId);
|
||
if(serviceConfigInfo!=null){
|
||
tableName=serviceConfigInfo.getTableName();
|
||
}
|
||
}
|
||
List<ComplexkeywordCfg> complexCfgs=new ArrayList<ComplexkeywordCfg>();
|
||
List<BaseIpCfg> areaCfgs=new ArrayList<BaseIpCfg>();
|
||
Date date =new Date();
|
||
if(StringUtils.isNotBlank(ids)){
|
||
for(String compileIdStr:ids.split(",")){
|
||
if(StringUtils.isNotBlank(compileIdStr)){
|
||
List<AreaIpCfg> areaCfg=ipCfgService.getAreaCfgByCompileId(Integer.parseInt(compileIdStr));
|
||
if(areaCfg!=null&&areaCfg.size()>0){
|
||
for(AreaIpCfg c:areaCfg){
|
||
c.setTableName(AreaIpCfg.getTablename());
|
||
c.setEditorId(c.getCurrentUser().getId());
|
||
c.setEditTime(date);
|
||
}
|
||
}
|
||
areaCfgs.addAll(areaCfg);
|
||
ComplexkeywordCfg complexCfg=new ComplexkeywordCfg();
|
||
complexCfg.setCompileId(Integer.parseInt(compileIdStr));
|
||
complexCfg.setTableName(tableName);
|
||
complexCfg.setEditorId(complexCfg.getCurrentUser().getId());
|
||
complexCfg.setEditTime(date);
|
||
complexCfg.setIsValid(Constants.VALID_DEL);
|
||
complexCfgs.add(complexCfg);
|
||
}
|
||
}
|
||
}
|
||
complexStringCfgService.deleteStringCfg(complexCfgs,areaCfgs);
|
||
addMessage(model,"delete_success");
|
||
}catch(Exception e){
|
||
logger.error("删除失败", e);
|
||
addMessage(model,"delete_failed");
|
||
}
|
||
return "/cfg/resultPage";
|
||
}
|
||
/**
|
||
*
|
||
* getCompileId(获取编译ID)
|
||
* (这里描述这个方法适用条件 – 可选)
|
||
* @return
|
||
*long
|
||
* @exception
|
||
* @since 1.0.0
|
||
*/
|
||
protected long getCompileId(ComplexkeywordCfg cfg){
|
||
long compileId=0l;
|
||
try {
|
||
compileId = cfg.getCompileId()==null?new ConvertTool().getCompileId():cfg.getCompileId();
|
||
} catch (Exception e) {
|
||
// TODO Auto-generated catch block
|
||
e.printStackTrace();
|
||
}
|
||
return compileId;
|
||
}
|
||
}
|