From 2db1aa88e8ab53096a936163d686b90d8e056a99 Mon Sep 17 00:00:00 2001
From: rain <167982779@qq.com>
Date: Wed, 21 Aug 2024 23:18:33 +0800
Subject: [PATCH] 国土对接返回信息加密
---
src/main/java/com/dji/sample/wayline/service/impl/WaylineJobServiceImpl.java | 76 ++++++++++++++++++++++++++++++++++++++
1 files changed, 76 insertions(+), 0 deletions(-)
diff --git a/src/main/java/com/dji/sample/wayline/service/impl/WaylineJobServiceImpl.java b/src/main/java/com/dji/sample/wayline/service/impl/WaylineJobServiceImpl.java
index 9eafe2b..12e77fe 100644
--- a/src/main/java/com/dji/sample/wayline/service/impl/WaylineJobServiceImpl.java
+++ b/src/main/java/com/dji/sample/wayline/service/impl/WaylineJobServiceImpl.java
@@ -67,7 +67,11 @@
import java.sql.SQLException;
import java.time.*;
import java.util.*;
+import java.util.concurrent.ConcurrentHashMap;
import java.util.stream.Collectors;
+
+import static com.dji.sample.component.mqtt.model.TopicConst.*;
+import static com.dji.sample.component.mqtt.model.TopicConst._REPLY_SUF;
/**
* @author sean
@@ -679,6 +683,78 @@
}
+ /**
+ * 机场的获取离线地图协议请求回复
+ * @param receiver
+ */
+ @ServiceActivator(inputChannel = ChannelName.INBOUND_REQUESTS_OFFLINE_MAP_GET, outputChannel = ChannelName.OUTBOUND)
+ public void offlineMapGet(CommonTopicReceiver receiver) {
+ log.info("接收到机场的获取离线地图协议消息,编号:{}",receiver.getGateway());
+ // 查询在线设备,不存在就不发送了
+ Optional<DeviceDTO> deviceOpt = deviceRedisService.getDeviceOnline(receiver.getGateway());
+ if (deviceOpt.isEmpty()) {
+ return;
+ }
+ // 组装数据
+ CommonTopicResponse<Object> builder = CommonTopicResponse.builder()
+ .tid(receiver.getTid())
+ .bid(receiver.getBid())
+ .method(RequestsMethodEnum.OFFLINE_MAP_GET.getMethod())
+ .timestamp(System.currentTimeMillis())
+ .build();
+ // 组装 data 数据
+ Map<String, Integer> result = new ConcurrentHashMap<>(1);
+ result.put("result", 0);
+ builder.setData(result);
+ log.info("回复机场的获取离线地图协议消息:{},{}",BASIC_PRE + PRODUCT +receiver.getGateway() + REQUESTS_SUF + _REPLY_SUF, builder );
+ // 回复消息
+ messageSender.publish(
+ new StringBuilder()
+ .append(THING_MODEL_PRE)
+ .append(PRODUCT)
+ .append(receiver.getGateway())
+ .append(REQUESTS_SUF)
+ .append(_REPLY_SUF)
+ .toString(),
+ builder);
+ }
+
+ /**
+ * 自定义飞行区文件获取协议请求回复
+ * @param receiver
+ */
+ @ServiceActivator(inputChannel = ChannelName.INBOUND_REQUESTS_FLIGHT_AREAS_GET, outputChannel = ChannelName.OUTBOUND)
+ public void flightAreasGet(CommonTopicReceiver receiver) {
+ log.info("接收到自定义飞行区文件获取消息,编号:{}",receiver.getGateway());
+ // 查询在线设备,不存在就不发送了
+ Optional<DeviceDTO> deviceOpt = deviceRedisService.getDeviceOnline(receiver.getGateway());
+ if (deviceOpt.isEmpty()) {
+ return;
+ }
+ // 组装数据
+ CommonTopicResponse<Object> builder = CommonTopicResponse.builder()
+ .tid(receiver.getTid())
+ .bid(receiver.getBid())
+ .method(RequestsMethodEnum.FLIGHT_AREAS_GET.getMethod())
+ .timestamp(System.currentTimeMillis())
+ .build();
+ // 组装 data 数据
+ Map<String, Integer> result = new ConcurrentHashMap<>(1);
+ result.put("result", 0);
+ builder.setData(result);
+ log.info("回复自定义飞行区文件获取消息:{},{}",BASIC_PRE + PRODUCT +receiver.getGateway() + REQUESTS_SUF + _REPLY_SUF, builder );
+ // 回复消息
+ messageSender.publish(
+ new StringBuilder()
+ .append(THING_MODEL_PRE)
+ .append(PRODUCT)
+ .append(receiver.getGateway())
+ .append(REQUESTS_SUF)
+ .append(_REPLY_SUF)
+ .toString(),
+ builder);
+ }
+
@Override
public List<String> selectJobIdByName(String name) {
List<WaylineJobEntity> waylineJobs = mapper.selectList(new LambdaQueryWrapper<WaylineJobEntity>()
--
Gitblit v1.9.3