RegionController.java 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137
  1. package com.genersoft.iot.vmp.gb28181.controller;
  2. import com.genersoft.iot.vmp.conf.exception.ControllerException;
  3. import com.genersoft.iot.vmp.gb28181.bean.Region;
  4. import com.genersoft.iot.vmp.gb28181.bean.RegionTree;
  5. import com.genersoft.iot.vmp.gb28181.service.IRegionService;
  6. import com.genersoft.iot.vmp.vmanager.bean.ErrorCode;
  7. import com.github.pagehelper.PageInfo;
  8. import io.swagger.v3.oas.annotations.Operation;
  9. import io.swagger.v3.oas.annotations.Parameter;
  10. import io.swagger.v3.oas.annotations.tags.Tag;
  11. import org.slf4j.Logger;
  12. import org.slf4j.LoggerFactory;
  13. import org.springframework.beans.factory.annotation.Autowired;
  14. import org.springframework.util.ObjectUtils;
  15. import org.springframework.web.bind.annotation.*;
  16. import java.util.List;
  17. @Tag(name = "区域管理")
  18. @RestController
  19. @RequestMapping("/api/region")
  20. public class RegionController {
  21. private final static Logger logger = LoggerFactory.getLogger(RegionController.class);
  22. @Autowired
  23. private IRegionService regionService;
  24. @Operation(summary = "添加区域")
  25. @Parameter(name = "region", description = "Region", required = true)
  26. @ResponseBody
  27. @PostMapping("/add")
  28. public void add(@RequestBody Region region){
  29. regionService.add(region);
  30. }
  31. @Operation(summary = "查询区域")
  32. @Parameter(name = "query", description = "要搜索的内容", required = true)
  33. @Parameter(name = "page", description = "当前页", required = true)
  34. @Parameter(name = "count", description = "每页查询数量", required = true)
  35. @ResponseBody
  36. @GetMapping("/page/list")
  37. public PageInfo<Region> query(
  38. @RequestParam(required = false) String query,
  39. @RequestParam(required = true) int page,
  40. @RequestParam(required = true) int count
  41. ){
  42. return regionService.query(query, page, count);
  43. }
  44. @Operation(summary = "查询区域")
  45. @Parameter(name = "query", description = "要搜索的内容", required = true)
  46. @Parameter(name = "parent", description = "所属行政区划编号", required = true)
  47. @ResponseBody
  48. @GetMapping("/tree/list")
  49. public List<RegionTree> queryForTree(
  50. @RequestParam(required = false) String query,
  51. @RequestParam(required = false) String parent
  52. ){
  53. if (ObjectUtils.isEmpty(parent)) {
  54. parent = null;
  55. }
  56. if (ObjectUtils.isEmpty(query)) {
  57. query = null;
  58. }
  59. return regionService.queryForTree(query, parent);
  60. }
  61. @Operation(summary = "更新区域")
  62. @Parameter(name = "region", description = "Region", required = true)
  63. @ResponseBody
  64. @PostMapping("/update")
  65. public void update(@RequestBody Region region){
  66. regionService.update(region);
  67. }
  68. @Operation(summary = "删除区域")
  69. @Parameter(name = "regionDeviceId", description = "区域编码", required = true)
  70. @ResponseBody
  71. @GetMapping("/delete")
  72. public void delete(String regionDeviceId){
  73. assert regionDeviceId != null;
  74. boolean result = regionService.deleteByDeviceId(regionDeviceId);
  75. if (!result) {
  76. throw new ControllerException(ErrorCode.ERROR100.getCode(), "移除失败");
  77. }
  78. }
  79. @Operation(summary = "分页区域子节点")
  80. @Parameter(name = "regionParentId", description = "行政区划父节点编号", required = true)
  81. @Parameter(name = "page", description = "当前页", required = true)
  82. @Parameter(name = "count", description = "每页查询数量", required = true)
  83. @ResponseBody
  84. @GetMapping("/child/list")
  85. public PageInfo<Region> queryChildRegionList(
  86. @RequestParam(required = true) String regionParentId,
  87. @RequestParam(required = true) int page,
  88. @RequestParam(required = true) int count
  89. ){
  90. if (ObjectUtils.isEmpty(regionParentId.trim())) {
  91. regionParentId = null;
  92. }
  93. return regionService.queryChildRegionList(regionParentId, page, count);
  94. }
  95. @Operation(summary = "根据区域Id查询区域")
  96. @Parameter(name = "regionDeviceId", description = "行政区划节点编号", required = true)
  97. @ResponseBody
  98. @GetMapping("/one")
  99. public Region queryRegionByDeviceId(
  100. @RequestParam(required = true) String regionDeviceId
  101. ){
  102. if (ObjectUtils.isEmpty(regionDeviceId.trim())) {
  103. throw new ControllerException(ErrorCode.ERROR400);
  104. }
  105. return regionService.queryRegionByDeviceId(regionDeviceId);
  106. }
  107. @Operation(summary = "获取所属的行政区划下的行政区划")
  108. @Parameter(name = "parent", description = "所属的行政区划", required = false)
  109. @ResponseBody
  110. @GetMapping("/base/child/list")
  111. public List<Region> getAllChild(@RequestParam(required = false) String parent){
  112. if (ObjectUtils.isEmpty(parent)) {
  113. parent = null;
  114. }
  115. return regionService.getAllChild(parent);
  116. }
  117. @Operation(summary = "从通道中同步行政区划")
  118. @ResponseBody
  119. @GetMapping("/sync")
  120. public void sync(){
  121. regionService.syncFromChannel();
  122. }
  123. }