From a13506f193f38720ae2729f9c2ceb35bf9fdb898 Mon Sep 17 00:00:00 2001 From: kaiyu <404897439@qq.com> Date: Mon, 28 Sep 2020 11:50:05 +0800 Subject: [PATCH] 更新获取风向和设备信息,添加经纬度,修改rabbit MQ代码。 --- src/main/resources/mapper/DeviceMapper.xml | 2 +- src/main/java/com/moral/webSocketServer/BSWebsocketServer.java | 26 +++++++++++++++++++------- src/main/java/com/moral/config/WebSocketConfig.java | 4 ++-- 3 files changed, 22 insertions(+), 10 deletions(-) diff --git a/src/main/java/com/moral/config/WebSocketConfig.java b/src/main/java/com/moral/config/WebSocketConfig.java index 0f071cb..565181b 100644 --- a/src/main/java/com/moral/config/WebSocketConfig.java +++ b/src/main/java/com/moral/config/WebSocketConfig.java @@ -17,10 +17,10 @@ public class WebSocketConfig { //��������������������������������� - /* @Bean + @Bean public ServerEndpointExporter serverEndpointExporter() { return new ServerEndpointExporter(); - }*/ + } @Bean public MessageConverter jsonMessageConverter() { diff --git a/src/main/java/com/moral/webSocketServer/BSWebsocketServer.java b/src/main/java/com/moral/webSocketServer/BSWebsocketServer.java index acd222b..ce40a43 100644 --- a/src/main/java/com/moral/webSocketServer/BSWebsocketServer.java +++ b/src/main/java/com/moral/webSocketServer/BSWebsocketServer.java @@ -46,7 +46,6 @@ private String regionCode; - private final String exchange = "screens_data"; private static Map<String, Sensor> sensors; @@ -68,8 +67,8 @@ public void onOpen(Session session, @PathParam("param") String param) { this.session = session; String[] params = param.split("&"); - this.orgId = params[1]; this.accountId = params[0]; + this.orgId = params[1]; this.regionCode = params[2]; if (webSocketMap.containsKey(accountId)) { @@ -99,13 +98,18 @@ } //������������,��������������������� + channel.basicQos(1);//��������������������������� channel.basicConsume(queue, false, new DefaultConsumer(channel) { @Override public void handleDelivery(String consumerTag, Envelope envelope, AMQP.BasicProperties properties, byte[] body) throws IOException { Map message = (Map) JSON.parse((String) JSON.parse(new String(body))); - message = messageFormat(message); + message = messageFormat(message,deviceList); sendMessage(JSON.toJSONString(message)); channel.basicAck(envelope.getDeliveryTag(), false); + //������socket������������������ + if (!webSocketMap.containsKey(accountId)) { + RabbitMQUtils.closeConnectionChannel(connection,channel); + } } }); } catch (IOException e) { @@ -142,17 +146,25 @@ } } - //���MQ������������������������������������ - private Map<String,Object> messageFormat( Map<String,Object> param) { + //���MQ��������������������������������������������������������������� + private Map<String,Object> messageFormat( Map<String,Object> param,List<Device> deviceList) { Map<String, Object> map = new HashMap<>(); - param.forEach((key, value) -> { ; + param.forEach((key, value) -> { Sensor sensor = sensors.get(key); if (!ObjectUtils.isEmpty(sensor)) { String unit = ObjectUtils.isEmpty(sensor.getUnit())?"":(String)sensor.getUnit(); map.put(sensor.getName(),value+unit); } }); - map.put("mac",param.get("mac")); + String mac = (String) param.get("mac"); + for (Device device : deviceList) { + if(mac.equals(device.getMac())){ + map.put("������",device.getLatitude()); + map.put("������",device.getLongitude()); + break; + } + } + map.put("mac",mac); return map; } diff --git a/src/main/resources/mapper/DeviceMapper.xml b/src/main/resources/mapper/DeviceMapper.xml index d0700b9..092f8ce 100644 --- a/src/main/resources/mapper/DeviceMapper.xml +++ b/src/main/resources/mapper/DeviceMapper.xml @@ -484,7 +484,7 @@ </select> <select id="selectDevicesAll" parameterType="java.util.Map" resultType="com.moral.entity.Device"> - SELECT dev.id,dev.mac,dev.device_version_id deviceVersionId from device dev + SELECT dev.id,dev.mac,dev.longitude,dev.latitude,dev.device_version_id deviceVersionId from device dev left join monitor_point mpt on dev.monitor_point_id = mpt.id <where> <if test="@com.moral.common.bean.Constants@isNotSpecialOrgId(orgId)"> -- Gitblit v1.8.0