| | |
| | | package org.sxkj.gd.xingtu; |
| | | |
| | | import com.alibaba.fastjson.JSON; |
| | | import lombok.SneakyThrows; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springblade.core.redis.cache.BladeRedis; |
| | | import org.springblade.core.tool.api.R; |
| | | import org.springblade.core.tool.utils.StringUtil; |
| | |
| | | import org.sxkj.gd.workorder.dto.GdXingtuFlyTaskSaveDTO; |
| | | |
| | | import java.util.HashMap; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import java.util.Objects; |
| | | |
| | |
| | | * @Date 2026/1/26 15:22 |
| | | * @Version 1.0 |
| | | */ |
| | | @Slf4j |
| | | @Service |
| | | public class JianXingtuApiService { |
| | | |
| | |
| | | |
| | | /** |
| | | * 获取星图登录token |
| | | * @return token |
| | | * |
| | | * @return token |
| | | */ |
| | | @SneakyThrows |
| | | public String getToken() { |
| | |
| | | |
| | | /** |
| | | * 设备列表-无人机 |
| | | * |
| | | * @param name 名称 |
| | | * @return 接口响应 |
| | | */ |
| | |
| | | |
| | | /** |
| | | * 设备列表-机巢 |
| | | * |
| | | * @param name 名称 |
| | | * @return 接口响应 |
| | | */ |
| | |
| | | |
| | | /** |
| | | * 新增飞行任务 |
| | | * |
| | | * @param param 请求参数 |
| | | * @return 接口响应 |
| | | */ |
| | |
| | | if (StringUtil.isBlank(token) || "获取token失败".equals(token)) { |
| | | return R.fail("获取token失败"); |
| | | } |
| | | HttpHeaders headers = new HttpHeaders(); |
| | | headers.set("authorization", token); |
| | | |
| | | HttpEntity<Object> entity = new HttpEntity<>(body, headers); |
| | | ResponseEntity<R> response = restTemplate.exchange(url, HttpMethod.POST, entity, R.class); |
| | | if (response.getStatusCode().is2xxSuccessful()) { |
| | | R responseBody = response.getBody(); |
| | | if (responseBody != null) { |
| | | return responseBody; |
| | | try { |
| | | HttpHeaders headers = new HttpHeaders(); |
| | | headers.set("authorization", token); |
| | | log.info("请求外部接口: {} {}", url, JSON.toJSONString(body)); |
| | | HttpEntity<Object> entity = new HttpEntity<>(body, headers); |
| | | ResponseEntity<R> response = restTemplate.exchange(url, HttpMethod.POST, entity, R.class); |
| | | log.info("响应外部接口: {}", response); |
| | | if (response.getStatusCode().is2xxSuccessful()) { |
| | | R responseBody = response.getBody(); |
| | | if (responseBody != null) { |
| | | // 检查接口内部返回的success状态 |
| | | if (!responseBody.isSuccess()) { |
| | | // 提取错误信息,优先使用msg字段 |
| | | String errorMsg = responseBody.getMsg(); |
| | | if (StringUtil.isBlank(errorMsg)) { |
| | | errorMsg = "接口调用失败"; |
| | | } |
| | | log.warn("外部接口返回失败: {}", errorMsg); |
| | | return R.fail(errorMsg); |
| | | } |
| | | return responseBody; |
| | | } |
| | | return R.fail("接口返回为空"); |
| | | } |
| | | return R.fail("接口返回为空"); |
| | | return R.fail("请求外部接口失败,HTTP状态码: " + response.getStatusCode()); |
| | | } catch (Exception e) { |
| | | log.error("请求外部接口异常: ", e); |
| | | return R.fail("请求外部接口异常: " + e.getMessage()); |
| | | } |
| | | return R.fail("请求外部接口失败"); |
| | | } |
| | | |
| | | /** |
| | | * 解析JSON字符串为Map |
| | | * |
| | | * @param input JSON字符串 |
| | | * @return 解析后的Map |
| | | */ |