diff --git a/src/main/java/com/nis/domain/SysDataDictionaryItem.java b/src/main/java/com/nis/domain/SysDataDictionaryItem.java index f17ca8a4d..2f567625d 100644 --- a/src/main/java/com/nis/domain/SysDataDictionaryItem.java +++ b/src/main/java/com/nis/domain/SysDataDictionaryItem.java @@ -3,7 +3,7 @@ package com.nis.domain; import java.io.Serializable; -public class SysDataDictionaryItem implements Serializable { +public class SysDataDictionaryItem extends BaseEntity implements Serializable { private static final long serialVersionUID = 1L; private Long id; private String itemCode; diff --git a/src/main/java/com/nis/web/controller/sys/DictController.java b/src/main/java/com/nis/web/controller/sys/DictController.java index 3a7764dbc..e2234be09 100644 --- a/src/main/java/com/nis/web/controller/sys/DictController.java +++ b/src/main/java/com/nis/web/controller/sys/DictController.java @@ -1,5 +1,7 @@ package com.nis.web.controller.sys; +import java.util.List; + import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -12,6 +14,7 @@ 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; @@ -37,7 +40,61 @@ public class DictController extends BaseController { 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"; + } /** * 进入字典添加或修改页面 @@ -75,6 +132,37 @@ public class DictController extends BaseController { 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) { diff --git a/src/main/java/com/nis/web/dao/SysDictDao.java b/src/main/java/com/nis/web/dao/SysDictDao.java index f7f71541e..a87125d1d 100644 --- a/src/main/java/com/nis/web/dao/SysDictDao.java +++ b/src/main/java/com/nis/web/dao/SysDictDao.java @@ -15,15 +15,22 @@ public interface SysDictDao extends CrudDao { List findDictList(SysDataDictionaryName sysDictName); + List findDictItemList(SysDataDictionaryItem sysDictItem); + SysDataDictionaryName getDictById(@Param("DEL_FLAG_NORMAL")Integer DEL_FLAG_NORMAL,@Param("id") Integer id); - + void insertDictName(SysDataDictionaryName sysDictName); void updateDictName(SysDataDictionaryName sysDictName); void insertDictItem(SysDataDictionaryItem sysDictitem); + + int findMaxItemSort(SysDataDictionaryItem sysDictitem); + + int findMaxItemCode(SysDataDictionaryItem sysDictitem); void deleteDictItem(@Param("dictId")Integer dictId); + void deleteDictItemById(SysDataDictionaryItem sysDictitem); void deleteDictName(@Param("dictId")Integer dictId); diff --git a/src/main/java/com/nis/web/dao/SysDictDao.xml b/src/main/java/com/nis/web/dao/SysDictDao.xml index e26ff63b5..a954f6373 100644 --- a/src/main/java/com/nis/web/dao/SysDictDao.xml +++ b/src/main/java/com/nis/web/dao/SysDictDao.xml @@ -22,6 +22,17 @@ + + + + + + + + + + + @@ -112,6 +123,36 @@ + + insert into sys_data_dictionary_name (module_name, mark, @@ -143,6 +184,11 @@ delete from sys_data_dictionary_item where dictionary_id = #{dictId} + + + delete from sys_data_dictionary_item + where id = #{id} and dictionary_id= #{dictionaryId} + @@ -163,4 +209,21 @@ type=#{type}, dictionary_id=#{dictionaryId} where id = #{id,jdbcType=INTEGER} + + + \ No newline at end of file diff --git a/src/main/java/com/nis/web/service/DictService.java b/src/main/java/com/nis/web/service/DictService.java index 6b9fa67c6..6d0953366 100644 --- a/src/main/java/com/nis/web/service/DictService.java +++ b/src/main/java/com/nis/web/service/DictService.java @@ -28,6 +28,13 @@ public class DictService extends BaseService { page.setList(dictDao.findDictList(sysDictName)); return page; } + public Page findDictItemList(Page page, SysDataDictionaryItem sysDictItem) { + // 设置分页参数 + sysDictItem.setPage(page); + // 执行分页查询 + page.setList(dictDao.findDictItemList(sysDictItem)); + return page; + } public List findDicByName(SysDataDictionaryName sysDictName){ return dictDao.findDicByName(sysDictName.DEL_FLAG_NORMAL, sysDictName.getModuleName(),sysDictName.getMark()); @@ -90,7 +97,31 @@ public class DictService extends BaseService { } + public void saveOrUpdateItem(SysDataDictionaryItem sysDictItem) { + if(StringUtil.isEmpty(sysDictItem.getItemCode())){ + Integer maxCode=dictDao.findMaxItemCode(sysDictItem); + if(!StringUtil.isEmpty(maxCode)){ + sysDictItem.setItemCode((maxCode+1)+""); + } + } + if(StringUtil.isEmpty(sysDictItem.getId())){ + Integer maxSort=dictDao.findMaxItemSort(sysDictItem); + if(!StringUtil.isEmpty(maxSort)){ + sysDictItem.setItemSort(maxSort+1); + } + dictDao.insertDictItem(sysDictItem); + }else{ + dictDao.updateDictItem(sysDictItem); + } + + } + public void deleteDictItem(SysDataDictionaryItem sysDictItem) { + + //删除词典项 + dictDao.deleteDictItemById(sysDictItem); + + } public void deleteDict(Integer dictId) { //删除词典项 @@ -105,6 +136,10 @@ public class DictService extends BaseService { return dictDao.getDictById(1,id); } + public List findDictItemList(SysDataDictionaryItem item) { + + return dictDao.findDictItemList(item); + } public void updateDictItem(SysDataDictionaryItem sysDictItem){ dictDao.updateDictItem(sysDictItem); } diff --git a/src/main/resources/sql/20190109/insert_sys_menu.sql b/src/main/resources/sql/20190109/insert_sys_menu.sql new file mode 100644 index 000000000..942a00ff5 --- /dev/null +++ b/src/main/resources/sql/20190109/insert_sys_menu.sql @@ -0,0 +1,2 @@ +INSERT INTO `sys_menu` VALUES (1233, 109, '0,1,109,', 'website_server', '网站管理', 5030, '/sys/dict/topicAndWebsiteList?dictionaryId=111', '', 'fa fa-globe', 1, 'basic:topic:list', '1', '2019-1-7 18:58:23', '1', '2019-1-8 12:12:26', '', 1, NULL, 0, 0, NULL); +INSERT INTO `sys_menu` VALUES (1235, 109, '0,1,109,', 'topic', '主题管理', 5030, '/sys/dict/topicAndWebsiteList?dictionaryId=112', '', 'fa fa-sitemap', 1, 'basic:topic:list', '1', '2019-1-8 12:00:58', '1', '2019-1-8 12:12:44', '', 1, NULL, 0, 0, NULL); diff --git a/src/main/webapp/WEB-INF/views/basics/dictForm.jsp b/src/main/webapp/WEB-INF/views/basics/dictForm.jsp new file mode 100644 index 000000000..883a028b8 --- /dev/null +++ b/src/main/webapp/WEB-INF/views/basics/dictForm.jsp @@ -0,0 +1,167 @@ +<%@ page contentType="text/html;charset=UTF-8" %> +<%@ include file="/WEB-INF/include/taglib.jsp"%> + + + 用户管理 + + + + +
+
+ + + <%--

+ +

--%> +
+ + <%--
--%> + +
+
+
+
+
+
+ + + + + + + + + + +
+ + +
+ +
+ + + +
+
+
+ +
+ +
+
+ +
+ +
+ +
+ * +
+
+ +
+ +
+
+ +
+
+
+ + +
+
+
+
+
+
+
+
+
+
+ + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/views/basics/dictList.jsp b/src/main/webapp/WEB-INF/views/basics/dictList.jsp new file mode 100644 index 000000000..f3094f3c2 --- /dev/null +++ b/src/main/webapp/WEB-INF/views/basics/dictList.jsp @@ -0,0 +1,130 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8"%> +<%@ include file="/WEB-INF/include/taglib.jsp"%> + + +字典管理 + + + + +
+ + +

+ +

+ +
+
+
+
+
+ + + + + + +
+
+
+ +
+ + +
+
+ +
+ +
+ + +
+
+
+ +
+ + +
+
+
+
+ + + +
+
+ +
+
+
+
+ + +
+ + + + + + + + + + + + + + + + + + + + +
${dict.itemCode}${dict.itemValue}${fns:abbr(dict.itemDesc,200)}update + delete
+
${page}
+
+
+
+
+
+ + + \ No newline at end of file