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
wangxin 7118b82d6d (1)增强字符串多选修改
(2)增强字符串权限增加
2018-04-11 18:47:02 +08:00

331 lines
12 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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";
}
}