This repository has been archived on 2025-09-14. You can view files and clone it, but cannot push or open issues or pull requests.
Files
k18-ntcs-web-ntc/src/main/java/com/nis/web/controller/configuration/StringCfgController.java

331 lines
12 KiB
Java
Raw Normal View History

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.BaseStringCfg;
import com.nis.util.Constants;
import com.nis.web.controller.BaseController;
/**
* 字符串相关配置控制类
* @author dell
*
*/
@Controller
@RequestMapping("${adminPath}/cfg/string")
public class StringCfgController extends BaseController{
/**
*
* stringCfgList(列表界面)
* (这里描述这个方法适用条件 可选)
* @param model
* @param audit
* @param cfgName
* @param stringCfg
* @param request
* @param response
* @return
*String
* @exception
* @since 1.0.0
*/
@RequestMapping(value = {"list"})
@RequiresPermissions(value={"cfg:string:view"})
public String stringCfgList(Model model,Integer audit,String cfgName,@ModelAttribute("cfg")BaseStringCfg stringCfg,HttpServletRequest request,HttpServletResponse response) {
model.addAttribute("cfgName", cfgName);
model.addAttribute("audit", audit);
if(stringCfg!=null){
Integer serviceId=stringCfg.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);
stringCfg.setTableName(tableName);
Page<BaseStringCfg> searchPage=new Page<BaseStringCfg>(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<BaseStringCfg> page = stringCfgService.findPage(searchPage, stringCfg);
model.addAttribute("page", page);
model.addAttribute("action", stringCfg.getAction());
model.addAttribute("tableName", tableName);
initPageCondition(model);
}
}else{
logger.error("未获取到正确的serviceId");
}
}
}
return "/cfg/stringCfgList";
}
@RequestMapping(value = {"form"})
@RequiresPermissions(value={"cfg:string:add"})
public String stringCfgForm(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);
if(serviceId!=null){
ServiceConfigInfo serviceConfigInfo=serviceConfigInfoService.findSysServiceConfigInfo(serviceId);
if(serviceConfigInfo!=null){
String tableName=serviceConfigInfo.getTableName();
if(!StringUtils.isBlank(tableName)){
logger.info("table name is "+tableName);
String className=stringCfgService.getClassName(tableName);
logger.info("class name is "+className);
String packageName=BaseStringCfg.class.getPackage().getName();
try {
//通过反射获得BaseStringCfg的子类的实例并调用子类的initDefaultValue初始化默认值
Class clazz=Class.forName(packageName+"."+className);
BaseStringCfg stringcfg=(BaseStringCfg)clazz.newInstance();
stringcfg.setTableName(tableName);
stringcfg.initDefaultValue();
stringcfg.setAction(action);
//监测缺省不需要区域管控
if(action==Constants.ACTION_DJ){
stringcfg.setIsAreaEffective(0);
}
stringcfg.setServiceId(serviceId);
model.addAttribute("_cfg", stringcfg);
model.addAttribute("tableName", tableName);
initFormCondition(model);
} catch (ClassNotFoundException | InstantiationException | IllegalAccessException e) {
// TODO Auto-generated catch block
logger.error("打开新增IP窗口失败",e);
e.printStackTrace();
}
}
}
}else{
logger.error("未获取到正确的serviceId");
}
return "/cfg/stringCfgForm";
}
@RequestMapping(value = {"updateForm"})
@RequiresPermissions(value={"cfg:string: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);
BaseStringCfg searchBean=new BaseStringCfg();
searchBean.setCompileId(compileId);
searchBean.setTableName(tableName);
BaseStringCfg stringCfg=stringCfgService.get(searchBean);
model.addAttribute("_cfg", stringCfg);
model.addAttribute("tableName", tableName);
initUpdateFormCondition(model,stringCfg);
}catch (Exception e) {
// TODO: handle exception
logger.error("发生异常",e);
}
return "/cfg/stringCfgForm";
}
/**
*
* addStringCfg(新增IP配置)
* (这里描述这个方法适用条件 可选)
* @return
*String
* @exception
* @since 1.0.0
*/
@RequestMapping(value = {"saveOrUpdateCfg"})
@RequiresPermissions(value={"cfg:string:add","cfg:string:edit"},logical=Logical.OR)
public String saveOrUpdateStringCfg(String cfgName,Model model, BaseStringCfg stringCfg,String areaCfgIds) {
model.addAttribute("cfgName",cfgName);
model.addAttribute("cfgType","string");
model.addAttribute("audit", Constants.CFG_PAGE);
model.addAttribute("serviceId",stringCfg.getServiceId());
model.addAttribute("action",stringCfg.getAction());
logger.info("saveOrUpdateStringCfg loaded");
try{
setSaveOrUpdateProps(model,stringCfg,areaCfgIds);
}catch (Exception e) {
// TODO: handle exception
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:string: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","string");
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<BaseStringCfg> beans=stringCfgService.getList(tableName,ids);
List<BaseStringCfg> auditBeans=new ArrayList<>();
List<AreaIpCfg> auditAreaBeans=new ArrayList<>();
Date date=new Date();
for(BaseStringCfg bean:beans){
BaseStringCfg auditBean=new BaseStringCfg();
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);
auditBean.setMaatTable(maatTable);
bean.setIsValid(Constants.VALID_NO);
bean.setMaatTable(maatTable);
}else if(isAudit==Constants.AUDIT_YES){//审核通过设置有效标志为1
auditBean.setIsValid(Constants.VALID_YES);
auditBean.setMaatTable(maatTable);
bean.setIsValid(Constants.VALID_YES);
bean.setMaatTable(maatTable);
}
List<AreaIpCfg> areaCfg=ipCfgService.getAreaCfgByCompileId(bean.getCompileId());
for(AreaIpCfg c:areaCfg){
c.setTableName(AreaIpCfg.getTablename());
}
bean.setAreaCfg(areaCfg);
auditAreaBeans.addAll(areaCfg);
}
auditBeans.add(auditBean);
}
stringCfgService.auditStringCfg(isAudit,auditBeans,auditAreaBeans,beans);
}
addMessage(model,"audit_success");
}catch (Exception e) {
// TODO: handle exception
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:string: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","string");
model.addAttribute("audit", Constants.CFG_PAGE);
try{
if(StringUtils.isBlank(tableName)){
ServiceConfigInfo serviceConfigInfo=serviceConfigInfoService.findSysServiceConfigInfo(serviceId);
if(serviceConfigInfo!=null){
tableName=serviceConfigInfo.getTableName();
}
}
model.addAttribute("tableName", tableName);
List<BaseStringCfg> stringCfgs=new ArrayList<BaseStringCfg>();
List<AreaIpCfg> areaCfgs=new ArrayList<AreaIpCfg>();
Date date =new Date();
if(StringUtils.isNotBlank(ids)){
for(String compileIdStr:ids.split(",")){
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);
BaseStringCfg stringCfg=new BaseStringCfg();
stringCfg.setCompileId(Integer.parseInt(compileIdStr));
stringCfg.setTableName(tableName);
stringCfg.setEditorId(stringCfg.getCurrentUser().getId());
stringCfg.setEditTime(date);
stringCfg.setIsValid(Constants.VALID_DEL);
stringCfgs.add(stringCfg);
}
}
stringCfgService.deleteStringCfg(stringCfgs,areaCfgs);
addMessage(model,"delete_success");
}catch(Exception e){
logger.error("删除失败",e);
addMessage(model,"delete_failed");
}
return "/cfg/resultPage";
}
}