From 0b445959e4d9135f07fdb43b47ab0d85bdb4e0e6 Mon Sep 17 00:00:00 2001 From: lijiarao Date: Fri, 10 Nov 2023 13:33:17 +0800 Subject: [PATCH] =?UTF-8?q?fix=2078035=20=E6=A0=87=E7=AD=BE=E5=86=85?= =?UTF-8?q?=E5=AE=B9=E7=AE=A1=E7=90=86--=E5=88=A0=E9=99=A4=E8=A2=AB?= =?UTF-8?q?=E5=BC=95=E7=94=A8=E7=9A=84=E6=A0=87=E7=AD=BE=E5=86=85=E5=AE=B9?= =?UTF-8?q?=EF=BC=8C=E5=88=A0=E9=99=A4=E6=88=90=E5=8A=9F=E4=BA=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../system/controller/SysDictController.java | 21 +++++------- .../modules/system/mapper/SysDictMapper.java | 2 ++ .../system/mapper/xml/SysDictMapper.xml | 3 ++ .../system/service/ISysDictService.java | 4 +++ .../service/impl/SysDictServiceImpl.java | 33 ++++++++++++++++++- 5 files changed, 50 insertions(+), 13 deletions(-) diff --git a/laws-module-system/src/main/java/com/jero/modules/system/controller/SysDictController.java b/laws-module-system/src/main/java/com/jero/modules/system/controller/SysDictController.java index ab498f18..13970b83 100644 --- a/laws-module-system/src/main/java/com/jero/modules/system/controller/SysDictController.java +++ b/laws-module-system/src/main/java/com/jero/modules/system/controller/SysDictController.java @@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.jero.common.api.vo.Result; +import com.jero.common.api.vo.ResultCommon; import com.jero.common.aspect.annotation.AutoLog; import com.jero.common.constant.CacheConstant; import com.jero.common.constant.CommonConstant; @@ -409,31 +410,27 @@ public class SysDictController { public Result delete(@RequestBody Map map) { String id = map.get("id"); if(StringUtils.isBlank(id)){ - return Result.error("参数不识别!"); - } - boolean ok = sysDictService.removeById(id); - if(ok) { - return Result.OK(DEL_SUCCESS); - }else{ - return Result.error("删除失败!"); + return Result.error(ResultCommon.PARAMETER_NOT_RECOGNIZED); } + sysDictService.deleteById(id); + return Result.OK(ResultCommon.SUCCESSFULLY_DELETED); } /** * @功能:批量删除 * @return */ - @ApiOperation(value = "字典控制器-批量字典", notes = "字典控制器-批量字典") + @ApiOperation(value = "字典控制器-批量删除字典", notes = "字典控制器-批量删除字典") @PostMapping(value = "/deleteBatch") @RequiresPermissions("sys:dict:operation") @CacheEvict(value= {CacheConstant.SYS_DICT_CACHE, CacheConstant.SYS_ENABLE_DICT_CACHE}, allEntries=true) public Result deleteBatch(@RequestBody Map map) { String ids = map.get("ids"); if(oConvertUtils.isEmpty(ids)) { - return Result.error("参数不识别!"); + return Result.error(ResultCommon.PARAMETER_NOT_RECOGNIZED); }else { - sysDictService.removeByIds(Arrays.asList(ids.split(","))); - return Result.OK(DEL_SUCCESS); + sysDictService.deleteByIds(Arrays.asList(ids.split(","))); + return Result.OK(ResultCommon.SUCCESSFULLY_DELETED); } } @@ -577,7 +574,7 @@ public class SysDictController { public Result deletePhysic(@PathVariable String id) { try { sysDictService.deleteOneDictPhysically(id); - return Result.OK(DEL_SUCCESS); + return Result.OK(ResultCommon.SUCCESSFULLY_DELETED); } catch (Exception e) { e.printStackTrace(); return Result.error("删除失败!"); diff --git a/laws-module-system/src/main/java/com/jero/modules/system/mapper/SysDictMapper.java b/laws-module-system/src/main/java/com/jero/modules/system/mapper/SysDictMapper.java index 7cc01ec6..8fe2a399 100644 --- a/laws-module-system/src/main/java/com/jero/modules/system/mapper/SysDictMapper.java +++ b/laws-module-system/src/main/java/com/jero/modules/system/mapper/SysDictMapper.java @@ -233,4 +233,6 @@ public interface SysDictMapper extends BaseMapper { */ @Deprecated List queryAllTableDictItems(@Param("table") String table, @Param("text") String text, @Param("code") String code, @Param("filterSql") String filterSql); + + Integer checkUsed(@Param("dictCode") String dictCode); } diff --git a/laws-module-system/src/main/java/com/jero/modules/system/mapper/xml/SysDictMapper.xml b/laws-module-system/src/main/java/com/jero/modules/system/mapper/xml/SysDictMapper.xml index 323e3aa7..038dd453 100644 --- a/laws-module-system/src/main/java/com/jero/modules/system/mapper/xml/SysDictMapper.xml +++ b/laws-module-system/src/main/java/com/jero/modules/system/mapper/xml/SysDictMapper.xml @@ -197,4 +197,7 @@ + diff --git a/laws-module-system/src/main/java/com/jero/modules/system/service/ISysDictService.java b/laws-module-system/src/main/java/com/jero/modules/system/service/ISysDictService.java index cd394cca..fc04d05e 100644 --- a/laws-module-system/src/main/java/com/jero/modules/system/service/ISysDictService.java +++ b/laws-module-system/src/main/java/com/jero/modules/system/service/ISysDictService.java @@ -223,4 +223,8 @@ public interface ISysDictService extends IService { void refreshCache(); List queryDictName(SysDict sysDict); + + void deleteById(String id); + + void deleteByIds(List idList); } diff --git a/laws-module-system/src/main/java/com/jero/modules/system/service/impl/SysDictServiceImpl.java b/laws-module-system/src/main/java/com/jero/modules/system/service/impl/SysDictServiceImpl.java index 4cffe20a..a6309f19 100644 --- a/laws-module-system/src/main/java/com/jero/modules/system/service/impl/SysDictServiceImpl.java +++ b/laws-module-system/src/main/java/com/jero/modules/system/service/impl/SysDictServiceImpl.java @@ -5,8 +5,11 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.jero.common.api.vo.Result; +import com.jero.common.api.vo.ResultCommon; import com.jero.common.constant.enums.LanguageEnum; import com.jero.common.constant.enums.YesOrNoEnum; +import com.jero.common.exception.JeroBootException; import com.jero.common.system.vo.DictModelMany; import com.jero.common.util.MessageUtils; import com.jero.common.util.SqlInjectionUtil; @@ -476,7 +479,9 @@ public class SysDictServiceImpl extends ServiceImpl impl public List queryDictName(SysDict sysDict) { { QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.select("id", "dict_name","dict_en_name", "attribute_type","dict_code").eq("is_tag_dict", 1); + queryWrapper.select("id", "dict_name","dict_en_name", "attribute_type","dict_code") + .eq("is_tag_dict", 1) + .orderByAsc("order_num"); if (LanguageEnum.CN.equals(MessageUtils.getLanguage())) { return list(queryWrapper); }else{ @@ -486,4 +491,30 @@ public class SysDictServiceImpl extends ServiceImpl impl } } } + + @Override + public void deleteById(String id) { + SysDict dict = getById(id); + String dictCode = dict.getDictCode(); + //查询字典是否被标签使用 + Integer integer = baseMapper.checkUsed(dictCode); + if (integer > 0){ + throw new JeroBootException(ResultCommon.DICT_DELETE_ERROR); + } + this.removeById(id); + } + + @Override + public void deleteByIds(List idList) { + List sysDicts = this.listByIds(idList); + for (SysDict dict : sysDicts) { + String dictCode = dict.getDictCode(); + //查询字典是否被标签使用 + Integer integer = baseMapper.checkUsed(dictCode); + if (integer > 0){ + throw new JeroBootException(ResultCommon.DICT_DELETE_ERROR); + } + } + this.removeByIds(idList); + } }