package com.nis.web.controller.basics; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.commons.lang.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 org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.servlet.mvc.support.RedirectAttributes; import com.nis.domain.Page; import com.nis.domain.basics.PolicyGroupInfo; import com.nis.util.Constants; import com.nis.util.StringUtil; import com.nis.web.controller.BaseController; /** * 协议分组 * @author dell * */ @Controller @RequestMapping(value = "${adminPath}/basics/policyGroup") public class PolicyGroupController extends BaseController { //@RequiresPermissions(value={"basics:policyGroup:view"},logical=Logical.OR) @RequestMapping(value = {"/policyGroupList", ""}) public String policyGroupList(PolicyGroupInfo cfg,HttpServletRequest request , HttpServletResponse response, Model model ,RedirectAttributes redirectAttributes) { if(cfg == null)cfg=new PolicyGroupInfo(); Page pageCondition = new Page(request, response,"r"); Page page = policyGroupInfoService.findPolicyGroupInfoList(pageCondition,cfg); model.addAttribute("cfg", cfg); model.addAttribute("page", page); return "/basics/policyGroupList"; } /** * 进入添加或修改页面 * @param serviceDictInfo * @param model * @return */ //@RequiresPermissions(value={"basics:classification:add","basics:attribute:add","basics:label:add","basics:classification:edit","basics:attribute:edit","basics:label:edit","basics:classification:view","basics:attribute:view","basics:label:view"},logical=Logical.OR) @RequestMapping(value={"/policyGroupForm"}) public String form(Integer groupType,String ids,Model model,String doAction,RedirectAttributes redirectAttributes) { PolicyGroupInfo policyGroup=new PolicyGroupInfo(); if(!StringUtil.isEmpty(ids)){ policyGroup=policyGroupInfoService.getById(Integer.parseInt(ids)); } policyGroup.setGroupType(groupType); model.addAttribute("_cfg", policyGroup); return "/basics/policyGroupForm"; } /** * 新增或修改 * @return */ //@RequiresPermissions(value={"basics:classification:add","basics:attribute:add","basics:label:add","basics:classification:edit","basics:attribute:edit","basics:label:edit"},logical=Logical.OR) @RequestMapping(value = "saveOrUpdate") public String saveOrUpdate(PolicyGroupInfo cfg,Model model, RedirectAttributes redirectAttributes,String itType,Integer groupType) { try { policyGroupInfoService.saveOrUpdate(cfg); addMessage(redirectAttributes,"success","save_success"); } catch (Exception e) { logger.error("新增失败",e); addMessage(redirectAttributes,"error","save_failed"); } return "redirect:" + adminPath + "/basics/policyGroup/policyGroupList?groupType="+groupType; } /** * 删除 * @return */ //@RequiresPermissions(value={"basics:classification:del","basics:attribute:del","basics:label:del"},logical=Logical.OR) @RequestMapping(value={"delete"}) public String delete(RedirectAttributes redirectAttributes, Integer groupType,String ids,int isValid) { try { policyGroupInfoService.deldete(ids,isValid); addMessage(redirectAttributes,"success","delete_success"); } catch (Exception e) { logger.error("删除失败",e); addMessage(redirectAttributes,"error","delete_failed"); } return "redirect:" + adminPath + "/basics/policyGroup/policyGroupList?groupType="+groupType; } @RequestMapping(value="ajaxServiceIdState",method=RequestMethod.POST) @ResponseBody public boolean ajaxServiceIdState(Model model,@RequestParam(required=true,value="serviceGroupIds")String serviceGroupIds){ if(StringUtils.isNotBlank(serviceGroupIds)) { return policyGroupInfoService.checkIsIssued(serviceGroupIds); } return false; } @RequestMapping(value="ajaxHasAsnIPs",method=RequestMethod.POST) @ResponseBody public boolean ajaxHasAsnIPs(Model model,@RequestParam(required=true,value="serviceGroupIds")String serviceGroupIds){ if(StringUtils.isNotBlank(serviceGroupIds)) { return policyGroupInfoService.checkIps(serviceGroupIds); } return false; } /** * 校验asn号是否已存在 */ @ResponseBody @RequestMapping(value = {"/checkAsnNo"}) public boolean checkIp(PolicyGroupInfo cfg, HttpServletRequest request, HttpServletResponse response){ if(cfg.getGroupId() != null){ PolicyGroupInfo policyGroup = policyGroupInfoService.getInfoByAsnNo(cfg); if(policyGroup != null &&policyGroup.getIsValid()!=0&& policyGroup.getAsnNo().equals(cfg.getAsnNo()) ){ return true; } } cfg.setGroupId(null); PolicyGroupInfo policyGroup = policyGroupInfoService.getInfoByAsnNo(cfg); if(policyGroup != null){ return false; } return true; } //Group配置导出 @RequestMapping(value = "exportGroup") public void exportGroup(Model model,HttpServletRequest request,HttpServletResponse response, @ModelAttribute("cfg")PolicyGroupInfo entity,String ids,RedirectAttributes redirectAttributes){ try { //export data info entity.setMenuNameCode("policy_group_manage"); List titleList=new ArrayList(); Map> classMap=new HashMap>(); Map dataMap=new HashMap(); Map noExportMap=new HashMap(); List list = new ArrayList(); if (!StringUtil.isEmpty(ids)) { list = policyGroupInfoService.findPolicyByGroupInfoList(ids); } else { Page pageInfo=new Page(request, response,"r"); pageInfo.setPageNo(1); pageInfo.setPageSize(Constants.MAX_EXPORT_SIZE); Page page = policyGroupInfoService.findPolicyGroupInfoList(pageInfo,entity); list=page.getList(); } titleList.add(entity.getMenuNameCode()); classMap.put(entity.getMenuNameCode(), PolicyGroupInfo.class); String cfgIndexInfoNoExport=",config_describe,cfg_id,block_type,do_log,action,valid_identifier,is_audit" + ",auditor,audit_time,letter,whether_area_block,classification,attribute,label" +",userregion1,userregion2,userregion3,userregion4,userregion5,ir_type,"; // 时间过滤 if (entity.getSearch_create_time_start() == null ) { cfgIndexInfoNoExport = ",config_time" + cfgIndexInfoNoExport; } if (entity.getSearch_edit_time_start() == null) { cfgIndexInfoNoExport = ",edit_time" + cfgIndexInfoNoExport; } if (!StringUtil.isEmpty(entity.gethColumns())) { cfgIndexInfoNoExport = "," + entity.gethColumns() + "," + cfgIndexInfoNoExport; } noExportMap.put(entity.getMenuNameCode(),cfgIndexInfoNoExport); dataMap.put(entity.getMenuNameCode(), list); String timeRange = initTimeMap(entity); noExportMap.put("timeRange", timeRange); if ("csv".equals(entity.getExType())) { this._exportCsv(model, request, response, redirectAttributes, entity.getMenuNameCode(), titleList, classMap, dataMap, noExportMap); } else { this._export(model, request, response, redirectAttributes, entity.getMenuNameCode(), titleList, classMap, dataMap, noExportMap); } } catch (Exception e) { logger.error("Group export failed",e); addMessage(redirectAttributes,"error","export_failed"); } //return "redirect:" + adminPath +"/ntc/iplist/list?functionId="+entity.getFunctionId(); } }