RegionController.java 5.0 KB

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