From 33ce4859a7c561e51fa49c4600e14d85705edd59 Mon Sep 17 00:00:00 2001 From: baoshiwei <baoshiwei@shlanbao.cn> Date: 星期五, 08 十一月 2024 08:34:54 +0800 Subject: [PATCH] 租户端接收服务端请求,返回设备信息 --- jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/mqtt/MqttSampleCallback.java | 51 ++++++++++++++++++++++++++++++++------------------- 1 files changed, 32 insertions(+), 19 deletions(-) diff --git a/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/mqtt/MqttSampleCallback.java b/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/mqtt/MqttSampleCallback.java index 565cebd..ab6e2a1 100644 --- a/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/mqtt/MqttSampleCallback.java +++ b/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/mqtt/MqttSampleCallback.java @@ -14,8 +14,10 @@ import org.jeecg.common.util.RedisUtil; import org.jeecg.modules.base.service.BaseCommonService; import org.jeecg.modules.dry.api.EmqxApi; +import org.jeecg.modules.dry.entity.DryEqpType; import org.jeecg.modules.dry.entity.DryEquipment; import org.jeecg.modules.dry.entity.DryShop; +import org.jeecg.modules.dry.service.IDryEqpTypeService; import org.jeecg.modules.dry.service.IDryEquipmentService; import org.jeecg.modules.dry.service.IDryRealTimeDataService; import org.jeecg.modules.dry.service.IDryShopService; @@ -47,6 +49,9 @@ @Autowired private IDryEquipmentService equipmentService; + + @Autowired + private IDryEqpTypeService eqpTypeService; @Autowired private IDryShopService dryShopService; @@ -256,28 +261,36 @@ break; case MqttConstant.SERVICE_REQ_PREFIX: log.debug("鏀跺埌璁惧璇︾粏淇℃伅鏌ヨ璇锋眰"); - String tenantId = messageJson.getString("tenantId"); - if (tenantId!=null && tenantId.equals(TenantContext.getTenant())) { - // 鏍规嵁璁惧缂栫爜鏌ヨ璁惧淇℃伅 - String code = messageJson.getString("code"); - DryEquipment equipmentVo = equipmentService.selectByTenantIdEquipmentId(tenantId,code); - // 鏍规嵁璁惧杞﹂棿id鏌ヨ杞﹂棿淇℃伅 - DryShop shop = dryShopService.getById(equipmentVo.getShopId()); + ThreadUtil.execute(() -> { + String tenantId = messageJson.getString("tenantId"); + String clientId = mqttUtil.getMqttClient().getClientId(); + String tenant = clientId.substring(clientId.lastIndexOf("_")+1); + if (tenantId!=null && tenantId.equals(tenant)) { + // 鏍规嵁璁惧缂栫爜鏌ヨ璁惧淇℃伅 + String code = messageJson.getString("code"); + DryEquipment equipmentVo = equipmentService.selectByTenantIdEquipmentId(tenantId,code); + // 鏍规嵁璁惧杞﹂棿id鏌ヨ杞﹂棿淇℃伅 + DryShop shop = dryShopService.getById(equipmentVo.getShopId()); + // 鏍规嵁璁惧绫诲瀷ID鏌ヨ璁惧绫诲瀷淇℃伅 + DryEqpType eqpType = eqpTypeService.getById(equipmentVo.getType()); - JSONObject res = new JSONObject(); + JSONObject res = new JSONObject(); - res.put("tenant", TenantContext.getTenant()); - res.put("equipment", equipmentVo); - res.put("shop", shop); - try { - MqttMessage sendMessage = new MqttMessage(res.toJSONString().getBytes()); - sendMessage.setQos(0); - mqttUtil.getMqttClient().publish(MqttConstant.TENANT_UP_PREFIX_EQU, sendMessage); - // baseCommonService.addLog(res.toString(), CommonConstant.LOG_TYPE_MQTT, CommonConstant.OPERATE_MQTT_2); - } catch (Exception e) { - e.printStackTrace(); + res.put("tenant", clientId); + res.put("equipment", equipmentVo); + res.put("shop", shop); + res.put("eqpType", eqpType); + try { + MqttMessage sendMessage = new MqttMessage(res.toJSONString().getBytes()); + sendMessage.setQos(0); + mqttUtil.getMqttClient().publish(MqttConstant.TENANT_UP_PREFIX_EQU, sendMessage); + // baseCommonService.addLog(res.toString(), CommonConstant.LOG_TYPE_MQTT, CommonConstant.OPERATE_MQTT_2); + } catch (Exception e) { + e.printStackTrace(); + } } - } + }); + break; -- Gitblit v1.9.3