diff --git a/src/main/java/com/genersoft/iot/vmp/conf/CivilCodeFileConf.java b/src/main/java/com/genersoft/iot/vmp/conf/CivilCodeFileConf.java index adb6daf3..1fd5c983 100644 --- a/src/main/java/com/genersoft/iot/vmp/conf/CivilCodeFileConf.java +++ b/src/main/java/com/genersoft/iot/vmp/conf/CivilCodeFileConf.java @@ -18,6 +18,8 @@ import java.io.File; import java.io.InputStream; import java.io.InputStreamReader; import java.nio.file.Files; +import java.util.ArrayList; +import java.util.List; import java.util.Map; /** @@ -122,4 +124,18 @@ public class CivilCodeFileConf implements CommandLineRunner { } } + public List getAllChild(String parent) { + List result = new ArrayList<>(); + for (String key : civilCodeMap.keySet()) { + if (parent == null) { + if (ObjectUtils.isEmpty(civilCodeMap.get(key).getParentCode().trim())) { + result.add(Region.getInstance(key, civilCodeMap.get(key).getName(), civilCodeMap.get(key).getParentCode())); + } + }else if (civilCodeMap.get(key).getParentCode().equals(parent)) { + result.add(Region.getInstance(key, civilCodeMap.get(key).getName(), civilCodeMap.get(key).getParentCode())); + } + } + return result; + } + } diff --git a/src/main/java/com/genersoft/iot/vmp/service/IRegionService.java b/src/main/java/com/genersoft/iot/vmp/service/IRegionService.java index 1bd17e28..7c9192bc 100644 --- a/src/main/java/com/genersoft/iot/vmp/service/IRegionService.java +++ b/src/main/java/com/genersoft/iot/vmp/service/IRegionService.java @@ -3,6 +3,8 @@ package com.genersoft.iot.vmp.service; import com.genersoft.iot.vmp.service.bean.Region; import com.github.pagehelper.PageInfo; +import java.util.List; + public interface IRegionService { @@ -24,4 +26,6 @@ public interface IRegionService { * 更新区域 */ void update(Region region); + + List getAllChild(String parent); } diff --git a/src/main/java/com/genersoft/iot/vmp/service/impl/RegionServiceImpl.java b/src/main/java/com/genersoft/iot/vmp/service/impl/RegionServiceImpl.java index 6335cfc1..1b6bb3d3 100644 --- a/src/main/java/com/genersoft/iot/vmp/service/impl/RegionServiceImpl.java +++ b/src/main/java/com/genersoft/iot/vmp/service/impl/RegionServiceImpl.java @@ -1,6 +1,9 @@ package com.genersoft.iot.vmp.service.impl; +import com.genersoft.iot.vmp.common.CivilCodePo; +import com.genersoft.iot.vmp.conf.CivilCodeFileConf; import com.genersoft.iot.vmp.conf.exception.ControllerException; +import com.genersoft.iot.vmp.gb28181.utils.SipUtils; import com.genersoft.iot.vmp.service.IRegionService; import com.genersoft.iot.vmp.service.bean.Region; import com.genersoft.iot.vmp.storager.dao.CommonGbChannelMapper; @@ -29,6 +32,10 @@ public class RegionServiceImpl implements IRegionService { @Autowired private CommonGbChannelMapper commonGbChannelMapper; + + @Autowired + private CivilCodeFileConf civilCodeFileConf; + @Override public void add(Region region) { assert region.getCommonRegionName() != null; @@ -86,4 +93,9 @@ public class RegionServiceImpl implements IRegionService { regionMapper.update(region); } + + @Override + public List getAllChild(String parent) { + return civilCodeFileConf.getAllChild(parent); + } } diff --git a/src/main/java/com/genersoft/iot/vmp/vmanager/channel/CommonChannelController.java b/src/main/java/com/genersoft/iot/vmp/vmanager/channel/CommonChannelController.java index 693ee758..65f3bf0a 100755 --- a/src/main/java/com/genersoft/iot/vmp/vmanager/channel/CommonChannelController.java +++ b/src/main/java/com/genersoft/iot/vmp/vmanager/channel/CommonChannelController.java @@ -120,4 +120,5 @@ public class CommonChannelController { return commonGbChannelService.getRandomCode(type); } + } diff --git a/src/main/java/com/genersoft/iot/vmp/vmanager/region/RegionController.java b/src/main/java/com/genersoft/iot/vmp/vmanager/region/RegionController.java index 4b6b63ec..3dabdbc9 100644 --- a/src/main/java/com/genersoft/iot/vmp/vmanager/region/RegionController.java +++ b/src/main/java/com/genersoft/iot/vmp/vmanager/region/RegionController.java @@ -1,5 +1,6 @@ package com.genersoft.iot.vmp.vmanager.region; +import com.genersoft.iot.vmp.gb28181.bean.Gb28181CodeType; import com.genersoft.iot.vmp.service.IRegionService; import com.genersoft.iot.vmp.service.bean.Region; import com.github.pagehelper.PageInfo; @@ -9,11 +10,12 @@ import io.swagger.v3.oas.annotations.tags.Tag; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.util.ObjectUtils; import org.springframework.web.bind.annotation.*; import java.util.List; -@Tag(name = "行政区划管理") +@Tag(name = "区域管理") @RestController @RequestMapping("/api/region") public class RegionController { @@ -74,4 +76,15 @@ public class RegionController { ){ return regionService.queryChildGroupList(regionParentId, page, count); } + + @Operation(summary = "获取所属的行政区划下的行政区划") + @Parameter(name = "parent", description = "所属的行政区划", required = false) + @ResponseBody + @GetMapping("/base/child/list") + public List getAllChild(@RequestParam(required = false) String parent){ + if (ObjectUtils.isEmpty(parent.trim())) { + parent = null; + } + return regionService.getAllChild(parent); + } }