DevRegionController.java 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. package com.mdd.admin.controller.region;
  2. import com.github.xiaoymin.map.model.MapLocation;
  3. import com.github.xiaoymin.map.request.tencent.AmapGenCoderRequest;
  4. import com.github.xiaoymin.map.response.amap.tencent.AmapGenCoderResponse;
  5. import com.mdd.admin.service.region.IDevRegionService;
  6. import com.mdd.admin.vo.region.DevRegionListVo;
  7. import com.mdd.common.config.map.LikeTenCentClient;
  8. import com.mdd.common.enums.RegionLevelEnum;
  9. import io.swagger.annotations.Api;
  10. import io.swagger.annotations.ApiOperation;
  11. import org.springframework.web.bind.annotation.*;
  12. import javax.annotation.Resource;
  13. import java.util.List;
  14. import java.util.Optional;
  15. /**
  16. * 地区管理
  17. */
  18. @Api(tags = "地区管理")
  19. @RestController
  20. @RequestMapping("api/region")
  21. public class DevRegionController {
  22. @Resource
  23. IDevRegionService iDevRegionService;
  24. @Resource
  25. private LikeTenCentClient mapClient;
  26. /**
  27. * 省市区树形结构
  28. *
  29. * @return Object
  30. */
  31. @ApiOperation(value = "省市区树形结构")
  32. @GetMapping("/tree")
  33. public List<DevRegionListVo> tree() {
  34. // 树形结构
  35. return iDevRegionService.tree();
  36. }
  37. /**
  38. * 省
  39. *
  40. * @return Object
  41. */
  42. @ApiOperation(value = "获取省")
  43. @GetMapping("/province")
  44. public List<DevRegionListVo> province() {
  45. // 国家下查省级数据
  46. return iDevRegionService.province(RegionLevelEnum.PROVINCE.getCode());
  47. }
  48. /**
  49. * 市
  50. *
  51. * @return Object
  52. */
  53. @ApiOperation(value = "获取城市")
  54. @GetMapping("/city")
  55. public List<DevRegionListVo> city(@RequestParam(value = "provinceId", required = false) Long provinceId) {
  56. // 省下查市数据
  57. return iDevRegionService.city(provinceId, RegionLevelEnum.CITY.getCode());
  58. }
  59. /**
  60. * 区
  61. *
  62. * @return Object
  63. */
  64. @ApiOperation(value = "获取县/区")
  65. @GetMapping("/district")
  66. public List<DevRegionListVo> district(@RequestParam(value = "cityId", required = false) Long cityId) {
  67. // 市下查县区数据
  68. return iDevRegionService.district(cityId, RegionLevelEnum.DISTRICT.getCode());
  69. }
  70. /**
  71. * 删除缓存
  72. *
  73. * @return Object
  74. */
  75. @ApiOperation(value = "删除缓存")
  76. @GetMapping("/del/cache")
  77. public void delCache() {
  78. // 删除缓存
  79. iDevRegionService.delCache();
  80. }
  81. /**
  82. * 根据经纬度获取详细地址
  83. *
  84. * @return Object
  85. */
  86. @PostMapping("/genCoder")
  87. public AmapGenCoderResponse genCoder(@RequestBody AmapGenCoderRequest request) {
  88. Optional<AmapGenCoderResponse> tencentGenCoderResponse = mapClient.genCoder(request);
  89. return tencentGenCoderResponse.get();
  90. }
  91. /**
  92. * 根据经纬度获取详细地址
  93. *
  94. * @return Object
  95. */
  96. @GetMapping("/keyWordAddress")
  97. public MapLocation genCoder(@RequestParam("keyWord") String keyWord) {
  98. return mapClient.address(keyWord);
  99. }
  100. }