Kaynağa Gözat

征拆区域树自动创建首节点

qianxb 1 yıl önce
ebeveyn
işleme
7aab17d5f0

+ 3 - 0
blade-service-api/blade-land-api/src/main/java/org/springblade/land/vo/RegionTreeInfoVO.java

@@ -55,4 +55,7 @@ public class RegionTreeInfoVO extends RegionTreeInfo implements INode<RegionTree
 
     @ApiModelProperty(value = "是否选择0否1是")
     private Integer isSelect;
+
+    @ApiModelProperty(value = "是否有子节点tru没有子节点,false有子节点")
+    private Boolean notExsitChild;
 }

+ 6 - 2
blade-service/blade-land/src/main/java/org/springblade/land/mapper/RegionTreeInfoMapper.xml

@@ -13,7 +13,11 @@
     </select>
 
     <select id="lazyTree" resultType="org.springblade.land.vo.RegionTreeInfoVO">
-        select * from l_region_tree_info
-        where is_deleted = 0 and project_id = #{projectId} and parent_id = #{id}
+        select
+            *,
+            if((SELECT COUNT(*) from l_region_tree_info lrti WHERE lrti.parent_id = lrti2.id and lrti.is_deleted = 0)=0,true,false)
+            as notExsitChild
+        from l_region_tree_info lrti2
+        where lrti2.is_deleted = 0 and lrti2.project_id = #{projectId} and lrti2.parent_id = #{id}
     </select>
 </mapper>

+ 15 - 0
blade-service/blade-land/src/main/java/org/springblade/land/service/impl/RegionTreeInfoServiceImpl.java

@@ -47,6 +47,21 @@ public class RegionTreeInfoServiceImpl extends BaseServiceImpl<RegionTreeInfoMap
      */
     @Override
     public List<RegionTreeInfoVO> lazyTree(Long projectId, Long id) {
+        if (id == null){
+            //如果是首节点,就去查询当前项目是否存在区域树,如果不存在则自动生成一条根节点
+            List<RegionTreeInfoVO> vos = baseMapper.lazyTree(projectId, 0L);
+            if (vos == null || vos.size() <= 0){
+                RegionTreeInfo info = new RegionTreeInfo();
+                info.setParentId(0L);
+                info.setAncestors("0");
+                info.setProjectId(projectId);
+                info.setAreaName("征拆区域");
+                info.setNodeType(-1);
+                baseMapper.insert(info);
+                vos = baseMapper.lazyTree(projectId, 0L);
+            }
+            return vos;
+        }
         List<RegionTreeInfoVO> vos = baseMapper.lazyTree(projectId, id);
         return vos;
     }