diff --git a/dk-modules/business/src/main/java/org/dromara/business/domain/BusinessLayer.java b/dk-modules/business/src/main/java/org/dromara/business/domain/BusinessLayer.java index b990b9b..06ffc43 100644 --- a/dk-modules/business/src/main/java/org/dromara/business/domain/BusinessLayer.java +++ b/dk-modules/business/src/main/java/org/dromara/business/domain/BusinessLayer.java @@ -33,6 +33,7 @@ public class BusinessLayer extends BaseEntity { */ private Integer layerType; + @TableField(exist = false) @Translation(type = TransConstant.DICT_TYPE_TO_LABEL, mapper = "layerType", other = "layer_type") private String layerTypeName; diff --git a/dk-modules/business/src/main/java/org/dromara/business/domain/model/enums/LayerTypeEnum.java b/dk-modules/business/src/main/java/org/dromara/business/domain/model/enums/LayerTypeEnum.java new file mode 100644 index 0000000..54ef2bb --- /dev/null +++ b/dk-modules/business/src/main/java/org/dromara/business/domain/model/enums/LayerTypeEnum.java @@ -0,0 +1,23 @@ +package org.dromara.business.domain.model.enums; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +@Getter +@AllArgsConstructor +public enum LayerTypeEnum { + + menu(0,"目录"), + + threeDimensional(1,"三维"), + + vector(2,"矢量"), + + image(3,"影像"); + + + private Integer type; + + private String desc; + +} diff --git a/dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessLayerServiceImpl.java b/dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessLayerServiceImpl.java index 89b2f40..f45c01a 100644 --- a/dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessLayerServiceImpl.java +++ b/dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessLayerServiceImpl.java @@ -2,16 +2,22 @@ package org.dromara.business.service.impl; import cn.hutool.core.convert.Convert; import cn.hutool.core.convert.impl.MapConverter; +import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.apache.dubbo.config.annotation.DubboReference; import org.dromara.business.domain.BusinessLayer; import org.dromara.business.domain.bo.BusinessLayerBo; +import org.dromara.business.domain.model.enums.LayerTypeEnum; import org.dromara.business.domain.vo.BusinessLayerVo; import org.dromara.business.mapper.BusinessLayerMapper; import org.dromara.business.service.IBusinessLayerService; import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.system.api.RemoteDeptService; +import org.dromara.system.api.domain.vo.RemoteDeptVo; +import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import java.util.ArrayList; @@ -27,6 +33,9 @@ public class BusinessLayerServiceImpl implements IBusinessLayerService { private final BusinessLayerMapper baseMapper; + @DubboReference + RemoteDeptService remoteDeptService; + @Override public TableDataInfo queryPageList(BusinessLayerBo bo, PageQuery pageQuery) { Page result = baseMapper.queryPageList(pageQuery.build(), bo); @@ -45,13 +54,29 @@ public class BusinessLayerServiceImpl implements IBusinessLayerService { @Override public Boolean insert(BusinessLayerBo bo) { BusinessLayer layerVo = Convert.convert( BusinessLayer.class,bo); + + RemoteDeptVo remoteDeptVo = remoteDeptService.selectDeptById(layerVo.getDeptId()); + + layerVo.setDeptName(remoteDeptVo.getDeptName()); + return baseMapper.insert(layerVo)>0; } @Override public Boolean update(BusinessLayerBo bo) { - BusinessLayer layerVo = Convert.convert( BusinessLayer.class,bo); - return baseMapper.updateById(layerVo)>0; + + BusinessLayer businessLayer = baseMapper.selectById(bo.getId()); + + //判断是否修改部门 + if (!businessLayer.getDeptId().equals(bo.getDeptId())) { + RemoteDeptVo remoteDeptVo = remoteDeptService.selectDeptById(bo.getDeptId()); + + bo.setDeptName(remoteDeptVo.getDeptName()); + } + + BeanUtils.copyProperties(bo,businessLayer); + + return baseMapper.updateById(businessLayer)>0; } @Override @@ -61,7 +86,13 @@ public class BusinessLayerServiceImpl implements IBusinessLayerService { @Override public List optionSelect() { - return baseMapper.selectInfoByParent(0L); + List layerVoList = baseMapper.selectInfoByParent(0L); + + if (ObjectUtil.isEmpty(layerVoList)){ + return List.of(); + } + + return layerVoList.stream().filter(p-> p.getLayerType().equals(LayerTypeEnum.menu.getType())).toList(); }