Commit f7b62b4bcc666728c4455de3080df4a231e0c3cc

Authored by 安浩浩
1 parent 609cc719

修改:新增产品生成 ProductKey

yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/product/vo/ProductSaveReqVO.java
... ... @@ -9,46 +9,37 @@ import jakarta.validation.constraints.*;
9 9 @Data
10 10 public class ProductSaveReqVO {
11 11  
12   - @Schema(description = "产品名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "李四")
13   - @NotEmpty(message = "产品名称不能为空")
14   - private String name;
15   -
16   - @Schema(description = "产品ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "26087")
  12 + @Schema(description = "产品编号", requiredMode = Schema.RequiredMode.AUTO, example = "1")
17 13 private Long id;
18 14  
19   - @Schema(description = "产品标识", requiredMode = Schema.RequiredMode.REQUIRED)
20   - @NotEmpty(message = "产品标识不能为空")
  15 + @Schema(description = "产品Key", requiredMode = Schema.RequiredMode.AUTO, example = "12345abc")
21 16 private String productKey;
22 17  
23   - @Schema(description = "协议编号(脚本解析 id)", requiredMode = Schema.RequiredMode.REQUIRED, example = "13177")
24   - @NotNull(message = "协议编号(脚本解析 id)不能为空")
25   - private Long protocolId;
26   -
27   - @Schema(description = "产品所属品类标识符", example = "14237")
28   - private Long categoryId;
29   -
30   - @Schema(description = "产品描述", example = "你猜")
31   - private String description;
32   -
33   - @Schema(description = "数据校验级别, 0: 强校验, 1: 弱校验, 2: 免校验", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
34   - @NotNull(message = "数据校验级别, 0: 强校验, 1: 弱校验, 2: 免校验不能为空")
35   - private Integer validateType;
36   -
37   - @Schema(description = "产品状态, 0: DEVELOPMENT_STATUS, 1: RELEASE_STATUS", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
38   - @NotNull(message = "产品状态, 0: DEVELOPMENT_STATUS, 1: RELEASE_STATUS不能为空")
39   - private Integer status;
  18 + @Schema(description = "产品名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "温湿度")
  19 + @NotEmpty(message = "产品名称不能为空")
  20 + private String name;
40 21  
41   - @Schema(description = "设备类型, 0: 直连设备, 1: 网关子设备, 2: 网关设备", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
42   - @NotNull(message = "设备类型, 0: 直连设备, 1: 网关子设备, 2: 网关设备不能为空")
  22 + @Schema(description = "设备类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "0")
  23 + @NotNull(message = "设备类型不能为空")
43 24 private Integer deviceType;
44 25  
45   - @Schema(description = "联网方式, 0: Wi-Fi, 1: Cellular, 2: Ethernet, 3: 其他", example = "2")
  26 + @Schema(description = "联网方式", requiredMode = Schema.RequiredMode.REQUIRED,example = "0")
  27 + @NotNull(message = "联网方式不能为空")
46 28 private Integer netType;
47 29  
48   - @Schema(description = "接入网关协议, 0: modbus, 1: opc-ua, 2: customize, 3: ble, 4: zigbee", example = "2")
  30 + @Schema(description = "接入网关协议", requiredMode = Schema.RequiredMode.REQUIRED,example = "0")
  31 + @NotNull(message = "接入网关协议不能为空")
49 32 private Integer protocolType;
50 33  
51   - @Schema(description = "数据格式, 0: 透传模式, 1: Alink JSON")
  34 + @Schema(description = "数据格式",requiredMode = Schema.RequiredMode.REQUIRED, example = "0")
  35 + @NotNull(message = "数据格式不能为空")
52 36 private Integer dataFormat;
53 37  
  38 + @Schema(description = "数据校验级别", requiredMode = Schema.RequiredMode.REQUIRED, example = "0")
  39 + @NotNull(message = "数据校验级别不能为空")
  40 + private Integer validateType;
  41 +
  42 + @Schema(description = "产品描述", example = "描述")
  43 + private String description;
  44 +
54 45 }
55 46 \ No newline at end of file
... ...
yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/product/ProductServiceImpl.java
... ... @@ -10,6 +10,8 @@ import jakarta.annotation.Resource;
10 10 import org.springframework.stereotype.Service;
11 11 import org.springframework.validation.annotation.Validated;
12 12  
  13 +import java.util.UUID;
  14 +
13 15 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
14 16 import static cn.iocoder.yudao.module.iot.enums.ErrorCodeConstants.PRODUCT_NOT_EXISTS;
15 17  
... ... @@ -27,6 +29,8 @@ public class ProductServiceImpl implements ProductService {
27 29  
28 30 @Override
29 31 public Long createProduct(ProductSaveReqVO createReqVO) {
  32 + // 生成 ProductKey
  33 + createProductKey(createReqVO);
30 34 // 插入
31 35 ProductDO product = BeanUtils.toBean(createReqVO, ProductDO.class);
32 36 productMapper.insert(product);
... ... @@ -34,6 +38,17 @@ public class ProductServiceImpl implements ProductService {
34 38 return product.getId();
35 39 }
36 40  
  41 + /**
  42 + * 创建 ProductKey
  43 + *
  44 + * @param createReqVO 创建信息
  45 + */
  46 + private void createProductKey(ProductSaveReqVO createReqVO) {
  47 + // 生成随机的 11 位字符串
  48 + String productKey = UUID.randomUUID().toString().replace("-", "").substring(0, 11);
  49 + createReqVO.setProductKey(productKey);
  50 + }
  51 +
37 52 @Override
38 53 public void updateProduct(ProductSaveReqVO updateReqVO) {
39 54 // 校验存在
... ...