package com.fdkankan.fusion.controller; import cn.hutool.core.util.URLUtil; import cn.hutool.http.HttpUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.fdkankan.fusion.common.ResultCode; import com.fdkankan.fusion.common.ResultData; import com.fdkankan.fusion.entity.MapConfig; import com.fdkankan.fusion.exception.BusinessException; import com.fdkankan.fusion.request.MapParam; import com.fdkankan.fusion.response.MapVo; import com.fdkankan.fusion.service.IMapConfigService; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.util.ArrayList; import java.util.List; /** *
* 前端控制器 *
* * @author * @since 2024-12-10 */ @RestController @RequestMapping("/mapConfig") @Slf4j public class MapConfigController { @Autowired IMapConfigService mapConfigService; @PostMapping("/geocode") public ResultData geocode(@RequestBody MapParam param){ try { if(param.getMapId() == null || StringUtils.isBlank(param.getAddress())){ throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS); } MapConfig mapConfig = mapConfigService.getById(param.getMapId()); if(mapConfig == null || mapConfig.getGeocodeUrl() == null){ throw new BusinessException(ResultCode.RECORD_NOT_EXIST); } String url = mapConfig.getGeocodeUrl().replace("{address}",param.getAddress()); String s = HttpUtil.get(url); JSONObject jsonObject = JSON.parseObject(s); JSONArray jsonArray = jsonObject.getJSONArray(mapConfig.getRespListKey()); List