xiangpei
2024-03-12 152687d40f879e2e2e8f672b818929b748b9666a
ycl-server/src/main/java/com/ycl/platform/service/impl/RegionServiceImpl.java
@@ -3,6 +3,7 @@
import com.ycl.platform.base.BaseSelect;
import com.ycl.platform.domain.entity.Region;
import com.ycl.platform.domain.entity.YwUnit;
import com.ycl.platform.domain.vo.RegionCascaderVO;
import com.ycl.platform.mapper.RegionMapper;
import com.ycl.platform.service.RegionService;
import com.ycl.system.Result;
@@ -171,4 +172,34 @@
        }).collect(Collectors.toList());
        return Result.ok().data(vos);
    }
    @Override
    public Result cascader() {
        List<Region> regionList = new LambdaQueryChainWrapper<>(baseMapper)
                .ne(Region::getRegionLevel, RegionLevelEnum.CITY)
                .list();
        List<RegionCascaderVO> vos = regionList.stream().map(entity -> {
            RegionCascaderVO vo = new RegionCascaderVO();
            vo.setValue(entity.getId());
            vo.setLabel(entity.getSimpleName());
            vo.setRegionLevel(entity.getRegionLevel());
            vo.setParentId(entity.getParentId());
            return vo;
        }).collect(Collectors.toList());
        List<RegionCascaderVO> removeList = new ArrayList<>(12);
        for (RegionCascaderVO region : vos) {
            if (region.getRegionLevel() == RegionLevelEnum.COUNTY) {
                List<RegionCascaderVO> childList = new ArrayList<>(12);
                for (RegionCascaderVO region1 : vos) {
                    if (region1.getParentId() == region.getValue()) {
                        childList.add(region1);
                        removeList.add(region1);
                    }
                }
                region.setChildren(childList);
            }
        }
        vos.removeAll(removeList);
        return Result.ok().data(vos);
    }
}