正在显示
1 个修改的文件
包含
10 行增加
和
2 行删除
| @@ -35,6 +35,8 @@ import org.slf4j.LoggerFactory; | @@ -35,6 +35,8 @@ import org.slf4j.LoggerFactory; | ||
| 35 | import org.springframework.beans.factory.annotation.Autowired; | 35 | import org.springframework.beans.factory.annotation.Autowired; |
| 36 | import org.springframework.stereotype.Service; | 36 | import org.springframework.stereotype.Service; |
| 37 | 37 | ||
| 38 | +import java.lang.reflect.ParameterizedType; | ||
| 39 | +import java.lang.reflect.Type; | ||
| 38 | import java.util.*; | 40 | import java.util.*; |
| 39 | 41 | ||
| 40 | @Service | 42 | @Service |
| @@ -356,9 +358,15 @@ public class DeviceService { | @@ -356,9 +358,15 @@ public class DeviceService { | ||
| 356 | Class<ThingsModelBase> aClass = Enum.valueOf(ThingsModelDataTypeEnum.class,data_type).getaClass(); | 358 | Class<ThingsModelBase> aClass = Enum.valueOf(ThingsModelDataTypeEnum.class,data_type).getaClass(); |
| 357 | ThingsModelBase thingsModelBase = JSON.parseObject(thingsModel.getSpecs(),aClass); | 359 | ThingsModelBase thingsModelBase = JSON.parseObject(thingsModel.getSpecs(),aClass); |
| 358 | thingsModelBase.conversionThingsModel(thingsModel); | 360 | thingsModelBase.conversionThingsModel(thingsModel); |
| 359 | - thingsModelBase.addValue(jsonObject.get(skey)); | 361 | + Object object = jsonObject.get(skey); |
| 362 | + Type clas = ((ParameterizedType)aClass.getGenericSuperclass()).getActualTypeArguments()[0]; | ||
| 363 | + if(null != object && object.getClass()!=clas) | ||
| 364 | + { | ||
| 365 | + return new Message(MessageCode.DEFAULT_FAIL_CODE,"参数数据类型和模型数据类型不一致"); | ||
| 366 | + } | ||
| 367 | + thingsModelBase.addValue(object); | ||
| 360 | ThingsModelItemBase thingsModelItemBase = (ThingsModelItemBase) thingsModelBase; | 368 | ThingsModelItemBase thingsModelItemBase = (ThingsModelItemBase) thingsModelBase; |
| 361 | - jsonObject.put(skey,thingsModelItemBase.getCmdView(jsonObject.get(skey))); | 369 | + jsonObject.put(skey,thingsModelItemBase.getCmdView(object)); |
| 362 | String id = clienid+"_"+key; | 370 | String id = clienid+"_"+key; |
| 363 | logDeviceOperationList.add(dviceLogService.newLogDeviceOperation(id,thingsModelItemBase.getSaveView(),null,"远程控制"+thingsModelItemBase.getName()+"为"+thingsModelItemBase.getView(),null)); | 371 | logDeviceOperationList.add(dviceLogService.newLogDeviceOperation(id,thingsModelItemBase.getSaveView(),null,"远程控制"+thingsModelItemBase.getName()+"为"+thingsModelItemBase.getView(),null)); |
| 364 | } | 372 | } |
-
请 注册 或 登录 后发表评论