From 570dc63be3f5596c40b86e59245bde5ca2593c8f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=98=BF=E6=B2=90?= Date: Mon, 3 Jun 2024 15:06:12 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AD=97=E5=85=B8=E6=94=AF=E6=8C=81=E6=A0=91?= =?UTF-8?q?=E4=B8=8A=E4=B8=8B=E7=BB=93=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/SysDictTypeServiceImpl.java | 50 +++++++++++++++++++++- 1 file changed, 49 insertions(+), 1 deletion(-) diff --git a/maku-boot-system/src/main/java/net/maku/system/service/impl/SysDictTypeServiceImpl.java b/maku-boot-system/src/main/java/net/maku/system/service/impl/SysDictTypeServiceImpl.java index d8fd92e..b6298e5 100644 --- a/maku-boot-system/src/main/java/net/maku/system/service/impl/SysDictTypeServiceImpl.java +++ b/maku-boot-system/src/main/java/net/maku/system/service/impl/SysDictTypeServiceImpl.java @@ -1,5 +1,6 @@ package net.maku.system.service.impl; +import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; @@ -49,10 +50,20 @@ public class SysDictTypeServiceImpl extends BaseServiceImpl(SysDictTypeConvert.INSTANCE.convertList(page.getRecords()), page.getTotal()); } + @Override + public List list(Long pid) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(pid != null, SysDictTypeEntity::getPid, pid); + + List list = baseMapper.selectList(wrapper); + return SysDictTypeConvert.INSTANCE.convertList(list); + } + private Wrapper getWrapper(SysDictTypeQuery query) { LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); wrapper.like(StrUtil.isNotBlank(query.getDictType()), SysDictTypeEntity::getDictType, query.getDictType()); wrapper.like(StrUtil.isNotBlank(query.getDictName()), SysDictTypeEntity::getDictName, query.getDictName()); + wrapper.isNull(SysDictTypeEntity::getPid); wrapper.orderByAsc(SysDictTypeEntity::getSort); return wrapper; @@ -63,6 +74,11 @@ public class SysDictTypeServiceImpl extends BaseServiceImpl().eq(SysDictTypeEntity::getPid, oldPid)); + if (count == 0) { + // 更新原先的上级,没有子节点 + this.updateHasChild(oldPid, 0); + } + } + + } + + /** + * 更新上级,有子节点 + * + * @param pid 上级ID + * @param hasChild 是否有子节点 + */ + private void updateHasChild(Long pid, Integer hasChild) { + SysDictTypeEntity entity = new SysDictTypeEntity(); + entity.setId(pid); + entity.setHasChild(hasChild); + baseMapper.updateById(entity); } @Override @@ -107,7 +155,7 @@ public class SysDictTypeServiceImpl extends BaseServiceImpl