MapConfigController.java 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. package com.fdkankan.fusion.controller;
  2. import cn.hutool.core.util.URLUtil;
  3. import cn.hutool.http.HttpUtil;
  4. import com.alibaba.fastjson.JSON;
  5. import com.alibaba.fastjson.JSONArray;
  6. import com.alibaba.fastjson.JSONObject;
  7. import com.fdkankan.fusion.common.ResultCode;
  8. import com.fdkankan.fusion.common.ResultData;
  9. import com.fdkankan.fusion.entity.MapConfig;
  10. import com.fdkankan.fusion.exception.BusinessException;
  11. import com.fdkankan.fusion.request.MapParam;
  12. import com.fdkankan.fusion.response.MapVo;
  13. import com.fdkankan.fusion.service.IMapConfigService;
  14. import lombok.extern.slf4j.Slf4j;
  15. import org.apache.commons.lang3.StringUtils;
  16. import org.springframework.beans.factory.annotation.Autowired;
  17. import org.springframework.web.bind.annotation.*;
  18. import java.util.ArrayList;
  19. import java.util.List;
  20. /**
  21. * <p>
  22. * 前端控制器
  23. * </p>
  24. *
  25. * @author
  26. * @since 2024-12-10
  27. */
  28. @RestController
  29. @RequestMapping("/mapConfig")
  30. @Slf4j
  31. public class MapConfigController {
  32. @Autowired
  33. IMapConfigService mapConfigService;
  34. @PostMapping("/geocode")
  35. public ResultData geocode(@RequestBody MapParam param){
  36. try {
  37. if(param.getMapId() == null || StringUtils.isBlank(param.getAddress())){
  38. throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS);
  39. }
  40. MapConfig mapConfig = mapConfigService.getById(param.getMapId());
  41. if(mapConfig == null || mapConfig.getGeocodeUrl() == null){
  42. throw new BusinessException(ResultCode.RECORD_NOT_EXIST);
  43. }
  44. String url = mapConfig.getGeocodeUrl().replace("{address}",param.getAddress());
  45. String s = HttpUtil.get(url);
  46. JSONObject jsonObject = JSON.parseObject(s);
  47. JSONArray jsonArray = jsonObject.getJSONArray(mapConfig.getRespListKey());
  48. List<MapVo> mapVos = new ArrayList<>();
  49. for (Object object : jsonArray) {
  50. JSONObject jsonObject1 = (JSONObject) object;
  51. MapVo vo = new MapVo();
  52. vo.setLocation(jsonObject1.getString(mapConfig.getRespLocationKey()));
  53. vo.setAddress(jsonObject1.getString(mapConfig.getRespAddressKey()));
  54. vo.setName(jsonObject1.getString(mapConfig.getRespNameKey()));
  55. mapVos.add(vo);
  56. }
  57. return ResultData.ok(mapVos);
  58. }catch ( Exception e){
  59. log.info("map-error:{}",e);
  60. }
  61. return ResultData.ok();
  62. }
  63. public static void main(String[] args) {
  64. String s = HttpUtil.get("https://restapi.amap.com/v3/place/text?keywords={address}&offset=20&page=1&key=3609daa52e8ae4493393292213e2fb98&extensions=base");
  65. }
  66. }