Merge branch 'v4.6.9'

# Conflicts:
#	src/main/java/com/ifish/entity/hbm/DeviceOffline.hbm.xml
#	src/main/java/com/ifish/quartz/ExecuteJob.java
#	src/main/java/com/ifish/socketNew/MinaServerHandler.java
#	src/main/java/com/ifish/socketNew/SomeServer.java
#	src/main/resources/mq.properties
This commit is contained in:
易焱 2019-06-02 22:38:44 +08:00
commit 5f6255d9dd
11 changed files with 306 additions and 313 deletions

View File

@ -9,7 +9,7 @@
<property name="offlineMacAddress" column="offline_mac_address" type="string" length="50"/> <property name="offlineMacAddress" column="offline_mac_address" type="string" length="50"/>
<property name="offlineFactoryCode" column="offline_factory_code" type="string" length="10"/> <property name="offlineFactoryCode" column="offline_factory_code" type="string" length="10"/>
<property name="offlineDeviceType" column="offline_device_type" type="string" length="10"/> <property name="offlineDeviceType" column="offline_device_type" type="string" length="10"/>
<property name="offlineTime" column="offline_time" type="date" /> <property name="offlineTime" column="offline_time" type="timestamp" />
<property name="offlineSdkVersion" column="offline_sdk_version" type="string" length="20"/> <property name="offlineSdkVersion" column="offline_sdk_version" type="string" length="20"/>
</class> </class>
</hibernate-mapping> </hibernate-mapping>

View File

@ -1,40 +1,119 @@
package com.ifish.quartz; package com.ifish.quartz;
import java.util.Date; import com.alibaba.fastjson.JSON;
import java.util.HashMap; import com.alibaba.fastjson.JSONObject;
import java.util.List;
import java.util.Map;
import com.ifish.entity.*; import com.ifish.entity.*;
import com.ifish.util.IfishUtil; import com.ifish.entity.event.QueueEventBody;
import org.apache.mina.core.session.IoSession; import com.ifish.entity.event.QueueEventEntity;
import org.quartz.Job;
import org.quartz.JobDataMap;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import com.ifish.enums.BooleanEnum;
import com.ifish.enums.NeteaseEnum;
import com.ifish.enums.PushTypeEnum; import com.ifish.enums.PushTypeEnum;
import com.ifish.netease.NeteaseIM; import com.ifish.netease.NeteaseIM;
import com.ifish.service.DeviceService; import com.ifish.service.DeviceService;
import com.ifish.service.UserService; import com.ifish.service.UserService;
import com.ifish.socketNew.SomeServer; import com.ifish.socketNew.SomeServer;
import com.ifish.util.IfishUtil;
import org.apache.log4j.Logger;
import org.apache.mina.core.session.IoSession;
import org.quartz.Job;
import org.quartz.JobDataMap;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jms.core.JmsTemplate;
import javax.jms.Destination;
import javax.jms.JMSException;
import javax.jms.Session;
import java.util.List;
public class ExecuteJob implements Job { public class ExecuteJob implements Job {
private static Logger log = LoggerFactory.getLogger(ExecuteJob.class); private static Logger log = Logger.getLogger(ExecuteJob.class);
@Autowired @Autowired
private NeteaseIM neteaseIM; private NeteaseIM neteaseIM;
@Autowired @Autowired
private UserService userService; private UserService userService;
@Autowired @Autowired
private DeviceService deviceService; private DeviceService deviceService;
@Autowired
private JmsTemplate jmsTemplate;
@Autowired
private Destination ifish7PushQueueDestination;
public void execute(JobExecutionContext context) throws JobExecutionException { public void execute(JobExecutionContext context) throws JobExecutionException {
//任务传递的参数
JobDataMap dataMap = context.getJobDetail().getJobDataMap();
String macAddress = dataMap.getString("macAddress");
String timestamp = dataMap.getString("timestamp");
try {
log.info("离线时间 --> " + timestamp);
log.info("离线设备 --> " + macAddress);
//移除为null的连接
IoSession session_cz = SomeServer.sessions_cz.get(macAddress);
if(session_cz==null || session_cz.getRemoteAddress()==null){
SomeServer.sessions_cz.remove(macAddress);
}
//设备是否存在
Device device = deviceService.getUniqueByProperty("macAddress", macAddress);
if(device!=null){
//保存离线的设备信息
DeviceOffline deviceOffline = new DeviceOffline();
deviceOffline.setOfflineMacAddress(device.getMacAddress());
deviceOffline.setOfflineFactoryCode(device.getFactoryCode());
deviceOffline.setOfflineDeviceType(device.getHardwareType());
deviceOffline.setOfflineSdkVersion(String.valueOf(device.getSdkVersion()));
deviceOffline.setOfflineTime(IfishUtil.StrToDate1(timestamp));
deviceService.saveDeviceOffline(deviceOffline);
log.info("离线设备信息保存++++++++++++++++++++++++++++++++++++++++++");
List<DeviceUser> list = deviceService.getListByProperty(device.getDeviceId());
//是否被绑定
if(list!=null){
for (DeviceUser deviceUser : list) {
Integer userId = deviceUser.getPriId().getUserId();
String showName = deviceUser.getShowName();
String title = PushTypeEnum.offline_push.getValue();
String msg = ""+title+"】你的水族箱“"+showName+"”于"+timestamp+"离线,请及时查看!";
User user = userService.findById(userId);
if(user!=null){
//推送记录
PushList pushList = new PushList();
//记录推送
pushList.setUserId(userId);
pushList.setDeviceId(deviceUser.getPriId().getDeviceId());
pushList.setPhoneType("ALL");
pushList.setShowName(showName);
pushList.setPushType(PushTypeEnum.offline_push.getKey());
pushList.setPushTitle(title);
pushList.setPushContext(msg);
pushList.setNumber1(device.getNumber1());
pushList.setNumber2(device.getNumber2());
pushList.setNumber3(device.getNumber3());
pushList.setNumber4(device.getNumber4());
pushList.setNumber5(device.getNumber5());
JSONObject data = JSON.parseObject(JSON.toJSONString(pushList));
QueueEventEntity eventEntity = new QueueEventEntity();
eventEntity.setEventName("com.ifish7.mq.queues.event.PushNotifcationEvent");
eventEntity.setEventProcess("deviceNotifcationPlus");
QueueEventBody eventBody = new QueueEventBody("com.ifish7.mq.business.user.entity.TblPushList",data);
eventEntity.setEventBody(eventBody);
//推送至消息推送队列
sendPushQueueMessage(JSONObject.toJSONString(eventEntity));
}
}
}
}
} catch (Exception e) {
log.error(e.getMessage(),e);
}
}
/**
* 推送Push消息队列
* @param json 内容
*/
private void sendPushQueueMessage(final String json) throws JMSException {
jmsTemplate.send(ifish7PushQueueDestination,(Session session) -> session.createTextMessage(json));
}
/*public void execute(JobExecutionContext context) throws JobExecutionException {
//任务传递的参数 //任务传递的参数
JobDataMap dataMap = context.getJobDetail().getJobDataMap(); JobDataMap dataMap = context.getJobDetail().getJobDataMap();
String macAddress = dataMap.getString("macAddress"); String macAddress = dataMap.getString("macAddress");
@ -56,7 +135,7 @@ public class ExecuteJob implements Job {
deviceOffline.setOfflineSdkVersion(String.valueOf(device.getSdkVersion())); deviceOffline.setOfflineSdkVersion(String.valueOf(device.getSdkVersion()));
deviceOffline.setOfflineTime(IfishUtil.StrToDate1(timestamp)); deviceOffline.setOfflineTime(IfishUtil.StrToDate1(timestamp));
deviceService.saveDeviceOffline(deviceOffline); deviceService.saveDeviceOffline(deviceOffline);
log.info("离线设备信息保存++++++++++++++++++++++++++++++++++++++++++");
//记录次数 //记录次数
Integer number1 = device.getNumber1(); Integer number1 = device.getNumber1();
Integer number2 = device.getNumber2(); Integer number2 = device.getNumber2();
@ -113,8 +192,8 @@ public class ExecuteJob implements Job {
} }
} }
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); log.error(e.getMessage(),e);
log.error("error msg:{}",e.toString());
} }
} }*/
} }

View File

@ -1,15 +1,7 @@
package com.ifish.quartz; package com.ifish.quartz;
import org.apache.log4j.Logger; import org.apache.log4j.Logger;
import org.quartz.JobBuilder; import org.quartz.*;
import org.quartz.JobDetail;
import org.quartz.JobKey;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.SchedulerFactory;
import org.quartz.Trigger;
import org.quartz.TriggerBuilder;
import org.quartz.TriggerKey;
import org.quartz.impl.StdSchedulerFactory; import org.quartz.impl.StdSchedulerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@ -35,7 +27,7 @@ public class ScheduleJob {
scheduler.setJobFactory(jobFactory); scheduler.setJobFactory(jobFactory);
scheduler.start(); scheduler.start();
} catch (SchedulerException e) { } catch (SchedulerException e) {
log.error(String.format("start scheduler error:{%s}",e.toString())); log.info(String.format("start scheduler error:{%s}",e.toString()));
} }
} }
/** /**
@ -60,7 +52,7 @@ public class ScheduleJob {
//添加触发器 //添加触发器
scheduler.scheduleJob(jobDetail,trigger); scheduler.scheduleJob(jobDetail,trigger);
} catch (SchedulerException e) { } catch (SchedulerException e) {
log.error(String.format("addJob error【macAddress:{%s},jobGroup:{%s},triggerGroup:{%s},errMsg:{%s}】",jobGroup.getMacAddress(),jobGroup.getJobName(),jobGroup.getTriggerGroup(),e.toString())); log.info(String.format("addJob error【macAddress:{%s},jobGroup:{%s},triggerGroup:{%s},errMsg:{%s}】",jobGroup.getMacAddress(),jobGroup.getJobName(),jobGroup.getTriggerGroup(),e.toString()));
// log.error("addJob error【macAddress:{},jobGroup:{},triggerGroup:{},errMsg:{}】",jobGroup.getMacAddress(),jobGroup.getJobName(),jobGroup.getTriggerGroup(),e.toString()); // log.error("addJob error【macAddress:{},jobGroup:{},triggerGroup:{},errMsg:{}】",jobGroup.getMacAddress(),jobGroup.getJobName(),jobGroup.getTriggerGroup(),e.toString());
} }
} }
@ -83,7 +75,7 @@ public class ScheduleJob {
//删除任务 //删除任务
scheduler.deleteJob(jobKey); scheduler.deleteJob(jobKey);
} catch (SchedulerException e) { } catch (SchedulerException e) {
log.error(String.format("deleteJob error【macAddress:{%s},jobGroup:{%s},triggerGroup:{%s},errMsg:{%s}】",jobGroup.getMacAddress(),jobGroup.getJobName(),jobGroup.getTriggerGroup(),e.toString())); log.info(String.format("deleteJob error【macAddress:{%s},jobGroup:{%s},triggerGroup:{%s},errMsg:{%s}】",jobGroup.getMacAddress(),jobGroup.getJobName(),jobGroup.getTriggerGroup(),e.toString()));
} }
} }
@ -95,7 +87,7 @@ public class ScheduleJob {
//关闭任务 //关闭任务
scheduler.shutdown(); scheduler.shutdown();
} catch (SchedulerException e) { } catch (SchedulerException e) {
log.error(String.format("shutdown scheduler error:{%s}",e.toString())); log.info(String.format("shutdown scheduler error:{%s}",e.toString()));
} }
} }

View File

@ -1,18 +1,16 @@
package com.ifish.socketNew; package com.ifish.socketNew;
import java.util.Date;
import java.util.concurrent.atomic.AtomicInteger;
import org.apache.mina.core.service.IoHandlerAdapter;
import org.apache.mina.core.session.IdleStatus;
import org.apache.mina.core.session.IoSession;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import com.ifish.quartz.JobGroup; import com.ifish.quartz.JobGroup;
import com.ifish.quartz.ScheduleJob; import com.ifish.quartz.ScheduleJob;
import com.ifish.util.IfishUtil; import com.ifish.util.IfishUtil;
import org.apache.log4j.Logger;
import org.apache.mina.core.service.IoHandlerAdapter;
import org.apache.mina.core.session.IdleStatus;
import org.apache.mina.core.session.IoSession;
import org.springframework.beans.factory.annotation.Autowired;
import java.util.Date;
import java.util.concurrent.atomic.AtomicInteger;
/** /**
* mina服务器端事件处理 * mina服务器端事件处理
@ -23,7 +21,7 @@ public class MinaServerHandler extends IoHandlerAdapter {
private final AtomicInteger atomicInt = new AtomicInteger(); private final AtomicInteger atomicInt = new AtomicInteger();
private static Logger log = LoggerFactory.getLogger(MinaServerHandler.class); private static Logger log = Logger.getLogger(MinaServerHandler.class);
@Autowired @Autowired
private SomeServer someServer; private SomeServer someServer;
@ -33,7 +31,7 @@ public class MinaServerHandler extends IoHandlerAdapter {
@Override @Override
public void exceptionCaught(IoSession session, Throwable cause) throws Exception { public void exceptionCaught(IoSession session, Throwable cause) throws Exception {
cause.printStackTrace(); cause.printStackTrace();
log.error("{}服务器-客户端session异常:{}", session.getRemoteAddress(), cause.toString()); log.error(String.format("{%s}服务器-客户端session异常:", session.getRemoteAddress()), cause);
} }
/** /**
@ -49,7 +47,7 @@ public class MinaServerHandler extends IoHandlerAdapter {
*/ */
@Override @Override
public void sessionCreated(IoSession session) throws Exception { public void sessionCreated(IoSession session) throws Exception {
log.info("{}:会话创建,在线数:{}", session.getRemoteAddress(), atomicInt.incrementAndGet()); log.info(String.format("{%s}:会话创建,在线数:{%s}", session.getRemoteAddress(), atomicInt.incrementAndGet()));
} }
/** /**
@ -57,7 +55,7 @@ public class MinaServerHandler extends IoHandlerAdapter {
*/ */
@Override @Override
public void sessionClosed(IoSession session) throws Exception { public void sessionClosed(IoSession session) throws Exception {
log.info("{}:会话关闭,连接数:{}", session.getRemoteAddress(), atomicInt.decrementAndGet()); log.info(String.format("{%s}:会话关闭在线数:{%s}", session.getRemoteAddress(), atomicInt.incrementAndGet()));
//旧连接关闭,获取设备mac地址 //旧连接关闭,获取设备mac地址
String oldConnect = session.getRemoteAddress().toString(); String oldConnect = session.getRemoteAddress().toString();
String macAddress = SomeServer.remoteAddress.get(oldConnect); String macAddress = SomeServer.remoteAddress.get(oldConnect);
@ -92,7 +90,8 @@ public class MinaServerHandler extends IoHandlerAdapter {
//离线时间 //离线时间
jobGroup.setTimestamp(IfishUtil.format(new Date())); jobGroup.setTimestamp(IfishUtil.format(new Date()));
//10分钟后推送 update 30分钟 //10分钟后推送 update 30分钟
jobGroup.setStartTime(new Date(System.currentTimeMillis() + 600000L * 3)); // jobGroup.setStartTime(new Date(System.currentTimeMillis() + 600000L * 3));
jobGroup.setStartTime(new Date(System.currentTimeMillis() + 60000L));
scheduleJob.addJob(jobGroup); scheduleJob.addJob(jobGroup);
} }
@ -110,7 +109,7 @@ public class MinaServerHandler extends IoHandlerAdapter {
@Override @Override
public void sessionIdle(IoSession session, IdleStatus status) public void sessionIdle(IoSession session, IdleStatus status)
throws Exception { throws Exception {
log.info("空闲超时,服务器主动关闭连接{}", session.getRemoteAddress()); log.info(String.format("空闲超时,服务器主动关闭连接{%s}", session.getRemoteAddress()));
session.close(true); session.close(true);
} }

View File

@ -2,10 +2,7 @@ package com.ifish.socketNew;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.ifish.entity.Device; import com.ifish.entity.*;
import com.ifish.entity.DeviceUser;
import com.ifish.entity.PushList;
import com.ifish.entity.User;
import com.ifish.entity.event.QueueEventBody; import com.ifish.entity.event.QueueEventBody;
import com.ifish.entity.event.QueueEventEntity; import com.ifish.entity.event.QueueEventEntity;
import com.ifish.enums.BooleanEnum; import com.ifish.enums.BooleanEnum;
@ -29,10 +26,12 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jms.core.JmsTemplate; import org.springframework.jms.core.JmsTemplate;
import org.springframework.jms.core.MessageCreator;
import javax.jms.Destination; import javax.jms.Destination;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.Session; import javax.jms.Session;
import java.time.LocalDateTime;
import java.util.Calendar; import java.util.Calendar;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
@ -56,8 +55,6 @@ public class SomeServer {
@Autowired @Autowired
private JmsTemplate jmsTemplate; private JmsTemplate jmsTemplate;
@Autowired @Autowired
private Destination ifish7DataQueueDestination;
@Autowired
private Destination ifish7PushQueueDestination; private Destination ifish7PushQueueDestination;
//是否回复心跳 //是否回复心跳
@ -79,17 +76,16 @@ public class SomeServer {
byte[] bytes = (byte[]) message; byte[] bytes = (byte[]) message;
//长度 //长度
int length = bytes[14] & 0xff; int length = bytes[14] & 0xff;
//mac地址
IoBuffer ioBuffer = ByteUtil.byteToIoBuffer(bytes, length); IoBuffer ioBuffer = ByteUtil.byteToIoBuffer(bytes, length);
//类型
byte type = ioBuffer.get(); byte type = ioBuffer.get();
// int Check_code = (int) ioBuffer.get();
//mac地址
byte[] srcByte = new byte[6]; byte[] srcByte = new byte[6];
for (int i = 2; i < 8; i++) { for (int i = 2; i < 8; i++) {
srcByte[i-2] = bytes[i]; srcByte[i-2] = bytes[i];
} }
String strSrc = ByteUtil.bytesToHexString(srcByte); String strSrc = ByteUtil.bytesToHexString(srcByte);
//心跳 //如果为设备端返回 发送给app端
if(type == 1){ if(type == 1){
sendToApp(session,strSrc, message); sendToApp(session,strSrc, message);
} }
@ -101,31 +97,15 @@ public class SomeServer {
BackFunctionCodeHeater heater = (BackFunctionCodeHeater) message; BackFunctionCodeHeater heater = (BackFunctionCodeHeater) message;
String macAddress = ByteUtil.bytesToHexString(heater.getSrc()); String macAddress = ByteUtil.bytesToHexString(heater.getSrc());
String hour = String.valueOf(Calendar.getInstance().get(Calendar.HOUR_OF_DAY)); String hour = String.valueOf(Calendar.getInstance().get(Calendar.HOUR_OF_DAY));
// List<DeviceHeater> deviceHeaters = deviceService.getDeviceHeaterByProperty(hour, macAddress,IfishUtil.format1(new Date())); List<DeviceHeater> deviceHeaters = deviceService.getDeviceHeaterByProperty(hour, macAddress,IfishUtil.format1(new Date()));
// if (deviceHeaters.size() > 0) { if (deviceHeaters.size() > 0) {
// DeviceHeater deviceHeater = deviceHeaters.get(0); DeviceHeater deviceHeater = deviceHeaters.get(0);
// deviceHeater.setHeaterWaterTemperature(String.valueOf(heater.getWaterTemperature())); deviceHeater.setHeaterWaterTemperature(String.valueOf(heater.getWaterTemperature()));
// deviceHeater.setHeaterPh(String.valueOf(heater.getPh())); deviceHeater.setHeaterPh(String.valueOf(heater.getPh()));
// deviceService.update(deviceHeater); deviceService.update(deviceHeater);
// } else { } else {
// deviceService.save(heater); deviceService.save(heater);
// } }
JSONObject data = new JSONObject();
data.put("heaterMacAddress",macAddress);
data.put("heaterWaterTemperature",heater.getHeatingTemperature());
data.put("heaterPh",heater.getPh());
data.put("heaterGatheringDate",IfishUtil.format1(new Date()));
data.put("heaterGatheringTime",hour);
QueueEventEntity eventEntity = new QueueEventEntity();
eventEntity.setEventName("com.ifish7.mq.queues.event.IntelligentHeatingRodEvent");
eventEntity.setEventProcess("intelligentHeatingRodSaveOrUpdate");
QueueEventBody eventBody = new QueueEventBody("com.ifish7.mq.business.device.entity.TblDeviceHeater",data);
eventEntity.setEventBody(eventBody);
//智能加热棒数据更新及保存
sendDataQueueMessage(JSONObject.toJSONString(eventEntity));
//设备重新连接上则移除延时推送的任务 //设备重新连接上则移除延时推送的任务
JobGroup jobGroup = new JobGroup(); JobGroup jobGroup = new JobGroup();
jobGroup.setJobName(macAddress); jobGroup.setJobName(macAddress);
@ -141,17 +121,7 @@ public class SomeServer {
try { try {
Integer Onoff = receive.getOnoff() & 0xff; Integer Onoff = receive.getOnoff() & 0xff;
if(Onoff==1 || Onoff==0){ if(Onoff==1 || Onoff==0){
JSONObject data = new JSONObject(); deviceService.updateWarnOnoff(strDest,Onoff.toString());
data.put("onOff",Onoff);
data.put("macAddress",strDest);
QueueEventEntity eventEntity = new QueueEventEntity();
eventEntity.setEventName("com.ifish7.mq.queues.event.DeviceInfoEvent");
eventEntity.setEventProcess("updateWarnOnoff");
QueueEventBody eventBody = new QueueEventBody("com.ifish7.mq.business.device.entity.TblDevice",data);
eventEntity.setEventBody(eventBody);
//温度开关更新
sendDataQueueMessage(JSONObject.toJSONString(eventEntity));
// deviceService.updateWarnOnoff(strDest,Onoff.toString());
} }
else{ else{
log.error("error Onoff:{},macAddress:{}",Onoff,strDest); log.error("error Onoff:{},macAddress:{}",Onoff,strDest);
@ -195,41 +165,8 @@ public class SomeServer {
jobGroup.setTriggerName(strSrc); jobGroup.setTriggerName(strSrc);
scheduleJob.deleteJob(jobGroup); scheduleJob.deleteJob(jobGroup);
try { try {
//macAddr地址
String stcMac = ByteUtil.bytesToHexString(model.getSrc());
//IP
byte[] log_Ip= receive.getLogin_ip();
StringBuilder ipStr = new StringBuilder();
for (int i = 0; i < log_Ip.length; i++) {
int v = log_Ip[i] & 0xff;
if(i==0){
ipStr.append(v);
}
else{
ipStr.append("."+v);
}
}
Integer version = receive.getVersion() & 0xff;
String factoryCode = ByteUtil.toHex(receive.getVendor());
factoryCode = factoryCode.equals("01")?"0a":factoryCode;
String typeCode = ByteUtil.toHex(receive.getHardware_type());
JSONObject data = new JSONObject();
data.put("macAddress",stcMac);
data.put("deviceIp",ipStr.toString());
data.put("factoryCode",factoryCode);
data.put("hardwareType",typeCode);
data.put("softwareVersion",version);
QueueEventEntity eventEntity = new QueueEventEntity();
eventEntity.setEventName("com.ifish7.mq.queues.event.DeviceInfoEvent");
eventEntity.setEventProcess("deviceLoginSaveOrUpdate");
QueueEventBody eventBody = new QueueEventBody("com.ifish7.mq.business.device.entity.TblDevice",data);
eventEntity.setEventBody(eventBody);
//温度开关更新
sendDataQueueMessage(JSONObject.toJSONString(eventEntity));
//更新设备信息 //更新设备信息
// deviceService.update(receive); deviceService.update(receive);
// if(device==null){ // if(device==null){
// String HexDump = ByteUtil.toHex(receive.getType())+ByteUtil.toHex(receive.getCheck_code())+ByteUtil.bytesToHexString(receive.getSrc())+ByteUtil.bytesToHexString(destBytes)+ByteUtil.toHex(receive.getRemote_len())+ByteUtil.toHex(receive.getVendor())+ByteUtil.toHex(receive.getHardware_type())+ByteUtil.toHex(receive.getVersion())+ByteUtil.bytesToHexString(receive.getLogin_ip())+ByteUtil.bytesToHexString(receive.getCrc16_code()); // String HexDump = ByteUtil.toHex(receive.getType())+ByteUtil.toHex(receive.getCheck_code())+ByteUtil.bytesToHexString(receive.getSrc())+ByteUtil.bytesToHexString(destBytes)+ByteUtil.toHex(receive.getRemote_len())+ByteUtil.toHex(receive.getVendor())+ByteUtil.toHex(receive.getHardware_type())+ByteUtil.toHex(receive.getVersion())+ByteUtil.bytesToHexString(receive.getLogin_ip())+ByteUtil.bytesToHexString(receive.getCrc16_code());
// log.error("HexDump:{}",HexDump); // log.error("HexDump:{}",HexDump);
@ -237,21 +174,10 @@ public class SomeServer {
// } // }
// else{ // else{
//记录登录时间 //记录登录时间
JSONObject data1 = new JSONObject(); LoginRecord loginRecord = new LoginRecord();
data1.put("macAddress",stcMac); loginRecord.setMacAddress(strSrc);
QueueEventEntity eventEntity1 = new QueueEventEntity(); loginRecord.setLoginTime(new Date());
eventEntity1.setEventName("com.ifish7.mq.queues.event.DeviceInfoEvent"); deviceService.save(loginRecord);
eventEntity1.setEventProcess("deviceLoginLogSave");
QueueEventBody eventBody1 = new QueueEventBody("com.ifish7.mq.business.device.entity.TblLoginRecord",data1);
eventEntity1.setEventBody(eventBody1);
//登录记录保存
sendDataQueueMessage(JSONObject.toJSONString(eventEntity1));
// LoginRecord loginRecord = new LoginRecord();
// loginRecord.setMacAddress(strSrc);
// loginRecord.setLoginTime(new Date());
// deviceService.save(loginRecord);
// } // }
} catch (Exception e) { } catch (Exception e) {
log.error("save device login error:macAddress:{},error msg:{}",strSrc,e.toString()); log.error("save device login error:macAddress:{},error msg:{}",strSrc,e.toString());
@ -301,34 +227,19 @@ public class SomeServer {
//查找设备 //查找设备
Device device = this.deviceService.getUniqueByProperty("macAddress", strSrc); Device device = this.deviceService.getUniqueByProperty("macAddress", strSrc);
if(device!=null){ if(device!=null){
JSONObject data = new JSONObject();
data.put("macAddress",strSrc);
//是否升级 //是否升级
if(device.getIsUpgrade().equals(BooleanEnum.YES.getKey())){ if(device.getIsUpgrade().equals(BooleanEnum.YES.getKey())){
data.put("isUpgrade",BooleanEnum.NO.getKey()); device.setIsUpgrade(BooleanEnum.NO.getKey());
data.put("upgradeTime", LocalDateTime.now()); device.setUpgradeTime(new Date());
//
// device.setIsUpgrade(BooleanEnum.NO.getKey());
// device.setUpgradeTime(new Date());
//升级版本 //升级版本
int upgradeVersion = device.getUpgradeVersion(); int upgradeVersion = device.getUpgradeVersion();
OrderFunctionCode15 model = OrderModel.OrderFunctionCode15(macBytes,upgradeVersion); OrderFunctionCode15 model = OrderModel.OrderFunctionCode15(macBytes,upgradeVersion);
session.write(model); session.write(model);
} }
data.put("sdkTime",IfishUtil.StrToDate(receive.getYear()+"-"+(receive.getMonth() & 0xff)+"-"+(receive.getDay() & 0xff)));
data.put("sdkVersion",receive.getVersion() & 0xff);
QueueEventEntity eventEntity = new QueueEventEntity();
eventEntity.setEventName("com.ifish7.mq.queues.event.DeviceInfoEvent");
eventEntity.setEventProcess("deviceSdkUpdate");
QueueEventBody eventBody = new QueueEventBody("com.ifish7.mq.business.device.entity.TblDevice",data);
eventEntity.setEventBody(eventBody);
//设备sdk更新
sendDataQueueMessage(JSONObject.toJSONString(eventEntity));
//记录参数 //记录参数
// device.setSdkVersion(receive.getVersion() & 0xff); device.setSdkVersion(receive.getVersion() & 0xff);
// device.setSdkTime(IfishUtil.StrToDate(receive.getYear()+"-"+(receive.getMonth() & 0xff)+"-"+(receive.getDay() & 0xff))); device.setSdkTime(IfishUtil.StrToDate(receive.getYear()+"-"+(receive.getMonth() & 0xff)+"-"+(receive.getDay() & 0xff)));
// this.deviceService.update(device); this.deviceService.update(device);
} }
} catch (Exception e) { } catch (Exception e) {
log.error("save device sdk version16 error:macAddress:{},error msg:{}",strSrc,e.toString()); log.error("save device sdk version16 error:macAddress:{},error msg:{}",strSrc,e.toString());
@ -342,46 +253,25 @@ public class SomeServer {
try { try {
//查找设备 //查找设备
Device device = this.deviceService.getUniqueByProperty("macAddress", strSrc); Device device = this.deviceService.getUniqueByProperty("macAddress", strSrc);
JSONObject data = new JSONObject();
data.put("macAddress",strSrc);
if(device!=null){ if(device!=null){
//是否升级 //是否升级
if(device.getIsUpgrade().equals(BooleanEnum.YES.getKey())){ if(device.getIsUpgrade().equals(BooleanEnum.YES.getKey())){
data.put("isUpgrade",BooleanEnum.NO.getKey()); device.setIsUpgrade(BooleanEnum.NO.getKey());
data.put("upgradeTime", LocalDateTime.now()); device.setUpgradeTime(new Date());
// device.setIsUpgrade(BooleanEnum.NO.getKey());
// device.setUpgradeTime(new Date());
//升级版本 //升级版本
int upgradeVersion = device.getUpgradeVersion(); int upgradeVersion = device.getUpgradeVersion();
OrderFunctionCode15 model = OrderModel.OrderFunctionCode15(macBytes,upgradeVersion); OrderFunctionCode15 model = OrderModel.OrderFunctionCode15(macBytes,upgradeVersion);
session.write(model); session.write(model);
} }
data.put("sdkTime",IfishUtil.StrToDate(receive.getYear()+"-"+(receive.getMonth() & 0xff)+"-"+(receive.getDay() & 0xff)));
data.put("sdkVersion",receive.getVersion() & 0xff);
data.put("number1",receive.getNumber1());
data.put("number2",receive.getNumber2());
data.put("number3",receive.getNumber3());
data.put("number4",receive.getNumber4());
data.put("number5",receive.getNumber5());
QueueEventEntity eventEntity = new QueueEventEntity();
eventEntity.setEventName("com.ifish7.mq.queues.event.DeviceInfoEvent");
eventEntity.setEventProcess("deviceSdkUpdate");
QueueEventBody eventBody = new QueueEventBody("com.ifish7.mq.business.device.entity.TblDevice",data);
eventEntity.setEventBody(eventBody);
//设备sdk更新
sendDataQueueMessage(JSONObject.toJSONString(eventEntity));
//记录参数 //记录参数
// device.setSdkVersion(receive.getVersion() & 0xff); device.setSdkVersion(receive.getVersion() & 0xff);
// device.setSdkTime(IfishUtil.StrToDate(receive.getYear()+"-"+(receive.getMonth() & 0xff)+"-"+(receive.getDay() & 0xff))); device.setSdkTime(IfishUtil.StrToDate(receive.getYear()+"-"+(receive.getMonth() & 0xff)+"-"+(receive.getDay() & 0xff)));
// device.setNumber1(receive.getNumber1()); device.setNumber1(receive.getNumber1());
// device.setNumber2(receive.getNumber2()); device.setNumber2(receive.getNumber2());
// device.setNumber3(receive.getNumber3()); device.setNumber3(receive.getNumber3());
// device.setNumber4(receive.getNumber4()); device.setNumber4(receive.getNumber4());
// device.setNumber5(receive.getNumber5()); device.setNumber5(receive.getNumber5());
// this.deviceService.update(device); this.deviceService.update(device);
} }
} catch (Exception e) { } catch (Exception e) {
log.error("save device sdk version17 error:macAddress:{},error msg:{}",strSrc,e.toString()); log.error("save device sdk version17 error:macAddress:{},error msg:{}",strSrc,e.toString());
@ -430,6 +320,12 @@ public class SomeServer {
session.write(model); session.write(model);
} }
} }
/**
* 温度预警推送
* @param strSrc
* @param title
* @param contont
*/
/** /**
* 温度预警推送 * 温度预警推送
* @param strSrc * @param strSrc
@ -453,27 +349,9 @@ public class SomeServer {
String msg = ""+title+"】你的水族箱“"+showName+"”在"+timestamp+contont; String msg = ""+title+"】你的水族箱“"+showName+"”在"+timestamp+contont;
User user = userService.findById(userId); User user = userService.findById(userId);
if(user!=null){ if(user!=null){
//云信推送 //推送记录
// boolean neteaseBln = false;
//极光推送
// boolean jpushIosBln = false;
// boolean jpushAndroidBln = false;
//发送云信消息
// Map<String, String> neteaseMap = neteaseIM.sendMsg("ifish", userId.toString(), msg);
// if(neteaseMap!=null){
// neteaseBln = neteaseMap.get("code").equals(NeteaseEnum.status200.getKey());
// }
// String loginType = user.getLoginType();
// if(loginType!=null){
//推送记录
PushList pushList = new PushList(); PushList pushList = new PushList();
// Map<String,String> map = new HashMap<String, String>();
// map.put("device_id", deviceId.toString());
// map.put("device_name", showName);
// map.put("timestamp", timestamp);
// map.put("msg_type", PushTypeEnum.wendu_warn.getKey());
//记录推送 //记录推送
// if(jpushIosBln || jpushAndroidBln || neteaseBln){
pushList.setUserId(userId); pushList.setUserId(userId);
pushList.setDeviceId(deviceId); pushList.setDeviceId(deviceId);
pushList.setPhoneType("ALL"); pushList.setPhoneType("ALL");
@ -481,8 +359,6 @@ public class SomeServer {
pushList.setPushType(PushTypeEnum.wendu_warn.getKey()); pushList.setPushType(PushTypeEnum.wendu_warn.getKey());
pushList.setPushTitle(title); pushList.setPushTitle(title);
pushList.setPushContext(msg); pushList.setPushContext(msg);
// pushList.setNeteaseStatus(neteaseBln?BooleanEnum.YES.getKey():BooleanEnum.NO.getKey());
// pushList.setCreateTime(new Date());
pushList.setNumber1(device.getNumber1()); pushList.setNumber1(device.getNumber1());
pushList.setNumber2(device.getNumber2()); pushList.setNumber2(device.getNumber2());
pushList.setNumber3(device.getNumber3()); pushList.setNumber3(device.getNumber3());
@ -496,9 +372,78 @@ public class SomeServer {
eventEntity.setEventBody(eventBody); eventEntity.setEventBody(eventBody);
//推送至消息推送队列 //推送至消息推送队列
sendPushQueueMessage(JSONObject.toJSONString(eventEntity)); sendPushQueueMessage(JSONObject.toJSONString(eventEntity));
// this.userService.save(pushList); }
// } }
// } }
}
} catch (Exception e) {
log.error("pushNotifcation error:macAddress:{},error msg:{}",strSrc,e.toString());
}
}
/**
* 推送Push消息队列
* @param json 内容
*/
private void sendPushQueueMessage(final String json) throws JMSException{
jmsTemplate.send(ifish7PushQueueDestination,(Session session) -> session.createTextMessage(json));
}
/*public void pushNotifcation(String strSrc,String title,String contont){
try {
Device device = deviceService.getUniqueByProperty("macAddress", strSrc);
if(device!=null){
Integer deviceId = device.getDeviceId();
//是否开启预警
String onOff = device.getOnOff();
if(onOff!=null && onOff.equals(BooleanEnum.YES.getKey())){
//绑定设备的用户
List<DeviceUser> list = deviceService.getListByProperty(device.getDeviceId());
for (DeviceUser deviceUser : list) {
Integer userId = deviceUser.getPriId().getUserId();
String showName = deviceUser.getShowName();
String timestamp = IfishUtil.format(new Date());
String msg = ""+title+"】你的水族箱“"+showName+"”在"+timestamp+contont;
User user = userService.findById(userId);
if(user!=null){
//云信推送
boolean neteaseBln = false;
//极光推送
boolean jpushIosBln = false;
boolean jpushAndroidBln = false;
//发送云信消息
Map<String, String> neteaseMap = neteaseIM.sendMsg("ifish", userId.toString(), msg);
if(neteaseMap!=null){
neteaseBln = neteaseMap.get("code").equals(NeteaseEnum.status200.getKey());
}
String loginType = user.getLoginType();
if(loginType!=null){
//推送记录
PushList pushList = new PushList();
Map<String,String> map = new HashMap<String, String>();
map.put("device_id", deviceId.toString());
map.put("device_name", showName);
map.put("timestamp", timestamp);
map.put("msg_type", PushTypeEnum.wendu_warn.getKey());
//记录推送
if(jpushIosBln || jpushAndroidBln || neteaseBln){
pushList.setUserId(userId);
pushList.setDeviceId(deviceId);
pushList.setPhoneType(loginType.toLowerCase());
pushList.setShowName(showName);
pushList.setPushType(PushTypeEnum.wendu_warn.getKey());
pushList.setPushTitle(title);
pushList.setPushContext(msg);
pushList.setNeteaseStatus(neteaseBln?BooleanEnum.YES.getKey():BooleanEnum.NO.getKey());
pushList.setCreateTime(new Date());
pushList.setNumber1(device.getNumber1());
pushList.setNumber2(device.getNumber2());
pushList.setNumber3(device.getNumber3());
pushList.setNumber4(device.getNumber4());
pushList.setNumber5(device.getNumber5());
this.userService.save(pushList);
}
}
} }
} }
@ -507,21 +452,5 @@ public class SomeServer {
} catch (Exception e) { } catch (Exception e) {
log.error("pushNotifcation error:macAddress:{},error msg:{}",strSrc,e.toString()); log.error("pushNotifcation error:macAddress:{},error msg:{}",strSrc,e.toString());
} }
} }*/
/**
* 推送Data消息队列
* @param json 内容
*/
private void sendDataQueueMessage(final String json){
jmsTemplate.send(ifish7DataQueueDestination,(Session session) -> session.createTextMessage(json));
}
/**
* 推送Push消息队列
* @param json 内容
*/
private void sendPushQueueMessage(final String json) {
jmsTemplate.send(ifish7PushQueueDestination,(Session session) -> session.createTextMessage(json));
}
} }

View File

@ -1,11 +0,0 @@
package com.ifish.util;
/**
* @author: yan.y
* @Description: json工具
* @Date: Created in 16:46 2019-04-10
* @Modified by:
*/
public class QueueMessageJsonUtil {
}

View File

@ -3,7 +3,7 @@ log4j.rootLogger=INFO,CONSOLE,FILE,ROLLING_FILE
# Console Appender # Console Appender
################### ###################
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.Threshold=INFO log4j.appender.Threshold=DEBUG
log4j.appender.CONSOLE.Target=System.out log4j.appender.CONSOLE.Target=System.out
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=[ifish7Socket][%-5p]%d - (%F:%L) - %m%n log4j.appender.CONSOLE.layout.ConversionPattern=[ifish7Socket][%-5p]%d - (%F:%L) - %m%n
@ -11,7 +11,7 @@ log4j.appender.CONSOLE.layout.ConversionPattern=[ifish7Socket][%-5p]%d - (%F:%L)
# [INFO]Daily Rolling File # [INFO]Daily Rolling File
######################## ########################
log4j.appender.FILE=org.apache.log4j.DailyRollingFileAppender log4j.appender.FILE=org.apache.log4j.DailyRollingFileAppender
log4j.appender.FILE.Threshold=INFO log4j.appender.FILE.Threshold=DEBUG
log4j.appender.FILE.File=/logs/ifishSocket/ifish7Socket_ALL.log log4j.appender.FILE.File=/logs/ifishSocket/ifish7Socket_ALL.log
log4j.appender.FILE.Append=true log4j.appender.FILE.Append=true
log4j.appender.FILE.ImmediateFlush = true log4j.appender.FILE.ImmediateFlush = true
@ -31,7 +31,8 @@ log4j.appender.ROLLING_FILE.DatePattern='.'yyyy-MM-dd
log4j.appender.ROLLING_FILE.layout=org.apache.log4j.PatternLayout log4j.appender.ROLLING_FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.ROLLING_FILE.layout.ConversionPattern=[Ifish7][%-5p]%d - %c.%t(%F:%L) - %m%n log4j.appender.ROLLING_FILE.layout.ConversionPattern=[Ifish7][%-5p]%d - %c.%t(%F:%L) - %m%n
log4j.logger.com.ifish=DEBUG
log4j.logger.org.springframework=INFO log4j.logger.org.springframework=INFO
log4j.logger.com.hibernate=INFO log4j.logger.com.hibernate=INFO
log4j.logger.java.sql=INFO log4j.logger.java.sql=DEBUG

View File

@ -47,17 +47,20 @@
</filter> </filter>
</appender> </appender>
<!-- 记录设备连接数量--> <logger name="com.hibernate" level="DEBUG" additivity="false">
<logger name="com.ifish.socketNew.MinaServerHandler" level="INFO" additivity="false"> <appender-ref ref="Console" />
<appender-ref ref="file" /> </logger>
<!-- <appender-ref ref="Console" /> --> <logger name="org.springframework" level="DEBUG" additivity="false">
<appender-ref ref="Console" />
</logger>
<logger name="java.sql" level="DEBUG" additivity="false">
<appender-ref ref="Console" />
</logger> </logger>
<!-- 将级别为“info”及大于“info”的日志信息传递给root处理本身并不打印 --> <!-- 将级别为“info”及大于“info”的日志信息传递给root处理本身并不打印 -->
<root level="info"> <root level="info">
<!-- root将级别为“INFO”及大于“INFO”的日志信息交给已经配置好的名为“Console”的appender处理“Console”appender将信息打印到Console --> <!-- root将级别为“INFO”及大于“INFO”的日志信息交给已经配置好的名为“Console”的appender处理“Console”appender将信息打印到Console -->
<appender-ref ref="file2" /> <appender-ref ref="file2" />
<!-- <appender-ref ref="Console" /> --> <appender-ref ref="Console" />
<!-- 标识这个appender将会添加到这个logger --> <!-- 标识这个appender将会添加到这个logger -->
<!-- <appender-ref ref="File" /> --> <!-- <appender-ref ref="File" /> -->
</root> </root>

View File

@ -1,4 +1,5 @@
broker_url=tcp://test.ifish7.com:61616 #broker_url=tcp://test.ifish7.com:61616
broker_url=tcp://www.ifish7.com:61616
username=admin username=admin
#password=admin #password=admin
password=adminifish7 password=adminifish7

View File

@ -7,12 +7,12 @@ import com.ifish.util.IfishUtil;
import org.junit.Test; import org.junit.Test;
import org.junit.runner.RunWith; import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jms.core.JmsTemplate; //import org.springframework.jms.core.JmsTemplate;
import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import javax.jms.Destination; //import javax.jms.Destination;
import javax.jms.Session; //import javax.jms.Session;
import java.util.Date; import java.util.Date;
/** /**
@ -21,55 +21,55 @@ import java.util.Date;
* @Date: Created in 16:20 2019-04-10 * @Date: Created in 16:20 2019-04-10
* @Modified by: * @Modified by:
*/ */
@RunWith(SpringJUnit4ClassRunner.class) //@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations="classpath:application-context.xml") //@ContextConfiguration(locations="classpath:application-context.xml")
public class SomeServerQueueTest { public class SomeServerQueueTest {
@Autowired // @Autowired
private JmsTemplate jmsTemplate; // private JmsTemplate jmsTemplate;
//
@Autowired // @Autowired
private Destination ifish7DataQueueDestination; // private Destination ifish7DataQueueDestination;
@Autowired // @Autowired
private Destination ifish7PushQueueDestination; // private Destination ifish7PushQueueDestination;
//
@Test // @Test
public void testDataMessageSend(){ // public void testDataMessageSend(){
String json = "this's a test message"; // String json = "this's a test message";
JSONObject data = new JSONObject(); // JSONObject data = new JSONObject();
data.put("heaterMacAddress","12345"); // data.put("heaterMacAddress","12345");
data.put("heaterWaterTemperature","130"); // data.put("heaterWaterTemperature","130");
data.put("heaterPh","1200"); // data.put("heaterPh","1200");
data.put("heaterGatheringDate", IfishUtil.format1(new Date())); // data.put("heaterGatheringDate", IfishUtil.format1(new Date()));
data.put("heaterGatheringTime","17"); // data.put("heaterGatheringTime","17");
//
QueueEventEntity eventEntity = new QueueEventEntity(); // QueueEventEntity eventEntity = new QueueEventEntity();
eventEntity.setEventName("com.ifish7.mq.queues.event.IntelligentHeatingRodEvent"); // eventEntity.setEventName("com.ifish7.mq.queues.event.IntelligentHeatingRodEvent");
eventEntity.setEventProcess("intelligentHeatingRodSaveOrUpdate"); // eventEntity.setEventProcess("intelligentHeatingRodSaveOrUpdate");
QueueEventBody eventBody = new QueueEventBody("com.ifish7.mq.business.device.entity.TblDeviceHeater",data); // QueueEventBody eventBody = new QueueEventBody("com.ifish7.mq.business.device.entity.TblDeviceHeater",data);
eventEntity.setEventBody(eventBody); // eventEntity.setEventBody(eventBody);
//
String eventEntityStr = JSONObject.toJSONString(eventEntity); // String eventEntityStr = JSONObject.toJSONString(eventEntity);
jmsTemplate.send(ifish7DataQueueDestination,(Session session) -> session.createTextMessage(eventEntityStr)); // //jmsTemplate.send(ifish7DataQueueDestination,(Session session) -> session.createTextMessage(eventEntityStr));
} // }
//
@Test // @Test
public void testPushMessageSend(){ // public void testPushMessageSend(){
String json = "this's a test message"; // String json = "this's a test message";
JSONObject data = new JSONObject(); // JSONObject data = new JSONObject();
data.put("heaterMacAddress","12345"); // data.put("heaterMacAddress","12345");
data.put("heaterWaterTemperature","130"); // data.put("heaterWaterTemperature","130");
data.put("heaterPh","1200"); // data.put("heaterPh","1200");
data.put("heaterGatheringDate", IfishUtil.format1(new Date())); // data.put("heaterGatheringDate", IfishUtil.format1(new Date()));
data.put("heaterGatheringTime","17"); // data.put("heaterGatheringTime","17");
//
QueueEventEntity eventEntity = new QueueEventEntity(); // QueueEventEntity eventEntity = new QueueEventEntity();
eventEntity.setEventName("com.ifish7.mq.queues.event.IntelligentHeatingRodEvent"); // eventEntity.setEventName("com.ifish7.mq.queues.event.IntelligentHeatingRodEvent");
eventEntity.setEventProcess("intelligentHeatingRodSaveOrUpdate"); // eventEntity.setEventProcess("intelligentHeatingRodSaveOrUpdate");
QueueEventBody eventBody = new QueueEventBody("com.ifish7.mq.business.device.entity.TblDeviceHeater",data); // QueueEventBody eventBody = new QueueEventBody("com.ifish7.mq.business.device.entity.TblDeviceHeater",data);
eventEntity.setEventBody(eventBody); // eventEntity.setEventBody(eventBody);
//
String eventEntityStr = JSONObject.toJSONString(eventEntity); // String eventEntityStr = JSONObject.toJSONString(eventEntity);
//智能加热棒数据更新及保存 // //智能加热棒数据更新及保存
jmsTemplate.send(ifish7PushQueueDestination,(Session session) -> session.createTextMessage(eventEntityStr)); // //jmsTemplate.send(ifish7PushQueueDestination,(Session session) -> session.createTextMessage(eventEntityStr));
} // }
} }