package com.nis.web.controller.configuration; 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.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.basics.ServiceDictInfo; import com.nis.domain.configuration.BaseStringCfg; import com.nis.domain.configuration.ComplexkeywordCfg; import com.nis.domain.configuration.RequestInfo; import com.nis.main.ConvertTool; import com.nis.util.Constants; import com.nis.web.controller.BaseController; /** * 字符串相关配置控制类 * @author dell * */ @Controller @RequestMapping("${adminPath}/cfg/string") public class StringCfgController extends BaseController{ @RequestMapping(value = {"list"}) 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 page = stringCfgService.findPage(new Page(request,response,"r"), stringCfg); model.addAttribute("page", page); model.addAttribute("action", stringCfg.getAction()); model.addAttribute("tableName", tableName); List requestInfos=requestInfoService.getAllRequestInfo(); model.addAttribute("requestInfos", requestInfos); List fls=serviceDictInfoService.findAllFlDict(); model.addAttribute("fls", fls); List xzs=serviceDictInfoService.findAllXzDict(); model.addAttribute("xzs", xzs); List lables=serviceDictInfoService.findAllLableDict(); model.addAttribute("lables", lables); } }else{ logger.error("未获取到正确的serviceId"); } } } return "/cfg/stringCfgList"; } @RequestMapping(value = {"form"}) public String stringCfgForm(int action,String cfgName,Integer serviceId,Model model,HttpServletRequest request,HttpServletResponse response) { 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); stringcfg.setServiceId(serviceId); model.addAttribute("_cfg", stringcfg); model.addAttribute("tableName", tableName); List requestInfos=requestInfoService.getValidRequestInfo(); model.addAttribute("requestInfos", requestInfos); List fls=serviceDictInfoService.findFlDict(); model.addAttribute("fls", fls); List xzs=serviceDictInfoService.findXzDict(); model.addAttribute("xzs", xzs); List lables=serviceDictInfoService.findLableDict(); model.addAttribute("lables", lables); } 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"}) public String updateStringCfgForm(String tableName,int action,long cfgId,String cfgName,Integer serviceId,Model model,HttpServletRequest request,HttpServletResponse response) { 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.setCfgId(cfgId); searchBean.setTableName(tableName); BaseStringCfg stringCfg=stringCfgService.getStringCfgById(searchBean); model.addAttribute("_cfg", stringCfg); List requestInfos=requestInfoService.getAllRequestInfo(); model.addAttribute("requestInfos", requestInfos); List fls=serviceDictInfoService.findAllFlDict(); model.addAttribute("fls", fls); List xzs=serviceDictInfoService.findAllXzDict(); model.addAttribute("xzs", xzs); List lables=serviceDictInfoService.findAllLableDict(); model.addAttribute("lables", lables); }catch (Exception e) { // TODO: handle exception logger.error("发生异常",e); } return "/cfg/stringCfgForm"; } /** * * addStringCfg(新增IP配置) * (这里描述这个方法适用条件 – 可选) * @return *String * @exception * @since 1.0.0 */ @RequestMapping(value = {"saveOrUpdateCfg"}) public String saveOrUpdateStringCfg(String cfgName,Model model, BaseStringCfg stringCfg) { 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{ String tableName=stringCfg.getTableName(); int serviceId=stringCfg.getServiceId(); if(StringUtils.isBlank(stringCfg.getTableName())){ ServiceConfigInfo serviceConfigInfo=serviceConfigInfoService.findSysServiceConfigInfo(serviceId); if(serviceConfigInfo!=null){ tableName=serviceConfigInfo.getTableName(); stringCfg.setTableName(tableName); } } int compileId=new ConvertTool().getCompileId(); stringCfg.setIsValid(Constants.VALID_NO); stringCfg.setIsAudit(Constants.AUDIT_NOT_YET); stringCfg.setCompileId(compileId); if(stringCfg.getCfgId()==null){ stringCfg.setCreatorId(stringCfg.getCurrentUser().getId()); stringCfg.setCreateTime(new Date()); stringCfgService.addStringCfg(stringCfg); }else{ stringCfg.setEditorId(stringCfg.getCurrentUser().getId()); stringCfg.setEditTime(new Date()); stringCfgService.updateStringCfg(stringCfg); } addMessage(model,"保存成功,正在为您跳转页面..."); }catch (Exception e) { // TODO: handle exception logger.error("保存失败!",e); addMessage(model,"保存失败!"); } return "/cfg/resultPage"; } /** * * auditStringCfg(审核IP配置) * (这里描述这个方法适用条件 – 可选) * @return *String * @exception * @since 1.0.0 */ @RequestMapping(value = {"auditCfg"}) public String auditStringCfg(String cfgName,BaseStringCfg stringCfg,Model model) { model.addAttribute("cfgName", cfgName); model.addAttribute("audit", Constants.AUDIT_PAGE); model.addAttribute("serviceId", stringCfg.getServiceId()); model.addAttribute("action", stringCfg.getAction()); try{ String tableName=stringCfg.getTableName(); int serviceId=stringCfg.getServiceId(); String maatTable=null; ServiceConfigInfo serviceConfigInfo=serviceConfigInfoService.findSysServiceConfigInfo(serviceId); if(serviceConfigInfo!=null){ if(StringUtils.isBlank(tableName)){ tableName=serviceConfigInfo.getTableName(); stringCfg.setTableName(tableName); } maatTable=serviceConfigInfo.getMaatTable(); } BaseStringCfg bean=stringCfgService.getStringCfgById(stringCfg); bean.setTableName(tableName); int audit=bean.getIsAudit().intValue(); if(audit==Constants.AUDIT_YES&&stringCfg.getIsAudit()!=Constants.AUDIT_NOT_YES){ logger.error("审核通过的配置只能取消审核通过!"); }else{ stringCfg.setAuditorId(stringCfg.getCurrentUser().getId()); stringCfg.setAuditTime(new Date()); bean.setIsAudit(stringCfg.getIsAudit()); if(stringCfg.getIsAudit()==Constants.AUDIT_NOT_YES){//取消审核通过,设置有效标志为0 stringCfg.setIsValid(Constants.VALID_NO); bean.setIsValid(Constants.VALID_NO); bean.setMaatTable(maatTable); }else if(stringCfg.getIsAudit()==Constants.AUDIT_YES){//审核通过,设置有效标志为1 stringCfg.setIsValid(Constants.VALID_YES); bean.setIsValid(Constants.VALID_YES); } int result=stringCfgService.auditStringCfg(bean,stringCfg); if(result!=0){ addMessage(model,"审核成功!"); }else{ addMessage(model,"审核失败!"); } } }catch (Exception e) { // TODO: handle exception logger.error("审核失败", e); addMessage(model,"审核失败!"); } return "redirect:" + adminPath + "/cfg/string/list"; } /** * * auditStringCfg(删除IP配置,逻辑删除) * (这里描述这个方法适用条件 – 可选) * @return *String * @exception * @since 1.0.0 */ @RequestMapping(value = {"deleteCfg"}) public String deleteStringCfg(String tableName,int action,long cfgId,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(); } } int audit=stringCfgService.getIsAudit(tableName,cfgId); //未审核时可删除 if(audit!=Constants.AUDIT_YES){ BaseStringCfg stringCfg=new BaseStringCfg(); stringCfg.setCfgId(cfgId); stringCfg.setTableName(tableName); stringCfg.setEditorId(stringCfg.getCurrentUser().getId()); stringCfg.setEditTime(new Date()); stringCfg.setIsValid(Constants.VALID_DEL); int result=stringCfgService.deleteStringCfg(stringCfg); addMessage(model,"删除成功,正在为您跳转页面..."); }else{ logger.error("通过审核的配置不能删除!"); } }catch(Exception e){ logger.error("删除失败",e); addMessage(model,"删除失败!"); } return "/cfg/resultPage"; } }