|
|
|
@ -277,15 +277,18 @@ public class MessageHandler { |
|
|
|
AuthMessage inSysData = JacksonUtil.jsonToBean(data, AuthMessage.class); |
|
|
|
if(null != inSysData.getData()){ |
|
|
|
|
|
|
|
if(StrUtil.isNotEmpty(inSysData.getData().getToken())) { |
|
|
|
logger.info("token授权"); |
|
|
|
String userId = getUserService().getUserIdByToken(inSysData.getData().getToken()); |
|
|
|
if(StrUtil.isNotEmpty(inSysData.getData().getToken()) || StrUtil.isNotEmpty(inSysData.getData().getUserId())) { |
|
|
|
String userId = inSysData.getData().getUserId(); |
|
|
|
if(StrUtil.isEmpty(userId)){ |
|
|
|
userId = getUserService().getUserIdByToken(inSysData.getData().getToken()); |
|
|
|
} |
|
|
|
if(StrUtil.isNotEmpty(userId)){ |
|
|
|
ChannelManager.authChannel(ChannelManager.getCurrentChannel(),userId,inSysData.getData().getMajor(),inSysData.getData().getMinor(), inSysData.getMessage()); |
|
|
|
onClientOnLine(MessageConstant.DomainType.User,userId); |
|
|
|
authSuccess = true; |
|
|
|
} |
|
|
|
} else if (inSysData.getData().getAuthId() != null) { |
|
|
|
//硬件授权
|
|
|
|
logger.info("authid授权"); |
|
|
|
// authId有值默认授权通过
|
|
|
|
ChannelManager.authChannel(ChannelManager.getCurrentChannel(),String.valueOf(inSysData.getData().getAuthId()),inSysData.getData().getMajor(),inSysData.getData().getMinor(), inSysData.getMessage()); |
|
|
|
@ -450,7 +453,7 @@ public class MessageHandler { |
|
|
|
} |
|
|
|
case CCModBusEntity.Oper.WRITE_MORE : { |
|
|
|
// 写多个寄存器
|
|
|
|
// 2. 如果是写操作且值发生改变,放到mq里
|
|
|
|
// 2. 如果是写操作,放到mq里
|
|
|
|
byte[] modBusData = modBusMessage.getData().getModBusData(); |
|
|
|
// 读起始寄存器地址
|
|
|
|
int startAddr = CCModBusEntity.getRegisterStartAddr(modBusData); |
|
|
|
@ -459,6 +462,7 @@ public class MessageHandler { |
|
|
|
Map<String, Long> register = wrapperedChannel.getRegister(); |
|
|
|
// 授权数据
|
|
|
|
Long authId = register.get(String.valueOf(MessageConstant.Register.Auth.getAddr())); |
|
|
|
OutMessageSet set = new OutMessageSet(); |
|
|
|
for (int i = 0; i < num; i++) { |
|
|
|
// 寄存器的原始数据
|
|
|
|
Long origin = register.get(String.valueOf(startAddr)); |
|
|
|
@ -471,20 +475,20 @@ public class MessageHandler { |
|
|
|
if (origin == null || origin.longValue() != value) { |
|
|
|
register.put(String.valueOf(startAddr), value); |
|
|
|
logger.info("寄存器数据:{}", register); |
|
|
|
// 数据不一致,放到消息队列里
|
|
|
|
Register register1 = new Register(); |
|
|
|
register1.setAuthId(authId); |
|
|
|
register1.setAddr(startAddr+i); |
|
|
|
register1.setValue(value); |
|
|
|
OutMessage outMessage1 = new OutMessage(JacksonUtil.beanToJson(register1)); |
|
|
|
OutMessageSet set = new OutMessageSet(); |
|
|
|
set.add(outMessage1); |
|
|
|
messageHandler.rabbitTemplate.convertAndSend("wisdom_car", |
|
|
|
JacksonUtil.beanToJson(set)); |
|
|
|
logger.info("modbus通知mq:{}", set); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
// 放到消息队列里
|
|
|
|
Register register1 = new Register(); |
|
|
|
register1.setAuthId(authId); |
|
|
|
register1.setAddr(startAddr+i); |
|
|
|
register1.setValue(value); |
|
|
|
OutMessage outMessage1 = new OutMessage(JacksonUtil.beanToJson(register1)); |
|
|
|
set.add(outMessage1); |
|
|
|
} |
|
|
|
if (CollectionUtil.isEmpty(set.getMessageSet())) { |
|
|
|
messageHandler.rabbitTemplate.convertAndSend("wisdom_car", |
|
|
|
JacksonUtil.beanToJson(set)); |
|
|
|
logger.info("modbus通知mq:{}", set); |
|
|
|
} |
|
|
|
// 3. 封装返回值
|
|
|
|
outMessage = new OutMessage(JacksonUtil.beanToJson(new ModBusAckMessage(modBusData))); |
|
|
|
|