package com.nis.web.controller.sys; import java.util.List; 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.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.nis.domain.Page; import com.nis.domain.SysDataDictionaryItem; import com.nis.domain.SysDataDictionaryName; import com.nis.util.CacheUtils; import com.nis.util.Constants; import com.nis.util.StringUtil; import com.nis.web.controller.BaseController; @Controller @RequestMapping(value = "${adminPath}/sys/dict") public class DictController extends BaseController { @RequiresPermissions("sys:dict:view") @RequestMapping(value = {"list", ""}) public String list(SysDataDictionaryName sysDictName,HttpServletRequest request, HttpServletResponse response, Model model) { if(sysDictName ==null){ sysDictName=new SysDataDictionaryName(); } Page page = dictService.findDictList(new Page(request, response), sysDictName); model.addAttribute("page", page); model.addAttribute("sysDataDictionaryName",sysDictName); return "/sys/dictList"; } @RequestMapping(value = {"/topicAndWebsiteList", ""}) public String topicList(SysDataDictionaryItem sysDictItem,HttpServletRequest request, HttpServletResponse response, Model model) { if(sysDictItem ==null){ sysDictItem=new SysDataDictionaryItem(); } Page page = dictService.findDictItemList(new Page(request, response), sysDictItem); model.addAttribute("page", page); model.addAttribute("sysDataDictionaryName",sysDictItem); return "/basics/dictList"; } /** * 进入字典添加或修改页面 * @param sysDictName * @param model * @return */ @RequestMapping(value={"dictItemForm"}) public String dictItemForm(SysDataDictionaryItem item, Model model) { if (item != null && !StringUtil.isEmpty(item.getId())){ List list=dictService.findDictItemList(item); if(!StringUtil.isEmpty(list)){ item=(SysDataDictionaryItem) list.get(0); } } model.addAttribute("sysDataDictionaryItem",item); return "/basics/dictForm"; } /** * 进入字典添加或修改页面 * @param sysDictName * @param model * @return */ @ResponseBody @RequestMapping(value={"checkItemCode"}) public String checkItemCode(Long id, String itemCode, int dictionaryId) { SysDataDictionaryItem item=new SysDataDictionaryItem(); item.setDictionaryId(dictionaryId); item.setId(id); item.setItemCode(itemCode); if (item != null ){ List list=dictService.findDictItemList(item); if(StringUtil.isEmpty(item.getId()) && !StringUtil.isEmpty(list) && list.size()>=1){ return "false"; } if(!StringUtil.isEmpty(item.getId()) && !StringUtil.isEmpty(list) && list.size()>=2){ return "false"; } } return "true"; } /** * 进入字典添加或修改页面 * @param sysDictName * @param model * @return */ @RequestMapping(value={"form"}) public String form(@RequestParam(required=false) Integer id, Model model) { SysDataDictionaryName sysDictName=null; if (!StringUtil.isEmpty(id)){ sysDictName= dictService.getDictByIdWithRelation(id); }else{ sysDictName=new SysDataDictionaryName(); } model.addAttribute("sysDataDictionaryName",sysDictName); return "/sys/dictForm"; } @RequiresPermissions("sys:dict:edit") @RequestMapping(value = "saveOrUpdate") public String saveOrUpdate(SysDataDictionaryName sysDictName,Model model, RedirectAttributes redirectAttributes) { try { dictService.saveOrUpdate(sysDictName); //删除字典缓存 CacheUtils.remove(Constants.CACHE_DICT_MAP); addMessage(redirectAttributes,"success", "save_success"); } catch (Exception e) { e.printStackTrace(); addMessage(redirectAttributes,"error", "save_failed"); } return "redirect:" + adminPath + "/sys/dict/list"; } @RequestMapping(value = "saveOrUpdateItem") public String saveOrUpdateItem(SysDataDictionaryItem sysDictItem,Model model, RedirectAttributes redirectAttributes) { try { dictService.saveOrUpdateItem(sysDictItem); //删除字典缓存 CacheUtils.remove(Constants.CACHE_DICT_MAP); addMessage(redirectAttributes,"success", "save_success"); } catch (Exception e) { e.printStackTrace(); addMessage(redirectAttributes,"error", "save_failed"); } return "redirect:" + adminPath + "/sys/dict/topicAndWebsiteList?dictionaryId="+sysDictItem.getDictionaryId(); } @RequestMapping(value = "deleteItem") public String delete(SysDataDictionaryItem item,Model model, RedirectAttributes redirectAttributes) { try { dictService.deleteDictItem(item); //删除字典缓存 CacheUtils.remove(Constants.CACHE_DICT_MAP); addMessage(redirectAttributes,"success", "delete_success"); } catch (Exception e) { e.printStackTrace(); addMessage(redirectAttributes,"error", "delete_failed"); } return "redirect:" + adminPath + "/sys/dict/topicAndWebsiteList?dictionaryId="+item.getDictionaryId(); } @RequiresPermissions("sys:dict:edit") @RequestMapping(value = "delete") public String delete(Integer id,Model model, RedirectAttributes redirectAttributes) { try { dictService.deleteDict(id); //删除字典缓存 CacheUtils.remove(Constants.CACHE_DICT_MAP); addMessage(redirectAttributes,"success", "delete_success"); } catch (Exception e) { e.printStackTrace(); addMessage(redirectAttributes,"error", "delete_failed"); } return "redirect:" + adminPath + "/sys/dict/list"; } @ResponseBody @RequestMapping(value = "loadDataDict") public SysDataDictionaryName loadDataDict(@RequestParam(required=false) Integer id,HttpServletRequest request, HttpServletResponse response, Model model){ return dictService.getDictByIdWithRelation(id); } @ResponseBody @RequestMapping(value = {"refreshCache"}) public String refreshCache(String cacheName){ // if(cacheName.equals(AsnCacheUtils.getCacheName())) { // AsnCacheUtils.clearCache(); // }else { //删除字典缓存 CacheUtils.remove(cacheName); /*}*/ return "success"; } }