diff --git a/src/main/resources/modules/SpringBoot/java/module/system/mgr/DictItemManagerImpl.java b/src/main/resources/modules/SpringBoot/java/module/system/mgr/DictItemManagerImpl.java index 4dbd5b7a..f6e087b9 100644 --- a/src/main/resources/modules/SpringBoot/java/module/system/mgr/DictItemManagerImpl.java +++ b/src/main/resources/modules/SpringBoot/java/module/system/mgr/DictItemManagerImpl.java @@ -54,6 +54,21 @@ public class DictItemManagerImpl implements DictItemManager { return response; } + {// 检查字典项是否重复 + DictItemFindRequest dictItemFindRequest = new DictItemFindRequest(); + dictItemFindRequest.setDictName(request.getDictName()); + dictItemFindRequest.setKey(request.getKey()); + dictItemFindRequest.setValid(true); + DictItemFindResponse dictItemFindResponse = this.find(dictItemFindRequest, token); + if (dictItemFindResponse.hasError()) { + response.addErrors(dictItemFindResponse.getErrors()); + return response; + } else if (dictItemFindResponse.getTotalCount() > 0) { + response.addError(ErrorType.BUSINESS_ERROR, "字典项重复"); + return response; + } + } + long id = IDgenerator.nextId(); DictItem entity = MapperUtil.map(request, DictItem.class); entity.setId(id); diff --git a/src/main/resources/modules/SpringBoot/java/module/system/mgr/DictManagerImpl.java b/src/main/resources/modules/SpringBoot/java/module/system/mgr/DictManagerImpl.java index a2a8b107..3ad4dcbe 100644 --- a/src/main/resources/modules/SpringBoot/java/module/system/mgr/DictManagerImpl.java +++ b/src/main/resources/modules/SpringBoot/java/module/system/mgr/DictManagerImpl.java @@ -63,6 +63,19 @@ public class DictManagerImpl implements DictManager { return response; } + {// 检查字典名称是否重复 + DictFindRequest dictFindRequest = new DictFindRequest(); + dictFindRequest.setDictName(request.getDictName()); + DictFindResponse dictFindResponse = this.find(dictFindRequest, token); + if (dictFindResponse.hasError()) { + response.addErrors(dictFindResponse.getErrors()); + return response; + } else if (dictFindResponse.getTotalCount() > 0) { + response.addError(ErrorType.BUSINESS_ERROR, "字典名称重复"); + return response; + } + } + long id = IDgenerator.nextId(); Dict entity = MapperUtil.map(request, Dict.class); entity.setId(id); diff --git a/src/main/resources/modules/SpringBoot/test/datainit/DictInit.java b/src/main/resources/modules/SpringBoot/test/datainit/DictInit.java index 2922addc..a256c7ae 100644 --- a/src/main/resources/modules/SpringBoot/test/datainit/DictInit.java +++ b/src/main/resources/modules/SpringBoot/test/datainit/DictInit.java @@ -36,8 +36,7 @@ public class DictInit { @Rollback(false) public void init() { {// 终端类型 - createDict("TERMINAL_TYPE", "终端类型"); - createDictItem(new String[][]{ + createDict("TERMINAL_TYPE", "终端类型", new String[][]{ {"WEB", "游览器端"}, {"API", "接口端"}, {"PHONE", "手机端"}, @@ -45,8 +44,7 @@ public class DictInit { } {// 错误日志结果 - createDict("LOG_ERR_RESULT", "错误日志结果"); - createDictItem(new String[][]{ + createDict("LOG_ERR_RESULT", "错误日志结果", new String[][]{ {"未处理", "未处理"}, {"已处理", "已处理"}, {"搁置", "搁置"}, @@ -54,30 +52,27 @@ public class DictInit { } {// 资源类型 - createDict("RES_TYPE", "资源类型"); - createDictItem(new String[][]{ + createDict("RES_TYPE", "资源类型", new String[][]{ {"网页地址", "网页地址"}, {"异步请求", "异步请求"}, }); } {// 用户状态 - createDict("USER_STATUS", "用户状态"); - createDictItem(new String[][]{ + createDict("USER_STATUS", "用户状态", new String[][]{ {"正常", "正常"}, {"初始密码", "初始密码"}, {"锁定/注销", "锁定/注销"}, }); } {// 日志错误类型 - createDict("LOG_ERR_TYPE", "日志错误类型"); - createDictItem(new String[][]{ + createDict("LOG_ERR_TYPE", "日志错误类型", new String[][]{ {"系统错误", "系统错误"}, {"业务错误", "业务错误"}, }); } } - private void createDict(String name, String comment) { + private void createDict(String name, String comment, String[][] items) { DictCreateRequest dictCreateRequest = new DictCreateRequest(); dictCreateRequest.setDictName(name); dictCreateRequest.setDictComment(comment); @@ -85,13 +80,11 @@ public class DictInit { dictCreateRequest.setValid(true); DictCreateResponse dictCreateResponse = dictManager.create(dictCreateRequest, token); assertTrue(!dictCreateResponse.hasError()); - } - private void createDictItem(String[][] items) { for (int i = 0; i < items.length; i++) { String[] item = items[i]; DictItemCreateRequest dictItemCreateRequest = new DictItemCreateRequest(); - dictItemCreateRequest.setDictName("TERMINAL_TYPE"); + dictItemCreateRequest.setDictName(name); dictItemCreateRequest.setKey(item[0]); dictItemCreateRequest.setValue(item[1]); dictItemCreateRequest.setSort(i); @@ -101,3 +94,4 @@ public class DictInit { } } } +