Commit 8454a10cea33f74c1c82fa74f4e5fac9cd654e31
1 parent
de78cc92
【代码优化】IOT: ThingModel 评审优化
Showing
36 changed files
with
447 additions
and
452 deletions
yudao-module-iot/yudao-module-iot-api/src/main/java/cn/iocoder/yudao/module/iot/enums/ErrorCodeConstants.java
| ... | ... | @@ -13,14 +13,14 @@ public interface ErrorCodeConstants { |
| 13 | 13 | ErrorCode PRODUCT_NOT_EXISTS = new ErrorCode(1_050_001_000, "产品不存在"); |
| 14 | 14 | ErrorCode PRODUCT_KEY_EXISTS = new ErrorCode(1_050_001_001, "产品标识已经存在"); |
| 15 | 15 | ErrorCode PRODUCT_STATUS_NOT_DELETE = new ErrorCode(1_050_001_002, "产品状是发布状态,不允许删除"); |
| 16 | - ErrorCode PRODUCT_STATUS_NOT_ALLOW_FUNCTION = new ErrorCode(1_050_001_003, "产品状是发布状态,不允许操作物模型"); | |
| 16 | + ErrorCode PRODUCT_STATUS_NOT_ALLOW_THING_MODEL = new ErrorCode(1_050_001_003, "产品状是发布状态,不允许操作物模型"); | |
| 17 | 17 | |
| 18 | 18 | // ========== 产品物模型 1-050-002-000 ============ |
| 19 | - ErrorCode THINK_MODEL_FUNCTION_NOT_EXISTS = new ErrorCode(1_050_002_000, "产品物模型不存在"); | |
| 20 | - ErrorCode THINK_MODEL_FUNCTION_EXISTS_BY_PRODUCT_KEY = new ErrorCode(1_050_002_001, "ProductKey 对应的产品物模型已存在"); | |
| 21 | - ErrorCode THINK_MODEL_FUNCTION_IDENTIFIER_EXISTS = new ErrorCode(1_050_002_002, "存在重复的功能标识符。"); | |
| 22 | - ErrorCode THINK_MODEL_FUNCTION_NAME_EXISTS = new ErrorCode(1_050_002_003, "存在重复的功能名称。"); | |
| 23 | - ErrorCode THINK_MODEL_FUNCTION_IDENTIFIER_INVALID = new ErrorCode(1_050_002_003, "产品物模型标识无效"); | |
| 19 | + ErrorCode THING_MODEL_NOT_EXISTS = new ErrorCode(1_050_002_000, "产品物模型不存在"); | |
| 20 | + ErrorCode THING_MODEL_EXISTS_BY_PRODUCT_KEY = new ErrorCode(1_050_002_001, "ProductKey 对应的产品物模型已存在"); | |
| 21 | + ErrorCode THING_MODEL_IDENTIFIER_EXISTS = new ErrorCode(1_050_002_002, "存在重复的功能标识符。"); | |
| 22 | + ErrorCode THING_MODEL_NAME_EXISTS = new ErrorCode(1_050_002_003, "存在重复的功能名称。"); | |
| 23 | + ErrorCode THING_MODEL_IDENTIFIER_INVALID = new ErrorCode(1_050_002_003, "产品物模型标识无效"); | |
| 24 | 24 | |
| 25 | 25 | // ========== 设备 1-050-003-000 ============ |
| 26 | 26 | ErrorCode DEVICE_NOT_EXISTS = new ErrorCode(1_050_003_000, "设备不存在"); | ... | ... |
yudao-module-iot/yudao-module-iot-api/src/main/java/cn/iocoder/yudao/module/iot/enums/thinkmodel/IotProductThinkModelAccessModeEnum.java renamed to yudao-module-iot/yudao-module-iot-api/src/main/java/cn/iocoder/yudao/module/iot/enums/thingmodel/IotProductThingModelAccessModeEnum.java
| 1 | -package cn.iocoder.yudao.module.iot.enums.thinkmodel; | |
| 1 | +package cn.iocoder.yudao.module.iot.enums.thingmodel; | |
| 2 | 2 | |
| 3 | 3 | import lombok.AllArgsConstructor; |
| 4 | 4 | import lombok.Getter; |
| ... | ... | @@ -10,7 +10,7 @@ import lombok.Getter; |
| 10 | 10 | */ |
| 11 | 11 | @AllArgsConstructor |
| 12 | 12 | @Getter |
| 13 | -public enum IotProductThinkModelAccessModeEnum { | |
| 13 | +public enum IotProductThingModelAccessModeEnum { | |
| 14 | 14 | |
| 15 | 15 | READ_ONLY("r"), |
| 16 | 16 | READ_WRITE("rw"); | ... | ... |
yudao-module-iot/yudao-module-iot-api/src/main/java/cn/iocoder/yudao/module/iot/enums/thinkmodel/IotProductThinkModelTypeEnum.java renamed to yudao-module-iot/yudao-module-iot-api/src/main/java/cn/iocoder/yudao/module/iot/enums/thingmodel/IotProductThingModelTypeEnum.java
| 1 | -package cn.iocoder.yudao.module.iot.enums.thinkmodel; | |
| 1 | +package cn.iocoder.yudao.module.iot.enums.thingmodel; | |
| 2 | 2 | |
| 3 | 3 | import cn.iocoder.yudao.framework.common.core.IntArrayValuable; |
| 4 | 4 | import lombok.AllArgsConstructor; |
| ... | ... | @@ -13,13 +13,13 @@ import java.util.Arrays; |
| 13 | 13 | */ |
| 14 | 14 | @AllArgsConstructor |
| 15 | 15 | @Getter |
| 16 | -public enum IotProductThinkModelTypeEnum implements IntArrayValuable { | |
| 16 | +public enum IotProductThingModelTypeEnum implements IntArrayValuable { | |
| 17 | 17 | |
| 18 | 18 | PROPERTY(1, "属性"), |
| 19 | 19 | SERVICE(2, "服务"), |
| 20 | 20 | EVENT(3, "事件"); |
| 21 | 21 | |
| 22 | - public static final int[] ARRAYS = Arrays.stream(values()).mapToInt(IotProductThinkModelTypeEnum::getType).toArray(); | |
| 22 | + public static final int[] ARRAYS = Arrays.stream(values()).mapToInt(IotProductThingModelTypeEnum::getType).toArray(); | |
| 23 | 23 | |
| 24 | 24 | /** |
| 25 | 25 | * 类型 |
| ... | ... | @@ -30,8 +30,8 @@ public enum IotProductThinkModelTypeEnum implements IntArrayValuable { |
| 30 | 30 | */ |
| 31 | 31 | private final String description; |
| 32 | 32 | |
| 33 | - public static IotProductThinkModelTypeEnum valueOfType(Integer type) { | |
| 34 | - for (IotProductThinkModelTypeEnum value : values()) { | |
| 33 | + public static IotProductThingModelTypeEnum valueOfType(Integer type) { | |
| 34 | + for (IotProductThingModelTypeEnum value : values()) { | |
| 35 | 35 | if (value.getType().equals(type)) { |
| 36 | 36 | return value; |
| 37 | 37 | } | ... | ... |
yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/device/vo/deviceData/IotDeviceDataRespVO.java
| ... | ... | @@ -13,7 +13,7 @@ public class IotDeviceDataRespVO { |
| 13 | 13 | private Long deviceId; |
| 14 | 14 | |
| 15 | 15 | @Schema(description = "物模型编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "21816") |
| 16 | - private Long thinkModelFunctionId; | |
| 16 | + private Long thingModelId; | |
| 17 | 17 | |
| 18 | 18 | @Schema(description = "产品标识", requiredMode = Schema.RequiredMode.REQUIRED) |
| 19 | 19 | private String productKey; | ... | ... |
yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/thinkmodel/IotProductThingModelController.http renamed to yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/thingmodel/IotProductThingModelController.http
| 1 | -### 请求 /iot/product-think-model/create 接口 => 成功 | |
| 2 | -POST {{baseUrl}}/iot/product-think-model/create | |
| 1 | +### 请求 /iot/product-thing-model/create 接口 => 成功 | |
| 2 | +POST {{baseUrl}}/iot/product-thing-model/create | |
| 3 | 3 | Content-Type: application/json |
| 4 | 4 | tenant-id: {{adminTenentId}} |
| 5 | 5 | Authorization: Bearer {{token}} |
| ... | ... | @@ -30,8 +30,8 @@ Authorization: Bearer {{token}} |
| 30 | 30 | } |
| 31 | 31 | } |
| 32 | 32 | |
| 33 | -### 请求 /iot/product-think-model/create 接口 => 成功 | |
| 34 | -POST {{baseUrl}}/iot/product-think-model/create | |
| 33 | +### 请求 /iot/product-thing-model/create 接口 => 成功 | |
| 34 | +POST {{baseUrl}}/iot/product-thing-model/create | |
| 35 | 35 | Content-Type: application/json |
| 36 | 36 | tenant-id: {{adminTenentId}} |
| 37 | 37 | Authorization: Bearer {{token}} |
| ... | ... | @@ -65,8 +65,8 @@ Authorization: Bearer {{token}} |
| 65 | 65 | } |
| 66 | 66 | } |
| 67 | 67 | |
| 68 | -### 请求 /iot/product-think-model/create 接口 => 成功 | |
| 69 | -POST {{baseUrl}}/iot/product-think-model/create | |
| 68 | +### 请求 /iot/product-thing-model/create 接口 => 成功 | |
| 69 | +POST {{baseUrl}}/iot/product-thing-model/create | |
| 70 | 70 | Content-Type: application/json |
| 71 | 71 | tenant-id: {{adminTenentId}} |
| 72 | 72 | Authorization: Bearer {{token}} |
| ... | ... | @@ -134,8 +134,8 @@ Authorization: Bearer {{token}} |
| 134 | 134 | } |
| 135 | 135 | } |
| 136 | 136 | |
| 137 | -### 请求 /iot/product-think-model/update 接口 => 成功 | |
| 138 | -PUT {{baseUrl}}/iot/product-think-model/update | |
| 137 | +### 请求 /iot/product-thing-model/update 接口 => 成功 | |
| 138 | +PUT {{baseUrl}}/iot/product-thing-model/update | |
| 139 | 139 | Content-Type: application/json |
| 140 | 140 | tenant-id: {{adminTenentId}} |
| 141 | 141 | Authorization: Bearer {{token}} |
| ... | ... | @@ -170,18 +170,18 @@ Authorization: Bearer {{token}} |
| 170 | 170 | } |
| 171 | 171 | } |
| 172 | 172 | |
| 173 | -### 请求 /iot/product-think-model/delete 接口 => 成功 | |
| 174 | -DELETE {{baseUrl}}/iot/product-think-model/delete?id=36 | |
| 173 | +### 请求 /iot/product-thing-model/delete 接口 => 成功 | |
| 174 | +DELETE {{baseUrl}}/iot/product-thing-model/delete?id=36 | |
| 175 | 175 | tenant-id: {{adminTenentId}} |
| 176 | 176 | Authorization: Bearer {{token}} |
| 177 | 177 | |
| 178 | -### 请求 /iot/product-think-model/get 接口 => 成功 | |
| 179 | -GET {{baseUrl}}/iot/product-think-model/get?id=40 | |
| 178 | +### 请求 /iot/product-thing-model/get 接口 => 成功 | |
| 179 | +GET {{baseUrl}}/iot/product-thing-model/get?id=40 | |
| 180 | 180 | tenant-id: {{adminTenentId}} |
| 181 | 181 | Authorization: Bearer {{token}} |
| 182 | 182 | |
| 183 | 183 | |
| 184 | -### 请求 /iot/product-think-model/list-by-product-id 接口 => 成功 | |
| 185 | -GET {{baseUrl}}/iot/product-think-model/list-by-product-id?productId=1001 | |
| 184 | +### 请求 /iot/product-thing-model/list-by-product-id 接口 => 成功 | |
| 185 | +GET {{baseUrl}}/iot/product-thing-model/list-by-product-id?productId=1001 | |
| 186 | 186 | tenant-id: {{adminTenentId}} |
| 187 | 187 | Authorization: Bearer {{token}} |
| 188 | 188 | \ No newline at end of file | ... | ... |
yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/thinkmodel/IotProductThinkModelController.java renamed to yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/thingmodel/IotProductThingModelController.java
| 1 | -package cn.iocoder.yudao.module.iot.controller.admin.thinkmodel; | |
| 1 | +package cn.iocoder.yudao.module.iot.controller.admin.thingmodel; | |
| 2 | 2 | |
| 3 | 3 | import cn.iocoder.yudao.framework.common.pojo.CommonResult; |
| 4 | 4 | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| 5 | 5 | import cn.iocoder.yudao.framework.common.util.object.BeanUtils; |
| 6 | -import cn.iocoder.yudao.module.iot.controller.admin.thinkmodel.vo.IotProductThinkModelPageReqVO; | |
| 7 | -import cn.iocoder.yudao.module.iot.controller.admin.thinkmodel.vo.IotProductThinkModelRespVO; | |
| 8 | -import cn.iocoder.yudao.module.iot.controller.admin.thinkmodel.vo.IotProductThinkModelSaveReqVO; | |
| 9 | -import cn.iocoder.yudao.module.iot.convert.thinkmodel.IotProductThinkModelConvert; | |
| 10 | -import cn.iocoder.yudao.module.iot.dal.dataobject.thinkmodel.IotProductThinkModelDO; | |
| 11 | -import cn.iocoder.yudao.module.iot.service.thinkmodel.IotProductThinkModelService; | |
| 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; | |
| 12 | 12 | import io.swagger.v3.oas.annotations.Operation; |
| 13 | 13 | import io.swagger.v3.oas.annotations.Parameter; |
| 14 | 14 | import io.swagger.v3.oas.annotations.tags.Tag; |
| ... | ... | @@ -24,61 +24,61 @@ import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; |
| 24 | 24 | |
| 25 | 25 | @Tag(name = "管理后台 - IoT 产品物模型") |
| 26 | 26 | @RestController |
| 27 | -@RequestMapping("/iot/product-think-model") | |
| 27 | +@RequestMapping("/iot/product-thing-model") | |
| 28 | 28 | @Validated |
| 29 | -public class IotProductThinkModelController { | |
| 29 | +public class IotProductThingModelController { | |
| 30 | 30 | |
| 31 | 31 | @Resource |
| 32 | - private IotProductThinkModelService thinkModelFunctionService; | |
| 32 | + private IotProductThingModelService thingModelService; | |
| 33 | 33 | |
| 34 | 34 | @PostMapping("/create") |
| 35 | 35 | @Operation(summary = "创建产品物模型") |
| 36 | - @PreAuthorize("@ss.hasPermission('iot:product-think-model:create')") | |
| 37 | - public CommonResult<Long> createProductThinkModel(@Valid @RequestBody IotProductThinkModelSaveReqVO createReqVO) { | |
| 38 | - return success(thinkModelFunctionService.createProductThinkModel(createReqVO)); | |
| 36 | + @PreAuthorize("@ss.hasPermission('iot:product-thing-model:create')") | |
| 37 | + public CommonResult<Long> createProductThingModel(@Valid @RequestBody IotProductThingModelSaveReqVO createReqVO) { | |
| 38 | + return success(thingModelService.createProductThingModel(createReqVO)); | |
| 39 | 39 | } |
| 40 | 40 | |
| 41 | 41 | @PutMapping("/update") |
| 42 | 42 | @Operation(summary = "更新产品物模型") |
| 43 | - @PreAuthorize("@ss.hasPermission('iot:product-think-model:update')") | |
| 44 | - public CommonResult<Boolean> updateProductThinkModel(@Valid @RequestBody IotProductThinkModelSaveReqVO updateReqVO) { | |
| 45 | - thinkModelFunctionService.updateProductThinkModel(updateReqVO); | |
| 43 | + @PreAuthorize("@ss.hasPermission('iot:product-thing-model:update')") | |
| 44 | + public CommonResult<Boolean> updateProductThingModel(@Valid @RequestBody IotProductThingModelSaveReqVO updateReqVO) { | |
| 45 | + thingModelService.updateProductThingModel(updateReqVO); | |
| 46 | 46 | return success(true); |
| 47 | 47 | } |
| 48 | 48 | |
| 49 | 49 | @DeleteMapping("/delete") |
| 50 | 50 | @Operation(summary = "删除产品物模型") |
| 51 | 51 | @Parameter(name = "id", description = "编号", required = true) |
| 52 | - @PreAuthorize("@ss.hasPermission('iot:product-think-model:delete')") | |
| 53 | - public CommonResult<Boolean> deleteProductThinkModel(@RequestParam("id") Long id) { | |
| 54 | - thinkModelFunctionService.deleteProductThinkModel(id); | |
| 52 | + @PreAuthorize("@ss.hasPermission('iot:product-thing-model:delete')") | |
| 53 | + public CommonResult<Boolean> deleteProductThingModel(@RequestParam("id") Long id) { | |
| 54 | + thingModelService.deleteProductThingModel(id); | |
| 55 | 55 | return success(true); |
| 56 | 56 | } |
| 57 | 57 | |
| 58 | 58 | @GetMapping("/get") |
| 59 | 59 | @Operation(summary = "获得产品物模型") |
| 60 | 60 | @Parameter(name = "id", description = "编号", required = true) |
| 61 | - @PreAuthorize("@ss.hasPermission('iot:product-think-model:query')") | |
| 62 | - public CommonResult<IotProductThinkModelRespVO> getProductThinkModel(@RequestParam("id") Long id) { | |
| 63 | - IotProductThinkModelDO function = thinkModelFunctionService.getProductThinkModel(id); | |
| 64 | - return success(IotProductThinkModelConvert.INSTANCE.convert(function)); | |
| 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)); | |
| 65 | 65 | } |
| 66 | 66 | |
| 67 | 67 | @GetMapping("/list-by-product-id") |
| 68 | 68 | @Operation(summary = "获得产品物模型") |
| 69 | 69 | @Parameter(name = "productId", description = "产品ID", required = true, example = "1024") |
| 70 | - @PreAuthorize("@ss.hasPermission('iot:product-think-model:query')") | |
| 71 | - public CommonResult<List<IotProductThinkModelRespVO>> getProductThinkModelListByProductId(@RequestParam("productId") Long productId) { | |
| 72 | - List<IotProductThinkModelDO> list = thinkModelFunctionService.getProductThinkModelListByProductId(productId); | |
| 73 | - return success(IotProductThinkModelConvert.INSTANCE.convertList(list)); | |
| 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)); | |
| 74 | 74 | } |
| 75 | 75 | |
| 76 | 76 | @GetMapping("/page") |
| 77 | 77 | @Operation(summary = "获得产品物模型分页") |
| 78 | - @PreAuthorize("@ss.hasPermission('iot:product-think-model:query')") | |
| 79 | - public CommonResult<PageResult<IotProductThinkModelRespVO>> getProductThinkModelPage(@Valid IotProductThinkModelPageReqVO pageReqVO) { | |
| 80 | - PageResult<IotProductThinkModelDO> pageResult = thinkModelFunctionService.getProductThinkModelPage(pageReqVO); | |
| 81 | - return success(BeanUtils.toBean(pageResult, IotProductThinkModelRespVO.class)); | |
| 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)); | |
| 82 | 82 | } |
| 83 | 83 | |
| 84 | 84 | } | ... | ... |
yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/thinkmodel/model/ThinkModelEvent.java renamed to 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.thinkmodel.model; | |
| 1 | +package cn.iocoder.yudao.module.iot.controller.admin.thingmodel.model; | |
| 2 | 2 | |
| 3 | -import cn.iocoder.yudao.module.iot.controller.admin.thinkmodel.model.dataType.ThinkModelArgument; | |
| 3 | +import cn.iocoder.yudao.module.iot.controller.admin.thingmodel.model.dataType.ThingModelArgument; | |
| 4 | 4 | import lombok.Data; |
| 5 | 5 | import java.util.List; |
| 6 | 6 | |
| 7 | 7 | @Data |
| 8 | -public class ThinkModelEvent { | |
| 8 | +public class ThingModelEvent { | |
| 9 | 9 | |
| 10 | 10 | /** |
| 11 | 11 | * 事件标识符 |
| ... | ... | @@ -26,7 +26,7 @@ public class ThinkModelEvent { |
| 26 | 26 | * "info"、"alert"、"error" |
| 27 | 27 | */ |
| 28 | 28 | private String type; |
| 29 | - private List<ThinkModelArgument> outputData; | |
| 29 | + private List<ThingModelArgument> outputData; | |
| 30 | 30 | private String method; |
| 31 | 31 | |
| 32 | 32 | } | ... | ... |
yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/thinkmodel/model/ThinkModelProperty.java renamed to 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.thinkmodel.model; | |
| 1 | +package cn.iocoder.yudao.module.iot.controller.admin.thingmodel.model; | |
| 2 | 2 | |
| 3 | -import cn.iocoder.yudao.module.iot.controller.admin.thinkmodel.model.dataType.ThinkModelDataSpecs; | |
| 4 | -import cn.iocoder.yudao.module.iot.enums.thinkmodel.IotProductThinkModelAccessModeEnum; | |
| 3 | +import cn.iocoder.yudao.module.iot.controller.admin.thingmodel.model.dataType.ThingModelDataSpecs; | |
| 4 | +import cn.iocoder.yudao.module.iot.enums.thingmodel.IotProductThingModelAccessModeEnum; | |
| 5 | 5 | import lombok.Data; |
| 6 | 6 | |
| 7 | 7 | import java.util.List; |
| ... | ... | @@ -14,7 +14,7 @@ import java.util.List; |
| 14 | 14 | * @author HUIHUI |
| 15 | 15 | */ |
| 16 | 16 | @Data |
| 17 | -public class ThinkModelProperty { | |
| 17 | +public class ThingModelProperty { | |
| 18 | 18 | |
| 19 | 19 | /** |
| 20 | 20 | * 属性标识符 |
| ... | ... | @@ -30,7 +30,7 @@ public class ThinkModelProperty { |
| 30 | 30 | private String description; |
| 31 | 31 | /** |
| 32 | 32 | * 云端可以对该属性进行的操作类型 |
| 33 | - * 关联枚举 {@link IotProductThinkModelAccessModeEnum} | |
| 33 | + * 关联枚举 {@link IotProductThingModelAccessModeEnum} | |
| 34 | 34 | */ |
| 35 | 35 | private String accessMode; |
| 36 | 36 | /** |
| ... | ... | @@ -47,10 +47,10 @@ public class ThinkModelProperty { |
| 47 | 47 | /** |
| 48 | 48 | * 数据类型(dataType)为非列表型(int、float、double、text、date、array)的数据规范存储在 dataSpecs 中 |
| 49 | 49 | */ |
| 50 | - private ThinkModelDataSpecs dataSpecs; | |
| 50 | + private ThingModelDataSpecs dataSpecs; | |
| 51 | 51 | /** |
| 52 | 52 | * 数据类型(dataType)为列表型(enum、bool、struct)的数据规范存储在 dataSpecsList 中 |
| 53 | 53 | */ |
| 54 | - private List<ThinkModelDataSpecs> dataSpecsList; | |
| 54 | + private List<ThingModelDataSpecs> dataSpecsList; | |
| 55 | 55 | |
| 56 | 56 | } | ... | ... |
yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/thinkmodel/model/ThinkModelRespVO.java renamed to yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/thingmodel/model/ThingModelRespVO.java
| 1 | -package cn.iocoder.yudao.module.iot.controller.admin.thinkmodel.model; | |
| 1 | +package cn.iocoder.yudao.module.iot.controller.admin.thingmodel.model; | |
| 2 | 2 | |
| 3 | 3 | import lombok.*; |
| 4 | 4 | |
| ... | ... | @@ -9,7 +9,7 @@ import java.util.List; |
| 9 | 9 | @NoArgsConstructor |
| 10 | 10 | @AllArgsConstructor |
| 11 | 11 | @ToString |
| 12 | -public class ThinkModelRespVO { | |
| 12 | +public class ThingModelRespVO { | |
| 13 | 13 | |
| 14 | 14 | /** |
| 15 | 15 | * 产品编号 |
| ... | ... | @@ -35,16 +35,16 @@ public class ThinkModelRespVO { |
| 35 | 35 | /** |
| 36 | 36 | * 属性列表 |
| 37 | 37 | */ |
| 38 | - private List<ThinkModelProperty> properties; | |
| 38 | + private List<ThingModelProperty> properties; | |
| 39 | 39 | |
| 40 | 40 | /** |
| 41 | 41 | * 服务列表 |
| 42 | 42 | */ |
| 43 | - private List<ThinkModelService> services; | |
| 43 | + private List<ThingModelService> services; | |
| 44 | 44 | |
| 45 | 45 | /** |
| 46 | 46 | * 事件列表 |
| 47 | 47 | */ |
| 48 | - private List<ThinkModelEvent> events; | |
| 48 | + private List<ThingModelEvent> events; | |
| 49 | 49 | } |
| 50 | 50 | } | ... | ... |
yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/thinkmodel/model/ThinkModelService.java renamed to 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.thinkmodel.model; | |
| 1 | +package cn.iocoder.yudao.module.iot.controller.admin.thingmodel.model; | |
| 2 | 2 | |
| 3 | -import cn.iocoder.yudao.module.iot.controller.admin.thinkmodel.model.dataType.ThinkModelArgument; | |
| 3 | +import cn.iocoder.yudao.module.iot.controller.admin.thingmodel.model.dataType.ThingModelArgument; | |
| 4 | 4 | import lombok.Data; |
| 5 | 5 | import java.util.List; |
| 6 | 6 | |
| 7 | 7 | @Data |
| 8 | -public class ThinkModelService { | |
| 8 | +public class ThingModelService { | |
| 9 | 9 | |
| 10 | 10 | /** |
| 11 | 11 | * 服务标识符 |
| ... | ... | @@ -26,8 +26,8 @@ public class ThinkModelService { |
| 26 | 26 | * "sync"、"async" |
| 27 | 27 | */ |
| 28 | 28 | private String callType; |
| 29 | - private List<ThinkModelArgument> inputData; | |
| 30 | - private List<ThinkModelArgument> outputData; | |
| 29 | + private List<ThingModelArgument> inputData; | |
| 30 | + private List<ThingModelArgument> outputData; | |
| 31 | 31 | private String method; |
| 32 | 32 | |
| 33 | 33 | } | ... | ... |
yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/thinkmodel/model/dataType/ThinkModelArgument.java renamed to yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/thingmodel/model/dataType/ThingModelArgument.java
| 1 | -package cn.iocoder.yudao.module.iot.controller.admin.thinkmodel.model.dataType; | |
| 1 | +package cn.iocoder.yudao.module.iot.controller.admin.thingmodel.model.dataType; | |
| 2 | 2 | |
| 3 | -import cn.iocoder.yudao.module.iot.controller.admin.thinkmodel.model.ThinkModelProperty; | |
| 3 | +import cn.iocoder.yudao.module.iot.controller.admin.thingmodel.model.ThingModelProperty; | |
| 4 | 4 | import lombok.Data; |
| 5 | 5 | |
| 6 | 6 | @Data |
| 7 | -public class ThinkModelArgument { | |
| 7 | +public class ThingModelArgument { | |
| 8 | 8 | |
| 9 | 9 | public static final String DIRECTION_INPUT = "input"; |
| 10 | 10 | public static final String DIRECTION_OUTPUT = "output"; |
| ... | ... | @@ -14,7 +14,7 @@ public class ThinkModelArgument { |
| 14 | 14 | /** |
| 15 | 15 | * 物模型中的属性 |
| 16 | 16 | */ |
| 17 | - private ThinkModelProperty property; | |
| 17 | + private ThingModelProperty property; | |
| 18 | 18 | /** |
| 19 | 19 | * 用于区分输入或输出参数,"input" 或 "output" |
| 20 | 20 | */ | ... | ... |
yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/thinkmodel/model/dataType/ThinkModelArrayDataSpecs.java renamed to yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/thingmodel/model/dataType/ThingModelArrayDataSpecs.java
| 1 | -package cn.iocoder.yudao.module.iot.controller.admin.thinkmodel.model.dataType; | |
| 1 | +package cn.iocoder.yudao.module.iot.controller.admin.thingmodel.model.dataType; | |
| 2 | 2 | |
| 3 | 3 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties; |
| 4 | 4 | import lombok.Data; |
| ... | ... | @@ -6,7 +6,6 @@ import lombok.EqualsAndHashCode; |
| 6 | 6 | |
| 7 | 7 | import java.util.List; |
| 8 | 8 | |
| 9 | -// TODO @puhui999:thingmodel 哈 = = 之前我写错单词了 | |
| 10 | 9 | /** |
| 11 | 10 | * 物模型数据类型为数组的 DataSpec 定义 |
| 12 | 11 | * |
| ... | ... | @@ -15,7 +14,7 @@ import java.util.List; |
| 15 | 14 | @Data |
| 16 | 15 | @EqualsAndHashCode(callSuper = true) |
| 17 | 16 | @JsonIgnoreProperties({"dataType"}) // 忽略子类中的 dataType 字段,从而避免重复。 |
| 18 | -public class ThinkModelArrayDataSpecs extends ThinkModelDataSpecs { | |
| 17 | +public class ThingModelArrayDataSpecs extends ThingModelDataSpecs { | |
| 19 | 18 | |
| 20 | 19 | /** |
| 21 | 20 | * 数组中的元素个数。 |
| ... | ... | @@ -29,7 +28,7 @@ public class ThinkModelArrayDataSpecs extends ThinkModelDataSpecs { |
| 29 | 28 | * 数据类型(childDataType)为列表型 struct 的数据规范存储在 dataSpecsList 中。 |
| 30 | 29 | * 此时 struct 取值范围为:int、float、double、text、date、enum、bool |
| 31 | 30 | */ |
| 32 | - private List<ThinkModelDataSpecs> dataSpecsList; | |
| 31 | + private List<ThingModelDataSpecs> dataSpecsList; | |
| 33 | 32 | |
| 34 | 33 | } |
| 35 | 34 | ... | ... |
yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/thinkmodel/model/dataType/ThinkModelBoolOrEnumDataSpecs.java renamed to yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/thingmodel/model/dataType/ThingModelBoolOrEnumDataSpecs.java
| 1 | -package cn.iocoder.yudao.module.iot.controller.admin.thinkmodel.model.dataType; | |
| 1 | +package cn.iocoder.yudao.module.iot.controller.admin.thingmodel.model.dataType; | |
| 2 | 2 | |
| 3 | 3 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties; |
| 4 | 4 | import lombok.Data; |
| ... | ... | @@ -14,7 +14,7 @@ import lombok.EqualsAndHashCode; |
| 14 | 14 | @Data |
| 15 | 15 | @EqualsAndHashCode(callSuper = true) |
| 16 | 16 | @JsonIgnoreProperties({"dataType"}) // 忽略子类中的 dataType 字段,从而避免重复。 |
| 17 | -public class ThinkModelBoolOrEnumDataSpecs extends ThinkModelDataSpecs { | |
| 17 | +public class ThingModelBoolOrEnumDataSpecs extends ThingModelDataSpecs { | |
| 18 | 18 | |
| 19 | 19 | /** |
| 20 | 20 | * 枚举项的名称。 | ... | ... |
yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/thinkmodel/model/dataType/ThinkModelDataSpecs.java renamed to yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/thingmodel/model/dataType/ThingModelDataSpecs.java
| 1 | -package cn.iocoder.yudao.module.iot.controller.admin.thinkmodel.model.dataType; | |
| 1 | +package cn.iocoder.yudao.module.iot.controller.admin.thingmodel.model.dataType; | |
| 2 | 2 | |
| 3 | 3 | import com.fasterxml.jackson.annotation.JsonSubTypes; |
| 4 | 4 | import com.fasterxml.jackson.annotation.JsonTypeInfo; |
| 5 | 5 | import lombok.Data; |
| 6 | 6 | |
| 7 | 7 | /** |
| 8 | - * 抽象类 ThinkModelDataSpecs | |
| 8 | + * 抽象类 ThingModelDataSpecs | |
| 9 | 9 | * |
| 10 | 10 | * 用于表示物模型数据的通用类型,根据具体的 "dataType" 字段动态映射到对应的子类。 |
| 11 | 11 | * 提供多态支持,适用于不同类型的数据结构序列化和反序列化场景。 |
| ... | ... | @@ -15,17 +15,17 @@ import lombok.Data; |
| 15 | 15 | @Data |
| 16 | 16 | @JsonTypeInfo(use = JsonTypeInfo.Id.NAME, property = "dataType", visible = true) |
| 17 | 17 | @JsonSubTypes({ |
| 18 | - @JsonSubTypes.Type(value = ThinkModelNumericDataSpec.class, name = "int"), | |
| 19 | - @JsonSubTypes.Type(value = ThinkModelNumericDataSpec.class, name = "float"), | |
| 20 | - @JsonSubTypes.Type(value = ThinkModelNumericDataSpec.class, name = "double"), | |
| 21 | - @JsonSubTypes.Type(value = ThinkModelDateOrTextDataSpecs.class, name = "text"), | |
| 22 | - @JsonSubTypes.Type(value = ThinkModelDateOrTextDataSpecs.class, name = "date"), | |
| 23 | - @JsonSubTypes.Type(value = ThinkModelBoolOrEnumDataSpecs.class, name = "bool"), | |
| 24 | - @JsonSubTypes.Type(value = ThinkModelBoolOrEnumDataSpecs.class, name = "enum"), | |
| 25 | - @JsonSubTypes.Type(value = ThinkModelArrayDataSpecs.class, name = "array"), | |
| 26 | - @JsonSubTypes.Type(value = ThinkModelStructDataSpecs.class, name = "struct") | |
| 18 | + @JsonSubTypes.Type(value = ThingModelNumericDataSpec.class, name = "int"), | |
| 19 | + @JsonSubTypes.Type(value = ThingModelNumericDataSpec.class, name = "float"), | |
| 20 | + @JsonSubTypes.Type(value = ThingModelNumericDataSpec.class, name = "double"), | |
| 21 | + @JsonSubTypes.Type(value = ThingModelDateOrTextDataSpecs.class, name = "text"), | |
| 22 | + @JsonSubTypes.Type(value = ThingModelDateOrTextDataSpecs.class, name = "date"), | |
| 23 | + @JsonSubTypes.Type(value = ThingModelBoolOrEnumDataSpecs.class, name = "bool"), | |
| 24 | + @JsonSubTypes.Type(value = ThingModelBoolOrEnumDataSpecs.class, name = "enum"), | |
| 25 | + @JsonSubTypes.Type(value = ThingModelArrayDataSpecs.class, name = "array"), | |
| 26 | + @JsonSubTypes.Type(value = ThingModelStructDataSpecs.class, name = "struct") | |
| 27 | 27 | }) |
| 28 | -public abstract class ThinkModelDataSpecs { | |
| 28 | +public abstract class ThingModelDataSpecs { | |
| 29 | 29 | |
| 30 | 30 | /** |
| 31 | 31 | * 数据类型 | ... | ... |
yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/thinkmodel/model/dataType/ThinkModelDateOrTextDataSpecs.java renamed to yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/thingmodel/model/dataType/ThingModelDateOrTextDataSpecs.java
| 1 | -package cn.iocoder.yudao.module.iot.controller.admin.thinkmodel.model.dataType; | |
| 1 | +package cn.iocoder.yudao.module.iot.controller.admin.thingmodel.model.dataType; | |
| 2 | 2 | |
| 3 | 3 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties; |
| 4 | 4 | import lombok.Data; |
| ... | ... | @@ -14,7 +14,7 @@ import lombok.EqualsAndHashCode; |
| 14 | 14 | @Data |
| 15 | 15 | @EqualsAndHashCode(callSuper = true) |
| 16 | 16 | @JsonIgnoreProperties({"dataType"}) // 忽略子类中的 dataType 字段,从而避免重复。 |
| 17 | -public class ThinkModelDateOrTextDataSpecs extends ThinkModelDataSpecs { | |
| 17 | +public class ThingModelDateOrTextDataSpecs extends ThingModelDataSpecs { | |
| 18 | 18 | |
| 19 | 19 | /** |
| 20 | 20 | * 数据长度,单位为字节。取值不能超过 2048。 | ... | ... |
yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/thinkmodel/model/dataType/ThinkModelNumericDataSpec.java renamed to yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/thingmodel/model/dataType/ThingModelNumericDataSpec.java
| 1 | -package cn.iocoder.yudao.module.iot.controller.admin.thinkmodel.model.dataType; | |
| 1 | +package cn.iocoder.yudao.module.iot.controller.admin.thingmodel.model.dataType; | |
| 2 | 2 | |
| 3 | 3 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties; |
| 4 | 4 | import lombok.Data; |
| ... | ... | @@ -14,7 +14,7 @@ import lombok.EqualsAndHashCode; |
| 14 | 14 | @Data |
| 15 | 15 | @EqualsAndHashCode(callSuper = true) |
| 16 | 16 | @JsonIgnoreProperties({"dataType"}) // 忽略子类中的 dataType 字段,从而避免重复。 |
| 17 | -public class ThinkModelNumericDataSpec extends ThinkModelDataSpecs { | |
| 17 | +public class ThingModelNumericDataSpec extends ThingModelDataSpecs { | |
| 18 | 18 | |
| 19 | 19 | /** |
| 20 | 20 | * 最大值,需转为字符串类型。值必须与 dataType 类型一致。 | ... | ... |
yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/thinkmodel/model/dataType/ThinkModelStructDataSpecs.java renamed to 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.thinkmodel.model.dataType; | |
| 1 | +package cn.iocoder.yudao.module.iot.controller.admin.thingmodel.model.dataType; | |
| 2 | 2 | |
| 3 | -import cn.iocoder.yudao.module.iot.enums.thinkmodel.IotProductThinkModelAccessModeEnum; | |
| 3 | +import cn.iocoder.yudao.module.iot.enums.thingmodel.IotProductThingModelAccessModeEnum; | |
| 4 | 4 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties; |
| 5 | 5 | import lombok.Data; |
| 6 | 6 | import lombok.EqualsAndHashCode; |
| ... | ... | @@ -15,7 +15,7 @@ import java.util.List; |
| 15 | 15 | @Data |
| 16 | 16 | @EqualsAndHashCode(callSuper = true) |
| 17 | 17 | @JsonIgnoreProperties({"dataType"}) // 忽略子类中的 dataType 字段,从而避免重复。 |
| 18 | -public class ThinkModelStructDataSpecs extends ThinkModelDataSpecs { | |
| 18 | +public class ThingModelStructDataSpecs extends ThingModelDataSpecs { | |
| 19 | 19 | |
| 20 | 20 | /** |
| 21 | 21 | * 属性标识符 |
| ... | ... | @@ -31,7 +31,7 @@ public class ThinkModelStructDataSpecs extends ThinkModelDataSpecs { |
| 31 | 31 | private String description; |
| 32 | 32 | /** |
| 33 | 33 | * 云端可以对该属性进行的操作类型 |
| 34 | - * 关联枚举 {@link IotProductThinkModelAccessModeEnum} | |
| 34 | + * 关联枚举 {@link IotProductThingModelAccessModeEnum} | |
| 35 | 35 | */ |
| 36 | 36 | private String accessMode; |
| 37 | 37 | /** |
| ... | ... | @@ -48,11 +48,11 @@ public class ThinkModelStructDataSpecs extends ThinkModelDataSpecs { |
| 48 | 48 | /** |
| 49 | 49 | * 数据类型(dataType)为非列表型(int、float、double、text、date、array)的数据规范存储在 dataSpecs 中 |
| 50 | 50 | */ |
| 51 | - private ThinkModelDataSpecs dataSpecs; | |
| 51 | + private ThingModelDataSpecs dataSpecs; | |
| 52 | 52 | /** |
| 53 | 53 | * 数据类型(dataType)为列表型(enum、bool、struct)的数据规范存储在 dataSpecsList 中 |
| 54 | 54 | */ |
| 55 | - private List<ThinkModelDataSpecs> dataSpecsList; | |
| 55 | + private List<ThingModelDataSpecs> dataSpecsList; | |
| 56 | 56 | |
| 57 | 57 | } |
| 58 | 58 | ... | ... |
yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/thinkmodel/vo/IotProductThinkModelPageReqVO.java renamed to yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/thingmodel/vo/IotProductThingModelPageReqVO.java
| 1 | -package cn.iocoder.yudao.module.iot.controller.admin.thinkmodel.vo; | |
| 1 | +package cn.iocoder.yudao.module.iot.controller.admin.thingmodel.vo; | |
| 2 | 2 | |
| 3 | 3 | import cn.iocoder.yudao.framework.common.pojo.PageParam; |
| 4 | 4 | import cn.iocoder.yudao.framework.common.validation.InEnum; |
| 5 | -import cn.iocoder.yudao.module.iot.enums.thinkmodel.IotProductThinkModelTypeEnum; | |
| 5 | +import cn.iocoder.yudao.module.iot.enums.thingmodel.IotProductThingModelTypeEnum; | |
| 6 | 6 | import io.swagger.v3.oas.annotations.media.Schema; |
| 7 | 7 | import jakarta.validation.constraints.NotNull; |
| 8 | 8 | import lombok.Data; |
| ... | ... | @@ -13,7 +13,7 @@ import lombok.ToString; |
| 13 | 13 | @Data |
| 14 | 14 | @EqualsAndHashCode(callSuper = true) |
| 15 | 15 | @ToString(callSuper = true) |
| 16 | -public class IotProductThinkModelPageReqVO extends PageParam { | |
| 16 | +public class IotProductThingModelPageReqVO extends PageParam { | |
| 17 | 17 | |
| 18 | 18 | @Schema(description = "功能标识") |
| 19 | 19 | private String identifier; |
| ... | ... | @@ -22,7 +22,7 @@ public class IotProductThinkModelPageReqVO extends PageParam { |
| 22 | 22 | private String name; |
| 23 | 23 | |
| 24 | 24 | @Schema(description = "功能类型", example = "1") |
| 25 | - @InEnum(IotProductThinkModelTypeEnum.class) | |
| 25 | + @InEnum(IotProductThingModelTypeEnum.class) | |
| 26 | 26 | private Integer type; |
| 27 | 27 | |
| 28 | 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/thinkmodel/vo/IotProductThinkModelRespVO.java renamed to yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/thingmodel/vo/IotProductThingModelRespVO.java
| 1 | -package cn.iocoder.yudao.module.iot.controller.admin.thinkmodel.vo; | |
| 1 | +package cn.iocoder.yudao.module.iot.controller.admin.thingmodel.vo; | |
| 2 | 2 | |
| 3 | -import cn.iocoder.yudao.module.iot.controller.admin.thinkmodel.model.ThinkModelEvent; | |
| 4 | -import cn.iocoder.yudao.module.iot.controller.admin.thinkmodel.model.ThinkModelProperty; | |
| 5 | -import cn.iocoder.yudao.module.iot.controller.admin.thinkmodel.model.ThinkModelService; | |
| 3 | +import cn.iocoder.yudao.module.iot.controller.admin.thingmodel.model.ThingModelEvent; | |
| 4 | +import cn.iocoder.yudao.module.iot.controller.admin.thingmodel.model.ThingModelProperty; | |
| 5 | +import cn.iocoder.yudao.module.iot.controller.admin.thingmodel.model.ThingModelService; | |
| 6 | 6 | import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; |
| 7 | 7 | import com.alibaba.excel.annotation.ExcelProperty; |
| 8 | 8 | import io.swagger.v3.oas.annotations.media.Schema; |
| ... | ... | @@ -13,7 +13,7 @@ import java.time.LocalDateTime; |
| 13 | 13 | @Schema(description = "管理后台 - IoT 产品物模型 Response VO") |
| 14 | 14 | @Data |
| 15 | 15 | @ExcelIgnoreUnannotated |
| 16 | -public class IotProductThinkModelRespVO { | |
| 16 | +public class IotProductThingModelRespVO { | |
| 17 | 17 | |
| 18 | 18 | @Schema(description = "产品ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "21816") |
| 19 | 19 | @ExcelProperty("产品ID") |
| ... | ... | @@ -39,13 +39,13 @@ public class IotProductThinkModelRespVO { |
| 39 | 39 | private Integer type; |
| 40 | 40 | |
| 41 | 41 | @Schema(description = "属性", requiredMode = Schema.RequiredMode.REQUIRED) |
| 42 | - private ThinkModelProperty property; | |
| 42 | + private ThingModelProperty property; | |
| 43 | 43 | |
| 44 | 44 | @Schema(description = "服务", requiredMode = Schema.RequiredMode.REQUIRED) |
| 45 | - private ThinkModelEvent event; | |
| 45 | + private ThingModelEvent event; | |
| 46 | 46 | |
| 47 | 47 | @Schema(description = "事件", requiredMode = Schema.RequiredMode.REQUIRED) |
| 48 | - private ThinkModelService service; | |
| 48 | + private ThingModelService service; | |
| 49 | 49 | |
| 50 | 50 | @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) |
| 51 | 51 | @ExcelProperty("创建时间") | ... | ... |
yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/thinkmodel/vo/IotProductThinkModelSaveReqVO.java renamed to yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/thingmodel/vo/IotProductThingModelSaveReqVO.java
| 1 | -package cn.iocoder.yudao.module.iot.controller.admin.thinkmodel.vo; | |
| 1 | +package cn.iocoder.yudao.module.iot.controller.admin.thingmodel.vo; | |
| 2 | 2 | |
| 3 | 3 | import cn.iocoder.yudao.framework.common.validation.InEnum; |
| 4 | -import cn.iocoder.yudao.module.iot.controller.admin.thinkmodel.model.ThinkModelEvent; | |
| 5 | -import cn.iocoder.yudao.module.iot.controller.admin.thinkmodel.model.ThinkModelProperty; | |
| 6 | -import cn.iocoder.yudao.module.iot.controller.admin.thinkmodel.model.ThinkModelService; | |
| 7 | -import cn.iocoder.yudao.module.iot.enums.thinkmodel.IotProductThinkModelTypeEnum; | |
| 4 | +import cn.iocoder.yudao.module.iot.controller.admin.thingmodel.model.ThingModelEvent; | |
| 5 | +import cn.iocoder.yudao.module.iot.controller.admin.thingmodel.model.ThingModelProperty; | |
| 6 | +import cn.iocoder.yudao.module.iot.controller.admin.thingmodel.model.ThingModelService; | |
| 7 | +import cn.iocoder.yudao.module.iot.enums.thingmodel.IotProductThingModelTypeEnum; | |
| 8 | 8 | import io.swagger.v3.oas.annotations.media.Schema; |
| 9 | 9 | import jakarta.validation.constraints.NotEmpty; |
| 10 | 10 | import jakarta.validation.constraints.NotNull; |
| ... | ... | @@ -12,7 +12,7 @@ import lombok.Data; |
| 12 | 12 | |
| 13 | 13 | @Schema(description = "管理后台 - IoT 产品物模型新增/修改 Request VO") |
| 14 | 14 | @Data |
| 15 | -public class IotProductThinkModelSaveReqVO { | |
| 15 | +public class IotProductThingModelSaveReqVO { | |
| 16 | 16 | |
| 17 | 17 | @Schema(description = "编号", example = "1") |
| 18 | 18 | private Long id; |
| ... | ... | @@ -38,16 +38,16 @@ public class IotProductThinkModelSaveReqVO { |
| 38 | 38 | |
| 39 | 39 | @Schema(description = "功能类型", requiredMode = Schema.RequiredMode.REQUIRED) |
| 40 | 40 | @NotNull(message = "功能类型不能为空") |
| 41 | - @InEnum(IotProductThinkModelTypeEnum.class) | |
| 41 | + @InEnum(IotProductThingModelTypeEnum.class) | |
| 42 | 42 | private Integer type; |
| 43 | 43 | |
| 44 | 44 | @Schema(description = "属性", requiredMode = Schema.RequiredMode.REQUIRED) |
| 45 | - private ThinkModelProperty property; | |
| 45 | + private ThingModelProperty property; | |
| 46 | 46 | |
| 47 | 47 | @Schema(description = "服务", requiredMode = Schema.RequiredMode.REQUIRED) |
| 48 | - private ThinkModelService service; | |
| 48 | + private ThingModelService service; | |
| 49 | 49 | |
| 50 | 50 | @Schema(description = "事件", requiredMode = Schema.RequiredMode.REQUIRED) |
| 51 | - private ThinkModelEvent event; | |
| 51 | + private ThingModelEvent event; | |
| 52 | 52 | |
| 53 | 53 | } |
| 54 | 54 | \ No newline at end of file | ... | ... |
yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/convert/device/IotDeviceDataConvert.java
| ... | ... | @@ -12,7 +12,7 @@ public interface IotDeviceDataConvert { |
| 12 | 12 | // default List<IotDeviceDataRespVO> convert(Map<String, Object> deviceData, IotDeviceDO device){ |
| 13 | 13 | // List<IotDeviceDataRespVO> list = new ArrayList<>(); |
| 14 | 14 | // deviceData.forEach((identifier, value) -> { |
| 15 | -//// ThinkModelProperty property = ThinkModelService.INSTANCE.getProperty(device.getProductId(), identifier); | |
| 15 | +//// ThingModelProperty property = ThingModelService.INSTANCE.getProperty(device.getProductId(), identifier); | |
| 16 | 16 | //// if (Objects.isNull(property)) { |
| 17 | 17 | //// return; |
| 18 | 18 | //// } | ... | ... |
yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/convert/thinkmodel/IotProductThinkModelConvert.java renamed to yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/convert/thingmodel/IotProductThingModelConvert.java
| 1 | -package cn.iocoder.yudao.module.iot.convert.thinkmodel; | |
| 2 | - | |
| 3 | -import cn.iocoder.yudao.module.iot.controller.admin.thinkmodel.model.ThinkModelEvent; | |
| 4 | -import cn.iocoder.yudao.module.iot.controller.admin.thinkmodel.model.ThinkModelProperty; | |
| 5 | -import cn.iocoder.yudao.module.iot.controller.admin.thinkmodel.model.ThinkModelService; | |
| 6 | -import cn.iocoder.yudao.module.iot.controller.admin.thinkmodel.vo.IotProductThinkModelRespVO; | |
| 7 | -import cn.iocoder.yudao.module.iot.controller.admin.thinkmodel.vo.IotProductThinkModelSaveReqVO; | |
| 8 | -import cn.iocoder.yudao.module.iot.dal.dataobject.thinkmodel.IotProductThinkModelDO; | |
| 9 | -import cn.iocoder.yudao.module.iot.enums.thinkmodel.IotProductThinkModelTypeEnum; | |
| 1 | +package cn.iocoder.yudao.module.iot.convert.thingmodel; | |
| 2 | + | |
| 3 | +import cn.iocoder.yudao.module.iot.controller.admin.thingmodel.model.ThingModelEvent; | |
| 4 | +import cn.iocoder.yudao.module.iot.controller.admin.thingmodel.model.ThingModelProperty; | |
| 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; | |
| 10 | 10 | import org.mapstruct.Mapper; |
| 11 | 11 | import org.mapstruct.Mapping; |
| 12 | 12 | import org.mapstruct.Named; |
| ... | ... | @@ -16,44 +16,44 @@ import java.util.List; |
| 16 | 16 | import java.util.Objects; |
| 17 | 17 | |
| 18 | 18 | @Mapper |
| 19 | -public interface IotProductThinkModelConvert { | |
| 19 | +public interface IotProductThingModelConvert { | |
| 20 | 20 | |
| 21 | - IotProductThinkModelConvert INSTANCE = Mappers.getMapper(IotProductThinkModelConvert.class); | |
| 21 | + IotProductThingModelConvert INSTANCE = Mappers.getMapper(IotProductThingModelConvert.class); | |
| 22 | 22 | |
| 23 | 23 | // 将 SaveReqVO 转换为 DO |
| 24 | 24 | @Mapping(target = "property", expression = "java(convertToProperty(bean))") |
| 25 | 25 | @Mapping(target = "event", expression = "java(convertToEvent(bean))") |
| 26 | 26 | @Mapping(target = "service", expression = "java(convertToService(bean))") |
| 27 | - IotProductThinkModelDO convert(IotProductThinkModelSaveReqVO bean); | |
| 27 | + IotProductThingModelDO convert(IotProductThingModelSaveReqVO bean); | |
| 28 | 28 | |
| 29 | 29 | // 将 DO 转换为 RespVO |
| 30 | 30 | @Mapping(target = "property", source = "property") |
| 31 | 31 | @Mapping(target = "event", source = "event") |
| 32 | 32 | @Mapping(target = "service", source = "service") |
| 33 | - IotProductThinkModelRespVO convert(IotProductThinkModelDO bean); | |
| 33 | + IotProductThingModelRespVO convert(IotProductThingModelDO bean); | |
| 34 | 34 | |
| 35 | 35 | // 批量转换 |
| 36 | - List<IotProductThinkModelRespVO> convertList(List<IotProductThinkModelDO> list); | |
| 36 | + List<IotProductThingModelRespVO> convertList(List<IotProductThingModelDO> list); | |
| 37 | 37 | |
| 38 | 38 | @Named("convertToProperty") |
| 39 | - default ThinkModelProperty convertToProperty(IotProductThinkModelSaveReqVO bean) { | |
| 40 | - if (Objects.equals(bean.getType(), IotProductThinkModelTypeEnum.PROPERTY.getType())) { | |
| 39 | + default ThingModelProperty convertToProperty(IotProductThingModelSaveReqVO bean) { | |
| 40 | + if (Objects.equals(bean.getType(), IotProductThingModelTypeEnum.PROPERTY.getType())) { | |
| 41 | 41 | return bean.getProperty(); |
| 42 | 42 | } |
| 43 | 43 | return null; |
| 44 | 44 | } |
| 45 | 45 | |
| 46 | 46 | @Named("convertToEvent") |
| 47 | - default ThinkModelEvent convertToEvent(IotProductThinkModelSaveReqVO bean) { | |
| 48 | - if (Objects.equals(bean.getType(), IotProductThinkModelTypeEnum.EVENT.getType())) { | |
| 47 | + default ThingModelEvent convertToEvent(IotProductThingModelSaveReqVO bean) { | |
| 48 | + if (Objects.equals(bean.getType(), IotProductThingModelTypeEnum.EVENT.getType())) { | |
| 49 | 49 | return bean.getEvent(); |
| 50 | 50 | } |
| 51 | 51 | return null; |
| 52 | 52 | } |
| 53 | 53 | |
| 54 | 54 | @Named("convertToService") |
| 55 | - default ThinkModelService convertToService(IotProductThinkModelSaveReqVO bean) { | |
| 56 | - if (Objects.equals(bean.getType(), IotProductThinkModelTypeEnum.SERVICE.getType())) { | |
| 55 | + default ThingModelService convertToService(IotProductThingModelSaveReqVO bean) { | |
| 56 | + if (Objects.equals(bean.getType(), IotProductThingModelTypeEnum.SERVICE.getType())) { | |
| 57 | 57 | return bean.getService(); |
| 58 | 58 | } |
| 59 | 59 | return null; | ... | ... |
yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/dal/dataobject/device/IotDeviceDataDO.java
| 1 | 1 | package cn.iocoder.yudao.module.iot.dal.dataobject.device; |
| 2 | 2 | |
| 3 | 3 | import cn.iocoder.yudao.module.iot.dal.dataobject.product.IotProductDO; |
| 4 | -import cn.iocoder.yudao.module.iot.dal.dataobject.thinkmodel.IotProductThinkModelDO; | |
| 4 | +import cn.iocoder.yudao.module.iot.dal.dataobject.thingmodel.IotProductThingModelDO; | |
| 5 | 5 | import lombok.AllArgsConstructor; |
| 6 | 6 | import lombok.Builder; |
| 7 | 7 | import lombok.Data; |
| ... | ... | @@ -30,9 +30,9 @@ public class IotDeviceDataDO { |
| 30 | 30 | /** |
| 31 | 31 | * 物模型编号 |
| 32 | 32 | * <p> |
| 33 | - * 关联 {@link IotProductThinkModelDO#getId()} | |
| 33 | + * 关联 {@link IotProductThingModelDO#getId()} | |
| 34 | 34 | */ |
| 35 | - private Long thinkModelId; | |
| 35 | + private Long thingModelId; | |
| 36 | 36 | |
| 37 | 37 | /** |
| 38 | 38 | * 产品标识 |
| ... | ... | @@ -51,21 +51,21 @@ public class IotDeviceDataDO { |
| 51 | 51 | /** |
| 52 | 52 | * 属性标识符 |
| 53 | 53 | * <p> |
| 54 | - * 关联 {@link IotProductThinkModelDO#getIdentifier()} | |
| 54 | + * 关联 {@link IotProductThingModelDO#getIdentifier()} | |
| 55 | 55 | */ |
| 56 | 56 | private String identifier; |
| 57 | 57 | |
| 58 | 58 | /** |
| 59 | 59 | * 属性名称 |
| 60 | 60 | * <p> |
| 61 | - * 关联 {@link IotProductThinkModelDO#getName()} | |
| 61 | + * 关联 {@link IotProductThingModelDO#getName()} | |
| 62 | 62 | */ |
| 63 | 63 | private String name; |
| 64 | 64 | |
| 65 | 65 | /** |
| 66 | 66 | * 数据类型 |
| 67 | 67 | * <p> |
| 68 | - * 关联 {@link IotProductThinkModelDO#getProperty()#getDataType()} | |
| 68 | + * 关联 {@link IotProductThingModelDO#getProperty()#getDataType()} | |
| 69 | 69 | */ |
| 70 | 70 | private String dataType; |
| 71 | 71 | ... | ... |
yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/dal/dataobject/tdengine/FieldParser.java
| 1 | 1 | package cn.iocoder.yudao.module.iot.dal.dataobject.tdengine; |
| 2 | 2 | |
| 3 | -import cn.iocoder.yudao.module.iot.controller.admin.thinkmodel.model.ThinkModelProperty; | |
| 4 | -import cn.iocoder.yudao.module.iot.controller.admin.thinkmodel.model.ThinkModelRespVO; | |
| 3 | +import cn.iocoder.yudao.module.iot.controller.admin.thingmodel.model.ThingModelProperty; | |
| 4 | +import cn.iocoder.yudao.module.iot.controller.admin.thingmodel.model.ThingModelRespVO; | |
| 5 | 5 | |
| 6 | 6 | import java.util.HashMap; |
| 7 | 7 | import java.util.List; |
| ... | ... | @@ -33,7 +33,7 @@ public class FieldParser { |
| 33 | 33 | * @param property 物模型属性 |
| 34 | 34 | * @return TdField对象 |
| 35 | 35 | */ |
| 36 | - public static TdFieldDO parse(ThinkModelProperty property) { | |
| 36 | + public static TdFieldDO parse(ThingModelProperty property) { | |
| 37 | 37 | String fieldName = property.getIdentifier().toLowerCase(); |
| 38 | 38 | |
| 39 | 39 | // 将物模型字段类型映射为td字段类型 |
| ... | ... | @@ -53,7 +53,7 @@ public class FieldParser { |
| 53 | 53 | * @param thingModel 物模型响应对象 |
| 54 | 54 | * @return 字段列表 |
| 55 | 55 | */ |
| 56 | - public static List<TdFieldDO> parse(ThinkModelRespVO thingModel) { | |
| 56 | + public static List<TdFieldDO> parse(ThingModelRespVO thingModel) { | |
| 57 | 57 | return thingModel.getModel().getProperties().stream() |
| 58 | 58 | .map(FieldParser::parse) |
| 59 | 59 | .collect(Collectors.toList()); | ... | ... |
yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/dal/dataobject/tdengine/ThinkModelMessage.java renamed to yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/dal/dataobject/tdengine/ThingModelMessage.java
yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/dal/dataobject/thinkmodel/IotProductThinkModelDO.java renamed to yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/dal/dataobject/thingmodel/IotProductThingModelDO.java
| 1 | -package cn.iocoder.yudao.module.iot.dal.dataobject.thinkmodel; | |
| 1 | +package cn.iocoder.yudao.module.iot.dal.dataobject.thingmodel; | |
| 2 | 2 | |
| 3 | 3 | import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; |
| 4 | -import cn.iocoder.yudao.module.iot.controller.admin.thinkmodel.model.ThinkModelEvent; | |
| 5 | -import cn.iocoder.yudao.module.iot.controller.admin.thinkmodel.model.ThinkModelProperty; | |
| 6 | -import cn.iocoder.yudao.module.iot.controller.admin.thinkmodel.model.ThinkModelService; | |
| 4 | +import cn.iocoder.yudao.module.iot.controller.admin.thingmodel.model.ThingModelEvent; | |
| 5 | +import cn.iocoder.yudao.module.iot.controller.admin.thingmodel.model.ThingModelProperty; | |
| 6 | +import cn.iocoder.yudao.module.iot.controller.admin.thingmodel.model.ThingModelService; | |
| 7 | 7 | import cn.iocoder.yudao.module.iot.dal.dataobject.product.IotProductDO; |
| 8 | -import cn.iocoder.yudao.module.iot.enums.thinkmodel.IotProductThinkModelTypeEnum; | |
| 8 | +import cn.iocoder.yudao.module.iot.enums.thingmodel.IotProductThingModelTypeEnum; | |
| 9 | 9 | import com.baomidou.mybatisplus.annotation.KeySequence; |
| 10 | 10 | import com.baomidou.mybatisplus.annotation.TableField; |
| 11 | 11 | import com.baomidou.mybatisplus.annotation.TableId; |
| ... | ... | @@ -19,17 +19,17 @@ import lombok.NoArgsConstructor; |
| 19 | 19 | /** |
| 20 | 20 | * IoT 产品物模型功能 DO |
| 21 | 21 | * <p> |
| 22 | - * 每个 {@link IotProductDO} 和 {@link IotProductThinkModelDO} 是“一对多”的关系,它的每个属性、事件、服务都对应一条记录 | |
| 22 | + * 每个 {@link IotProductDO} 和 {@link IotProductThingModelDO} 是“一对多”的关系,它的每个属性、事件、服务都对应一条记录 | |
| 23 | 23 | * |
| 24 | 24 | * @author 芋道源码 |
| 25 | 25 | */ |
| 26 | -@TableName(value = "iot_product_think_model", autoResultMap = true) | |
| 27 | -@KeySequence("iot_product_think_model_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 | |
| 26 | +@TableName(value = "iot_product_thing_model", autoResultMap = true) | |
| 27 | +@KeySequence("iot_product_thing_model_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 | |
| 28 | 28 | @Data |
| 29 | 29 | @Builder |
| 30 | 30 | @NoArgsConstructor |
| 31 | 31 | @AllArgsConstructor |
| 32 | -public class IotProductThinkModelDO extends BaseDO { | |
| 32 | +public class IotProductThingModelDO extends BaseDO { | |
| 33 | 33 | |
| 34 | 34 | /** |
| 35 | 35 | * 物模型功能编号 |
| ... | ... | @@ -66,7 +66,7 @@ public class IotProductThinkModelDO extends BaseDO { |
| 66 | 66 | /** |
| 67 | 67 | * 功能类型 |
| 68 | 68 | * <p> |
| 69 | - * 枚举 {@link IotProductThinkModelTypeEnum} | |
| 69 | + * 枚举 {@link IotProductThingModelTypeEnum} | |
| 70 | 70 | */ |
| 71 | 71 | private Integer type; |
| 72 | 72 | |
| ... | ... | @@ -74,18 +74,18 @@ public class IotProductThinkModelDO extends BaseDO { |
| 74 | 74 | * 属性 |
| 75 | 75 | */ |
| 76 | 76 | @TableField(typeHandler = JacksonTypeHandler.class) |
| 77 | - private ThinkModelProperty property; | |
| 77 | + private ThingModelProperty property; | |
| 78 | 78 | |
| 79 | 79 | /** |
| 80 | 80 | * 事件 |
| 81 | 81 | */ |
| 82 | 82 | @TableField(typeHandler = JacksonTypeHandler.class) |
| 83 | - private ThinkModelEvent event; | |
| 83 | + private ThingModelEvent event; | |
| 84 | 84 | |
| 85 | 85 | /** |
| 86 | 86 | * 服务 |
| 87 | 87 | */ |
| 88 | 88 | @TableField(typeHandler = JacksonTypeHandler.class) |
| 89 | - private ThinkModelService service; | |
| 89 | + private ThingModelService service; | |
| 90 | 90 | |
| 91 | 91 | } |
| 92 | 92 | \ No newline at end of file | ... | ... |
yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/dal/mysql/thingmodel/IotProductThingModelMapper.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.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 | +} | |
| 0 | 63 | \ No newline at end of file | ... | ... |
yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/dal/mysql/thinkmodel/IotProductThinkModelMapper.java deleted
| 1 | -package cn.iocoder.yudao.module.iot.dal.mysql.thinkmodel; | |
| 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.thinkmodel.vo.IotProductThinkModelPageReqVO; | |
| 7 | -import cn.iocoder.yudao.module.iot.dal.dataobject.thinkmodel.IotProductThinkModelDO; | |
| 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 IotProductThinkModelMapper extends BaseMapperX<IotProductThinkModelDO> { | |
| 19 | - | |
| 20 | - default PageResult<IotProductThinkModelDO> selectPage(IotProductThinkModelPageReqVO reqVO) { | |
| 21 | - return selectPage(reqVO, new LambdaQueryWrapperX<IotProductThinkModelDO>() | |
| 22 | - .eqIfPresent(IotProductThinkModelDO::getIdentifier, reqVO.getIdentifier()) | |
| 23 | - .likeIfPresent(IotProductThinkModelDO::getName, reqVO.getName()) | |
| 24 | - .eqIfPresent(IotProductThinkModelDO::getType, reqVO.getType()) | |
| 25 | - .eqIfPresent(IotProductThinkModelDO::getProductId, reqVO.getProductId()) | |
| 26 | - .notIn(IotProductThinkModelDO::getIdentifier, "get", "set", "post") | |
| 27 | - .orderByDesc(IotProductThinkModelDO::getId)); | |
| 28 | - } | |
| 29 | - | |
| 30 | - default IotProductThinkModelDO selectByProductIdAndIdentifier(Long productId, String identifier) { | |
| 31 | - return selectOne(IotProductThinkModelDO::getProductId, productId, | |
| 32 | - IotProductThinkModelDO::getIdentifier, identifier); | |
| 33 | - } | |
| 34 | - | |
| 35 | - default List<IotProductThinkModelDO> selectListByProductId(Long productId) { | |
| 36 | - return selectList(IotProductThinkModelDO::getProductId, productId); | |
| 37 | - } | |
| 38 | - | |
| 39 | - default List<IotProductThinkModelDO> selectListByProductIdAndType(Long productId, Integer type) { | |
| 40 | - return selectList(IotProductThinkModelDO::getProductId, productId, | |
| 41 | - IotProductThinkModelDO::getType, type); | |
| 42 | - } | |
| 43 | - | |
| 44 | - default List<IotProductThinkModelDO> selectListByProductIdAndIdentifiersAndTypes(Long productId, | |
| 45 | - List<String> identifiers, | |
| 46 | - List<Integer> types) { | |
| 47 | - return selectList(new LambdaQueryWrapperX<IotProductThinkModelDO>() | |
| 48 | - .eq(IotProductThinkModelDO::getProductId, productId) | |
| 49 | - .in(IotProductThinkModelDO::getIdentifier, identifiers) | |
| 50 | - .in(IotProductThinkModelDO::getType, types)); | |
| 51 | - } | |
| 52 | - | |
| 53 | - default IotProductThinkModelDO selectByProductIdAndName(Long productId, String name) { | |
| 54 | - return selectOne(IotProductThinkModelDO::getProductId, productId, | |
| 55 | - IotProductThinkModelDO::getName, name); | |
| 56 | - } | |
| 57 | - | |
| 58 | - default List<IotProductThinkModelDO> selectListByProductKey(String productKey) { | |
| 59 | - return selectList(IotProductThinkModelDO::getProductKey, productKey); | |
| 60 | - } | |
| 61 | - | |
| 62 | -} | |
| 63 | 0 | \ No newline at end of file |
yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/device/IotDeviceDataServiceImpl.java
| ... | ... | @@ -8,14 +8,14 @@ import cn.iocoder.yudao.module.iot.controller.admin.device.vo.deviceData.IotDevi |
| 8 | 8 | import cn.iocoder.yudao.module.iot.dal.dataobject.device.IotDeviceDO; |
| 9 | 9 | import cn.iocoder.yudao.module.iot.dal.dataobject.device.IotDeviceDataDO; |
| 10 | 10 | import cn.iocoder.yudao.module.iot.dal.dataobject.tdengine.SelectVisualDO; |
| 11 | -import cn.iocoder.yudao.module.iot.dal.dataobject.tdengine.ThinkModelMessage; | |
| 12 | -import cn.iocoder.yudao.module.iot.dal.dataobject.thinkmodel.IotProductThinkModelDO; | |
| 11 | +import cn.iocoder.yudao.module.iot.dal.dataobject.tdengine.ThingModelMessage; | |
| 12 | +import cn.iocoder.yudao.module.iot.dal.dataobject.thingmodel.IotProductThingModelDO; | |
| 13 | 13 | import cn.iocoder.yudao.module.iot.dal.redis.deviceData.DeviceDataRedisDAO; |
| 14 | 14 | import cn.iocoder.yudao.module.iot.dal.tdengine.TdEngineDMLMapper; |
| 15 | 15 | import cn.iocoder.yudao.module.iot.enums.IotConstants; |
| 16 | -import cn.iocoder.yudao.module.iot.enums.thinkmodel.IotProductThinkModelTypeEnum; | |
| 17 | -import cn.iocoder.yudao.module.iot.service.tdengine.IotThinkModelMessageService; | |
| 18 | -import cn.iocoder.yudao.module.iot.service.thinkmodel.IotProductThinkModelService; | |
| 16 | +import cn.iocoder.yudao.module.iot.enums.thingmodel.IotProductThingModelTypeEnum; | |
| 17 | +import cn.iocoder.yudao.module.iot.service.tdengine.IotThingModelMessageService; | |
| 18 | +import cn.iocoder.yudao.module.iot.service.thingmodel.IotProductThingModelService; | |
| 19 | 19 | import jakarta.annotation.Resource; |
| 20 | 20 | import jakarta.validation.Valid; |
| 21 | 21 | import lombok.extern.slf4j.Slf4j; |
| ... | ... | @@ -40,9 +40,9 @@ public class IotDeviceDataServiceImpl implements IotDeviceDataService { |
| 40 | 40 | @Resource |
| 41 | 41 | private IotDeviceService deviceService; |
| 42 | 42 | @Resource |
| 43 | - private IotThinkModelMessageService thingModelMessageService; | |
| 43 | + private IotThingModelMessageService thingModelMessageService; | |
| 44 | 44 | @Resource |
| 45 | - private IotProductThinkModelService thinkModelFunctionService; | |
| 45 | + private IotProductThingModelService thingModelService; | |
| 46 | 46 | @Resource |
| 47 | 47 | private TdEngineDMLMapper tdEngineDMLMapper; |
| 48 | 48 | |
| ... | ... | @@ -56,7 +56,7 @@ public class IotDeviceDataServiceImpl implements IotDeviceDataService { |
| 56 | 56 | // 2. 解析消息,保存数据 |
| 57 | 57 | JSONObject jsonObject = new JSONObject(message); |
| 58 | 58 | log.info("[saveDeviceData][productKey({}) deviceName({}) data({})]", productKey, deviceName, jsonObject); |
| 59 | - ThinkModelMessage thingModelMessage = ThinkModelMessage.builder() | |
| 59 | + ThingModelMessage thingModelMessage = ThingModelMessage.builder() | |
| 60 | 60 | .id(jsonObject.getStr("id")) |
| 61 | 61 | .sys(jsonObject.get("sys")) |
| 62 | 62 | .method(jsonObject.getStr("method")) |
| ... | ... | @@ -66,7 +66,7 @@ public class IotDeviceDataServiceImpl implements IotDeviceDataService { |
| 66 | 66 | .deviceName(deviceName) |
| 67 | 67 | .deviceKey(device.getDeviceKey()) |
| 68 | 68 | .build(); |
| 69 | - thingModelMessageService.saveThinkModelMessage(device, thingModelMessage); | |
| 69 | + thingModelMessageService.saveThingModelMessage(device, thingModelMessage); | |
| 70 | 70 | } |
| 71 | 71 | |
| 72 | 72 | @Override |
| ... | ... | @@ -75,31 +75,31 @@ public class IotDeviceDataServiceImpl implements IotDeviceDataService { |
| 75 | 75 | // 1. 获取设备信息 |
| 76 | 76 | IotDeviceDO device = deviceService.getDevice(deviceDataReqVO.getDeviceId()); |
| 77 | 77 | // 2. 获取设备属性最新数据 |
| 78 | - List<IotProductThinkModelDO> thinkModelList = thinkModelFunctionService.getProductThinkModelListByProductKey(device.getProductKey()); | |
| 79 | - thinkModelList = filterList(thinkModelList, thinkModel -> IotProductThinkModelTypeEnum.PROPERTY.getType() | |
| 80 | - .equals(thinkModel.getType())); | |
| 78 | + List<IotProductThingModelDO> thingModelList = thingModelService.getProductThingModelListByProductKey(device.getProductKey()); | |
| 79 | + thingModelList = filterList(thingModelList, thingModel -> IotProductThingModelTypeEnum.PROPERTY.getType() | |
| 80 | + .equals(thingModel.getType())); | |
| 81 | 81 | |
| 82 | 82 | // 3. 过滤标识符和属性名称 |
| 83 | 83 | if (deviceDataReqVO.getIdentifier() != null) { |
| 84 | - thinkModelList = filterList(thinkModelList, thinkModel -> thinkModel.getIdentifier() | |
| 84 | + thingModelList = filterList(thingModelList, thingModel -> thingModel.getIdentifier() | |
| 85 | 85 | .toLowerCase().contains(deviceDataReqVO.getIdentifier().toLowerCase())); |
| 86 | 86 | } |
| 87 | 87 | if (deviceDataReqVO.getName() != null) { |
| 88 | - thinkModelList = filterList(thinkModelList, thinkModel -> thinkModel.getName() | |
| 88 | + thingModelList = filterList(thingModelList, thingModel -> thingModel.getName() | |
| 89 | 89 | .toLowerCase().contains(deviceDataReqVO.getName().toLowerCase())); |
| 90 | 90 | } |
| 91 | 91 | // 4. 获取设备属性最新数据 |
| 92 | - thinkModelList.forEach(thinkModel -> { | |
| 93 | - IotDeviceDataDO deviceData = deviceDataRedisDAO.get(device.getProductKey(), device.getDeviceName(), thinkModel.getIdentifier()); | |
| 92 | + thingModelList.forEach(thingModel -> { | |
| 93 | + IotDeviceDataDO deviceData = deviceDataRedisDAO.get(device.getProductKey(), device.getDeviceName(), thingModel.getIdentifier()); | |
| 94 | 94 | if (deviceData == null) { |
| 95 | 95 | deviceData = new IotDeviceDataDO(); |
| 96 | 96 | deviceData.setProductKey(device.getProductKey()); |
| 97 | 97 | deviceData.setDeviceName(device.getDeviceName()); |
| 98 | - deviceData.setIdentifier(thinkModel.getIdentifier()); | |
| 98 | + deviceData.setIdentifier(thingModel.getIdentifier()); | |
| 99 | 99 | deviceData.setDeviceId(deviceDataReqVO.getDeviceId()); |
| 100 | - deviceData.setThinkModelId(thinkModel.getId()); | |
| 101 | - deviceData.setName(thinkModel.getName()); | |
| 102 | - deviceData.setDataType(thinkModel.getProperty().getDataType()); | |
| 100 | + deviceData.setThingModelId(thingModel.getId()); | |
| 101 | + deviceData.setName(thingModel.getName()); | |
| 102 | + deviceData.setDataType(thingModel.getProperty().getDataType()); | |
| 103 | 103 | } |
| 104 | 104 | list.add(deviceData); |
| 105 | 105 | }); | ... | ... |
yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/product/IotProductServiceImpl.java
| ... | ... | @@ -7,7 +7,7 @@ import cn.iocoder.yudao.module.iot.controller.admin.product.vo.product.IotProduc |
| 7 | 7 | import cn.iocoder.yudao.module.iot.dal.dataobject.product.IotProductDO; |
| 8 | 8 | import cn.iocoder.yudao.module.iot.dal.mysql.product.IotProductMapper; |
| 9 | 9 | import cn.iocoder.yudao.module.iot.enums.product.IotProductStatusEnum; |
| 10 | -import cn.iocoder.yudao.module.iot.service.thinkmodel.IotProductThinkModelService; | |
| 10 | +import cn.iocoder.yudao.module.iot.service.thingmodel.IotProductThingModelService; | |
| 11 | 11 | import com.baomidou.dynamic.datasource.annotation.DSTransactional; |
| 12 | 12 | import jakarta.annotation.Resource; |
| 13 | 13 | import org.springframework.context.annotation.Lazy; |
| ... | ... | @@ -34,7 +34,7 @@ public class IotProductServiceImpl implements IotProductService { |
| 34 | 34 | |
| 35 | 35 | @Resource |
| 36 | 36 | @Lazy |
| 37 | - private IotProductThinkModelService thinkModelFunctionService; | |
| 37 | + private IotProductThingModelService thingModelService; | |
| 38 | 38 | |
| 39 | 39 | @Override |
| 40 | 40 | public Long createProduct(IotProductSaveReqVO createReqVO) { |
| ... | ... | @@ -115,7 +115,7 @@ public class IotProductServiceImpl implements IotProductService { |
| 115 | 115 | // 3. 产品是发布状态 |
| 116 | 116 | if (Objects.equals(status, IotProductStatusEnum.PUBLISHED.getStatus())) { |
| 117 | 117 | // 3.1 创建超级表数据模型 |
| 118 | - thinkModelFunctionService.createSuperTableDataModel(id); | |
| 118 | + thingModelService.createSuperTableDataModel(id); | |
| 119 | 119 | } |
| 120 | 120 | productMapper.updateById(updateObj); |
| 121 | 121 | } | ... | ... |
yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/tdengine/IotSuperTableService.java
| ... | ... | @@ -2,7 +2,7 @@ package cn.iocoder.yudao.module.iot.service.tdengine; |
| 2 | 2 | |
| 3 | 3 | |
| 4 | 4 | import cn.iocoder.yudao.module.iot.dal.dataobject.product.IotProductDO; |
| 5 | -import cn.iocoder.yudao.module.iot.dal.dataobject.thinkmodel.IotProductThinkModelDO; | |
| 5 | +import cn.iocoder.yudao.module.iot.dal.dataobject.thingmodel.IotProductThingModelDO; | |
| 6 | 6 | |
| 7 | 7 | import java.util.List; |
| 8 | 8 | |
| ... | ... | @@ -14,5 +14,6 @@ public interface IotSuperTableService { |
| 14 | 14 | /** |
| 15 | 15 | * 创建超级表数据模型 |
| 16 | 16 | */ |
| 17 | - void createSuperTableDataModel(IotProductDO product, List<IotProductThinkModelDO> functionList); | |
| 17 | + void createSuperTableDataModel(IotProductDO product, List<IotProductThingModelDO> thingModelList); | |
| 18 | + | |
| 18 | 19 | } |
| 19 | 20 | \ No newline at end of file | ... | ... |
yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/tdengine/IotSuperTableServiceImpl.java
| ... | ... | @@ -2,15 +2,15 @@ package cn.iocoder.yudao.module.iot.service.tdengine; |
| 2 | 2 | |
| 3 | 3 | import cn.hutool.core.bean.BeanUtil; |
| 4 | 4 | import cn.hutool.core.collection.CollUtil; |
| 5 | -import cn.iocoder.yudao.module.iot.controller.admin.thinkmodel.model.ThinkModelProperty; | |
| 6 | -import cn.iocoder.yudao.module.iot.controller.admin.thinkmodel.model.ThinkModelRespVO; | |
| 5 | +import cn.iocoder.yudao.module.iot.controller.admin.thingmodel.model.ThingModelProperty; | |
| 6 | +import cn.iocoder.yudao.module.iot.controller.admin.thingmodel.model.ThingModelRespVO; | |
| 7 | 7 | import cn.iocoder.yudao.module.iot.dal.dataobject.product.IotProductDO; |
| 8 | 8 | import cn.iocoder.yudao.module.iot.dal.dataobject.tdengine.FieldParser; |
| 9 | 9 | import cn.iocoder.yudao.module.iot.dal.dataobject.tdengine.TdFieldDO; |
| 10 | 10 | import cn.iocoder.yudao.module.iot.dal.dataobject.tdengine.TdTableDO; |
| 11 | -import cn.iocoder.yudao.module.iot.dal.dataobject.thinkmodel.IotProductThinkModelDO; | |
| 11 | +import cn.iocoder.yudao.module.iot.dal.dataobject.thingmodel.IotProductThingModelDO; | |
| 12 | 12 | import cn.iocoder.yudao.module.iot.dal.tdengine.TdEngineDDLMapper; |
| 13 | -import cn.iocoder.yudao.module.iot.enums.thinkmodel.IotProductThinkModelTypeEnum; | |
| 13 | +import cn.iocoder.yudao.module.iot.enums.thingmodel.IotProductThingModelTypeEnum; | |
| 14 | 14 | import jakarta.annotation.Resource; |
| 15 | 15 | import lombok.extern.slf4j.Slf4j; |
| 16 | 16 | import org.springframework.beans.factory.annotation.Value; |
| ... | ... | @@ -33,8 +33,8 @@ public class IotSuperTableServiceImpl implements IotSuperTableService { |
| 33 | 33 | private String url; |
| 34 | 34 | |
| 35 | 35 | @Override |
| 36 | - public void createSuperTableDataModel(IotProductDO product, List<IotProductThinkModelDO> functionList) { | |
| 37 | - ThinkModelRespVO thingModel = buildThinkModel(product, functionList); | |
| 36 | + public void createSuperTableDataModel(IotProductDO product, List<IotProductThingModelDO> thingModelList) { | |
| 37 | + ThingModelRespVO thingModel = buildThingModel(product, thingModelList); | |
| 38 | 38 | |
| 39 | 39 | if (thingModel.getModel() == null || CollUtil.isEmpty(thingModel.getModel().getProperties())) { |
| 40 | 40 | log.warn("物模型属性列表为空,不创建超级表"); |
| ... | ... | @@ -56,7 +56,7 @@ public class IotSuperTableServiceImpl implements IotSuperTableService { |
| 56 | 56 | /** |
| 57 | 57 | * 创建超级表 |
| 58 | 58 | */ |
| 59 | - private void createSuperTable(ThinkModelRespVO thingModel, Integer deviceType) { | |
| 59 | + private void createSuperTable(ThingModelRespVO thingModel, Integer deviceType) { | |
| 60 | 60 | // 解析物模型,获取字段列表 |
| 61 | 61 | List<TdFieldDO> schemaFields = new ArrayList<>(); |
| 62 | 62 | schemaFields.add(TdFieldDO.builder() |
| ... | ... | @@ -84,7 +84,7 @@ public class IotSuperTableServiceImpl implements IotSuperTableService { |
| 84 | 84 | /** |
| 85 | 85 | * 更新超级表 |
| 86 | 86 | */ |
| 87 | - private void updateSuperTable(ThinkModelRespVO thingModel, Integer deviceType) { | |
| 87 | + private void updateSuperTable(ThingModelRespVO thingModel, Integer deviceType) { | |
| 88 | 88 | String superTableName = getSuperTableName(deviceType, thingModel.getProductKey()); |
| 89 | 89 | try { |
| 90 | 90 | List<TdFieldDO> oldFields = getTableFields(superTableName); |
| ... | ... | @@ -210,18 +210,18 @@ public class IotSuperTableServiceImpl implements IotSuperTableService { |
| 210 | 210 | /** |
| 211 | 211 | * 构建物模型 |
| 212 | 212 | */ |
| 213 | - private ThinkModelRespVO buildThinkModel(IotProductDO product, List<IotProductThinkModelDO> functionList) { | |
| 214 | - ThinkModelRespVO thingModel = new ThinkModelRespVO(); | |
| 213 | + private ThingModelRespVO buildThingModel(IotProductDO product, List<IotProductThingModelDO> thingModelList) { | |
| 214 | + ThingModelRespVO thingModel = new ThingModelRespVO(); | |
| 215 | 215 | thingModel.setId(product.getId()); |
| 216 | 216 | thingModel.setProductKey(product.getProductKey()); |
| 217 | 217 | |
| 218 | - List<ThinkModelProperty> properties = functionList.stream() | |
| 219 | - .filter(function -> IotProductThinkModelTypeEnum.PROPERTY.equals( | |
| 220 | - IotProductThinkModelTypeEnum.valueOfType(function.getType()))) | |
| 221 | - .map(this::buildThinkModelProperty) | |
| 218 | + List<ThingModelProperty> properties = thingModelList.stream() | |
| 219 | + .filter(item -> IotProductThingModelTypeEnum.PROPERTY.equals( | |
| 220 | + IotProductThingModelTypeEnum.valueOfType(item.getType()))) | |
| 221 | + .map(this::buildThingModelProperty) | |
| 222 | 222 | .collect(Collectors.toList()); |
| 223 | 223 | |
| 224 | - ThinkModelRespVO.Model model = new ThinkModelRespVO.Model(); | |
| 224 | + ThingModelRespVO.Model model = new ThingModelRespVO.Model(); | |
| 225 | 225 | model.setProperties(properties); |
| 226 | 226 | thingModel.setModel(model); |
| 227 | 227 | |
| ... | ... | @@ -231,9 +231,9 @@ public class IotSuperTableServiceImpl implements IotSuperTableService { |
| 231 | 231 | /** |
| 232 | 232 | * 构建物模型属性 |
| 233 | 233 | */ |
| 234 | - private ThinkModelProperty buildThinkModelProperty(IotProductThinkModelDO function) { | |
| 235 | - ThinkModelProperty property = BeanUtil.copyProperties(function, ThinkModelProperty.class); | |
| 236 | - property.setDataType(function.getProperty().getDataType()); | |
| 234 | + private ThingModelProperty buildThingModelProperty(IotProductThingModelDO thingModel) { | |
| 235 | + ThingModelProperty property = BeanUtil.copyProperties(thingModel, ThingModelProperty.class); | |
| 236 | + property.setDataType(thingModel.getProperty().getDataType()); | |
| 237 | 237 | return property; |
| 238 | 238 | } |
| 239 | 239 | ... | ... |
yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/tdengine/IotThinkModelMessageService.java renamed to yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/tdengine/IotThingModelMessageService.java
| 1 | 1 | package cn.iocoder.yudao.module.iot.service.tdengine; |
| 2 | 2 | |
| 3 | 3 | import cn.iocoder.yudao.module.iot.dal.dataobject.device.IotDeviceDO; |
| 4 | -import cn.iocoder.yudao.module.iot.dal.dataobject.tdengine.ThinkModelMessage; | |
| 4 | +import cn.iocoder.yudao.module.iot.dal.dataobject.tdengine.ThingModelMessage; | |
| 5 | 5 | |
| 6 | 6 | /** |
| 7 | 7 | * 物模型消息 Service |
| 8 | 8 | */ |
| 9 | -public interface IotThinkModelMessageService { | |
| 9 | +public interface IotThingModelMessageService { | |
| 10 | 10 | |
| 11 | 11 | /** |
| 12 | 12 | * 保存物模型消息 |
| ... | ... | @@ -14,5 +14,5 @@ public interface IotThinkModelMessageService { |
| 14 | 14 | * @param device 设备 |
| 15 | 15 | * @param thingModelMessage 物模型消息 |
| 16 | 16 | */ |
| 17 | - void saveThinkModelMessage(IotDeviceDO device, ThinkModelMessage thingModelMessage); | |
| 17 | + void saveThingModelMessage(IotDeviceDO device, ThingModelMessage thingModelMessage); | |
| 18 | 18 | } |
| 19 | 19 | \ No newline at end of file | ... | ... |
yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/tdengine/IotThinkModelMessageServiceImpl.java renamed to yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/tdengine/IotThingModelMessageServiceImpl.java
| ... | ... | @@ -10,16 +10,16 @@ import cn.iocoder.yudao.module.iot.dal.dataobject.device.IotDeviceDataDO; |
| 10 | 10 | import cn.iocoder.yudao.module.iot.dal.dataobject.tdengine.FieldParser; |
| 11 | 11 | import cn.iocoder.yudao.module.iot.dal.dataobject.tdengine.TdFieldDO; |
| 12 | 12 | import cn.iocoder.yudao.module.iot.dal.dataobject.tdengine.TdTableDO; |
| 13 | -import cn.iocoder.yudao.module.iot.dal.dataobject.tdengine.ThinkModelMessage; | |
| 14 | -import cn.iocoder.yudao.module.iot.dal.dataobject.thinkmodel.IotProductThinkModelDO; | |
| 13 | +import cn.iocoder.yudao.module.iot.dal.dataobject.tdengine.ThingModelMessage; | |
| 14 | +import cn.iocoder.yudao.module.iot.dal.dataobject.thingmodel.IotProductThingModelDO; | |
| 15 | 15 | import cn.iocoder.yudao.module.iot.dal.redis.deviceData.DeviceDataRedisDAO; |
| 16 | 16 | import cn.iocoder.yudao.module.iot.dal.tdengine.TdEngineDDLMapper; |
| 17 | 17 | import cn.iocoder.yudao.module.iot.dal.tdengine.TdEngineDMLMapper; |
| 18 | 18 | import cn.iocoder.yudao.module.iot.enums.IotConstants; |
| 19 | 19 | import cn.iocoder.yudao.module.iot.enums.device.IotDeviceStatusEnum; |
| 20 | -import cn.iocoder.yudao.module.iot.enums.thinkmodel.IotProductThinkModelTypeEnum; | |
| 20 | +import cn.iocoder.yudao.module.iot.enums.thingmodel.IotProductThingModelTypeEnum; | |
| 21 | 21 | import cn.iocoder.yudao.module.iot.service.device.IotDeviceService; |
| 22 | -import cn.iocoder.yudao.module.iot.service.thinkmodel.IotProductThinkModelService; | |
| 22 | +import cn.iocoder.yudao.module.iot.service.thingmodel.IotProductThingModelService; | |
| 23 | 23 | import jakarta.annotation.Resource; |
| 24 | 24 | import lombok.extern.slf4j.Slf4j; |
| 25 | 25 | import org.springframework.beans.factory.annotation.Value; |
| ... | ... | @@ -28,12 +28,14 @@ import org.springframework.stereotype.Service; |
| 28 | 28 | import java.util.*; |
| 29 | 29 | import java.util.stream.Collectors; |
| 30 | 30 | |
| 31 | +import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.*; | |
| 32 | + | |
| 31 | 33 | /** |
| 32 | 34 | * 物模型消息 Service 实现类 |
| 33 | 35 | */ |
| 34 | 36 | @Slf4j |
| 35 | 37 | @Service |
| 36 | -public class IotThinkModelMessageServiceImpl implements IotThinkModelMessageService { | |
| 38 | +public class IotThingModelMessageServiceImpl implements IotThingModelMessageService { | |
| 37 | 39 | |
| 38 | 40 | private static final String TAG_NOTE = "TAG"; |
| 39 | 41 | private static final String NOTE = "note"; |
| ... | ... | @@ -47,7 +49,7 @@ public class IotThinkModelMessageServiceImpl implements IotThinkModelMessageServ |
| 47 | 49 | private String url; |
| 48 | 50 | |
| 49 | 51 | @Resource |
| 50 | - private IotProductThinkModelService iotProductThinkModelService; | |
| 52 | + private IotProductThingModelService iotProductThingModelService; | |
| 51 | 53 | @Resource |
| 52 | 54 | private IotDeviceService iotDeviceService; |
| 53 | 55 | @Resource |
| ... | ... | @@ -61,7 +63,7 @@ public class IotThinkModelMessageServiceImpl implements IotThinkModelMessageServ |
| 61 | 63 | // TODO @haohao:这个方法,可以考虑加下 1. 2. 3. 更有层次感 |
| 62 | 64 | @Override |
| 63 | 65 | @TenantIgnore |
| 64 | - public void saveThinkModelMessage(IotDeviceDO device, ThinkModelMessage thingModelMessage) { | |
| 66 | + public void saveThingModelMessage(IotDeviceDO device, ThingModelMessage thingModelMessage) { | |
| 65 | 67 | // 1. 判断设备状态,如果为未激活状态,创建数据表并更新设备状态 |
| 66 | 68 | if (IotDeviceStatusEnum.INACTIVE.getStatus().equals(device.getStatus())) { |
| 67 | 69 | createDeviceTable(device.getDeviceType(), device.getProductKey(), device.getDeviceName(), device.getDeviceKey()); |
| ... | ... | @@ -71,13 +73,13 @@ public class IotThinkModelMessageServiceImpl implements IotThinkModelMessageServ |
| 71 | 73 | |
| 72 | 74 | // 2. 获取设备属性并进行物模型校验,过滤非物模型属性 |
| 73 | 75 | Map<String, Object> params = thingModelMessage.dataToMap(); |
| 74 | - List<IotProductThinkModelDO> functionList = getValidFunctionList(thingModelMessage.getProductKey()); | |
| 75 | - if (functionList.isEmpty()) { | |
| 76 | + List<IotProductThingModelDO> thingModelList = getValidThingModelList(thingModelMessage.getProductKey()); | |
| 77 | + if (thingModelList.isEmpty()) { | |
| 76 | 78 | return; |
| 77 | 79 | } |
| 78 | 80 | |
| 79 | 81 | // 3. 过滤并收集有效的属性字段,缓存设备属性 |
| 80 | - List<TdFieldDO> schemaFieldValues = filterAndCollectValidFields(params, functionList, device, thingModelMessage.getTime()); | |
| 82 | + List<TdFieldDO> schemaFieldValues = filterAndCollectValidFields(params, thingModelList, device, thingModelMessage.getTime()); | |
| 81 | 83 | if (schemaFieldValues.size() == 1) { // 仅有时间字段,无需保存 |
| 82 | 84 | return; |
| 83 | 85 | } |
| ... | ... | @@ -90,21 +92,17 @@ public class IotThinkModelMessageServiceImpl implements IotThinkModelMessageServ |
| 90 | 92 | .build()); |
| 91 | 93 | } |
| 92 | 94 | |
| 93 | - private List<IotProductThinkModelDO> getValidFunctionList(String productKey) { | |
| 94 | - return iotProductThinkModelService | |
| 95 | - .getProductThinkModelListByProductKey(productKey) | |
| 96 | - .stream() | |
| 97 | - .filter(function -> IotProductThinkModelTypeEnum.PROPERTY.getType().equals(function.getType())) | |
| 98 | - .toList(); | |
| 95 | + private List<IotProductThingModelDO> getValidThingModelList(String productKey) { | |
| 96 | + return filterList(iotProductThingModelService.getProductThingModelListByProductKey(productKey), | |
| 97 | + thingModel -> IotProductThingModelTypeEnum.PROPERTY.getType().equals(thingModel.getType())); | |
| 99 | 98 | } |
| 100 | 99 | |
| 101 | - private List<TdFieldDO> filterAndCollectValidFields(Map<String, Object> params, List<IotProductThinkModelDO> functionList, IotDeviceDO device, Long time) { | |
| 100 | + private List<TdFieldDO> filterAndCollectValidFields(Map<String, Object> params, List<IotProductThingModelDO> thingModelList, IotDeviceDO device, Long time) { | |
| 102 | 101 | // 1. 获取属性标识符集合 |
| 103 | - Set<String> propertyIdentifiers = CollectionUtils.convertSet(functionList, IotProductThinkModelDO::getIdentifier); | |
| 102 | + Set<String> propertyIdentifiers = convertSet(thingModelList, IotProductThingModelDO::getIdentifier); | |
| 104 | 103 | |
| 105 | 104 | // 2. 构建属性标识符和属性的映射 |
| 106 | - Map<String, IotProductThinkModelDO> functionMap = functionList.stream() | |
| 107 | - .collect(Collectors.toMap(IotProductThinkModelDO::getIdentifier, function -> function)); | |
| 105 | + Map<String, IotProductThingModelDO> thingModelMap = convertMap(thingModelList, IotProductThingModelDO::getIdentifier); | |
| 108 | 106 | |
| 109 | 107 | // 3. 过滤并收集有效的属性字段 |
| 110 | 108 | List<TdFieldDO> schemaFieldValues = new ArrayList<>(); |
| ... | ... | @@ -114,7 +112,7 @@ public class IotThinkModelMessageServiceImpl implements IotThinkModelMessageServ |
| 114 | 112 | schemaFieldValues.add(new TdFieldDO(key.toLowerCase(), val)); |
| 115 | 113 | // 缓存设备属性 |
| 116 | 114 | // TODO @haohao:这个缓存的写入,可以使用的时候 cache 么?被动读 |
| 117 | - setDeviceDataCache(device, functionMap.get(key), val, time); | |
| 115 | + setDeviceDataCache(device, thingModelMap.get(key), val, time); | |
| 118 | 116 | } |
| 119 | 117 | }); |
| 120 | 118 | return schemaFieldValues; |
| ... | ... | @@ -123,22 +121,22 @@ public class IotThinkModelMessageServiceImpl implements IotThinkModelMessageServ |
| 123 | 121 | /** |
| 124 | 122 | * 缓存设备属性 |
| 125 | 123 | * |
| 126 | - * @param device 设备信息 | |
| 127 | - * @param iotProductThinkModelDO 物模型属性 | |
| 128 | - * @param val 属性值 | |
| 129 | - * @param time 时间 | |
| 124 | + * @param device 设备信息 | |
| 125 | + * @param iotProductThingModelDO 物模型属性 | |
| 126 | + * @param val 属性值 | |
| 127 | + * @param time 时间 | |
| 130 | 128 | */ |
| 131 | - private void setDeviceDataCache(IotDeviceDO device, IotProductThinkModelDO iotProductThinkModelDO, Object val, Long time) { | |
| 129 | + private void setDeviceDataCache(IotDeviceDO device, IotProductThingModelDO iotProductThingModelDO, Object val, Long time) { | |
| 132 | 130 | IotDeviceDataDO deviceData = IotDeviceDataDO.builder() |
| 133 | 131 | .productKey(device.getProductKey()) |
| 134 | 132 | .deviceName(device.getDeviceName()) |
| 135 | - .identifier(iotProductThinkModelDO.getIdentifier()) | |
| 133 | + .identifier(iotProductThingModelDO.getIdentifier()) | |
| 136 | 134 | .value(val != null ? val.toString() : null) |
| 137 | 135 | .updateTime(DateUtil.toLocalDateTime(new Date(time))) |
| 138 | 136 | .deviceId(device.getId()) |
| 139 | - .thinkModelId(iotProductThinkModelDO.getId()) | |
| 140 | - .name(iotProductThinkModelDO.getName()) | |
| 141 | - .dataType(iotProductThinkModelDO.getProperty().getDataType()) | |
| 137 | + .thingModelId(iotProductThingModelDO.getId()) | |
| 138 | + .name(iotProductThingModelDO.getName()) | |
| 139 | + .dataType(iotProductThingModelDO.getProperty().getDataType()) | |
| 142 | 140 | .build(); |
| 143 | 141 | deviceDataRedisDAO.set(deviceData); |
| 144 | 142 | } | ... | ... |
yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/thinkmodel/IotProductThinkModelService.java renamed to yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/thingmodel/IotProductThingModelService.java
| 1 | -package cn.iocoder.yudao.module.iot.service.thinkmodel; | |
| 1 | +package cn.iocoder.yudao.module.iot.service.thingmodel; | |
| 2 | 2 | |
| 3 | 3 | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| 4 | -import cn.iocoder.yudao.module.iot.controller.admin.thinkmodel.vo.IotProductThinkModelPageReqVO; | |
| 5 | -import cn.iocoder.yudao.module.iot.controller.admin.thinkmodel.vo.IotProductThinkModelSaveReqVO; | |
| 6 | -import cn.iocoder.yudao.module.iot.dal.dataobject.thinkmodel.IotProductThinkModelDO; | |
| 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; | |
| 7 | 7 | import jakarta.validation.Valid; |
| 8 | 8 | |
| 9 | 9 | import java.util.List; |
| ... | ... | @@ -13,7 +13,7 @@ import java.util.List; |
| 13 | 13 | * |
| 14 | 14 | * @author 芋道源码 |
| 15 | 15 | */ |
| 16 | -public interface IotProductThinkModelService { | |
| 16 | +public interface IotProductThingModelService { | |
| 17 | 17 | |
| 18 | 18 | /** |
| 19 | 19 | * 创建产品物模型 |
| ... | ... | @@ -21,21 +21,21 @@ public interface IotProductThinkModelService { |
| 21 | 21 | * @param createReqVO 创建信息 |
| 22 | 22 | * @return 编号 |
| 23 | 23 | */ |
| 24 | - Long createProductThinkModel(@Valid IotProductThinkModelSaveReqVO createReqVO); | |
| 24 | + Long createProductThingModel(@Valid IotProductThingModelSaveReqVO createReqVO); | |
| 25 | 25 | |
| 26 | 26 | /** |
| 27 | 27 | * 更新产品物模型 |
| 28 | 28 | * |
| 29 | 29 | * @param updateReqVO 更新信息 |
| 30 | 30 | */ |
| 31 | - void updateProductThinkModel(@Valid IotProductThinkModelSaveReqVO updateReqVO); | |
| 31 | + void updateProductThingModel(@Valid IotProductThingModelSaveReqVO updateReqVO); | |
| 32 | 32 | |
| 33 | 33 | /** |
| 34 | 34 | * 删除产品物模型 |
| 35 | 35 | * |
| 36 | 36 | * @param id 编号 |
| 37 | 37 | */ |
| 38 | - void deleteProductThinkModel(Long id); | |
| 38 | + void deleteProductThingModel(Long id); | |
| 39 | 39 | |
| 40 | 40 | /** |
| 41 | 41 | * 获得产品物模型 |
| ... | ... | @@ -43,7 +43,7 @@ public interface IotProductThinkModelService { |
| 43 | 43 | * @param id 编号 |
| 44 | 44 | * @return 产品物模型 |
| 45 | 45 | */ |
| 46 | - IotProductThinkModelDO getProductThinkModel(Long id); | |
| 46 | + IotProductThingModelDO getProductThingModel(Long id); | |
| 47 | 47 | |
| 48 | 48 | /** |
| 49 | 49 | * 获得产品物模型列表 |
| ... | ... | @@ -51,7 +51,7 @@ public interface IotProductThinkModelService { |
| 51 | 51 | * @param productId 产品编号 |
| 52 | 52 | * @return 产品物模型列表 |
| 53 | 53 | */ |
| 54 | - List<IotProductThinkModelDO> getProductThinkModelListByProductId(Long productId); | |
| 54 | + List<IotProductThingModelDO> getProductThingModelListByProductId(Long productId); | |
| 55 | 55 | |
| 56 | 56 | /** |
| 57 | 57 | * 获得产品物模型分页 |
| ... | ... | @@ -59,7 +59,7 @@ public interface IotProductThinkModelService { |
| 59 | 59 | * @param pageReqVO 分页查询 |
| 60 | 60 | * @return 产品物模型分页 |
| 61 | 61 | */ |
| 62 | - PageResult<IotProductThinkModelDO> getProductThinkModelPage(IotProductThinkModelPageReqVO pageReqVO); | |
| 62 | + PageResult<IotProductThingModelDO> getProductThingModelPage(IotProductThingModelPageReqVO pageReqVO); | |
| 63 | 63 | |
| 64 | 64 | /** |
| 65 | 65 | * 创建超级表数据模型 |
| ... | ... | @@ -74,6 +74,6 @@ public interface IotProductThinkModelService { |
| 74 | 74 | * @param productKey 产品 Key |
| 75 | 75 | * @return 产品物模型列表 |
| 76 | 76 | */ |
| 77 | - List<IotProductThinkModelDO> getProductThinkModelListByProductKey(String productKey); | |
| 77 | + List<IotProductThingModelDO> getProductThingModelListByProductKey(String productKey); | |
| 78 | 78 | |
| 79 | 79 | } |
| 80 | 80 | \ No newline at end of file | ... | ... |
yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/thinkmodel/IotProductThinkModelServiceImpl.java renamed to yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/thingmodel/IotProductThingModelServiceImpl.java
| 1 | -package cn.iocoder.yudao.module.iot.service.thinkmodel; | |
| 1 | +package cn.iocoder.yudao.module.iot.service.thingmodel; | |
| 2 | 2 | |
| 3 | 3 | import cn.hutool.core.collection.CollUtil; |
| 4 | 4 | import cn.hutool.core.util.ObjectUtil; |
| 5 | 5 | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| 6 | 6 | import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; |
| 7 | 7 | import cn.iocoder.yudao.framework.common.util.object.ObjectUtils; |
| 8 | -import cn.iocoder.yudao.module.iot.controller.admin.thinkmodel.model.ThinkModelEvent; | |
| 9 | -import cn.iocoder.yudao.module.iot.controller.admin.thinkmodel.model.ThinkModelProperty; | |
| 10 | -import cn.iocoder.yudao.module.iot.controller.admin.thinkmodel.model.ThinkModelService; | |
| 11 | -import cn.iocoder.yudao.module.iot.controller.admin.thinkmodel.model.dataType.ThinkModelArgument; | |
| 12 | -import cn.iocoder.yudao.module.iot.controller.admin.thinkmodel.model.dataType.ThinkModelArrayDataSpecs; | |
| 13 | -import cn.iocoder.yudao.module.iot.controller.admin.thinkmodel.model.dataType.ThinkModelDateOrTextDataSpecs; | |
| 14 | -import cn.iocoder.yudao.module.iot.controller.admin.thinkmodel.vo.IotProductThinkModelPageReqVO; | |
| 15 | -import cn.iocoder.yudao.module.iot.controller.admin.thinkmodel.vo.IotProductThinkModelSaveReqVO; | |
| 16 | -import cn.iocoder.yudao.module.iot.convert.thinkmodel.IotProductThinkModelConvert; | |
| 8 | +import cn.iocoder.yudao.module.iot.controller.admin.thingmodel.model.ThingModelEvent; | |
| 9 | +import cn.iocoder.yudao.module.iot.controller.admin.thingmodel.model.ThingModelProperty; | |
| 10 | +import cn.iocoder.yudao.module.iot.controller.admin.thingmodel.model.ThingModelService; | |
| 11 | +import cn.iocoder.yudao.module.iot.controller.admin.thingmodel.model.dataType.ThingModelArgument; | |
| 12 | +import cn.iocoder.yudao.module.iot.controller.admin.thingmodel.model.dataType.ThingModelArrayDataSpecs; | |
| 13 | +import cn.iocoder.yudao.module.iot.controller.admin.thingmodel.model.dataType.ThingModelDateOrTextDataSpecs; | |
| 14 | +import cn.iocoder.yudao.module.iot.controller.admin.thingmodel.vo.IotProductThingModelPageReqVO; | |
| 15 | +import cn.iocoder.yudao.module.iot.controller.admin.thingmodel.vo.IotProductThingModelSaveReqVO; | |
| 16 | +import cn.iocoder.yudao.module.iot.convert.thingmodel.IotProductThingModelConvert; | |
| 17 | 17 | import cn.iocoder.yudao.module.iot.dal.dataobject.product.IotProductDO; |
| 18 | -import cn.iocoder.yudao.module.iot.dal.dataobject.thinkmodel.IotProductThinkModelDO; | |
| 19 | -import cn.iocoder.yudao.module.iot.dal.mysql.thinkmodel.IotProductThinkModelMapper; | |
| 18 | +import cn.iocoder.yudao.module.iot.dal.dataobject.thingmodel.IotProductThingModelDO; | |
| 19 | +import cn.iocoder.yudao.module.iot.dal.mysql.thingmodel.IotProductThingModelMapper; | |
| 20 | 20 | import cn.iocoder.yudao.module.iot.enums.product.IotProductStatusEnum; |
| 21 | -import cn.iocoder.yudao.module.iot.enums.thinkmodel.IotProductThinkModelAccessModeEnum; | |
| 22 | -import cn.iocoder.yudao.module.iot.enums.thinkmodel.IotProductThinkModelTypeEnum; | |
| 21 | +import cn.iocoder.yudao.module.iot.enums.thingmodel.IotProductThingModelAccessModeEnum; | |
| 22 | +import cn.iocoder.yudao.module.iot.enums.thingmodel.IotProductThingModelTypeEnum; | |
| 23 | 23 | import cn.iocoder.yudao.module.iot.service.product.IotProductService; |
| 24 | 24 | import cn.iocoder.yudao.module.iot.service.tdengine.IotSuperTableService; |
| 25 | 25 | import jakarta.annotation.Resource; |
| ... | ... | @@ -43,10 +43,10 @@ import static cn.iocoder.yudao.module.iot.enums.ErrorCodeConstants.*; |
| 43 | 43 | @Service |
| 44 | 44 | @Validated |
| 45 | 45 | @Slf4j |
| 46 | -public class IotProductThinkModelServiceImpl implements IotProductThinkModelService { | |
| 46 | +public class IotProductThingModelServiceImpl implements IotProductThingModelService { | |
| 47 | 47 | |
| 48 | 48 | @Resource |
| 49 | - private IotProductThinkModelMapper productThinkModelMapper; | |
| 49 | + private IotProductThingModelMapper productThingModelMapper; | |
| 50 | 50 | |
| 51 | 51 | @Resource |
| 52 | 52 | private IotProductService productService; |
| ... | ... | @@ -55,7 +55,7 @@ public class IotProductThinkModelServiceImpl implements IotProductThinkModelServ |
| 55 | 55 | |
| 56 | 56 | @Override |
| 57 | 57 | @Transactional(rollbackFor = Exception.class) |
| 58 | - public Long createProductThinkModel(IotProductThinkModelSaveReqVO createReqVO) { | |
| 58 | + public Long createProductThingModel(IotProductThingModelSaveReqVO createReqVO) { | |
| 59 | 59 | // 1. 校验功能标识符在同一产品下是否唯一 |
| 60 | 60 | validateIdentifierUnique(createReqVO.getProductId(), createReqVO.getIdentifier()); |
| 61 | 61 | |
| ... | ... | @@ -69,52 +69,49 @@ public class IotProductThinkModelServiceImpl implements IotProductThinkModelServ |
| 69 | 69 | validateProductStatus(createReqVO.getProductId()); |
| 70 | 70 | |
| 71 | 71 | // 5. 插入数据库 |
| 72 | - IotProductThinkModelDO function = IotProductThinkModelConvert.INSTANCE.convert(createReqVO); | |
| 73 | - productThinkModelMapper.insert(function); | |
| 72 | + IotProductThingModelDO thingModel = IotProductThingModelConvert.INSTANCE.convert(createReqVO); | |
| 73 | + productThingModelMapper.insert(thingModel); | |
| 74 | 74 | |
| 75 | 75 | // 6. 如果创建的是属性,需要更新默认的事件和服务 |
| 76 | - if (Objects.equals(createReqVO.getType(), IotProductThinkModelTypeEnum.PROPERTY.getType())) { | |
| 76 | + if (Objects.equals(createReqVO.getType(), IotProductThingModelTypeEnum.PROPERTY.getType())) { | |
| 77 | 77 | createDefaultEventsAndServices(createReqVO.getProductId(), createReqVO.getProductKey()); |
| 78 | 78 | } |
| 79 | - return function.getId(); | |
| 79 | + return thingModel.getId(); | |
| 80 | 80 | } |
| 81 | 81 | |
| 82 | 82 | private void validateProductStatus(Long createReqVO) { |
| 83 | 83 | IotProductDO product = productService.getProduct(createReqVO); |
| 84 | 84 | if (Objects.equals(product.getStatus(), IotProductStatusEnum.PUBLISHED.getStatus())) { |
| 85 | - throw exception(PRODUCT_STATUS_NOT_ALLOW_FUNCTION); | |
| 85 | + throw exception(PRODUCT_STATUS_NOT_ALLOW_THING_MODEL); | |
| 86 | 86 | } |
| 87 | 87 | } |
| 88 | 88 | |
| 89 | 89 | private void validateNotDefaultEventAndService(String identifier) { |
| 90 | 90 | // set, get, post, property, event, time, value 是系统保留字段,不能用于标识符定义 |
| 91 | 91 | if (CollUtil.containsAny(Arrays.asList("set", "get", "post", "property", "event", "time", "value"), Collections.singletonList(identifier))) { |
| 92 | - throw exception(THINK_MODEL_FUNCTION_IDENTIFIER_INVALID); | |
| 92 | + throw exception(THING_MODEL_IDENTIFIER_INVALID); | |
| 93 | 93 | } |
| 94 | -// if (CollUtil.containsAny(Arrays.asList("post", "set", "get"), identifier)) { | |
| 95 | -// throw exception(THINK_MODEL_FUNCTION_IDENTIFIER_INVALID); | |
| 96 | -// } | |
| 97 | 94 | } |
| 98 | 95 | |
| 99 | 96 | private void validateNameUnique(Long productId, String name) { |
| 100 | - IotProductThinkModelDO function = productThinkModelMapper.selectByProductIdAndName(productId, name); | |
| 101 | - if (function != null) { | |
| 102 | - throw exception(THINK_MODEL_FUNCTION_NAME_EXISTS); | |
| 97 | + IotProductThingModelDO thingModel = productThingModelMapper.selectByProductIdAndName(productId, name); | |
| 98 | + if (thingModel != null) { | |
| 99 | + throw exception(THING_MODEL_NAME_EXISTS); | |
| 103 | 100 | } |
| 104 | 101 | } |
| 105 | 102 | |
| 106 | 103 | private void validateIdentifierUnique(Long productId, String identifier) { |
| 107 | - IotProductThinkModelDO function = productThinkModelMapper.selectByProductIdAndIdentifier(productId, identifier); | |
| 108 | - if (function != null) { | |
| 109 | - throw exception(THINK_MODEL_FUNCTION_IDENTIFIER_EXISTS); | |
| 104 | + IotProductThingModelDO thingModel = productThingModelMapper.selectByProductIdAndIdentifier(productId, identifier); | |
| 105 | + if (thingModel != null) { | |
| 106 | + throw exception(THING_MODEL_IDENTIFIER_EXISTS); | |
| 110 | 107 | } |
| 111 | 108 | } |
| 112 | 109 | |
| 113 | 110 | @Override |
| 114 | 111 | @Transactional(rollbackFor = Exception.class) |
| 115 | - public void updateProductThinkModel(IotProductThinkModelSaveReqVO updateReqVO) { | |
| 112 | + public void updateProductThingModel(IotProductThingModelSaveReqVO updateReqVO) { | |
| 116 | 113 | // 1. 校验功能是否存在 |
| 117 | - validateProductThinkModelMapperExists(updateReqVO.getId()); | |
| 114 | + validateProductThingModelMapperExists(updateReqVO.getId()); | |
| 118 | 115 | |
| 119 | 116 | // 2. 校验功能标识符是否唯一 |
| 120 | 117 | validateIdentifierUniqueForUpdate(updateReqVO.getId(), updateReqVO.getProductId(), updateReqVO.getIdentifier()); |
| ... | ... | @@ -123,40 +120,40 @@ public class IotProductThinkModelServiceImpl implements IotProductThinkModelServ |
| 123 | 120 | validateProductStatus(updateReqVO.getProductId()); |
| 124 | 121 | |
| 125 | 122 | // 4. 更新数据库 |
| 126 | - IotProductThinkModelDO productThinkModelDO = IotProductThinkModelConvert.INSTANCE.convert(updateReqVO); | |
| 127 | - productThinkModelMapper.updateById(productThinkModelDO); | |
| 123 | + IotProductThingModelDO thingModel = IotProductThingModelConvert.INSTANCE.convert(updateReqVO); | |
| 124 | + productThingModelMapper.updateById(thingModel); | |
| 128 | 125 | |
| 129 | 126 | // 5. 如果更新的是属性,需要更新默认的事件和服务 |
| 130 | - if (Objects.equals(updateReqVO.getType(), IotProductThinkModelTypeEnum.PROPERTY.getType())) { | |
| 127 | + if (Objects.equals(updateReqVO.getType(), IotProductThingModelTypeEnum.PROPERTY.getType())) { | |
| 131 | 128 | createDefaultEventsAndServices(updateReqVO.getProductId(), updateReqVO.getProductKey()); |
| 132 | 129 | } |
| 133 | 130 | } |
| 134 | 131 | |
| 135 | 132 | private void validateIdentifierUniqueForUpdate(Long id, Long productId, String identifier) { |
| 136 | - IotProductThinkModelDO function = productThinkModelMapper.selectByProductIdAndIdentifier(productId, identifier); | |
| 137 | - if (function != null && ObjectUtil.notEqual(function.getId(), id)) { | |
| 138 | - throw exception(THINK_MODEL_FUNCTION_IDENTIFIER_EXISTS); | |
| 133 | + IotProductThingModelDO thingModel = productThingModelMapper.selectByProductIdAndIdentifier(productId, identifier); | |
| 134 | + if (thingModel != null && ObjectUtil.notEqual(thingModel.getId(), id)) { | |
| 135 | + throw exception(THING_MODEL_IDENTIFIER_EXISTS); | |
| 139 | 136 | } |
| 140 | 137 | } |
| 141 | 138 | |
| 142 | 139 | @Override |
| 143 | 140 | @Transactional(rollbackFor = Exception.class) |
| 144 | - public void deleteProductThinkModel(Long id) { | |
| 141 | + public void deleteProductThingModel(Long id) { | |
| 145 | 142 | // 1. 校验功能是否存在 |
| 146 | - IotProductThinkModelDO functionDO = productThinkModelMapper.selectById(id); | |
| 147 | - if (functionDO == null) { | |
| 148 | - throw exception(THINK_MODEL_FUNCTION_NOT_EXISTS); | |
| 143 | + IotProductThingModelDO thingModel = productThingModelMapper.selectById(id); | |
| 144 | + if (thingModel == null) { | |
| 145 | + throw exception(THING_MODEL_NOT_EXISTS); | |
| 149 | 146 | } |
| 150 | 147 | |
| 151 | 148 | // 3. 校验产品状态,发布状态下,不允许操作功能 |
| 152 | - validateProductStatus(functionDO.getProductId()); | |
| 149 | + validateProductStatus(thingModel.getProductId()); | |
| 153 | 150 | |
| 154 | 151 | // 2. 删除功能 |
| 155 | - productThinkModelMapper.deleteById(id); | |
| 152 | + productThingModelMapper.deleteById(id); | |
| 156 | 153 | |
| 157 | 154 | // 3. 如果删除的是属性,需要更新默认的事件和服务 |
| 158 | - if (Objects.equals(functionDO.getType(), IotProductThinkModelTypeEnum.PROPERTY.getType())) { | |
| 159 | - createDefaultEventsAndServices(functionDO.getProductId(), functionDO.getProductKey()); | |
| 155 | + if (Objects.equals(thingModel.getType(), IotProductThingModelTypeEnum.PROPERTY.getType())) { | |
| 156 | + createDefaultEventsAndServices(thingModel.getProductId(), thingModel.getProductKey()); | |
| 160 | 157 | } |
| 161 | 158 | } |
| 162 | 159 | |
| ... | ... | @@ -165,25 +162,25 @@ public class IotProductThinkModelServiceImpl implements IotProductThinkModelServ |
| 165 | 162 | * |
| 166 | 163 | * @param id 功能编号 |
| 167 | 164 | */ |
| 168 | - private void validateProductThinkModelMapperExists(Long id) { | |
| 169 | - if (productThinkModelMapper.selectById(id) == null) { | |
| 170 | - throw exception(THINK_MODEL_FUNCTION_NOT_EXISTS); | |
| 165 | + private void validateProductThingModelMapperExists(Long id) { | |
| 166 | + if (productThingModelMapper.selectById(id) == null) { | |
| 167 | + throw exception(THING_MODEL_NOT_EXISTS); | |
| 171 | 168 | } |
| 172 | 169 | } |
| 173 | 170 | |
| 174 | 171 | @Override |
| 175 | - public IotProductThinkModelDO getProductThinkModel(Long id) { | |
| 176 | - return productThinkModelMapper.selectById(id); | |
| 172 | + public IotProductThingModelDO getProductThingModel(Long id) { | |
| 173 | + return productThingModelMapper.selectById(id); | |
| 177 | 174 | } |
| 178 | 175 | |
| 179 | 176 | @Override |
| 180 | - public List<IotProductThinkModelDO> getProductThinkModelListByProductId(Long productId) { | |
| 181 | - return productThinkModelMapper.selectListByProductId(productId); | |
| 177 | + public List<IotProductThingModelDO> getProductThingModelListByProductId(Long productId) { | |
| 178 | + return productThingModelMapper.selectListByProductId(productId); | |
| 182 | 179 | } |
| 183 | 180 | |
| 184 | 181 | @Override |
| 185 | - public PageResult<IotProductThinkModelDO> getProductThinkModelPage(IotProductThinkModelPageReqVO pageReqVO) { | |
| 186 | - return productThinkModelMapper.selectPage(pageReqVO); | |
| 182 | + public PageResult<IotProductThingModelDO> getProductThingModelPage(IotProductThingModelPageReqVO pageReqVO) { | |
| 183 | + return productThingModelMapper.selectPage(pageReqVO); | |
| 187 | 184 | } |
| 188 | 185 | |
| 189 | 186 | @Override |
| ... | ... | @@ -192,15 +189,15 @@ public class IotProductThinkModelServiceImpl implements IotProductThinkModelServ |
| 192 | 189 | IotProductDO product = productService.getProduct(productId); |
| 193 | 190 | |
| 194 | 191 | // 2. 查询产品的物模型功能列表 |
| 195 | - List<IotProductThinkModelDO> functionList = productThinkModelMapper.selectListByProductId(productId); | |
| 192 | + List<IotProductThingModelDO> thingModelList = productThingModelMapper.selectListByProductId(productId); | |
| 196 | 193 | |
| 197 | 194 | // 3. 生成 TDengine 的数据模型 |
| 198 | - dbStructureDataService.createSuperTableDataModel(product, functionList); | |
| 195 | + dbStructureDataService.createSuperTableDataModel(product, thingModelList); | |
| 199 | 196 | } |
| 200 | 197 | |
| 201 | 198 | @Override |
| 202 | - public List<IotProductThinkModelDO> getProductThinkModelListByProductKey(String productKey) { | |
| 203 | - return productThinkModelMapper.selectListByProductKey(productKey); | |
| 199 | + public List<IotProductThingModelDO> getProductThingModelListByProductKey(String productKey) { | |
| 200 | + return productThingModelMapper.selectListByProductKey(productKey); | |
| 204 | 201 | } |
| 205 | 202 | |
| 206 | 203 | /** |
| ... | ... | @@ -208,124 +205,124 @@ public class IotProductThinkModelServiceImpl implements IotProductThinkModelServ |
| 208 | 205 | */ |
| 209 | 206 | public void createDefaultEventsAndServices(Long productId, String productKey) { |
| 210 | 207 | // 1. 获取当前属性列表 |
| 211 | - List<IotProductThinkModelDO> propertyList = productThinkModelMapper | |
| 212 | - .selectListByProductIdAndType(productId, IotProductThinkModelTypeEnum.PROPERTY.getType()); | |
| 208 | + List<IotProductThingModelDO> propertyList = productThingModelMapper | |
| 209 | + .selectListByProductIdAndType(productId, IotProductThingModelTypeEnum.PROPERTY.getType()); | |
| 213 | 210 | |
| 214 | 211 | // 2. 生成新的事件和服务列表 |
| 215 | - List<IotProductThinkModelDO> newFunctionList = new ArrayList<>(); | |
| 212 | + List<IotProductThingModelDO> newThingModelList = new ArrayList<>(); | |
| 216 | 213 | // 生成属性上报事件 |
| 217 | - ThinkModelEvent propertyPostEvent = generatePropertyPostEvent(propertyList); | |
| 214 | + ThingModelEvent propertyPostEvent = generatePropertyPostEvent(propertyList); | |
| 218 | 215 | if (propertyPostEvent != null) { |
| 219 | - IotProductThinkModelDO eventFunction = buildEventFunctionDO(productId, productKey, propertyPostEvent); | |
| 220 | - newFunctionList.add(eventFunction); | |
| 216 | + IotProductThingModelDO eventThingModel = buildEventThingModelDO(productId, productKey, propertyPostEvent); | |
| 217 | + newThingModelList.add(eventThingModel); | |
| 221 | 218 | } |
| 222 | 219 | // 生成属性设置服务 |
| 223 | - ThinkModelService propertySetService = generatePropertySetService(propertyList); | |
| 220 | + ThingModelService propertySetService = generatePropertySetService(propertyList); | |
| 224 | 221 | if (propertySetService != null) { |
| 225 | - IotProductThinkModelDO setServiceFunction = buildServiceFunctionDO(productId, productKey, propertySetService); | |
| 226 | - newFunctionList.add(setServiceFunction); | |
| 222 | + IotProductThingModelDO setServiceThingModel = buildServiceThingModelDO(productId, productKey, propertySetService); | |
| 223 | + newThingModelList.add(setServiceThingModel); | |
| 227 | 224 | } |
| 228 | 225 | // 生成属性获取服务 |
| 229 | - ThinkModelService propertyGetService = generatePropertyGetService(propertyList); | |
| 226 | + ThingModelService propertyGetService = generatePropertyGetService(propertyList); | |
| 230 | 227 | if (propertyGetService != null) { |
| 231 | - IotProductThinkModelDO getServiceFunction = buildServiceFunctionDO(productId, productKey, propertyGetService); | |
| 232 | - newFunctionList.add(getServiceFunction); | |
| 228 | + IotProductThingModelDO getServiceThingModel = buildServiceThingModelDO(productId, productKey, propertyGetService); | |
| 229 | + newThingModelList.add(getServiceThingModel); | |
| 233 | 230 | } |
| 234 | 231 | |
| 235 | 232 | // 3. 获取数据库中的默认的旧事件和服务列表 |
| 236 | - List<IotProductThinkModelDO> oldFunctionList = productThinkModelMapper.selectListByProductIdAndIdentifiersAndTypes( | |
| 233 | + List<IotProductThingModelDO> oldThingModelList = productThingModelMapper.selectListByProductIdAndIdentifiersAndTypes( | |
| 237 | 234 | productId, |
| 238 | 235 | Arrays.asList("post", "set", "get"), |
| 239 | - Arrays.asList(IotProductThinkModelTypeEnum.EVENT.getType(), IotProductThinkModelTypeEnum.SERVICE.getType()) | |
| 236 | + Arrays.asList(IotProductThingModelTypeEnum.EVENT.getType(), IotProductThingModelTypeEnum.SERVICE.getType()) | |
| 240 | 237 | ); |
| 241 | 238 | |
| 242 | 239 | // 3.1 使用 diffList 方法比较新旧列表 |
| 243 | - List<List<IotProductThinkModelDO>> diffResult = diffList(oldFunctionList, newFunctionList, | |
| 240 | + List<List<IotProductThingModelDO>> diffResult = diffList(oldThingModelList, newThingModelList, | |
| 244 | 241 | // 继续使用 identifier 和 type 进行比较:这样可以准确地匹配对应的功能对象。 |
| 245 | 242 | (oldFunc, newFunc) -> Objects.equals(oldFunc.getIdentifier(), newFunc.getIdentifier()) |
| 246 | 243 | && Objects.equals(oldFunc.getType(), newFunc.getType())); |
| 247 | - List<IotProductThinkModelDO> createList = diffResult.get(0); // 需要新增的 | |
| 248 | - List<IotProductThinkModelDO> updateList = diffResult.get(1); // 需要更新的 | |
| 249 | - List<IotProductThinkModelDO> deleteList = diffResult.get(2); // 需要删除的 | |
| 244 | + List<IotProductThingModelDO> createList = diffResult.get(0); // 需要新增的 | |
| 245 | + List<IotProductThingModelDO> updateList = diffResult.get(1); // 需要更新的 | |
| 246 | + List<IotProductThingModelDO> deleteList = diffResult.get(2); // 需要删除的 | |
| 250 | 247 | |
| 251 | 248 | // 3.2 批量执行数据库操作 |
| 252 | 249 | // 新增数据库中的新事件和服务列表 |
| 253 | 250 | if (CollUtil.isNotEmpty(createList)) { |
| 254 | - productThinkModelMapper.insertBatch(createList); | |
| 251 | + productThingModelMapper.insertBatch(createList); | |
| 255 | 252 | } |
| 256 | 253 | // 更新数据库中的事件和服务列表 |
| 257 | 254 | if (CollUtil.isNotEmpty(updateList)) { |
| 258 | 255 | // 首先,为每个需要更新的对象设置其对应的 ID |
| 259 | 256 | updateList.forEach(updateFunc -> { |
| 260 | - IotProductThinkModelDO oldFunc = findFunctionByIdentifierAndType( | |
| 261 | - oldFunctionList, updateFunc.getIdentifier(), updateFunc.getType()); | |
| 257 | + IotProductThingModelDO oldFunc = findThingModelByIdentifierAndType( | |
| 258 | + oldThingModelList, updateFunc.getIdentifier(), updateFunc.getType()); | |
| 262 | 259 | if (oldFunc != null) { |
| 263 | 260 | updateFunc.setId(oldFunc.getId()); |
| 264 | 261 | } |
| 265 | 262 | }); |
| 266 | 263 | // 过滤掉没有设置 ID 的对象 |
| 267 | - List<IotProductThinkModelDO> validUpdateList = updateList.stream() | |
| 264 | + List<IotProductThingModelDO> validUpdateList = updateList.stream() | |
| 268 | 265 | .filter(func -> func.getId() != null) |
| 269 | 266 | .collect(Collectors.toList()); |
| 270 | 267 | // 执行批量更新 |
| 271 | 268 | if (CollUtil.isNotEmpty(validUpdateList)) { |
| 272 | - productThinkModelMapper.updateBatch(validUpdateList); | |
| 269 | + productThingModelMapper.updateBatch(validUpdateList); | |
| 273 | 270 | } |
| 274 | 271 | } |
| 275 | 272 | |
| 276 | 273 | // 删除数据库中的旧事件和服务列表 |
| 277 | 274 | if (CollUtil.isNotEmpty(deleteList)) { |
| 278 | - Set<Long> idsToDelete = CollectionUtils.convertSet(deleteList, IotProductThinkModelDO::getId); | |
| 279 | - productThinkModelMapper.deleteByIds(idsToDelete); | |
| 275 | + Set<Long> idsToDelete = CollectionUtils.convertSet(deleteList, IotProductThingModelDO::getId); | |
| 276 | + productThingModelMapper.deleteByIds(idsToDelete); | |
| 280 | 277 | } |
| 281 | 278 | } |
| 282 | 279 | |
| 283 | 280 | /** |
| 284 | 281 | * 根据标识符和类型查找功能对象 |
| 285 | 282 | */ |
| 286 | - private IotProductThinkModelDO findFunctionByIdentifierAndType(List<IotProductThinkModelDO> functionList, | |
| 287 | - String identifier, Integer type) { | |
| 288 | - return CollUtil.findOne(functionList, func -> | |
| 283 | + private IotProductThingModelDO findThingModelByIdentifierAndType(List<IotProductThingModelDO> thingModelList, | |
| 284 | + String identifier, Integer type) { | |
| 285 | + return CollUtil.findOne(thingModelList, func -> | |
| 289 | 286 | Objects.equals(func.getIdentifier(), identifier) && Objects.equals(func.getType(), type)); |
| 290 | 287 | } |
| 291 | 288 | |
| 292 | 289 | /** |
| 293 | 290 | * 构建事件功能对象 |
| 294 | 291 | */ |
| 295 | - private IotProductThinkModelDO buildEventFunctionDO(Long productId, String productKey, ThinkModelEvent event) { | |
| 296 | - return new IotProductThinkModelDO() | |
| 292 | + private IotProductThingModelDO buildEventThingModelDO(Long productId, String productKey, ThingModelEvent event) { | |
| 293 | + return new IotProductThingModelDO() | |
| 297 | 294 | .setProductId(productId) |
| 298 | 295 | .setProductKey(productKey) |
| 299 | 296 | .setIdentifier(event.getIdentifier()) |
| 300 | 297 | .setName(event.getName()) |
| 301 | 298 | .setDescription(event.getDescription()) |
| 302 | - .setType(IotProductThinkModelTypeEnum.EVENT.getType()) | |
| 299 | + .setType(IotProductThingModelTypeEnum.EVENT.getType()) | |
| 303 | 300 | .setEvent(event); |
| 304 | 301 | } |
| 305 | 302 | |
| 306 | 303 | /** |
| 307 | 304 | * 构建服务功能对象 |
| 308 | 305 | */ |
| 309 | - private IotProductThinkModelDO buildServiceFunctionDO(Long productId, String productKey, ThinkModelService service) { | |
| 310 | - return new IotProductThinkModelDO() | |
| 306 | + private IotProductThingModelDO buildServiceThingModelDO(Long productId, String productKey, ThingModelService service) { | |
| 307 | + return new IotProductThingModelDO() | |
| 311 | 308 | .setProductId(productId) |
| 312 | 309 | .setProductKey(productKey) |
| 313 | 310 | .setIdentifier(service.getIdentifier()) |
| 314 | 311 | .setName(service.getName()) |
| 315 | 312 | .setDescription(service.getDescription()) |
| 316 | - .setType(IotProductThinkModelTypeEnum.SERVICE.getType()) | |
| 313 | + .setType(IotProductThingModelTypeEnum.SERVICE.getType()) | |
| 317 | 314 | .setService(service); |
| 318 | 315 | } |
| 319 | 316 | |
| 320 | 317 | /** |
| 321 | 318 | * 生成属性上报事件 |
| 322 | 319 | */ |
| 323 | - private ThinkModelEvent generatePropertyPostEvent(List<IotProductThinkModelDO> propertyList) { | |
| 320 | + private ThingModelEvent generatePropertyPostEvent(List<IotProductThingModelDO> propertyList) { | |
| 324 | 321 | if (CollUtil.isEmpty(propertyList)) { |
| 325 | 322 | return null; |
| 326 | 323 | } |
| 327 | 324 | |
| 328 | - ThinkModelEvent event = new ThinkModelEvent() | |
| 325 | + ThingModelEvent event = new ThingModelEvent() | |
| 329 | 326 | .setIdentifier("post") |
| 330 | 327 | .setName("属性上报") |
| 331 | 328 | .setType("info") |
| ... | ... | @@ -333,13 +330,13 @@ public class IotProductThinkModelServiceImpl implements IotProductThinkModelServ |
| 333 | 330 | .setMethod("thing.event.property.post"); |
| 334 | 331 | |
| 335 | 332 | // 将属性列表转换为事件的输出参数 |
| 336 | - List<ThinkModelArgument> outputData = new ArrayList<>(); | |
| 337 | - for (IotProductThinkModelDO thinkModel : propertyList) { | |
| 338 | - ThinkModelArgument arg = new ThinkModelArgument() | |
| 339 | - .setIdentifier(thinkModel.getIdentifier()) | |
| 340 | - .setName(thinkModel.getName()) | |
| 341 | - .setProperty(thinkModel.getProperty()) | |
| 342 | - .setDescription(thinkModel.getDescription()) | |
| 333 | + List<ThingModelArgument> outputData = new ArrayList<>(); | |
| 334 | + for (IotProductThingModelDO thingModel : propertyList) { | |
| 335 | + ThingModelArgument arg = new ThingModelArgument() | |
| 336 | + .setIdentifier(thingModel.getIdentifier()) | |
| 337 | + .setName(thingModel.getName()) | |
| 338 | + .setProperty(thingModel.getProperty()) | |
| 339 | + .setDescription(thingModel.getDescription()) | |
| 343 | 340 | .setDirection("output"); // 设置为输出参数 |
| 344 | 341 | outputData.add(arg); |
| 345 | 342 | } |
| ... | ... | @@ -350,16 +347,16 @@ public class IotProductThinkModelServiceImpl implements IotProductThinkModelServ |
| 350 | 347 | /** |
| 351 | 348 | * 生成属性设置服务 |
| 352 | 349 | */ |
| 353 | - private ThinkModelService generatePropertySetService(List<IotProductThinkModelDO> propertyList) { | |
| 350 | + private ThingModelService generatePropertySetService(List<IotProductThingModelDO> propertyList) { | |
| 354 | 351 | if (propertyList == null || propertyList.isEmpty()) { |
| 355 | 352 | return null; |
| 356 | 353 | } |
| 357 | 354 | |
| 358 | - List<ThinkModelArgument> inputData = new ArrayList<>(); | |
| 359 | - for (IotProductThinkModelDO thinkModel : propertyList) { | |
| 360 | - ThinkModelProperty property = thinkModel.getProperty(); | |
| 361 | - if (IotProductThinkModelAccessModeEnum.READ_WRITE.getMode().equals(property.getAccessMode())) { | |
| 362 | - ThinkModelArgument arg = new ThinkModelArgument() | |
| 355 | + List<ThingModelArgument> inputData = new ArrayList<>(); | |
| 356 | + for (IotProductThingModelDO thingModel : propertyList) { | |
| 357 | + ThingModelProperty property = thingModel.getProperty(); | |
| 358 | + if (IotProductThingModelAccessModeEnum.READ_WRITE.getMode().equals(property.getAccessMode())) { | |
| 359 | + ThingModelArgument arg = new ThingModelArgument() | |
| 363 | 360 | .setIdentifier(property.getIdentifier()) |
| 364 | 361 | .setName(property.getName()) |
| 365 | 362 | .setProperty(property) |
| ... | ... | @@ -374,7 +371,7 @@ public class IotProductThinkModelServiceImpl implements IotProductThinkModelServ |
| 374 | 371 | } |
| 375 | 372 | |
| 376 | 373 | // 属性设置服务一般不需要输出参数 |
| 377 | - return new ThinkModelService() | |
| 374 | + return new ThingModelService() | |
| 378 | 375 | .setIdentifier("set") |
| 379 | 376 | .setName("属性设置") |
| 380 | 377 | .setCallType("async") |
| ... | ... | @@ -388,17 +385,17 @@ public class IotProductThinkModelServiceImpl implements IotProductThinkModelServ |
| 388 | 385 | /** |
| 389 | 386 | * 生成属性获取服务 |
| 390 | 387 | */ |
| 391 | - private ThinkModelService generatePropertyGetService(List<IotProductThinkModelDO> propertyList) { | |
| 388 | + private ThingModelService generatePropertyGetService(List<IotProductThingModelDO> propertyList) { | |
| 392 | 389 | if (propertyList == null || propertyList.isEmpty()) { |
| 393 | 390 | return null; |
| 394 | 391 | } |
| 395 | 392 | |
| 396 | - List<ThinkModelArgument> outputData = new ArrayList<>(); | |
| 397 | - for (IotProductThinkModelDO functionDO : propertyList) { | |
| 398 | - ThinkModelProperty property = functionDO.getProperty(); | |
| 393 | + List<ThingModelArgument> outputData = new ArrayList<>(); | |
| 394 | + for (IotProductThingModelDO thingModelDO : propertyList) { | |
| 395 | + ThingModelProperty property = thingModelDO.getProperty(); | |
| 399 | 396 | if (ObjectUtils.equalsAny(property.getAccessMode(), |
| 400 | - IotProductThinkModelAccessModeEnum.READ_ONLY.getMode(), IotProductThinkModelAccessModeEnum.READ_WRITE.getMode())) { | |
| 401 | - ThinkModelArgument arg = new ThinkModelArgument() | |
| 397 | + IotProductThingModelAccessModeEnum.READ_ONLY.getMode(), IotProductThingModelAccessModeEnum.READ_WRITE.getMode())) { | |
| 398 | + ThingModelArgument arg = new ThingModelArgument() | |
| 402 | 399 | .setIdentifier(property.getIdentifier()) |
| 403 | 400 | .setName(property.getName()) |
| 404 | 401 | .setProperty(property) |
| ... | ... | @@ -412,7 +409,7 @@ public class IotProductThinkModelServiceImpl implements IotProductThinkModelServ |
| 412 | 409 | return null; |
| 413 | 410 | } |
| 414 | 411 | |
| 415 | - ThinkModelService service = new ThinkModelService() | |
| 412 | + ThingModelService service = new ThingModelService() | |
| 416 | 413 | .setIdentifier("get") |
| 417 | 414 | .setName("属性获取") |
| 418 | 415 | .setCallType("async") |
| ... | ... | @@ -420,21 +417,21 @@ public class IotProductThinkModelServiceImpl implements IotProductThinkModelServ |
| 420 | 417 | .setMethod("thing.service.property.get"); |
| 421 | 418 | |
| 422 | 419 | // 定义输入参数:属性标识符列表 |
| 423 | - ThinkModelArgument inputArg = new ThinkModelArgument() | |
| 420 | + ThingModelArgument inputArg = new ThingModelArgument() | |
| 424 | 421 | .setIdentifier("properties") |
| 425 | 422 | .setName("属性标识符列表") |
| 426 | 423 | .setDescription("需要获取的属性标识符列表") |
| 427 | 424 | .setDirection("input"); // 设置为输入参数 |
| 428 | 425 | |
| 429 | 426 | // 创建数组类型,元素类型为文本类型(字符串)TODO @puhui999: 还得研究研究 |
| 430 | - ThinkModelArrayDataSpecs arrayType = new ThinkModelArrayDataSpecs(); | |
| 427 | + ThingModelArrayDataSpecs arrayType = new ThingModelArrayDataSpecs(); | |
| 431 | 428 | arrayType.setDataType("array"); |
| 432 | - inputArg.setProperty(new ThinkModelProperty().setIdentifier(inputArg.getIdentifier()).setName(inputArg.getName()) | |
| 429 | + inputArg.setProperty(new ThingModelProperty().setIdentifier(inputArg.getIdentifier()).setName(inputArg.getName()) | |
| 433 | 430 | .setDescription(inputArg.getDescription()).setDataSpecs(arrayType)); |
| 434 | 431 | |
| 435 | - ThinkModelDateOrTextDataSpecs textType = new ThinkModelDateOrTextDataSpecs(); | |
| 432 | + ThingModelDateOrTextDataSpecs textType = new ThingModelDateOrTextDataSpecs(); | |
| 436 | 433 | textType.setDataType("text"); |
| 437 | - inputArg.setProperty(new ThinkModelProperty().setIdentifier(inputArg.getIdentifier()).setName(inputArg.getName()) | |
| 434 | + inputArg.setProperty(new ThingModelProperty().setIdentifier(inputArg.getIdentifier()).setName(inputArg.getName()) | |
| 438 | 435 | .setDescription(inputArg.getDescription()).setDataSpecs(textType)); |
| 439 | 436 | |
| 440 | 437 | service.setInputData(Collections.singletonList(inputArg)); | ... | ... |