package com.nis.web.controller.configuration; import java.util.List; import java.util.Map; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; 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 org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.servlet.mvc.support.RedirectAttributes; import com.google.common.collect.Lists; import com.google.common.collect.Maps; import com.nis.domain.Page; import com.nis.domain.configuration.ServiceDictInfo; import com.nis.util.StringUtil; import com.nis.util.StringUtils; import com.nis.web.controller.BaseController; @Controller @RequestMapping(value = "${adminPath}/configuration/serviceDictInfo") public class ServiceDictInfoController extends BaseController { @ModelAttribute public ServiceDictInfo get(@RequestParam(required=false) Integer serviceDictId) { if (!StringUtil.isEmpty(serviceDictId)){ return serviceDictInfoService.getDictById(serviceDictId); }else{ return new ServiceDictInfo(); } } /** * 根据serviceDictId查出配置对象 * @param serviceDictId * @param request * @param response * @param model * @return */ @ResponseBody @RequestMapping(value = "loadDataDict") public ServiceDictInfo loadDataDict(@RequestParam(required=false) Integer serviceDictId,HttpServletRequest request, HttpServletResponse response, Model model){ return serviceDictInfoService.getDictById(serviceDictId); } /** * 查询业务辅助表-业务字典信息列表(无条件分页查询) * @param serviceDictInfo * @param request * @param response * @param model * @return */ @RequiresPermissions("sys:dict:view") @RequestMapping(value = {"list", ""}) public String list(ServiceDictInfo serviceDictInfo,HttpServletRequest request, HttpServletResponse response, Model model) { //查出顶层分页数据 Page page = serviceDictInfoService.findTopDictList(new Page(request, response), serviceDictInfo); model.addAttribute("page", page); //查出所有数据 List allList = serviceDictInfoService.findAllDictList(); //处理数据,保留顶层中的所有下层数据 List list = Lists.newArrayList(); boolean flag = false; for(int i=allList.size()-1;i>=0;i--){ ServiceDictInfo temp = allList.get(i); if(temp.getParent()!=null&&temp.getParent().getServiceDictId()!=null&&temp.getParent().getServiceDictId()==0){ for(ServiceDictInfo topTemp:page.getList()){ if(temp.getServiceDictId()==topTemp.getServiceDictId()){ flag = true; break; } } if(!flag){ allList.remove(temp); flag=false; }else{ flag=false; } } } ServiceDictInfo.sortList(list,allList,0,true); //ServiceDictInfo.sortList(list, allList, 0, true); model.addAttribute("list", list); return "/cfg/serviceDictList"; } /** * 查询业务辅助表-业务字典信息列表(含条件查询) * @param serviceDictInfo * @param request * @param response * @param model * @return */ @RequiresPermissions("sys:dict:view") @RequestMapping(value = {"searchList"}) public String searchList(ServiceDictInfo serviceDictInfo,HttpServletRequest request, HttpServletResponse response, Model model) { if(StringUtils.strIsBlank(serviceDictInfo.getItemValue()) &&serviceDictInfo.getItemCode()==null &&serviceDictInfo.getItemType()==null &&serviceDictInfo.getBeginDate()==null &&serviceDictInfo.getEditTime()==null){ return "redirect:"+ adminPath + "/configuration/serviceDictInfo/list"; } Page page = serviceDictInfoService.findDictSearchList(new Page(request, response), serviceDictInfo); model.addAttribute("page", page); return "/cfg/serviceDictInfoSearchList"; } /** * 进入添加或修改页面 * @param serviceDictInfo * @param model * @return */ @RequestMapping(value={"form"}) public String form(ServiceDictInfo serviceDictInfo, Model model,String doAction) { if(doAction!=null&&doAction.equals("0")){ return "/cfg/serviceDictInfo"; } if (serviceDictInfo.getParent() == null || serviceDictInfo.getParent().getId() == null) { ServiceDictInfo parent = new ServiceDictInfo(); parent.setServiceDictId(0); serviceDictInfo.setParent(parent); } model.addAttribute("serviceDictInfo", serviceDictInfo); return "/cfg/serviceDictForm"; } /** * 新增或修改 * @param serviceDictInfo * @param model * @param redirectAttributes * @return */ @RequiresPermissions("sys:dict:edit") @RequestMapping(value = "saveOrUpdate") public String saveOrUpdate(ServiceDictInfo serviceDictInfo,Model model, RedirectAttributes redirectAttributes) { try { serviceDictInfoService.saveOrUpdate(serviceDictInfo); addMessage(redirectAttributes, "保存配置成功"); } catch (Exception e) { e.printStackTrace(); addMessage(redirectAttributes, "保存配置失败!"); } if(serviceDictInfo.getItemType()==3){ return "redirect:" + adminPath + "/configuration/serviceDictInfo/markList"; }else{ return "redirect:" + adminPath + "/configuration/serviceDictInfo/list"; } } /** * 删除(删除时删除所有下级菜单) * @param serviceDictInfo * @param model * @return */ @RequestMapping(value={"delete"}) public String delete(ServiceDictInfo serviceDictInfo, RedirectAttributes redirectAttributes) { try { serviceDictInfoService.deleteDict(serviceDictInfo); addMessage(redirectAttributes, "删除配置成功"); } catch (Exception e) { e.printStackTrace(); addMessage(redirectAttributes, "删除配置失败!"); } return "redirect:" + adminPath + "/configuration/serviceDictInfo/list"; } /** * isShowHide是否显示隐藏菜单 * @param extId * @param isShowHidden * @param response * @return */ @RequiresPermissions("user") @ResponseBody @RequestMapping(value = "treeData") public List> treeData(@RequestParam(required=false) String extId,@RequestParam(required=false) String isShowHide, HttpServletResponse response) { List> mapList = Lists.newArrayList(); //找出所有的非叶子配置 List list = serviceDictInfoService.findAllNoLeafDictList(); for (int i=0; i map = Maps.newHashMap(); map.put("id", serviceDictInfo.getServiceDictId()); map.put("pId", serviceDictInfo.getParent().getServiceDictId()); map.put("name",serviceDictInfo.getItemValue()); mapList.add(map); } } return mapList; } //标签配置 /** * 进入添加或修改页面 * @param serviceDictInfo * @param model * @return */ @RequestMapping(value={"markForm"}) public String markForm(ServiceDictInfo serviceDictInfo, Model model,String doAction) { if(doAction!=null&&doAction.equals("0")){ return "/cfg/serviceDictMarkInfo"; } if (serviceDictInfo.getParent() == null || serviceDictInfo.getParent().getId() == null) { ServiceDictInfo parent = new ServiceDictInfo(); parent.setServiceDictId(0); serviceDictInfo.setParent(parent); } model.addAttribute("serviceDictInfo", serviceDictInfo); return "/cfg/serviceDictMarkForm"; } /** * 查询标签列表(无条件分页查询) * @param serviceDictInfo * @param request * @param response * @param model * @return */ @RequiresPermissions("sys:dict:view") @RequestMapping(value = {"markList", ""}) public String markList(ServiceDictInfo serviceDictInfo,HttpServletRequest request, HttpServletResponse response, Model model) { //查出顶层分页数据 Page page = serviceDictInfoService.findTopDictMarkList(new Page(request, response), serviceDictInfo); model.addAttribute("page", page); //查出所有数据 List allList = serviceDictInfoService.findAllDictMarkList(); //处理数据,保留顶层中的所有下层数据 List list = Lists.newArrayList(); boolean flag = false; for(int i=allList.size()-1;i>=0;i--){ ServiceDictInfo temp = allList.get(i); if(temp.getParent()!=null&&temp.getParent().getServiceDictId()!=null&&temp.getParent().getServiceDictId()==0){ for(ServiceDictInfo topTemp:page.getList()){ if(temp.getServiceDictId()==topTemp.getServiceDictId()){ flag = true; break; } } if(!flag){ allList.remove(temp); flag=false; }else{ flag=false; } } } ServiceDictInfo.sortList(list,allList,0,true); //ServiceDictInfo.sortList(list, allList, 0, true); model.addAttribute("list", list); return "/cfg/serviceDictMarkList"; } /** * 查询业务辅助表-业务字典信息列表(含条件查询) * @param serviceDictInfo * @param request * @param response * @param model * @return */ @RequiresPermissions("sys:dict:view") @RequestMapping(value = {"searchMarkList"}) public String searchMarkList(ServiceDictInfo serviceDictInfo,HttpServletRequest request, HttpServletResponse response, Model model) { if(StringUtils.strIsBlank(serviceDictInfo.getItemValue()) &&serviceDictInfo.getItemCode()==null &&serviceDictInfo.getItemType()==null &&serviceDictInfo.getBeginDate()==null &&serviceDictInfo.getEditTime()==null){ return "redirect:"+ adminPath + "/configuration/serviceDictInfo/markList"; } Page page = serviceDictInfoService.findDictSearchMarkList(new Page(request, response), serviceDictInfo); model.addAttribute("page", page); return "/cfg/serviceDictInfoSearchMarkList"; } /** * 新增或修改 * @param serviceDictInfo * @param model * @param redirectAttributes * @return */ @RequiresPermissions("sys:dict:edit") @RequestMapping(value = "markSaveOrUpdate") public String markSaveOrUpdate(ServiceDictInfo serviceDictInfo,Model model, RedirectAttributes redirectAttributes) { try { serviceDictInfoService.saveOrUpdate(serviceDictInfo); addMessage(redirectAttributes, "保存配置成功"); } catch (Exception e) { e.printStackTrace(); addMessage(redirectAttributes, "保存配置失败!"); } return "redirect:" + adminPath + "/configuration/serviceDictInfo/markList"; } /** * 删除 * @param serviceDictInfo * @param model * @return */ @RequestMapping(value={"markDelete"}) public String markDelete(ServiceDictInfo serviceDictInfo, RedirectAttributes redirectAttributes) { try { serviceDictInfoService.deleteDict(serviceDictInfo); addMessage(redirectAttributes, "删除配置成功"); } catch (Exception e) { e.printStackTrace(); addMessage(redirectAttributes, "删除配置失败!"); } return "redirect:" + adminPath + "/configuration/serviceDictInfo/markList"; } /** * isShowHide是否显示隐藏菜单 * @param extId * @param isShowHidden * @param response * @return */ @RequiresPermissions("user") @ResponseBody @RequestMapping(value = "treeMarkData") public List> treeMarkData(@RequestParam(required=false) String extId,@RequestParam(required=false) String isShowHide, HttpServletResponse response) { List> mapList = Lists.newArrayList(); //找出所有的非叶子配置 List list = serviceDictInfoService.findAllNoLeafDictMarkList(); for (int i=0; i map = Maps.newHashMap(); map.put("id", serviceDictInfo.getServiceDictId()); map.put("pId", serviceDictInfo.getParent().getServiceDictId()); map.put("name",serviceDictInfo.getItemValue()); mapList.add(map); } } return mapList; } }