RegionController.java 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  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.Assert;
  15. import org.springframework.util.ObjectUtils;
  16. import org.springframework.web.bind.annotation.*;
  17. import java.util.List;
  18. @Tag(name = "区域管理")
  19. @RestController
  20. @RequestMapping("/api/region")
  21. public class RegionController {
  22. private final static Logger logger = LoggerFactory.getLogger(RegionController.class);
  23. @Autowired
  24. private IRegionService regionService;
  25. @Operation(summary = "添加区域")
  26. @Parameter(name = "region", description = "Region", required = true)
  27. @ResponseBody
  28. @PostMapping("/add")
  29. public void add(@RequestBody Region region){
  30. regionService.add(region);
  31. }
  32. @Operation(summary = "查询区域")
  33. @Parameter(name = "query", description = "要搜索的内容", required = true)
  34. @Parameter(name = "page", description = "当前页", required = true)
  35. @Parameter(name = "count", description = "每页查询数量", required = true)
  36. @ResponseBody
  37. @GetMapping("/page/list")
  38. public PageInfo<Region> query(
  39. @RequestParam(required = false) String query,
  40. @RequestParam(required = true) int page,
  41. @RequestParam(required = true) int count
  42. ){
  43. return regionService.query(query, page, count);
  44. }
  45. @Operation(summary = "查询区域")
  46. @Parameter(name = "query", description = "要搜索的内容", required = true)
  47. @Parameter(name = "parent", description = "所属行政区划编号", required = true)
  48. @ResponseBody
  49. @GetMapping("/tree/list")
  50. public List<RegionTree> queryForTree(
  51. @RequestParam(required = false) String query,
  52. @RequestParam(required = false) Integer parent
  53. ){
  54. if (ObjectUtils.isEmpty(query)) {
  55. query = null;
  56. }
  57. return regionService.queryForTree(query, parent);
  58. }
  59. @Operation(summary = "更新区域")
  60. @Parameter(name = "region", description = "Region", required = true)
  61. @ResponseBody
  62. @PostMapping("/update")
  63. public void update(@RequestBody Region region){
  64. regionService.update(region);
  65. }
  66. @Operation(summary = "删除区域")
  67. @Parameter(name = "id", description = "区域ID", required = true)
  68. @ResponseBody
  69. @DeleteMapping("/delete")
  70. public void delete(Integer id){
  71. Assert.notNull(id, "区域ID需要存在");
  72. boolean result = regionService.deleteByDeviceId(id);
  73. if (!result) {
  74. throw new ControllerException(ErrorCode.ERROR100.getCode(), "移除失败");
  75. }
  76. }
  77. @Operation(summary = "根据区域Id查询区域")
  78. @Parameter(name = "regionDeviceId", description = "行政区划节点编号", required = true)
  79. @ResponseBody
  80. @GetMapping("/one")
  81. public Region queryRegionByDeviceId(
  82. @RequestParam(required = true) String regionDeviceId
  83. ){
  84. if (ObjectUtils.isEmpty(regionDeviceId.trim())) {
  85. throw new ControllerException(ErrorCode.ERROR400);
  86. }
  87. return regionService.queryRegionByDeviceId(regionDeviceId);
  88. }
  89. @Operation(summary = "获取所属的行政区划下的行政区划")
  90. @Parameter(name = "parent", description = "所属的行政区划", required = false)
  91. @ResponseBody
  92. @GetMapping("/base/child/list")
  93. public List<Region> getAllChild(@RequestParam(required = false) String parent){
  94. if (ObjectUtils.isEmpty(parent)) {
  95. parent = null;
  96. }
  97. return regionService.getAllChild(parent);
  98. }
  99. @Operation(summary = "从通道中同步行政区划")
  100. @ResponseBody
  101. @GetMapping("/sync")
  102. public void sync(){
  103. regionService.syncFromChannel();
  104. }
  105. }