|
...
|
...
|
@@ -3,6 +3,8 @@ package com.zhonglai.luhui.mqtt.service.topic; |
|
|
|
import com.alibaba.fastjson.JSON;
|
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
|
import com.google.gson.JsonElement;
|
|
|
|
import com.google.gson.JsonObject;
|
|
|
|
import com.google.gson.JsonParser;
|
|
|
|
import com.ruoyi.common.utils.GsonConstructor;
|
|
|
|
import com.zhonglai.luhui.device.analysis.comm.dto.thingsmodels.ThingsModelItemBase;
|
|
|
|
import com.zhonglai.luhui.device.analysis.comm.service.BusinessDataUpdateService;
|
|
...
|
...
|
@@ -14,11 +16,14 @@ import com.zhonglai.luhui.device.analysis.comm.dto.thingsmodels.ThingsModelBase; |
|
|
|
import com.zhonglai.luhui.device.analysis.comm.dto.thingsmodels.ThingsModelDataTypeEnum;
|
|
|
|
import com.zhonglai.luhui.device.analysis.comm.factory.BusinessAgreement;
|
|
|
|
import com.zhonglai.luhui.device.analysis.comm.factory.Topic;
|
|
|
|
import com.zhonglai.luhui.mqtt.MqttApplication;
|
|
|
|
import com.zhonglai.luhui.mqtt.service.ClienNoticeService;
|
|
|
|
import com.zhonglai.luhui.device.analysis.dto.MessageCode;
|
|
|
|
import com.zhonglai.luhui.device.analysis.dto.topic.ReadReqDto;
|
|
|
|
import com.zhonglai.luhui.device.analysis.comm.db.mode.TerminalDataThingsModeService;
|
|
|
|
import org.apache.commons.lang3.EnumUtils;
|
|
|
|
import org.slf4j.Logger;
|
|
|
|
import org.slf4j.LoggerFactory;
|
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
...
|
...
|
@@ -27,6 +32,7 @@ import java.util.HashMap; |
|
|
|
|
|
|
|
@Service("READ_REQ")
|
|
|
|
public class ReadReqTopic implements BusinessAgreement<ReadReqDto> {
|
|
|
|
private static Logger log = LoggerFactory.getLogger(ReadReqTopic.class);
|
|
|
|
@Autowired
|
|
|
|
private ClienNoticeService clienNoticeService; //客户端通知服务
|
|
|
|
@Autowired
|
|
...
|
...
|
@@ -52,6 +58,7 @@ public class ReadReqTopic implements BusinessAgreement<ReadReqDto> { |
|
|
|
for(String vkey:vjsonObject.keySet())
|
|
|
|
{
|
|
|
|
JSONObject jsData = vjsonObject.getJSONObject(vkey);
|
|
|
|
JsonObject gsonData = GsonConstructor.get().fromJson(jsData.toString(), JsonObject.class);
|
|
|
|
for(String key:jsData.keySet())
|
|
|
|
{
|
|
|
|
IotThingsModel thingsModel = terminalDataThingsModeService.getIotThingsModel(topic.getUsername(),key);
|
|
...
|
...
|
@@ -74,14 +81,17 @@ public class ReadReqTopic implements BusinessAgreement<ReadReqDto> { |
|
|
|
{
|
|
|
|
data_type = ThingsModelDataTypeEnum.STRING.name();
|
|
|
|
}
|
|
|
|
ThingsModelBase thingsModelBase = ThingsModelItemBase.newhingsModel(Enum.valueOf(ThingsModelDataTypeEnum.class,data_type),thingsModel, GsonConstructor.get().fromJson(jsData.get(key).toString(), JsonElement.class));
|
|
|
|
// Class<ThingsModelBase> aClass = Enum.valueOf(ThingsModelDataTypeEnum.class,data_type).getaClass();
|
|
|
|
// ThingsModelBase thingsModelBase = JSON.parseObject(thingsModel.getSpecs(),aClass);
|
|
|
|
// thingsModelBase.conversionThingsModel(thingsModel);
|
|
|
|
//
|
|
|
|
// thingsModelBase.addValue(jsData.get(key));
|
|
|
|
|
|
|
|
jsData.put(key,thingsModelBase);
|
|
|
|
try {
|
|
|
|
JsonElement vjson = JsonParser.parseString(gsonData.get(key).toString());
|
|
|
|
ThingsModelBase thingsModelBase = ThingsModelItemBase.newhingsModel(Enum.valueOf(ThingsModelDataTypeEnum.class,data_type),thingsModel,vjson);
|
|
|
|
|
|
|
|
jsData.put(key,thingsModelBase);
|
|
|
|
}catch (Exception e)
|
|
|
|
{
|
|
|
|
log.info("{}的值{}解析异常",jsData,key);
|
|
|
|
throw e;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
vjsonObject.put(vkey,jsData);
|
|
|
|
}
|
|
...
|
...
|
@@ -115,4 +125,5 @@ public class ReadReqTopic implements BusinessAgreement<ReadReqDto> { |
|
|
|
public ReadReqDto toData(BusinessDto data) {
|
|
|
|
return JSONObject.parseObject(JSONObject.toJSONString(data.getContentData()),ReadReqDto.class);
|
|
|
|
}
|
|
|
|
|
|
|
|
} |
...
|
...
|
|