Commit 8b7f329183e21b365222401c8a2c7d32108f0ee5

Authored by puhui999
1 parent fae17e91

【代码优化】IOT: ThingModel

Showing 24 changed files with 254 additions and 261 deletions
yudao-module-iot/yudao-module-iot-api/src/main/java/cn/iocoder/yudao/module/iot/enums/thingmodel/IotProductThingModelAccessModeEnum.java renamed to yudao-module-iot/yudao-module-iot-api/src/main/java/cn/iocoder/yudao/module/iot/enums/thingmodel/IotThingModelAccessModeEnum.java
@@ -10,7 +10,7 @@ import lombok.Getter; @@ -10,7 +10,7 @@ import lombok.Getter;
10 */ 10 */
11 @AllArgsConstructor 11 @AllArgsConstructor
12 @Getter 12 @Getter
13 -public enum IotProductThingModelAccessModeEnum { 13 +public enum IotThingModelAccessModeEnum {
14 14
15 READ_ONLY("r"), 15 READ_ONLY("r"),
16 READ_WRITE("rw"); 16 READ_WRITE("rw");
yudao-module-iot/yudao-module-iot-api/src/main/java/cn/iocoder/yudao/module/iot/enums/thingmodel/IotProductThingModelParamDirectionEnum.java renamed to yudao-module-iot/yudao-module-iot-api/src/main/java/cn/iocoder/yudao/module/iot/enums/thingmodel/IotThingModelParamDirectionEnum.java
@@ -10,7 +10,7 @@ import lombok.Getter; @@ -10,7 +10,7 @@ import lombok.Getter;
10 */ 10 */
11 @AllArgsConstructor 11 @AllArgsConstructor
12 @Getter 12 @Getter
13 -public enum IotProductThingModelParamDirectionEnum { 13 +public enum IotThingModelParamDirectionEnum {
14 14
15 INPUT("input"), // 输入参数 15 INPUT("input"), // 输入参数
16 OUTPUT("output"); // 输出参数 16 OUTPUT("output"); // 输出参数
yudao-module-iot/yudao-module-iot-api/src/main/java/cn/iocoder/yudao/module/iot/enums/thingmodel/IotProductThingModelServiceCallTypeEnum.java renamed to yudao-module-iot/yudao-module-iot-api/src/main/java/cn/iocoder/yudao/module/iot/enums/thingmodel/IotThingModelServiceCallTypeEnum.java
@@ -10,7 +10,7 @@ import lombok.Getter; @@ -10,7 +10,7 @@ import lombok.Getter;
10 */ 10 */
11 @AllArgsConstructor 11 @AllArgsConstructor
12 @Getter 12 @Getter
13 -public enum IotProductThingModelServiceCallTypeEnum { 13 +public enum IotThingModelServiceCallTypeEnum {
14 14
15 ASYNC("async"), // 异步调用 15 ASYNC("async"), // 异步调用
16 SYNC("sync"); // 同步调用 16 SYNC("sync"); // 同步调用
yudao-module-iot/yudao-module-iot-api/src/main/java/cn/iocoder/yudao/module/iot/enums/thingmodel/IotProductThingModelServiceEventTypeEnum.java renamed to yudao-module-iot/yudao-module-iot-api/src/main/java/cn/iocoder/yudao/module/iot/enums/thingmodel/IotThingModelServiceEventTypeEnum.java
@@ -10,7 +10,7 @@ import lombok.Getter; @@ -10,7 +10,7 @@ import lombok.Getter;
10 */ 10 */
11 @AllArgsConstructor 11 @AllArgsConstructor
12 @Getter 12 @Getter
13 -public enum IotProductThingModelServiceEventTypeEnum { 13 +public enum IotThingModelServiceEventTypeEnum {
14 14
15 INFO("info"), // 信息 15 INFO("info"), // 信息
16 ALERT("alert"), // 告警 16 ALERT("alert"), // 告警
yudao-module-iot/yudao-module-iot-api/src/main/java/cn/iocoder/yudao/module/iot/enums/thingmodel/IotProductThingModelTypeEnum.java renamed to yudao-module-iot/yudao-module-iot-api/src/main/java/cn/iocoder/yudao/module/iot/enums/thingmodel/IotThingModelTypeEnum.java
@@ -13,13 +13,13 @@ import java.util.Arrays; @@ -13,13 +13,13 @@ import java.util.Arrays;
13 */ 13 */
14 @AllArgsConstructor 14 @AllArgsConstructor
15 @Getter 15 @Getter
16 -public enum IotProductThingModelTypeEnum implements IntArrayValuable { 16 +public enum IotThingModelTypeEnum implements IntArrayValuable {
17 17
18 PROPERTY(1, "属性"), 18 PROPERTY(1, "属性"),
19 SERVICE(2, "服务"), 19 SERVICE(2, "服务"),
20 EVENT(3, "事件"); 20 EVENT(3, "事件");
21 21
22 - public static final int[] ARRAYS = Arrays.stream(values()).mapToInt(IotProductThingModelTypeEnum::getType).toArray(); 22 + public static final int[] ARRAYS = Arrays.stream(values()).mapToInt(IotThingModelTypeEnum::getType).toArray();
23 23
24 /** 24 /**
25 * 类型 25 * 类型
@@ -30,8 +30,8 @@ public enum IotProductThingModelTypeEnum implements IntArrayValuable { @@ -30,8 +30,8 @@ public enum IotProductThingModelTypeEnum implements IntArrayValuable {
30 */ 30 */
31 private final String description; 31 private final String description;
32 32
33 - public static IotProductThingModelTypeEnum valueOfType(Integer type) {  
34 - for (IotProductThingModelTypeEnum value : values()) { 33 + public static IotThingModelTypeEnum valueOfType(Integer type) {
  34 + for (IotThingModelTypeEnum value : values()) {
35 if (value.getType().equals(type)) { 35 if (value.getType().equals(type)) {
36 return value; 36 return value;
37 } 37 }
yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/thingmodel/IotProductThingModelController.http renamed to yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/thingmodel/IotThingModelController.http
@@ -25,8 +25,7 @@ Authorization: Bearer {{token}} @@ -25,8 +25,7 @@ Authorization: Bearer {{token}}
25 "defaultValue": "30", 25 "defaultValue": "30",
26 "unit": "%", 26 "unit": "%",
27 "unitName": "百分比" 27 "unitName": "百分比"
28 - },  
29 - "description": "当前温度值" 28 + }
30 } 29 }
31 } 30 }
32 31
@@ -46,7 +45,6 @@ Authorization: Bearer {{token}} @@ -46,7 +45,6 @@ Authorization: Bearer {{token}}
46 "property": { 45 "property": {
47 "identifier": "switch", 46 "identifier": "switch",
48 "name": "开关", 47 "name": "开关",
49 - "description": "温度计开关",  
50 "accessMode": "rw", 48 "accessMode": "rw",
51 "required": true, 49 "required": true,
52 "dataType": "bool", 50 "dataType": "bool",
@@ -81,7 +79,6 @@ Authorization: Bearer {{token}} @@ -81,7 +79,6 @@ Authorization: Bearer {{token}}
81 "property": { 79 "property": {
82 "identifier": "argb", 80 "identifier": "argb",
83 "name": "温度计 argb 颜色", 81 "name": "温度计 argb 颜色",
84 - "description": "温度计 argb 颜色",  
85 "accessMode": "rw", 82 "accessMode": "rw",
86 "required": true, 83 "required": true,
87 "dataType": "array", 84 "dataType": "array",
@@ -93,7 +90,6 @@ Authorization: Bearer {{token}} @@ -93,7 +90,6 @@ Authorization: Bearer {{token}}
93 { 90 {
94 "identifier": "switch", 91 "identifier": "switch",
95 "name": "开关", 92 "name": "开关",
96 - "description": "温度计开关",  
97 "accessMode": "rw", 93 "accessMode": "rw",
98 "required": true, 94 "required": true,
99 "dataType": "struct", 95 "dataType": "struct",
@@ -126,8 +122,7 @@ Authorization: Bearer {{token}} @@ -126,8 +122,7 @@ Authorization: Bearer {{token}}
126 "defaultValue": "30", 122 "defaultValue": "30",
127 "unit": "%", 123 "unit": "%",
128 "unitName": "百分比" 124 "unitName": "百分比"
129 - },  
130 - "description": "当前温度值" 125 + }
131 } 126 }
132 ] 127 ]
133 } 128 }
@@ -151,7 +146,6 @@ Authorization: Bearer {{token}} @@ -151,7 +146,6 @@ Authorization: Bearer {{token}}
151 "property": { 146 "property": {
152 "identifier": "switch", 147 "identifier": "switch",
153 "name": "开关", 148 "name": "开关",
154 - "description": "温度计开关",  
155 "accessMode": "r", 149 "accessMode": "r",
156 "required": true, 150 "required": true,
157 "dataType": "bool", 151 "dataType": "bool",
yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/thingmodel/IotProductThingModelController.java renamed to yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/thingmodel/IotThingModelController.java
@@ -3,12 +3,12 @@ package cn.iocoder.yudao.module.iot.controller.admin.thingmodel; @@ -3,12 +3,12 @@ package cn.iocoder.yudao.module.iot.controller.admin.thingmodel;
3 import cn.iocoder.yudao.framework.common.pojo.CommonResult; 3 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
4 import cn.iocoder.yudao.framework.common.pojo.PageResult; 4 import cn.iocoder.yudao.framework.common.pojo.PageResult;
5 import cn.iocoder.yudao.framework.common.util.object.BeanUtils; 5 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
6 -import cn.iocoder.yudao.module.iot.controller.admin.thingmodel.vo.IotProductThingModelPageReqVO;  
7 -import cn.iocoder.yudao.module.iot.controller.admin.thingmodel.vo.IotProductThingModelRespVO;  
8 -import cn.iocoder.yudao.module.iot.controller.admin.thingmodel.vo.IotProductThingModelSaveReqVO;  
9 -import cn.iocoder.yudao.module.iot.convert.thingmodel.IotProductThingModelConvert;  
10 -import cn.iocoder.yudao.module.iot.dal.dataobject.thingmodel.IotProductThingModelDO;  
11 -import cn.iocoder.yudao.module.iot.service.thingmodel.IotProductThingModelService; 6 +import cn.iocoder.yudao.module.iot.controller.admin.thingmodel.vo.IotThingModelPageReqVO;
  7 +import cn.iocoder.yudao.module.iot.controller.admin.thingmodel.vo.IotThingModelRespVO;
  8 +import cn.iocoder.yudao.module.iot.controller.admin.thingmodel.vo.IotThingModelSaveReqVO;
  9 +import cn.iocoder.yudao.module.iot.convert.thingmodel.IotThingModelConvert;
  10 +import cn.iocoder.yudao.module.iot.dal.dataobject.thingmodel.IotThingModelDO;
  11 +import cn.iocoder.yudao.module.iot.service.thingmodel.IotThingModelService;
12 import io.swagger.v3.oas.annotations.Operation; 12 import io.swagger.v3.oas.annotations.Operation;
13 import io.swagger.v3.oas.annotations.Parameter; 13 import io.swagger.v3.oas.annotations.Parameter;
14 import io.swagger.v3.oas.annotations.tags.Tag; 14 import io.swagger.v3.oas.annotations.tags.Tag;
@@ -24,61 +24,61 @@ import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; @@ -24,61 +24,61 @@ import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
24 24
25 @Tag(name = "管理后台 - IoT 产品物模型") 25 @Tag(name = "管理后台 - IoT 产品物模型")
26 @RestController 26 @RestController
27 -@RequestMapping("/iot/product-thing-model") 27 +@RequestMapping("/iot/thing-model")
28 @Validated 28 @Validated
29 -public class IotProductThingModelController { 29 +public class IotThingModelController {
30 30
31 @Resource 31 @Resource
32 - private IotProductThingModelService thingModelService; 32 + private IotThingModelService thingModelService;
33 33
34 @PostMapping("/create") 34 @PostMapping("/create")
35 @Operation(summary = "创建产品物模型") 35 @Operation(summary = "创建产品物模型")
36 - @PreAuthorize("@ss.hasPermission('iot:product-thing-model:create')")  
37 - public CommonResult<Long> createProductThingModel(@Valid @RequestBody IotProductThingModelSaveReqVO createReqVO) {  
38 - return success(thingModelService.createProductThingModel(createReqVO)); 36 + @PreAuthorize("@ss.hasPermission('iot:thing-model:create')")
  37 + public CommonResult<Long> createThingModel(@Valid @RequestBody IotThingModelSaveReqVO createReqVO) {
  38 + return success(thingModelService.createThingModel(createReqVO));
39 } 39 }
40 40
41 @PutMapping("/update") 41 @PutMapping("/update")
42 @Operation(summary = "更新产品物模型") 42 @Operation(summary = "更新产品物模型")
43 - @PreAuthorize("@ss.hasPermission('iot:product-thing-model:update')")  
44 - public CommonResult<Boolean> updateProductThingModel(@Valid @RequestBody IotProductThingModelSaveReqVO updateReqVO) {  
45 - thingModelService.updateProductThingModel(updateReqVO); 43 + @PreAuthorize("@ss.hasPermission('iot:thing-model:update')")
  44 + public CommonResult<Boolean> updateThingModel(@Valid @RequestBody IotThingModelSaveReqVO updateReqVO) {
  45 + thingModelService.updateThingModel(updateReqVO);
46 return success(true); 46 return success(true);
47 } 47 }
48 48
49 @DeleteMapping("/delete") 49 @DeleteMapping("/delete")
50 @Operation(summary = "删除产品物模型") 50 @Operation(summary = "删除产品物模型")
51 @Parameter(name = "id", description = "编号", required = true) 51 @Parameter(name = "id", description = "编号", required = true)
52 - @PreAuthorize("@ss.hasPermission('iot:product-thing-model:delete')")  
53 - public CommonResult<Boolean> deleteProductThingModel(@RequestParam("id") Long id) {  
54 - thingModelService.deleteProductThingModel(id); 52 + @PreAuthorize("@ss.hasPermission('iot:thing-model:delete')")
  53 + public CommonResult<Boolean> deleteThingModel(@RequestParam("id") Long id) {
  54 + thingModelService.deleteThingModel(id);
55 return success(true); 55 return success(true);
56 } 56 }
57 57
58 @GetMapping("/get") 58 @GetMapping("/get")
59 @Operation(summary = "获得产品物模型") 59 @Operation(summary = "获得产品物模型")
60 @Parameter(name = "id", description = "编号", required = true) 60 @Parameter(name = "id", description = "编号", required = true)
61 - @PreAuthorize("@ss.hasPermission('iot:product-thing-model:query')")  
62 - public CommonResult<IotProductThingModelRespVO> getProductThingModel(@RequestParam("id") Long id) {  
63 - IotProductThingModelDO thingModel = thingModelService.getProductThingModel(id);  
64 - return success(IotProductThingModelConvert.INSTANCE.convert(thingModel)); 61 + @PreAuthorize("@ss.hasPermission('iot:thing-model:query')")
  62 + public CommonResult<IotThingModelRespVO> getThingModel(@RequestParam("id") Long id) {
  63 + IotThingModelDO thingModel = thingModelService.getThingModel(id);
  64 + return success(IotThingModelConvert.INSTANCE.convert(thingModel));
65 } 65 }
66 66
67 @GetMapping("/list-by-product-id") 67 @GetMapping("/list-by-product-id")
68 @Operation(summary = "获得产品物模型") 68 @Operation(summary = "获得产品物模型")
69 @Parameter(name = "productId", description = "产品ID", required = true, example = "1024") 69 @Parameter(name = "productId", description = "产品ID", required = true, example = "1024")
70 - @PreAuthorize("@ss.hasPermission('iot:product-thing-model:query')")  
71 - public CommonResult<List<IotProductThingModelRespVO>> getProductThingModelListByProductId(@RequestParam("productId") Long productId) {  
72 - List<IotProductThingModelDO> list = thingModelService.getProductThingModelListByProductId(productId);  
73 - return success(IotProductThingModelConvert.INSTANCE.convertList(list)); 70 + @PreAuthorize("@ss.hasPermission('iot:thing-model:query')")
  71 + public CommonResult<List<IotThingModelRespVO>> getThingModelListByProductId(@RequestParam("productId") Long productId) {
  72 + List<IotThingModelDO> list = thingModelService.getThingModelListByProductId(productId);
  73 + return success(IotThingModelConvert.INSTANCE.convertList(list));
74 } 74 }
75 75
76 @GetMapping("/page") 76 @GetMapping("/page")
77 @Operation(summary = "获得产品物模型分页") 77 @Operation(summary = "获得产品物模型分页")
78 - @PreAuthorize("@ss.hasPermission('iot:product-thing-model:query')")  
79 - public CommonResult<PageResult<IotProductThingModelRespVO>> getProductThingModelPage(@Valid IotProductThingModelPageReqVO pageReqVO) {  
80 - PageResult<IotProductThingModelDO> pageResult = thingModelService.getProductThingModelPage(pageReqVO);  
81 - return success(BeanUtils.toBean(pageResult, IotProductThingModelRespVO.class)); 78 + @PreAuthorize("@ss.hasPermission('iot:thing-model:query')")
  79 + public CommonResult<PageResult<IotThingModelRespVO>> getThingModelPage(@Valid IotThingModelPageReqVO pageReqVO) {
  80 + PageResult<IotThingModelDO> pageResult = thingModelService.getProductThingModelPage(pageReqVO);
  81 + return success(BeanUtils.toBean(pageResult, IotThingModelRespVO.class));
82 } 82 }
83 83
84 } 84 }
yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/thingmodel/model/ThingModelEvent.java
1 package cn.iocoder.yudao.module.iot.controller.admin.thingmodel.model; 1 package cn.iocoder.yudao.module.iot.controller.admin.thingmodel.model;
2 2
3 -import cn.iocoder.yudao.module.iot.enums.thingmodel.IotProductThingModelServiceEventTypeEnum; 3 +import cn.iocoder.yudao.module.iot.enums.thingmodel.IotThingModelServiceEventTypeEnum;
4 import lombok.Data; 4 import lombok.Data;
5 5
6 import java.util.List; 6 import java.util.List;
@@ -31,7 +31,7 @@ public class ThingModelEvent { @@ -31,7 +31,7 @@ public class ThingModelEvent {
31 /** 31 /**
32 * 事件类型 32 * 事件类型
33 * 33 *
34 - * 关联枚举 {@link IotProductThingModelServiceEventTypeEnum} 34 + * 关联枚举 {@link IotThingModelServiceEventTypeEnum}
35 */ 35 */
36 private String type; 36 private String type;
37 /** 37 /**
@@ -39,7 +39,7 @@ public class ThingModelEvent { @@ -39,7 +39,7 @@ public class ThingModelEvent {
39 * 39 *
40 * 输出参数定义事件调用后返回的结果或反馈信息,用于确认操作结果或提供额外的信息。 40 * 输出参数定义事件调用后返回的结果或反馈信息,用于确认操作结果或提供额外的信息。
41 */ 41 */
42 - private List<ThingModelInputOutputParam> outputParams; 42 + private List<ThingModelParam> outputParams;
43 /** 43 /**
44 * 标识设备需要执行的具体操作 44 * 标识设备需要执行的具体操作
45 */ 45 */
yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/thingmodel/model/ThingModelInputOutputParam.java renamed to yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/thingmodel/model/ThingModelParam.java
1 package cn.iocoder.yudao.module.iot.controller.admin.thingmodel.model; 1 package cn.iocoder.yudao.module.iot.controller.admin.thingmodel.model;
2 2
3 import cn.iocoder.yudao.module.iot.controller.admin.thingmodel.model.dataType.ThingModelDataSpecs; 3 import cn.iocoder.yudao.module.iot.controller.admin.thingmodel.model.dataType.ThingModelDataSpecs;
4 -import cn.iocoder.yudao.module.iot.enums.thingmodel.IotProductThingModelParamDirectionEnum; 4 +import cn.iocoder.yudao.module.iot.enums.thingmodel.IotThingModelParamDirectionEnum;
5 import lombok.Data; 5 import lombok.Data;
6 6
7 import java.util.List; 7 import java.util.List;
8 8
9 /** 9 /**
10 - * IOT 产品物模型中的参数 // TODO @puhui999 考虑要不改成 ThingModelParam ? 10 + * IOT 产品物模型中的参数
11 * 11 *
12 * @author HUIHUI 12 * @author HUIHUI
13 */ 13 */
14 @Data 14 @Data
15 -public class ThingModelInputOutputParam { 15 +public class ThingModelParam {
16 16
17 /** 17 /**
18 * 参数标识符 18 * 参数标识符
@@ -25,7 +25,7 @@ public class ThingModelInputOutputParam { @@ -25,7 +25,7 @@ public class ThingModelInputOutputParam {
25 /** 25 /**
26 * 用于区分输入或输出参数 26 * 用于区分输入或输出参数
27 * 27 *
28 - * 关联枚举 {@link IotProductThingModelParamDirectionEnum} 28 + * 关联枚举 {@link IotThingModelParamDirectionEnum}
29 */ 29 */
30 private String direction; 30 private String direction;
31 /** 31 /**
yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/thingmodel/model/ThingModelProperty.java
1 package cn.iocoder.yudao.module.iot.controller.admin.thingmodel.model; 1 package cn.iocoder.yudao.module.iot.controller.admin.thingmodel.model;
2 2
3 import cn.iocoder.yudao.module.iot.controller.admin.thingmodel.model.dataType.ThingModelDataSpecs; 3 import cn.iocoder.yudao.module.iot.controller.admin.thingmodel.model.dataType.ThingModelDataSpecs;
4 -import cn.iocoder.yudao.module.iot.enums.thingmodel.IotProductThingModelAccessModeEnum; 4 +import cn.iocoder.yudao.module.iot.enums.thingmodel.IotThingModelAccessModeEnum;
5 import lombok.Data; 5 import lombok.Data;
6 6
7 import java.util.List; 7 import java.util.List;
@@ -27,7 +27,7 @@ public class ThingModelProperty { @@ -27,7 +27,7 @@ public class ThingModelProperty {
27 /** 27 /**
28 * 云端可以对该属性进行的操作类型 28 * 云端可以对该属性进行的操作类型
29 * 29 *
30 - * 枚举 {@link IotProductThingModelAccessModeEnum} 30 + * 枚举 {@link IotThingModelAccessModeEnum}
31 */ 31 */
32 private String accessMode; 32 private String accessMode;
33 /** 33 /**
yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/thingmodel/model/ThingModelService.java
1 package cn.iocoder.yudao.module.iot.controller.admin.thingmodel.model; 1 package cn.iocoder.yudao.module.iot.controller.admin.thingmodel.model;
2 2
3 -import cn.iocoder.yudao.module.iot.enums.thingmodel.IotProductThingModelServiceCallTypeEnum; 3 +import cn.iocoder.yudao.module.iot.enums.thingmodel.IotThingModelServiceCallTypeEnum;
4 import lombok.Data; 4 import lombok.Data;
5 5
6 import java.util.List; 6 import java.util.List;
@@ -31,7 +31,7 @@ public class ThingModelService { @@ -31,7 +31,7 @@ public class ThingModelService {
31 /** 31 /**
32 * 调用类型 32 * 调用类型
33 * 33 *
34 - * 关联枚举 {@link IotProductThingModelServiceCallTypeEnum} 34 + * 关联枚举 {@link IotThingModelServiceCallTypeEnum}
35 */ 35 */
36 private String callType; 36 private String callType;
37 /** 37 /**
@@ -39,13 +39,13 @@ public class ThingModelService { @@ -39,13 +39,13 @@ public class ThingModelService {
39 * 39 *
40 * 输入参数定义服务调用时所需提供的信息,用于控制设备行为或执行特定任务 40 * 输入参数定义服务调用时所需提供的信息,用于控制设备行为或执行特定任务
41 */ 41 */
42 - private List<ThingModelInputOutputParam> inputParams; 42 + private List<ThingModelParam> inputParams;
43 /** 43 /**
44 * 服务的输出参数 44 * 服务的输出参数
45 * 45 *
46 * 输出参数定义服务调用后返回的结果或反馈信息,用于确认操作结果或提供额外的信息。 46 * 输出参数定义服务调用后返回的结果或反馈信息,用于确认操作结果或提供额外的信息。
47 */ 47 */
48 - private List<ThingModelInputOutputParam> outputParams; 48 + private List<ThingModelParam> outputParams;
49 /** 49 /**
50 * 标识设备需要执行的具体操作 50 * 标识设备需要执行的具体操作
51 */ 51 */
yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/thingmodel/model/dataType/ThingModelStructDataSpecs.java
1 package cn.iocoder.yudao.module.iot.controller.admin.thingmodel.model.dataType; 1 package cn.iocoder.yudao.module.iot.controller.admin.thingmodel.model.dataType;
2 2
3 -import cn.iocoder.yudao.module.iot.enums.thingmodel.IotProductThingModelAccessModeEnum; 3 +import cn.iocoder.yudao.module.iot.enums.thingmodel.IotThingModelAccessModeEnum;
4 import com.fasterxml.jackson.annotation.JsonIgnoreProperties; 4 import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
5 import lombok.Data; 5 import lombok.Data;
6 import lombok.EqualsAndHashCode; 6 import lombok.EqualsAndHashCode;
@@ -27,7 +27,7 @@ public class ThingModelStructDataSpecs extends ThingModelDataSpecs { @@ -27,7 +27,7 @@ public class ThingModelStructDataSpecs extends ThingModelDataSpecs {
27 private String name; 27 private String name;
28 /** 28 /**
29 * 云端可以对该属性进行的操作类型 29 * 云端可以对该属性进行的操作类型
30 - * 关联枚举 {@link IotProductThingModelAccessModeEnum} 30 + * 关联枚举 {@link IotThingModelAccessModeEnum}
31 */ 31 */
32 private String accessMode; 32 private String accessMode;
33 /** 33 /**
yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/thingmodel/vo/IotProductThingModelPageReqVO.java renamed to yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/thingmodel/vo/IotThingModelPageReqVO.java
@@ -2,7 +2,7 @@ package cn.iocoder.yudao.module.iot.controller.admin.thingmodel.vo; @@ -2,7 +2,7 @@ package cn.iocoder.yudao.module.iot.controller.admin.thingmodel.vo;
2 2
3 import cn.iocoder.yudao.framework.common.pojo.PageParam; 3 import cn.iocoder.yudao.framework.common.pojo.PageParam;
4 import cn.iocoder.yudao.framework.common.validation.InEnum; 4 import cn.iocoder.yudao.framework.common.validation.InEnum;
5 -import cn.iocoder.yudao.module.iot.enums.thingmodel.IotProductThingModelTypeEnum; 5 +import cn.iocoder.yudao.module.iot.enums.thingmodel.IotThingModelTypeEnum;
6 import io.swagger.v3.oas.annotations.media.Schema; 6 import io.swagger.v3.oas.annotations.media.Schema;
7 import jakarta.validation.constraints.NotNull; 7 import jakarta.validation.constraints.NotNull;
8 import lombok.Data; 8 import lombok.Data;
@@ -13,7 +13,7 @@ import lombok.ToString; @@ -13,7 +13,7 @@ import lombok.ToString;
13 @Data 13 @Data
14 @EqualsAndHashCode(callSuper = true) 14 @EqualsAndHashCode(callSuper = true)
15 @ToString(callSuper = true) 15 @ToString(callSuper = true)
16 -public class IotProductThingModelPageReqVO extends PageParam { 16 +public class IotThingModelPageReqVO extends PageParam {
17 17
18 @Schema(description = "功能标识") 18 @Schema(description = "功能标识")
19 private String identifier; 19 private String identifier;
@@ -22,7 +22,7 @@ public class IotProductThingModelPageReqVO extends PageParam { @@ -22,7 +22,7 @@ public class IotProductThingModelPageReqVO extends PageParam {
22 private String name; 22 private String name;
23 23
24 @Schema(description = "功能类型", example = "1") 24 @Schema(description = "功能类型", example = "1")
25 - @InEnum(IotProductThingModelTypeEnum.class) 25 + @InEnum(IotThingModelTypeEnum.class)
26 private Integer type; 26 private Integer type;
27 27
28 @Schema(description = "产品ID", requiredMode = Schema.RequiredMode.REQUIRED) 28 @Schema(description = "产品ID", requiredMode = Schema.RequiredMode.REQUIRED)
yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/thingmodel/vo/IotProductThingModelRespVO.java renamed to yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/thingmodel/vo/IotThingModelRespVO.java
@@ -13,7 +13,7 @@ import java.time.LocalDateTime; @@ -13,7 +13,7 @@ import java.time.LocalDateTime;
13 @Schema(description = "管理后台 - IoT 产品物模型 Response VO") 13 @Schema(description = "管理后台 - IoT 产品物模型 Response VO")
14 @Data 14 @Data
15 @ExcelIgnoreUnannotated 15 @ExcelIgnoreUnannotated
16 -public class IotProductThingModelRespVO { 16 +public class IotThingModelRespVO {
17 17
18 @Schema(description = "产品ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "21816") 18 @Schema(description = "产品ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "21816")
19 @ExcelProperty("产品ID") 19 @ExcelProperty("产品ID")
yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/thingmodel/vo/IotProductThingModelSaveReqVO.java renamed to yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/thingmodel/vo/IotThingModelSaveReqVO.java
@@ -4,7 +4,7 @@ import cn.iocoder.yudao.framework.common.validation.InEnum; @@ -4,7 +4,7 @@ import cn.iocoder.yudao.framework.common.validation.InEnum;
4 import cn.iocoder.yudao.module.iot.controller.admin.thingmodel.model.ThingModelEvent; 4 import cn.iocoder.yudao.module.iot.controller.admin.thingmodel.model.ThingModelEvent;
5 import cn.iocoder.yudao.module.iot.controller.admin.thingmodel.model.ThingModelProperty; 5 import cn.iocoder.yudao.module.iot.controller.admin.thingmodel.model.ThingModelProperty;
6 import cn.iocoder.yudao.module.iot.controller.admin.thingmodel.model.ThingModelService; 6 import cn.iocoder.yudao.module.iot.controller.admin.thingmodel.model.ThingModelService;
7 -import cn.iocoder.yudao.module.iot.enums.thingmodel.IotProductThingModelTypeEnum; 7 +import cn.iocoder.yudao.module.iot.enums.thingmodel.IotThingModelTypeEnum;
8 import io.swagger.v3.oas.annotations.media.Schema; 8 import io.swagger.v3.oas.annotations.media.Schema;
9 import jakarta.validation.constraints.NotEmpty; 9 import jakarta.validation.constraints.NotEmpty;
10 import jakarta.validation.constraints.NotNull; 10 import jakarta.validation.constraints.NotNull;
@@ -12,7 +12,7 @@ import lombok.Data; @@ -12,7 +12,7 @@ import lombok.Data;
12 12
13 @Schema(description = "管理后台 - IoT 产品物模型新增/修改 Request VO") 13 @Schema(description = "管理后台 - IoT 产品物模型新增/修改 Request VO")
14 @Data 14 @Data
15 -public class IotProductThingModelSaveReqVO { 15 +public class IotThingModelSaveReqVO {
16 16
17 @Schema(description = "编号", example = "1") 17 @Schema(description = "编号", example = "1")
18 private Long id; 18 private Long id;
@@ -38,7 +38,7 @@ public class IotProductThingModelSaveReqVO { @@ -38,7 +38,7 @@ public class IotProductThingModelSaveReqVO {
38 38
39 @Schema(description = "功能类型", requiredMode = Schema.RequiredMode.REQUIRED) 39 @Schema(description = "功能类型", requiredMode = Schema.RequiredMode.REQUIRED)
40 @NotNull(message = "功能类型不能为空") 40 @NotNull(message = "功能类型不能为空")
41 - @InEnum(IotProductThingModelTypeEnum.class) 41 + @InEnum(IotThingModelTypeEnum.class)
42 private Integer type; 42 private Integer type;
43 43
44 @Schema(description = "属性", requiredMode = Schema.RequiredMode.REQUIRED) 44 @Schema(description = "属性", requiredMode = Schema.RequiredMode.REQUIRED)
yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/convert/thingmodel/IotProductThingModelConvert.java renamed to yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/convert/thingmodel/IotThingModelConvert.java
@@ -3,10 +3,10 @@ package cn.iocoder.yudao.module.iot.convert.thingmodel; @@ -3,10 +3,10 @@ package cn.iocoder.yudao.module.iot.convert.thingmodel;
3 import cn.iocoder.yudao.module.iot.controller.admin.thingmodel.model.ThingModelEvent; 3 import cn.iocoder.yudao.module.iot.controller.admin.thingmodel.model.ThingModelEvent;
4 import cn.iocoder.yudao.module.iot.controller.admin.thingmodel.model.ThingModelProperty; 4 import cn.iocoder.yudao.module.iot.controller.admin.thingmodel.model.ThingModelProperty;
5 import cn.iocoder.yudao.module.iot.controller.admin.thingmodel.model.ThingModelService; 5 import cn.iocoder.yudao.module.iot.controller.admin.thingmodel.model.ThingModelService;
6 -import cn.iocoder.yudao.module.iot.controller.admin.thingmodel.vo.IotProductThingModelRespVO;  
7 -import cn.iocoder.yudao.module.iot.controller.admin.thingmodel.vo.IotProductThingModelSaveReqVO;  
8 -import cn.iocoder.yudao.module.iot.dal.dataobject.thingmodel.IotProductThingModelDO;  
9 -import cn.iocoder.yudao.module.iot.enums.thingmodel.IotProductThingModelTypeEnum; 6 +import cn.iocoder.yudao.module.iot.controller.admin.thingmodel.vo.IotThingModelRespVO;
  7 +import cn.iocoder.yudao.module.iot.controller.admin.thingmodel.vo.IotThingModelSaveReqVO;
  8 +import cn.iocoder.yudao.module.iot.dal.dataobject.thingmodel.IotThingModelDO;
  9 +import cn.iocoder.yudao.module.iot.enums.thingmodel.IotThingModelTypeEnum;
10 import org.mapstruct.Mapper; 10 import org.mapstruct.Mapper;
11 import org.mapstruct.Mapping; 11 import org.mapstruct.Mapping;
12 import org.mapstruct.Named; 12 import org.mapstruct.Named;
@@ -16,44 +16,44 @@ import java.util.List; @@ -16,44 +16,44 @@ import java.util.List;
16 import java.util.Objects; 16 import java.util.Objects;
17 17
18 @Mapper 18 @Mapper
19 -public interface IotProductThingModelConvert { 19 +public interface IotThingModelConvert {
20 20
21 - IotProductThingModelConvert INSTANCE = Mappers.getMapper(IotProductThingModelConvert.class); 21 + IotThingModelConvert INSTANCE = Mappers.getMapper(IotThingModelConvert.class);
22 22
23 // 将 SaveReqVO 转换为 DO 23 // 将 SaveReqVO 转换为 DO
24 @Mapping(target = "property", expression = "java(convertToProperty(bean))") 24 @Mapping(target = "property", expression = "java(convertToProperty(bean))")
25 @Mapping(target = "event", expression = "java(convertToEvent(bean))") 25 @Mapping(target = "event", expression = "java(convertToEvent(bean))")
26 @Mapping(target = "service", expression = "java(convertToService(bean))") 26 @Mapping(target = "service", expression = "java(convertToService(bean))")
27 - IotProductThingModelDO convert(IotProductThingModelSaveReqVO bean); 27 + IotThingModelDO convert(IotThingModelSaveReqVO bean);
28 28
29 // 将 DO 转换为 RespVO 29 // 将 DO 转换为 RespVO
30 @Mapping(target = "property", source = "property") 30 @Mapping(target = "property", source = "property")
31 @Mapping(target = "event", source = "event") 31 @Mapping(target = "event", source = "event")
32 @Mapping(target = "service", source = "service") 32 @Mapping(target = "service", source = "service")
33 - IotProductThingModelRespVO convert(IotProductThingModelDO bean); 33 + IotThingModelRespVO convert(IotThingModelDO bean);
34 34
35 // 批量转换 35 // 批量转换
36 - List<IotProductThingModelRespVO> convertList(List<IotProductThingModelDO> list); 36 + List<IotThingModelRespVO> convertList(List<IotThingModelDO> list);
37 37
38 @Named("convertToProperty") 38 @Named("convertToProperty")
39 - default ThingModelProperty convertToProperty(IotProductThingModelSaveReqVO bean) {  
40 - if (Objects.equals(bean.getType(), IotProductThingModelTypeEnum.PROPERTY.getType())) { 39 + default ThingModelProperty convertToProperty(IotThingModelSaveReqVO bean) {
  40 + if (Objects.equals(bean.getType(), IotThingModelTypeEnum.PROPERTY.getType())) {
41 return bean.getProperty(); 41 return bean.getProperty();
42 } 42 }
43 return null; 43 return null;
44 } 44 }
45 45
46 @Named("convertToEvent") 46 @Named("convertToEvent")
47 - default ThingModelEvent convertToEvent(IotProductThingModelSaveReqVO bean) {  
48 - if (Objects.equals(bean.getType(), IotProductThingModelTypeEnum.EVENT.getType())) { 47 + default ThingModelEvent convertToEvent(IotThingModelSaveReqVO bean) {
  48 + if (Objects.equals(bean.getType(), IotThingModelTypeEnum.EVENT.getType())) {
49 return bean.getEvent(); 49 return bean.getEvent();
50 } 50 }
51 return null; 51 return null;
52 } 52 }
53 53
54 @Named("convertToService") 54 @Named("convertToService")
55 - default ThingModelService convertToService(IotProductThingModelSaveReqVO bean) {  
56 - if (Objects.equals(bean.getType(), IotProductThingModelTypeEnum.SERVICE.getType())) { 55 + default ThingModelService convertToService(IotThingModelSaveReqVO bean) {
  56 + if (Objects.equals(bean.getType(), IotThingModelTypeEnum.SERVICE.getType())) {
57 return bean.getService(); 57 return bean.getService();
58 } 58 }
59 return null; 59 return null;
yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/dal/dataobject/device/IotDeviceDataDO.java
1 package cn.iocoder.yudao.module.iot.dal.dataobject.device; 1 package cn.iocoder.yudao.module.iot.dal.dataobject.device;
2 2
3 import cn.iocoder.yudao.module.iot.dal.dataobject.product.IotProductDO; 3 import cn.iocoder.yudao.module.iot.dal.dataobject.product.IotProductDO;
4 -import cn.iocoder.yudao.module.iot.dal.dataobject.thingmodel.IotProductThingModelDO; 4 +import cn.iocoder.yudao.module.iot.dal.dataobject.thingmodel.IotThingModelDO;
5 import lombok.AllArgsConstructor; 5 import lombok.AllArgsConstructor;
6 import lombok.Builder; 6 import lombok.Builder;
7 import lombok.Data; 7 import lombok.Data;
@@ -30,7 +30,7 @@ public class IotDeviceDataDO { @@ -30,7 +30,7 @@ public class IotDeviceDataDO {
30 /** 30 /**
31 * 物模型编号 31 * 物模型编号
32 * <p> 32 * <p>
33 - * 关联 {@link IotProductThingModelDO#getId()} 33 + * 关联 {@link IotThingModelDO#getId()}
34 */ 34 */
35 private Long thingModelId; 35 private Long thingModelId;
36 36
@@ -51,21 +51,21 @@ public class IotDeviceDataDO { @@ -51,21 +51,21 @@ public class IotDeviceDataDO {
51 /** 51 /**
52 * 属性标识符 52 * 属性标识符
53 * <p> 53 * <p>
54 - * 关联 {@link IotProductThingModelDO#getIdentifier()} 54 + * 关联 {@link IotThingModelDO#getIdentifier()}
55 */ 55 */
56 private String identifier; 56 private String identifier;
57 57
58 /** 58 /**
59 * 属性名称 59 * 属性名称
60 * <p> 60 * <p>
61 - * 关联 {@link IotProductThingModelDO#getName()} 61 + * 关联 {@link IotThingModelDO#getName()}
62 */ 62 */
63 private String name; 63 private String name;
64 64
65 /** 65 /**
66 * 数据类型 66 * 数据类型
67 * <p> 67 * <p>
68 - * 关联 {@link IotProductThingModelDO#getProperty()#getDataType()} 68 + * 关联 {@link IotThingModelDO#getProperty()#getDataType()}
69 */ 69 */
70 private String dataType; 70 private String dataType;
71 71
yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/dal/dataobject/thingmodel/IotProductThingModelDO.java renamed to yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/dal/dataobject/thingmodel/IotThingModelDO.java
@@ -5,7 +5,7 @@ import cn.iocoder.yudao.module.iot.controller.admin.thingmodel.model.ThingModelE @@ -5,7 +5,7 @@ import cn.iocoder.yudao.module.iot.controller.admin.thingmodel.model.ThingModelE
5 import cn.iocoder.yudao.module.iot.controller.admin.thingmodel.model.ThingModelProperty; 5 import cn.iocoder.yudao.module.iot.controller.admin.thingmodel.model.ThingModelProperty;
6 import cn.iocoder.yudao.module.iot.controller.admin.thingmodel.model.ThingModelService; 6 import cn.iocoder.yudao.module.iot.controller.admin.thingmodel.model.ThingModelService;
7 import cn.iocoder.yudao.module.iot.dal.dataobject.product.IotProductDO; 7 import cn.iocoder.yudao.module.iot.dal.dataobject.product.IotProductDO;
8 -import cn.iocoder.yudao.module.iot.enums.thingmodel.IotProductThingModelTypeEnum; 8 +import cn.iocoder.yudao.module.iot.enums.thingmodel.IotThingModelTypeEnum;
9 import com.baomidou.mybatisplus.annotation.KeySequence; 9 import com.baomidou.mybatisplus.annotation.KeySequence;
10 import com.baomidou.mybatisplus.annotation.TableField; 10 import com.baomidou.mybatisplus.annotation.TableField;
11 import com.baomidou.mybatisplus.annotation.TableId; 11 import com.baomidou.mybatisplus.annotation.TableId;
@@ -16,21 +16,20 @@ import lombok.Builder; @@ -16,21 +16,20 @@ import lombok.Builder;
16 import lombok.Data; 16 import lombok.Data;
17 import lombok.NoArgsConstructor; 17 import lombok.NoArgsConstructor;
18 18
19 -// TODO @huihui:IotProductThingModelDO => IotThingModelDO  
20 /** 19 /**
21 * IoT 产品物模型功能 DO 20 * IoT 产品物模型功能 DO
22 * <p> 21 * <p>
23 - * 每个 {@link IotProductDO} 和 {@link IotProductThingModelDO} 是“一对多”的关系,它的每个属性、事件、服务都对应一条记录 22 + * 每个 {@link IotProductDO} 和 {@link IotThingModelDO} 是“一对多”的关系,它的每个属性、事件、服务都对应一条记录
24 * 23 *
25 * @author 芋道源码 24 * @author 芋道源码
26 */ 25 */
27 -@TableName(value = "iot_product_thing_model", autoResultMap = true)  
28 -@KeySequence("iot_product_thing_model_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 26 +@TableName(value = "iot_thing_model", autoResultMap = true)
  27 +@KeySequence("iot_thing_model_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
29 @Data 28 @Data
30 @Builder 29 @Builder
31 @NoArgsConstructor 30 @NoArgsConstructor
32 @AllArgsConstructor 31 @AllArgsConstructor
33 -public class IotProductThingModelDO extends BaseDO { 32 +public class IotThingModelDO extends BaseDO {
34 33
35 /** 34 /**
36 * 物模型功能编号 35 * 物模型功能编号
@@ -67,7 +66,7 @@ public class IotProductThingModelDO extends BaseDO { @@ -67,7 +66,7 @@ public class IotProductThingModelDO extends BaseDO {
67 /** 66 /**
68 * 功能类型 67 * 功能类型
69 * <p> 68 * <p>
70 - * 枚举 {@link IotProductThingModelTypeEnum} 69 + * 枚举 {@link IotThingModelTypeEnum}
71 */ 70 */
72 private Integer type; 71 private Integer type;
73 72
yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/dal/mysql/thingmodel/IotProductThingModelMapper.java deleted
1 -package cn.iocoder.yudao.module.iot.dal.mysql.thingmodel;  
2 -  
3 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
4 -import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;  
5 -import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;  
6 -import cn.iocoder.yudao.module.iot.controller.admin.thingmodel.vo.IotProductThingModelPageReqVO;  
7 -import cn.iocoder.yudao.module.iot.dal.dataobject.thingmodel.IotProductThingModelDO;  
8 -import org.apache.ibatis.annotations.Mapper;  
9 -  
10 -import java.util.List;  
11 -  
12 -/**  
13 - * IoT 产品物模型 Mapper  
14 - *  
15 - * @author 芋道源码  
16 - */  
17 -@Mapper  
18 -public interface IotProductThingModelMapper extends BaseMapperX<IotProductThingModelDO> {  
19 -  
20 - default PageResult<IotProductThingModelDO> selectPage(IotProductThingModelPageReqVO reqVO) {  
21 - return selectPage(reqVO, new LambdaQueryWrapperX<IotProductThingModelDO>()  
22 - .eqIfPresent(IotProductThingModelDO::getIdentifier, reqVO.getIdentifier())  
23 - .likeIfPresent(IotProductThingModelDO::getName, reqVO.getName())  
24 - .eqIfPresent(IotProductThingModelDO::getType, reqVO.getType())  
25 - .eqIfPresent(IotProductThingModelDO::getProductId, reqVO.getProductId())  
26 - .notIn(IotProductThingModelDO::getIdentifier, "get", "set", "post")  
27 - .orderByDesc(IotProductThingModelDO::getId));  
28 - }  
29 -  
30 - default IotProductThingModelDO selectByProductIdAndIdentifier(Long productId, String identifier) {  
31 - return selectOne(IotProductThingModelDO::getProductId, productId,  
32 - IotProductThingModelDO::getIdentifier, identifier);  
33 - }  
34 -  
35 - default List<IotProductThingModelDO> selectListByProductId(Long productId) {  
36 - return selectList(IotProductThingModelDO::getProductId, productId);  
37 - }  
38 -  
39 - default List<IotProductThingModelDO> selectListByProductIdAndType(Long productId, Integer type) {  
40 - return selectList(IotProductThingModelDO::getProductId, productId,  
41 - IotProductThingModelDO::getType, type);  
42 - }  
43 -  
44 - default List<IotProductThingModelDO> selectListByProductIdAndIdentifiersAndTypes(Long productId,  
45 - List<String> identifiers,  
46 - List<Integer> types) {  
47 - return selectList(new LambdaQueryWrapperX<IotProductThingModelDO>()  
48 - .eq(IotProductThingModelDO::getProductId, productId)  
49 - .in(IotProductThingModelDO::getIdentifier, identifiers)  
50 - .in(IotProductThingModelDO::getType, types));  
51 - }  
52 -  
53 - default IotProductThingModelDO selectByProductIdAndName(Long productId, String name) {  
54 - return selectOne(IotProductThingModelDO::getProductId, productId,  
55 - IotProductThingModelDO::getName, name);  
56 - }  
57 -  
58 - default List<IotProductThingModelDO> selectListByProductKey(String productKey) {  
59 - return selectList(IotProductThingModelDO::getProductKey, productKey);  
60 - }  
61 -  
62 -}  
63 \ No newline at end of file 0 \ No newline at end of file
yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/dal/mysql/thingmodel/IotThingModelMapper.java 0 → 100644
  1 +package cn.iocoder.yudao.module.iot.dal.mysql.thingmodel;
  2 +
  3 +import cn.iocoder.yudao.framework.common.pojo.PageResult;
  4 +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
  5 +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
  6 +import cn.iocoder.yudao.module.iot.controller.admin.thingmodel.vo.IotThingModelPageReqVO;
  7 +import cn.iocoder.yudao.module.iot.dal.dataobject.thingmodel.IotThingModelDO;
  8 +import org.apache.ibatis.annotations.Mapper;
  9 +
  10 +import java.util.List;
  11 +
  12 +/**
  13 + * IoT 产品物模型 Mapper
  14 + *
  15 + * @author 芋道源码
  16 + */
  17 +@Mapper
  18 +public interface IotThingModelMapper extends BaseMapperX<IotThingModelDO> {
  19 +
  20 + default PageResult<IotThingModelDO> selectPage(IotThingModelPageReqVO reqVO) {
  21 + return selectPage(reqVO, new LambdaQueryWrapperX<IotThingModelDO>()
  22 + .eqIfPresent(IotThingModelDO::getIdentifier, reqVO.getIdentifier())
  23 + .likeIfPresent(IotThingModelDO::getName, reqVO.getName())
  24 + .eqIfPresent(IotThingModelDO::getType, reqVO.getType())
  25 + .eqIfPresent(IotThingModelDO::getProductId, reqVO.getProductId())
  26 + .notIn(IotThingModelDO::getIdentifier, "get", "set", "post")
  27 + .orderByDesc(IotThingModelDO::getId));
  28 + }
  29 +
  30 + default IotThingModelDO selectByProductIdAndIdentifier(Long productId, String identifier) {
  31 + return selectOne(IotThingModelDO::getProductId, productId,
  32 + IotThingModelDO::getIdentifier, identifier);
  33 + }
  34 +
  35 + default List<IotThingModelDO> selectListByProductId(Long productId) {
  36 + return selectList(IotThingModelDO::getProductId, productId);
  37 + }
  38 +
  39 + default List<IotThingModelDO> selectListByProductIdAndType(Long productId, Integer type) {
  40 + return selectList(IotThingModelDO::getProductId, productId,
  41 + IotThingModelDO::getType, type);
  42 + }
  43 +
  44 + default List<IotThingModelDO> selectListByProductIdAndIdentifiersAndTypes(Long productId,
  45 + List<String> identifiers,
  46 + List<Integer> types) {
  47 + return selectList(new LambdaQueryWrapperX<IotThingModelDO>()
  48 + .eq(IotThingModelDO::getProductId, productId)
  49 + .in(IotThingModelDO::getIdentifier, identifiers)
  50 + .in(IotThingModelDO::getType, types));
  51 + }
  52 +
  53 + default IotThingModelDO selectByProductIdAndName(Long productId, String name) {
  54 + return selectOne(IotThingModelDO::getProductId, productId,
  55 + IotThingModelDO::getName, name);
  56 + }
  57 +
  58 + default List<IotThingModelDO> selectListByProductKey(String productKey) {
  59 + return selectList(IotThingModelDO::getProductKey, productKey);
  60 + }
  61 +
  62 +}
0 \ No newline at end of file 63 \ No newline at end of file
yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/device/IotDevicePropertyDataServiceImpl.java
@@ -13,17 +13,17 @@ import cn.iocoder.yudao.module.iot.dal.dataobject.device.IotDeviceDataDO; @@ -13,17 +13,17 @@ import cn.iocoder.yudao.module.iot.dal.dataobject.device.IotDeviceDataDO;
13 import cn.iocoder.yudao.module.iot.dal.dataobject.product.IotProductDO; 13 import cn.iocoder.yudao.module.iot.dal.dataobject.product.IotProductDO;
14 import cn.iocoder.yudao.module.iot.dal.dataobject.tdengine.SelectVisualDO; 14 import cn.iocoder.yudao.module.iot.dal.dataobject.tdengine.SelectVisualDO;
15 import cn.iocoder.yudao.module.iot.dal.dataobject.tdengine.ThingModelMessage; 15 import cn.iocoder.yudao.module.iot.dal.dataobject.tdengine.ThingModelMessage;
16 -import cn.iocoder.yudao.module.iot.dal.dataobject.thingmodel.IotProductThingModelDO; 16 +import cn.iocoder.yudao.module.iot.dal.dataobject.thingmodel.IotThingModelDO;
17 import cn.iocoder.yudao.module.iot.dal.tdengine.IotDevicePropertyDataMapper; 17 import cn.iocoder.yudao.module.iot.dal.tdengine.IotDevicePropertyDataMapper;
18 import cn.iocoder.yudao.module.iot.dal.redis.deviceData.DeviceDataRedisDAO; 18 import cn.iocoder.yudao.module.iot.dal.redis.deviceData.DeviceDataRedisDAO;
19 import cn.iocoder.yudao.module.iot.dal.tdengine.TdEngineDMLMapper; 19 import cn.iocoder.yudao.module.iot.dal.tdengine.TdEngineDMLMapper;
20 import cn.iocoder.yudao.module.iot.enums.IotConstants; 20 import cn.iocoder.yudao.module.iot.enums.IotConstants;
21 import cn.iocoder.yudao.module.iot.enums.thingmodel.IotDataSpecsDataTypeEnum; 21 import cn.iocoder.yudao.module.iot.enums.thingmodel.IotDataSpecsDataTypeEnum;
22 -import cn.iocoder.yudao.module.iot.enums.thingmodel.IotProductThingModelTypeEnum; 22 +import cn.iocoder.yudao.module.iot.enums.thingmodel.IotThingModelTypeEnum;
23 import cn.iocoder.yudao.module.iot.framework.tdengine.core.TDengineTableField; 23 import cn.iocoder.yudao.module.iot.framework.tdengine.core.TDengineTableField;
24 import cn.iocoder.yudao.module.iot.service.product.IotProductService; 24 import cn.iocoder.yudao.module.iot.service.product.IotProductService;
25 import cn.iocoder.yudao.module.iot.service.tdengine.IotThingModelMessageService; 25 import cn.iocoder.yudao.module.iot.service.tdengine.IotThingModelMessageService;
26 -import cn.iocoder.yudao.module.iot.service.thingmodel.IotProductThingModelService; 26 +import cn.iocoder.yudao.module.iot.service.thingmodel.IotThingModelService;
27 import jakarta.annotation.Resource; 27 import jakarta.annotation.Resource;
28 import jakarta.validation.Valid; 28 import jakarta.validation.Valid;
29 import lombok.extern.slf4j.Slf4j; 29 import lombok.extern.slf4j.Slf4j;
@@ -71,7 +71,7 @@ public class IotDevicePropertyDataServiceImpl implements IotDevicePropertyDataSe @@ -71,7 +71,7 @@ public class IotDevicePropertyDataServiceImpl implements IotDevicePropertyDataSe
71 @Resource 71 @Resource
72 private IotThingModelMessageService thingModelMessageService; 72 private IotThingModelMessageService thingModelMessageService;
73 @Resource 73 @Resource
74 - private IotProductThingModelService thingModelService; 74 + private IotThingModelService thingModelService;
75 @Resource 75 @Resource
76 private IotProductService productService; 76 private IotProductService productService;
77 77
@@ -88,8 +88,8 @@ public class IotDevicePropertyDataServiceImpl implements IotDevicePropertyDataSe @@ -88,8 +88,8 @@ public class IotDevicePropertyDataServiceImpl implements IotDevicePropertyDataSe
88 public void defineDevicePropertyData(Long productId) { 88 public void defineDevicePropertyData(Long productId) {
89 // 1.1 查询产品和物模型 89 // 1.1 查询产品和物模型
90 IotProductDO product = productService.validateProductExists(productId); 90 IotProductDO product = productService.validateProductExists(productId);
91 - List<IotProductThingModelDO> thingModels = filterList(thingModelService.getProductThingModelListByProductId(productId),  
92 - thingModel -> IotProductThingModelTypeEnum.PROPERTY.getType().equals(thingModel.getType())); 91 + List<IotThingModelDO> thingModels = filterList(thingModelService.getThingModelListByProductId(productId),
  92 + thingModel -> IotThingModelTypeEnum.PROPERTY.getType().equals(thingModel.getType()));
93 // 1.2 解析 DB 里的字段 93 // 1.2 解析 DB 里的字段
94 List<TDengineTableField> oldFields = new ArrayList<>(); 94 List<TDengineTableField> oldFields = new ArrayList<>();
95 try { 95 try {
@@ -115,7 +115,7 @@ public class IotDevicePropertyDataServiceImpl implements IotDevicePropertyDataSe @@ -115,7 +115,7 @@ public class IotDevicePropertyDataServiceImpl implements IotDevicePropertyDataSe
115 devicePropertyDataMapper.alterProductPropertySTable(product.getProductKey(), oldFields, newFields); 115 devicePropertyDataMapper.alterProductPropertySTable(product.getProductKey(), oldFields, newFields);
116 } 116 }
117 117
118 - private List<TDengineTableField> buildTableFieldList(List<IotProductThingModelDO> thingModels) { 118 + private List<TDengineTableField> buildTableFieldList(List<IotThingModelDO> thingModels) {
119 return convertList(thingModels, thingModel -> { 119 return convertList(thingModels, thingModel -> {
120 TDengineTableField field = new TDengineTableField( 120 TDengineTableField field = new TDengineTableField(
121 StrUtil.toUnderlineCase(thingModel.getIdentifier()), // TDengine 字段默认都是小写 121 StrUtil.toUnderlineCase(thingModel.getIdentifier()), // TDengine 字段默认都是小写
@@ -153,8 +153,8 @@ public class IotDevicePropertyDataServiceImpl implements IotDevicePropertyDataSe @@ -153,8 +153,8 @@ public class IotDevicePropertyDataServiceImpl implements IotDevicePropertyDataSe
153 // 1. 获取设备信息 153 // 1. 获取设备信息
154 IotDeviceDO device = deviceService.getDevice(deviceDataReqVO.getDeviceId()); 154 IotDeviceDO device = deviceService.getDevice(deviceDataReqVO.getDeviceId());
155 // 2. 获取设备属性最新数据 155 // 2. 获取设备属性最新数据
156 - List<IotProductThingModelDO> thingModelList = thingModelService.getProductThingModelListByProductKey(device.getProductKey());  
157 - thingModelList = filterList(thingModelList, thingModel -> IotProductThingModelTypeEnum.PROPERTY.getType() 156 + List<IotThingModelDO> thingModelList = thingModelService.getProductThingModelListByProductKey(device.getProductKey());
  157 + thingModelList = filterList(thingModelList, thingModel -> IotThingModelTypeEnum.PROPERTY.getType()
158 .equals(thingModel.getType())); 158 .equals(thingModel.getType()));
159 159
160 // 3. 过滤标识符和属性名称 160 // 3. 过滤标识符和属性名称
yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/tdengine/IotThingModelMessageServiceImpl.java
@@ -11,16 +11,16 @@ import cn.iocoder.yudao.module.iot.dal.dataobject.tdengine.FieldParser; @@ -11,16 +11,16 @@ import cn.iocoder.yudao.module.iot.dal.dataobject.tdengine.FieldParser;
11 import cn.iocoder.yudao.module.iot.dal.dataobject.tdengine.TdFieldDO; 11 import cn.iocoder.yudao.module.iot.dal.dataobject.tdengine.TdFieldDO;
12 import cn.iocoder.yudao.module.iot.dal.dataobject.tdengine.TdTableDO; 12 import cn.iocoder.yudao.module.iot.dal.dataobject.tdengine.TdTableDO;
13 import cn.iocoder.yudao.module.iot.dal.dataobject.tdengine.ThingModelMessage; 13 import cn.iocoder.yudao.module.iot.dal.dataobject.tdengine.ThingModelMessage;
14 -import cn.iocoder.yudao.module.iot.dal.dataobject.thingmodel.IotProductThingModelDO; 14 +import cn.iocoder.yudao.module.iot.dal.dataobject.thingmodel.IotThingModelDO;
15 import cn.iocoder.yudao.module.iot.dal.dataobject.product.IotProductDO; 15 import cn.iocoder.yudao.module.iot.dal.dataobject.product.IotProductDO;
16 import cn.iocoder.yudao.module.iot.dal.redis.deviceData.DeviceDataRedisDAO; 16 import cn.iocoder.yudao.module.iot.dal.redis.deviceData.DeviceDataRedisDAO;
17 import cn.iocoder.yudao.module.iot.dal.tdengine.TdEngineDDLMapper; 17 import cn.iocoder.yudao.module.iot.dal.tdengine.TdEngineDDLMapper;
18 import cn.iocoder.yudao.module.iot.dal.tdengine.TdEngineDMLMapper; 18 import cn.iocoder.yudao.module.iot.dal.tdengine.TdEngineDMLMapper;
19 import cn.iocoder.yudao.module.iot.enums.IotConstants; 19 import cn.iocoder.yudao.module.iot.enums.IotConstants;
20 import cn.iocoder.yudao.module.iot.enums.device.IotDeviceStatusEnum; 20 import cn.iocoder.yudao.module.iot.enums.device.IotDeviceStatusEnum;
21 -import cn.iocoder.yudao.module.iot.enums.thingmodel.IotProductThingModelTypeEnum; 21 +import cn.iocoder.yudao.module.iot.enums.thingmodel.IotThingModelTypeEnum;
22 import cn.iocoder.yudao.module.iot.service.device.IotDeviceService; 22 import cn.iocoder.yudao.module.iot.service.device.IotDeviceService;
23 -import cn.iocoder.yudao.module.iot.service.thingmodel.IotProductThingModelService; 23 +import cn.iocoder.yudao.module.iot.service.thingmodel.IotThingModelService;
24 import cn.iocoder.yudao.module.iot.service.product.IotProductService; 24 import cn.iocoder.yudao.module.iot.service.product.IotProductService;
25 import cn.iocoder.yudao.module.iot.util.IotTdDatabaseUtils; 25 import cn.iocoder.yudao.module.iot.util.IotTdDatabaseUtils;
26 import jakarta.annotation.Resource; 26 import jakarta.annotation.Resource;
@@ -52,7 +52,7 @@ public class IotThingModelMessageServiceImpl implements IotThingModelMessageServ @@ -52,7 +52,7 @@ public class IotThingModelMessageServiceImpl implements IotThingModelMessageServ
52 private String url; 52 private String url;
53 53
54 @Resource 54 @Resource
55 - private IotProductThingModelService iotProductThingModelService; 55 + private IotThingModelService iotThingModelService;
56 @Resource 56 @Resource
57 private IotDeviceService iotDeviceService; 57 private IotDeviceService iotDeviceService;
58 @Resource 58 @Resource
@@ -83,7 +83,7 @@ public class IotThingModelMessageServiceImpl implements IotThingModelMessageServ @@ -83,7 +83,7 @@ public class IotThingModelMessageServiceImpl implements IotThingModelMessageServ
83 83
84 // 2. 获取设备属性并进行物模型校验,过滤非物模型属性 84 // 2. 获取设备属性并进行物模型校验,过滤非物模型属性
85 Map<String, Object> params = thingModelMessage.dataToMap(); 85 Map<String, Object> params = thingModelMessage.dataToMap();
86 - List<IotProductThingModelDO> thingModelList = getValidThingModelList(thingModelMessage.getProductKey()); 86 + List<IotThingModelDO> thingModelList = getValidThingModelList(thingModelMessage.getProductKey());
87 if (thingModelList.isEmpty()) { 87 if (thingModelList.isEmpty()) {
88 return; 88 return;
89 } 89 }
@@ -102,9 +102,9 @@ public class IotThingModelMessageServiceImpl implements IotThingModelMessageServ @@ -102,9 +102,9 @@ public class IotThingModelMessageServiceImpl implements IotThingModelMessageServ
102 .build()); 102 .build());
103 } 103 }
104 104
105 - private List<IotProductThingModelDO> getValidThingModelList(String productKey) {  
106 - return filterList(iotProductThingModelService.getProductThingModelListByProductKey(productKey),  
107 - thingModel -> IotProductThingModelTypeEnum.PROPERTY.getType().equals(thingModel.getType())); 105 + private List<IotThingModelDO> getValidThingModelList(String productKey) {
  106 + return filterList(iotThingModelService.getProductThingModelListByProductKey(productKey),
  107 + thingModel -> IotThingModelTypeEnum.PROPERTY.getType().equals(thingModel.getType()));
108 } 108 }
109 109
110 @Override 110 @Override
@@ -134,17 +134,17 @@ public class IotThingModelMessageServiceImpl implements IotThingModelMessageServ @@ -134,17 +134,17 @@ public class IotThingModelMessageServiceImpl implements IotThingModelMessageServ
134 tdEngineDDLMapper.createSuperTable(new TdTableDO(databaseName, superTableName, schemaFields, tagsFields)); 134 tdEngineDDLMapper.createSuperTable(new TdTableDO(databaseName, superTableName, schemaFields, tagsFields));
135 } 135 }
136 136
137 - private List<IotProductThingModelDO> getValidFunctionList(String productKey) {  
138 - return filterList(iotProductThingModelService.getProductThingModelListByProductKey(productKey),  
139 - thingModel -> IotProductThingModelTypeEnum.PROPERTY.getType().equals(thingModel.getType())); 137 + private List<IotThingModelDO> getValidFunctionList(String productKey) {
  138 + return filterList(iotThingModelService.getProductThingModelListByProductKey(productKey),
  139 + thingModel -> IotThingModelTypeEnum.PROPERTY.getType().equals(thingModel.getType()));
140 } 140 }
141 141
142 - private List<TdFieldDO> filterAndCollectValidFields(Map<String, Object> params, List<IotProductThingModelDO> thingModelList, IotDeviceDO device, Long time) { 142 + private List<TdFieldDO> filterAndCollectValidFields(Map<String, Object> params, List<IotThingModelDO> thingModelList, IotDeviceDO device, Long time) {
143 // 1. 获取属性标识符集合 143 // 1. 获取属性标识符集合
144 - Set<String> propertyIdentifiers = convertSet(thingModelList, IotProductThingModelDO::getIdentifier); 144 + Set<String> propertyIdentifiers = convertSet(thingModelList, IotThingModelDO::getIdentifier);
145 145
146 // 2. 构建属性标识符和属性的映射 146 // 2. 构建属性标识符和属性的映射
147 - Map<String, IotProductThingModelDO> thingModelMap = convertMap(thingModelList, IotProductThingModelDO::getIdentifier); 147 + Map<String, IotThingModelDO> thingModelMap = convertMap(thingModelList, IotThingModelDO::getIdentifier);
148 148
149 // 3. 过滤并收集有效的属性字段 149 // 3. 过滤并收集有效的属性字段
150 List<TdFieldDO> schemaFieldValues = new ArrayList<>(); 150 List<TdFieldDO> schemaFieldValues = new ArrayList<>();
@@ -164,21 +164,21 @@ public class IotThingModelMessageServiceImpl implements IotThingModelMessageServ @@ -164,21 +164,21 @@ public class IotThingModelMessageServiceImpl implements IotThingModelMessageServ
164 * 缓存设备属性 164 * 缓存设备属性
165 * 165 *
166 * @param device 设备信息 166 * @param device 设备信息
167 - * @param iotProductThingModelDO 物模型属性 167 + * @param iotThingModelDO 物模型属性
168 * @param val 属性值 168 * @param val 属性值
169 * @param time 时间 169 * @param time 时间
170 */ 170 */
171 - private void setDeviceDataCache(IotDeviceDO device, IotProductThingModelDO iotProductThingModelDO, Object val, Long time) { 171 + private void setDeviceDataCache(IotDeviceDO device, IotThingModelDO iotThingModelDO, Object val, Long time) {
172 IotDeviceDataDO deviceData = IotDeviceDataDO.builder() 172 IotDeviceDataDO deviceData = IotDeviceDataDO.builder()
173 .productKey(device.getProductKey()) 173 .productKey(device.getProductKey())
174 .deviceName(device.getDeviceName()) 174 .deviceName(device.getDeviceName())
175 - .identifier(iotProductThingModelDO.getIdentifier()) 175 + .identifier(iotThingModelDO.getIdentifier())
176 .value(val != null ? val.toString() : null) 176 .value(val != null ? val.toString() : null)
177 .updateTime(DateUtil.toLocalDateTime(new Date(time))) 177 .updateTime(DateUtil.toLocalDateTime(new Date(time)))
178 .deviceId(device.getId()) 178 .deviceId(device.getId())
179 - .thingModelId(iotProductThingModelDO.getId())  
180 - .name(iotProductThingModelDO.getName())  
181 - .dataType(iotProductThingModelDO.getProperty().getDataType()) 179 + .thingModelId(iotThingModelDO.getId())
  180 + .name(iotThingModelDO.getName())
  181 + .dataType(iotThingModelDO.getProperty().getDataType())
182 .build(); 182 .build();
183 deviceDataRedisDAO.set(deviceData); 183 deviceDataRedisDAO.set(deviceData);
184 } 184 }
yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/thingmodel/IotProductThingModelService.java renamed to yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/thingmodel/IotThingModelService.java
1 package cn.iocoder.yudao.module.iot.service.thingmodel; 1 package cn.iocoder.yudao.module.iot.service.thingmodel;
2 2
3 import cn.iocoder.yudao.framework.common.pojo.PageResult; 3 import cn.iocoder.yudao.framework.common.pojo.PageResult;
4 -import cn.iocoder.yudao.module.iot.controller.admin.thingmodel.vo.IotProductThingModelPageReqVO;  
5 -import cn.iocoder.yudao.module.iot.controller.admin.thingmodel.vo.IotProductThingModelSaveReqVO;  
6 -import cn.iocoder.yudao.module.iot.dal.dataobject.thingmodel.IotProductThingModelDO; 4 +import cn.iocoder.yudao.module.iot.controller.admin.thingmodel.vo.IotThingModelPageReqVO;
  5 +import cn.iocoder.yudao.module.iot.controller.admin.thingmodel.vo.IotThingModelSaveReqVO;
  6 +import cn.iocoder.yudao.module.iot.dal.dataobject.thingmodel.IotThingModelDO;
7 import jakarta.validation.Valid; 7 import jakarta.validation.Valid;
8 8
9 import java.util.List; 9 import java.util.List;
@@ -13,7 +13,7 @@ import java.util.List; @@ -13,7 +13,7 @@ import java.util.List;
13 * 13 *
14 * @author 芋道源码 14 * @author 芋道源码
15 */ 15 */
16 -public interface IotProductThingModelService { 16 +public interface IotThingModelService {
17 17
18 /** 18 /**
19 * 创建产品物模型 19 * 创建产品物模型
@@ -21,21 +21,21 @@ public interface IotProductThingModelService { @@ -21,21 +21,21 @@ public interface IotProductThingModelService {
21 * @param createReqVO 创建信息 21 * @param createReqVO 创建信息
22 * @return 编号 22 * @return 编号
23 */ 23 */
24 - Long createProductThingModel(@Valid IotProductThingModelSaveReqVO createReqVO); 24 + Long createThingModel(@Valid IotThingModelSaveReqVO createReqVO);
25 25
26 /** 26 /**
27 * 更新产品物模型 27 * 更新产品物模型
28 * 28 *
29 * @param updateReqVO 更新信息 29 * @param updateReqVO 更新信息
30 */ 30 */
31 - void updateProductThingModel(@Valid IotProductThingModelSaveReqVO updateReqVO); 31 + void updateThingModel(@Valid IotThingModelSaveReqVO updateReqVO);
32 32
33 /** 33 /**
34 * 删除产品物模型 34 * 删除产品物模型
35 * 35 *
36 * @param id 编号 36 * @param id 编号
37 */ 37 */
38 - void deleteProductThingModel(Long id); 38 + void deleteThingModel(Long id);
39 39
40 /** 40 /**
41 * 获得产品物模型 41 * 获得产品物模型
@@ -43,7 +43,7 @@ public interface IotProductThingModelService { @@ -43,7 +43,7 @@ public interface IotProductThingModelService {
43 * @param id 编号 43 * @param id 编号
44 * @return 产品物模型 44 * @return 产品物模型
45 */ 45 */
46 - IotProductThingModelDO getProductThingModel(Long id); 46 + IotThingModelDO getThingModel(Long id);
47 47
48 /** 48 /**
49 * 获得产品物模型列表 49 * 获得产品物模型列表
@@ -51,7 +51,7 @@ public interface IotProductThingModelService { @@ -51,7 +51,7 @@ public interface IotProductThingModelService {
51 * @param productId 产品编号 51 * @param productId 产品编号
52 * @return 产品物模型列表 52 * @return 产品物模型列表
53 */ 53 */
54 - List<IotProductThingModelDO> getProductThingModelListByProductId(Long productId); 54 + List<IotThingModelDO> getThingModelListByProductId(Long productId);
55 55
56 /** 56 /**
57 * 获得产品物模型分页 57 * 获得产品物模型分页
@@ -59,7 +59,7 @@ public interface IotProductThingModelService { @@ -59,7 +59,7 @@ public interface IotProductThingModelService {
59 * @param pageReqVO 分页查询 59 * @param pageReqVO 分页查询
60 * @return 产品物模型分页 60 * @return 产品物模型分页
61 */ 61 */
62 - PageResult<IotProductThingModelDO> getProductThingModelPage(IotProductThingModelPageReqVO pageReqVO); 62 + PageResult<IotThingModelDO> getProductThingModelPage(IotThingModelPageReqVO pageReqVO);
63 63
64 /** 64 /**
65 * 获得产品物模型列表 65 * 获得产品物模型列表
@@ -67,6 +67,6 @@ public interface IotProductThingModelService { @@ -67,6 +67,6 @@ public interface IotProductThingModelService {
67 * @param productKey 产品 Key 67 * @param productKey 产品 Key
68 * @return 产品物模型列表 68 * @return 产品物模型列表
69 */ 69 */
70 - List<IotProductThingModelDO> getProductThingModelListByProductKey(String productKey); 70 + List<IotThingModelDO> getProductThingModelListByProductKey(String productKey);
71 71
72 } 72 }
73 \ No newline at end of file 73 \ No newline at end of file
yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/thingmodel/IotProductThingModelServiceImpl.java renamed to yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/thingmodel/IotThingModelServiceImpl.java
@@ -5,14 +5,14 @@ import cn.hutool.core.util.ObjectUtil; @@ -5,14 +5,14 @@ import cn.hutool.core.util.ObjectUtil;
5 import cn.iocoder.yudao.framework.common.pojo.PageResult; 5 import cn.iocoder.yudao.framework.common.pojo.PageResult;
6 import cn.iocoder.yudao.framework.common.util.object.BeanUtils; 6 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
7 import cn.iocoder.yudao.module.iot.controller.admin.thingmodel.model.ThingModelEvent; 7 import cn.iocoder.yudao.module.iot.controller.admin.thingmodel.model.ThingModelEvent;
8 -import cn.iocoder.yudao.module.iot.controller.admin.thingmodel.model.ThingModelInputOutputParam; 8 +import cn.iocoder.yudao.module.iot.controller.admin.thingmodel.model.ThingModelParam;
9 import cn.iocoder.yudao.module.iot.controller.admin.thingmodel.model.ThingModelService; 9 import cn.iocoder.yudao.module.iot.controller.admin.thingmodel.model.ThingModelService;
10 -import cn.iocoder.yudao.module.iot.controller.admin.thingmodel.vo.IotProductThingModelPageReqVO;  
11 -import cn.iocoder.yudao.module.iot.controller.admin.thingmodel.vo.IotProductThingModelSaveReqVO;  
12 -import cn.iocoder.yudao.module.iot.convert.thingmodel.IotProductThingModelConvert; 10 +import cn.iocoder.yudao.module.iot.controller.admin.thingmodel.vo.IotThingModelPageReqVO;
  11 +import cn.iocoder.yudao.module.iot.controller.admin.thingmodel.vo.IotThingModelSaveReqVO;
  12 +import cn.iocoder.yudao.module.iot.convert.thingmodel.IotThingModelConvert;
13 import cn.iocoder.yudao.module.iot.dal.dataobject.product.IotProductDO; 13 import cn.iocoder.yudao.module.iot.dal.dataobject.product.IotProductDO;
14 -import cn.iocoder.yudao.module.iot.dal.dataobject.thingmodel.IotProductThingModelDO;  
15 -import cn.iocoder.yudao.module.iot.dal.mysql.thingmodel.IotProductThingModelMapper; 14 +import cn.iocoder.yudao.module.iot.dal.dataobject.thingmodel.IotThingModelDO;
  15 +import cn.iocoder.yudao.module.iot.dal.mysql.thingmodel.IotThingModelMapper;
16 import cn.iocoder.yudao.module.iot.enums.product.IotProductStatusEnum; 16 import cn.iocoder.yudao.module.iot.enums.product.IotProductStatusEnum;
17 import cn.iocoder.yudao.module.iot.enums.thingmodel.*; 17 import cn.iocoder.yudao.module.iot.enums.thingmodel.*;
18 import cn.iocoder.yudao.module.iot.service.product.IotProductService; 18 import cn.iocoder.yudao.module.iot.service.product.IotProductService;
@@ -36,17 +36,17 @@ import static cn.iocoder.yudao.module.iot.enums.ErrorCodeConstants.*; @@ -36,17 +36,17 @@ import static cn.iocoder.yudao.module.iot.enums.ErrorCodeConstants.*;
36 @Service 36 @Service
37 @Validated 37 @Validated
38 @Slf4j 38 @Slf4j
39 -public class IotProductThingModelServiceImpl implements IotProductThingModelService { 39 +public class IotThingModelServiceImpl implements IotThingModelService {
40 40
41 @Resource 41 @Resource
42 - private IotProductThingModelMapper productThingModelMapper; 42 + private IotThingModelMapper thingModelMapper;
43 43
44 @Resource 44 @Resource
45 private IotProductService productService; 45 private IotProductService productService;
46 46
47 @Override 47 @Override
48 @Transactional(rollbackFor = Exception.class) 48 @Transactional(rollbackFor = Exception.class)
49 - public Long createProductThingModel(IotProductThingModelSaveReqVO createReqVO) { 49 + public Long createThingModel(IotThingModelSaveReqVO createReqVO) {
50 // 1. 校验功能标识符在同一产品下是否唯一 50 // 1. 校验功能标识符在同一产品下是否唯一
51 validateIdentifierUnique(createReqVO.getProductId(), createReqVO.getIdentifier()); 51 validateIdentifierUnique(createReqVO.getProductId(), createReqVO.getIdentifier());
52 52
@@ -60,11 +60,11 @@ public class IotProductThingModelServiceImpl implements IotProductThingModelServ @@ -60,11 +60,11 @@ public class IotProductThingModelServiceImpl implements IotProductThingModelServ
60 validateProductStatus(createReqVO.getProductId()); 60 validateProductStatus(createReqVO.getProductId());
61 61
62 // 5. 插入数据库 62 // 5. 插入数据库
63 - IotProductThingModelDO thingModel = IotProductThingModelConvert.INSTANCE.convert(createReqVO);  
64 - productThingModelMapper.insert(thingModel); 63 + IotThingModelDO thingModel = IotThingModelConvert.INSTANCE.convert(createReqVO);
  64 + thingModelMapper.insert(thingModel);
65 65
66 // 6. 如果创建的是属性,需要更新默认的事件和服务 66 // 6. 如果创建的是属性,需要更新默认的事件和服务
67 - if (Objects.equals(createReqVO.getType(), IotProductThingModelTypeEnum.PROPERTY.getType())) { 67 + if (Objects.equals(createReqVO.getType(), IotThingModelTypeEnum.PROPERTY.getType())) {
68 createDefaultEventsAndServices(createReqVO.getProductId(), createReqVO.getProductKey()); 68 createDefaultEventsAndServices(createReqVO.getProductId(), createReqVO.getProductKey());
69 } 69 }
70 // TODO @puhui999: 服务和事件的情况 method 怎么设置?在前端设置还是后端设置? 70 // TODO @puhui999: 服务和事件的情况 method 怎么设置?在前端设置还是后端设置?
@@ -73,7 +73,7 @@ public class IotProductThingModelServiceImpl implements IotProductThingModelServ @@ -73,7 +73,7 @@ public class IotProductThingModelServiceImpl implements IotProductThingModelServ
73 73
74 @Override 74 @Override
75 @Transactional(rollbackFor = Exception.class) 75 @Transactional(rollbackFor = Exception.class)
76 - public void updateProductThingModel(IotProductThingModelSaveReqVO updateReqVO) { 76 + public void updateThingModel(IotThingModelSaveReqVO updateReqVO) {
77 // 1. 校验功能是否存在 77 // 1. 校验功能是否存在
78 validateProductThingModelMapperExists(updateReqVO.getId()); 78 validateProductThingModelMapperExists(updateReqVO.getId());
79 79
@@ -84,20 +84,20 @@ public class IotProductThingModelServiceImpl implements IotProductThingModelServ @@ -84,20 +84,20 @@ public class IotProductThingModelServiceImpl implements IotProductThingModelServ
84 validateProductStatus(updateReqVO.getProductId()); 84 validateProductStatus(updateReqVO.getProductId());
85 85
86 // 4. 更新数据库 86 // 4. 更新数据库
87 - IotProductThingModelDO thingModel = IotProductThingModelConvert.INSTANCE.convert(updateReqVO);  
88 - productThingModelMapper.updateById(thingModel); 87 + IotThingModelDO thingModel = IotThingModelConvert.INSTANCE.convert(updateReqVO);
  88 + thingModelMapper.updateById(thingModel);
89 89
90 // 5. 如果更新的是属性,需要更新默认的事件和服务 90 // 5. 如果更新的是属性,需要更新默认的事件和服务
91 - if (Objects.equals(updateReqVO.getType(), IotProductThingModelTypeEnum.PROPERTY.getType())) { 91 + if (Objects.equals(updateReqVO.getType(), IotThingModelTypeEnum.PROPERTY.getType())) {
92 createDefaultEventsAndServices(updateReqVO.getProductId(), updateReqVO.getProductKey()); 92 createDefaultEventsAndServices(updateReqVO.getProductId(), updateReqVO.getProductKey());
93 } 93 }
94 } 94 }
95 95
96 @Override 96 @Override
97 @Transactional(rollbackFor = Exception.class) 97 @Transactional(rollbackFor = Exception.class)
98 - public void deleteProductThingModel(Long id) { 98 + public void deleteThingModel(Long id) {
99 // 1. 校验功能是否存在 99 // 1. 校验功能是否存在
100 - IotProductThingModelDO thingModel = productThingModelMapper.selectById(id); 100 + IotThingModelDO thingModel = thingModelMapper.selectById(id);
101 if (thingModel == null) { 101 if (thingModel == null) {
102 throw exception(THING_MODEL_NOT_EXISTS); 102 throw exception(THING_MODEL_NOT_EXISTS);
103 } 103 }
@@ -106,32 +106,32 @@ public class IotProductThingModelServiceImpl implements IotProductThingModelServ @@ -106,32 +106,32 @@ public class IotProductThingModelServiceImpl implements IotProductThingModelServ
106 validateProductStatus(thingModel.getProductId()); 106 validateProductStatus(thingModel.getProductId());
107 107
108 // 2. 删除功能 108 // 2. 删除功能
109 - productThingModelMapper.deleteById(id); 109 + thingModelMapper.deleteById(id);
110 110
111 // 3. 如果删除的是属性,需要更新默认的事件和服务 111 // 3. 如果删除的是属性,需要更新默认的事件和服务
112 - if (Objects.equals(thingModel.getType(), IotProductThingModelTypeEnum.PROPERTY.getType())) { 112 + if (Objects.equals(thingModel.getType(), IotThingModelTypeEnum.PROPERTY.getType())) {
113 createDefaultEventsAndServices(thingModel.getProductId(), thingModel.getProductKey()); 113 createDefaultEventsAndServices(thingModel.getProductId(), thingModel.getProductKey());
114 } 114 }
115 } 115 }
116 116
117 @Override 117 @Override
118 - public IotProductThingModelDO getProductThingModel(Long id) {  
119 - return productThingModelMapper.selectById(id); 118 + public IotThingModelDO getThingModel(Long id) {
  119 + return thingModelMapper.selectById(id);
120 } 120 }
121 121
122 @Override 122 @Override
123 - public List<IotProductThingModelDO> getProductThingModelListByProductId(Long productId) {  
124 - return productThingModelMapper.selectListByProductId(productId); 123 + public List<IotThingModelDO> getThingModelListByProductId(Long productId) {
  124 + return thingModelMapper.selectListByProductId(productId);
125 } 125 }
126 126
127 @Override 127 @Override
128 - public PageResult<IotProductThingModelDO> getProductThingModelPage(IotProductThingModelPageReqVO pageReqVO) {  
129 - return productThingModelMapper.selectPage(pageReqVO); 128 + public PageResult<IotThingModelDO> getProductThingModelPage(IotThingModelPageReqVO pageReqVO) {
  129 + return thingModelMapper.selectPage(pageReqVO);
130 } 130 }
131 131
132 @Override 132 @Override
133 - public List<IotProductThingModelDO> getProductThingModelListByProductKey(String productKey) {  
134 - return productThingModelMapper.selectListByProductKey(productKey); 133 + public List<IotThingModelDO> getProductThingModelListByProductKey(String productKey) {
  134 + return thingModelMapper.selectListByProductKey(productKey);
135 } 135 }
136 136
137 /** 137 /**
@@ -140,13 +140,13 @@ public class IotProductThingModelServiceImpl implements IotProductThingModelServ @@ -140,13 +140,13 @@ public class IotProductThingModelServiceImpl implements IotProductThingModelServ
140 * @param id 功能编号 140 * @param id 功能编号
141 */ 141 */
142 private void validateProductThingModelMapperExists(Long id) { 142 private void validateProductThingModelMapperExists(Long id) {
143 - if (productThingModelMapper.selectById(id) == null) { 143 + if (thingModelMapper.selectById(id) == null) {
144 throw exception(THING_MODEL_NOT_EXISTS); 144 throw exception(THING_MODEL_NOT_EXISTS);
145 } 145 }
146 } 146 }
147 147
148 private void validateIdentifierUniqueForUpdate(Long id, Long productId, String identifier) { 148 private void validateIdentifierUniqueForUpdate(Long id, Long productId, String identifier) {
149 - IotProductThingModelDO thingModel = productThingModelMapper.selectByProductIdAndIdentifier(productId, identifier); 149 + IotThingModelDO thingModel = thingModelMapper.selectByProductIdAndIdentifier(productId, identifier);
150 if (thingModel != null && ObjectUtil.notEqual(thingModel.getId(), id)) { 150 if (thingModel != null && ObjectUtil.notEqual(thingModel.getId(), id)) {
151 throw exception(THING_MODEL_IDENTIFIER_EXISTS); 151 throw exception(THING_MODEL_IDENTIFIER_EXISTS);
152 } 152 }
@@ -167,14 +167,14 @@ public class IotProductThingModelServiceImpl implements IotProductThingModelServ @@ -167,14 +167,14 @@ public class IotProductThingModelServiceImpl implements IotProductThingModelServ
167 } 167 }
168 168
169 private void validateNameUnique(Long productId, String name) { 169 private void validateNameUnique(Long productId, String name) {
170 - IotProductThingModelDO thingModel = productThingModelMapper.selectByProductIdAndName(productId, name); 170 + IotThingModelDO thingModel = thingModelMapper.selectByProductIdAndName(productId, name);
171 if (thingModel != null) { 171 if (thingModel != null) {
172 throw exception(THING_MODEL_NAME_EXISTS); 172 throw exception(THING_MODEL_NAME_EXISTS);
173 } 173 }
174 } 174 }
175 175
176 private void validateIdentifierUnique(Long productId, String identifier) { 176 private void validateIdentifierUnique(Long productId, String identifier) {
177 - IotProductThingModelDO thingModel = productThingModelMapper.selectByProductIdAndIdentifier(productId, identifier); 177 + IotThingModelDO thingModel = thingModelMapper.selectByProductIdAndIdentifier(productId, identifier);
178 if (thingModel != null) { 178 if (thingModel != null) {
179 throw exception(THING_MODEL_IDENTIFIER_EXISTS); 179 throw exception(THING_MODEL_IDENTIFIER_EXISTS);
180 } 180 }
@@ -185,11 +185,11 @@ public class IotProductThingModelServiceImpl implements IotProductThingModelServ @@ -185,11 +185,11 @@ public class IotProductThingModelServiceImpl implements IotProductThingModelServ
185 */ 185 */
186 public void createDefaultEventsAndServices(Long productId, String productKey) { 186 public void createDefaultEventsAndServices(Long productId, String productKey) {
187 // 1. 获取当前属性列表 187 // 1. 获取当前属性列表
188 - List<IotProductThingModelDO> propertyList = productThingModelMapper  
189 - .selectListByProductIdAndType(productId, IotProductThingModelTypeEnum.PROPERTY.getType()); 188 + List<IotThingModelDO> propertyList = thingModelMapper
  189 + .selectListByProductIdAndType(productId, IotThingModelTypeEnum.PROPERTY.getType());
190 190
191 // 2. 生成新的事件和服务列表 191 // 2. 生成新的事件和服务列表
192 - List<IotProductThingModelDO> newThingModelList = new ArrayList<>(); 192 + List<IotThingModelDO> newThingModelList = new ArrayList<>();
193 // 2.1 生成属性上报事件 193 // 2.1 生成属性上报事件
194 ThingModelEvent propertyPostEvent = generatePropertyPostEvent(propertyList); 194 ThingModelEvent propertyPostEvent = generatePropertyPostEvent(propertyList);
195 if (propertyPostEvent != null) { 195 if (propertyPostEvent != null) {
@@ -207,10 +207,10 @@ public class IotProductThingModelServiceImpl implements IotProductThingModelServ @@ -207,10 +207,10 @@ public class IotProductThingModelServiceImpl implements IotProductThingModelServ
207 } 207 }
208 208
209 // 3.1 获取数据库中的默认的旧事件和服务列表 209 // 3.1 获取数据库中的默认的旧事件和服务列表
210 - List<IotProductThingModelDO> oldThingModelList = productThingModelMapper.selectListByProductIdAndIdentifiersAndTypes( 210 + List<IotThingModelDO> oldThingModelList = thingModelMapper.selectListByProductIdAndIdentifiersAndTypes(
211 productId, 211 productId,
212 Arrays.asList("post", "set", "get"), 212 Arrays.asList("post", "set", "get"),
213 - Arrays.asList(IotProductThingModelTypeEnum.EVENT.getType(), IotProductThingModelTypeEnum.SERVICE.getType()) 213 + Arrays.asList(IotThingModelTypeEnum.EVENT.getType(), IotThingModelTypeEnum.SERVICE.getType())
214 ); 214 );
215 // 3.2 创建默认的事件和服务 215 // 3.2 创建默认的事件和服务
216 createDefaultEventsAndServices(oldThingModelList, newThingModelList); 216 createDefaultEventsAndServices(oldThingModelList, newThingModelList);
@@ -219,9 +219,9 @@ public class IotProductThingModelServiceImpl implements IotProductThingModelServ @@ -219,9 +219,9 @@ public class IotProductThingModelServiceImpl implements IotProductThingModelServ
219 /** 219 /**
220 * 创建默认的事件和服务 220 * 创建默认的事件和服务
221 */ 221 */
222 - private void createDefaultEventsAndServices(List<IotProductThingModelDO> oldThingModelList, List<IotProductThingModelDO> newThingModelList) { 222 + private void createDefaultEventsAndServices(List<IotThingModelDO> oldThingModelList, List<IotThingModelDO> newThingModelList) {
223 // 1.1 使用 diffList 方法比较新旧列表 223 // 1.1 使用 diffList 方法比较新旧列表
224 - List<List<IotProductThingModelDO>> diffResult = diffList(oldThingModelList, newThingModelList, 224 + List<List<IotThingModelDO>> diffResult = diffList(oldThingModelList, newThingModelList,
225 (oldVal, newVal) -> { 225 (oldVal, newVal) -> {
226 // 继续使用 identifier 和 type 进行比较:这样可以准确地匹配对应的功能对象。 226 // 继续使用 identifier 和 type 进行比较:这样可以准确地匹配对应的功能对象。
227 boolean same = Objects.equals(oldVal.getIdentifier(), newVal.getIdentifier()) 227 boolean same = Objects.equals(oldVal.getIdentifier(), newVal.getIdentifier())
@@ -233,40 +233,40 @@ public class IotProductThingModelServiceImpl implements IotProductThingModelServ @@ -233,40 +233,40 @@ public class IotProductThingModelServiceImpl implements IotProductThingModelServ
233 }); 233 });
234 // 1.2 批量添加、修改、删除 234 // 1.2 批量添加、修改、删除
235 if (CollUtil.isNotEmpty(diffResult.get(0))) { 235 if (CollUtil.isNotEmpty(diffResult.get(0))) {
236 - productThingModelMapper.insertBatch(diffResult.get(0)); 236 + thingModelMapper.insertBatch(diffResult.get(0));
237 } 237 }
238 if (CollUtil.isNotEmpty(diffResult.get(1))) { 238 if (CollUtil.isNotEmpty(diffResult.get(1))) {
239 - productThingModelMapper.updateBatch(diffResult.get(1)); 239 + thingModelMapper.updateBatch(diffResult.get(1));
240 } 240 }
241 if (CollUtil.isNotEmpty(diffResult.get(2))) { 241 if (CollUtil.isNotEmpty(diffResult.get(2))) {
242 - productThingModelMapper.deleteByIds(convertSet(diffResult.get(2), IotProductThingModelDO::getId)); 242 + thingModelMapper.deleteByIds(convertSet(diffResult.get(2), IotThingModelDO::getId));
243 } 243 }
244 } 244 }
245 245
246 /** 246 /**
247 * 构建事件功能对象 247 * 构建事件功能对象
248 */ 248 */
249 - private IotProductThingModelDO buildEventThingModelDO(Long productId, String productKey, ThingModelEvent event,  
250 - String description) {  
251 - return new IotProductThingModelDO().setProductId(productId).setProductKey(productKey) 249 + private IotThingModelDO buildEventThingModelDO(Long productId, String productKey, ThingModelEvent event,
  250 + String description) {
  251 + return new IotThingModelDO().setProductId(productId).setProductKey(productKey)
252 .setIdentifier(event.getIdentifier()).setName(event.getName()).setDescription(description) 252 .setIdentifier(event.getIdentifier()).setName(event.getName()).setDescription(description)
253 - .setType(IotProductThingModelTypeEnum.EVENT.getType()).setEvent(event); 253 + .setType(IotThingModelTypeEnum.EVENT.getType()).setEvent(event);
254 } 254 }
255 255
256 /** 256 /**
257 * 构建服务功能对象 257 * 构建服务功能对象
258 */ 258 */
259 - private IotProductThingModelDO buildServiceThingModelDO(Long productId, String productKey, ThingModelService service,  
260 - String description) {  
261 - return new IotProductThingModelDO().setProductId(productId).setProductKey(productKey) 259 + private IotThingModelDO buildServiceThingModelDO(Long productId, String productKey, ThingModelService service,
  260 + String description) {
  261 + return new IotThingModelDO().setProductId(productId).setProductKey(productKey)
262 .setIdentifier(service.getIdentifier()).setName(service.getName()).setDescription(description) 262 .setIdentifier(service.getIdentifier()).setName(service.getName()).setDescription(description)
263 - .setType(IotProductThingModelTypeEnum.SERVICE.getType()).setService(service); 263 + .setType(IotThingModelTypeEnum.SERVICE.getType()).setService(service);
264 } 264 }
265 265
266 /** 266 /**
267 * 生成属性上报事件 267 * 生成属性上报事件
268 */ 268 */
269 - private ThingModelEvent generatePropertyPostEvent(List<IotProductThingModelDO> thingModelList) { 269 + private ThingModelEvent generatePropertyPostEvent(List<IotThingModelDO> thingModelList) {
270 // 1.1 没有属性则不生成 270 // 1.1 没有属性则不生成
271 if (CollUtil.isEmpty(thingModelList)) { 271 if (CollUtil.isEmpty(thingModelList)) {
272 return null; 272 return null;
@@ -274,17 +274,17 @@ public class IotProductThingModelServiceImpl implements IotProductThingModelServ @@ -274,17 +274,17 @@ public class IotProductThingModelServiceImpl implements IotProductThingModelServ
274 274
275 // 1.2 生成属性上报事件 275 // 1.2 生成属性上报事件
276 return new ThingModelEvent().setIdentifier("post").setName("属性上报").setMethod("thing.event.property.post") 276 return new ThingModelEvent().setIdentifier("post").setName("属性上报").setMethod("thing.event.property.post")
277 - .setType(IotProductThingModelServiceEventTypeEnum.INFO.getType())  
278 - .setOutputParams(buildInputOutputParam(thingModelList, IotProductThingModelParamDirectionEnum.OUTPUT)); 277 + .setType(IotThingModelServiceEventTypeEnum.INFO.getType())
  278 + .setOutputParams(buildInputOutputParam(thingModelList, IotThingModelParamDirectionEnum.OUTPUT));
279 } 279 }
280 280
281 /** 281 /**
282 * 生成属性设置服务 282 * 生成属性设置服务
283 */ 283 */
284 - private ThingModelService generatePropertySetService(List<IotProductThingModelDO> thingModelList) { 284 + private ThingModelService generatePropertySetService(List<IotThingModelDO> thingModelList) {
285 // 1.1 过滤出所有可写属性 285 // 1.1 过滤出所有可写属性
286 thingModelList = filterList(thingModelList, thingModel -> 286 thingModelList = filterList(thingModelList, thingModel ->
287 - IotProductThingModelAccessModeEnum.READ_WRITE.getMode().equals(thingModel.getProperty().getAccessMode())); 287 + IotThingModelAccessModeEnum.READ_WRITE.getMode().equals(thingModel.getProperty().getAccessMode()));
288 // 1.2 没有可写属性则不生成 288 // 1.2 没有可写属性则不生成
289 if (CollUtil.isEmpty(thingModelList)) { 289 if (CollUtil.isEmpty(thingModelList)) {
290 return null; 290 return null;
@@ -292,15 +292,15 @@ public class IotProductThingModelServiceImpl implements IotProductThingModelServ @@ -292,15 +292,15 @@ public class IotProductThingModelServiceImpl implements IotProductThingModelServ
292 292
293 // 2. 生成属性设置服务 293 // 2. 生成属性设置服务
294 return new ThingModelService().setIdentifier("set").setName("属性设置").setMethod("thing.service.property.set") 294 return new ThingModelService().setIdentifier("set").setName("属性设置").setMethod("thing.service.property.set")
295 - .setCallType(IotProductThingModelServiceCallTypeEnum.ASYNC.getType())  
296 - .setInputParams(buildInputOutputParam(thingModelList, IotProductThingModelParamDirectionEnum.INPUT)) 295 + .setCallType(IotThingModelServiceCallTypeEnum.ASYNC.getType())
  296 + .setInputParams(buildInputOutputParam(thingModelList, IotThingModelParamDirectionEnum.INPUT))
297 .setOutputParams(Collections.emptyList()); // 属性设置服务一般不需要输出参数 297 .setOutputParams(Collections.emptyList()); // 属性设置服务一般不需要输出参数
298 } 298 }
299 299
300 /** 300 /**
301 * 生成属性获取服务 301 * 生成属性获取服务
302 */ 302 */
303 - private ThingModelService generatePropertyGetService(List<IotProductThingModelDO> thingModelList) { 303 + private ThingModelService generatePropertyGetService(List<IotThingModelDO> thingModelList) {
304 // 1.1 没有属性则不生成 304 // 1.1 没有属性则不生成
305 if (CollUtil.isEmpty(thingModelList)) { 305 if (CollUtil.isEmpty(thingModelList)) {
306 return null; 306 return null;
@@ -308,9 +308,9 @@ public class IotProductThingModelServiceImpl implements IotProductThingModelServ @@ -308,9 +308,9 @@ public class IotProductThingModelServiceImpl implements IotProductThingModelServ
308 308
309 // 1.2 生成属性获取服务 309 // 1.2 生成属性获取服务
310 return new ThingModelService().setIdentifier("get").setName("属性获取").setMethod("thing.service.property.get") 310 return new ThingModelService().setIdentifier("get").setName("属性获取").setMethod("thing.service.property.get")
311 - .setCallType(IotProductThingModelServiceCallTypeEnum.ASYNC.getType())  
312 - .setInputParams(buildInputOutputParam(thingModelList, IotProductThingModelParamDirectionEnum.INPUT))  
313 - .setOutputParams(buildInputOutputParam(thingModelList, IotProductThingModelParamDirectionEnum.OUTPUT)); 311 + .setCallType(IotThingModelServiceCallTypeEnum.ASYNC.getType())
  312 + .setInputParams(buildInputOutputParam(thingModelList, IotThingModelParamDirectionEnum.INPUT))
  313 + .setOutputParams(buildInputOutputParam(thingModelList, IotThingModelParamDirectionEnum.OUTPUT));
314 } 314 }
315 315
316 /** 316 /**
@@ -319,10 +319,10 @@ public class IotProductThingModelServiceImpl implements IotProductThingModelServ @@ -319,10 +319,10 @@ public class IotProductThingModelServiceImpl implements IotProductThingModelServ
319 * @param thingModelList 属性列表 319 * @param thingModelList 属性列表
320 * @return 输入/输出参数列表 320 * @return 输入/输出参数列表
321 */ 321 */
322 - private List<ThingModelInputOutputParam> buildInputOutputParam(List<IotProductThingModelDO> thingModelList,  
323 - IotProductThingModelParamDirectionEnum directionEnum) { 322 + private List<ThingModelParam> buildInputOutputParam(List<IotThingModelDO> thingModelList,
  323 + IotThingModelParamDirectionEnum directionEnum) {
324 return convertList(thingModelList, thingModel -> 324 return convertList(thingModelList, thingModel ->
325 - BeanUtils.toBean(thingModel.getProperty(), ThingModelInputOutputParam.class).setParaOrder(0) // TODO @puhui999: 先搞个默认值看看怎么个事 325 + BeanUtils.toBean(thingModel.getProperty(), ThingModelParam.class).setParaOrder(0) // TODO @puhui999: 先搞个默认值看看怎么个事
326 .setDirection(directionEnum.getDirection())); 326 .setDirection(directionEnum.getDirection()));
327 } 327 }
328 328