修改:新增产品生成 ProductKey

This commit is contained in:
安浩浩 2024-09-06 23:14:53 +08:00
parent 609cc71930
commit f7b62b4bcc
2 changed files with 37 additions and 31 deletions

View File

@ -9,46 +9,37 @@ import jakarta.validation.constraints.*;
@Data
public class ProductSaveReqVO {
@Schema(description = "产品名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "李四")
@Schema(description = "产品编号", requiredMode = Schema.RequiredMode.AUTO, example = "1")
private Long id;
@Schema(description = "产品Key", requiredMode = Schema.RequiredMode.AUTO, example = "12345abc")
private String productKey;
@Schema(description = "产品名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "温湿度")
@NotEmpty(message = "产品名称不能为空")
private String name;
@Schema(description = "产品ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "26087")
private Long id;
@Schema(description = "产品标识", requiredMode = Schema.RequiredMode.REQUIRED)
@NotEmpty(message = "产品标识不能为空")
private String productKey;
@Schema(description = "协议编号(脚本解析 id", requiredMode = Schema.RequiredMode.REQUIRED, example = "13177")
@NotNull(message = "协议编号(脚本解析 id不能为空")
private Long protocolId;
@Schema(description = "产品所属品类标识符", example = "14237")
private Long categoryId;
@Schema(description = "产品描述", example = "你猜")
private String description;
@Schema(description = "数据校验级别, 0: 强校验, 1: 弱校验, 2: 免校验", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
@NotNull(message = "数据校验级别, 0: 强校验, 1: 弱校验, 2: 免校验不能为空")
private Integer validateType;
@Schema(description = "产品状态, 0: DEVELOPMENT_STATUS, 1: RELEASE_STATUS", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
@NotNull(message = "产品状态, 0: DEVELOPMENT_STATUS, 1: RELEASE_STATUS不能为空")
private Integer status;
@Schema(description = "设备类型, 0: 直连设备, 1: 网关子设备, 2: 网关设备", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
@NotNull(message = "设备类型, 0: 直连设备, 1: 网关子设备, 2: 网关设备不能为空")
@Schema(description = "设备类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "0")
@NotNull(message = "设备类型不能为空")
private Integer deviceType;
@Schema(description = "联网方式, 0: Wi-Fi, 1: Cellular, 2: Ethernet, 3: 其他", example = "2")
@Schema(description = "联网方式", requiredMode = Schema.RequiredMode.REQUIRED,example = "0")
@NotNull(message = "联网方式不能为空")
private Integer netType;
@Schema(description = "接入网关协议, 0: modbus, 1: opc-ua, 2: customize, 3: ble, 4: zigbee", example = "2")
@Schema(description = "接入网关协议", requiredMode = Schema.RequiredMode.REQUIRED,example = "0")
@NotNull(message = "接入网关协议不能为空")
private Integer protocolType;
@Schema(description = "数据格式, 0: 透传模式, 1: Alink JSON")
@Schema(description = "数据格式",requiredMode = Schema.RequiredMode.REQUIRED, example = "0")
@NotNull(message = "数据格式不能为空")
private Integer dataFormat;
@Schema(description = "数据校验级别", requiredMode = Schema.RequiredMode.REQUIRED, example = "0")
@NotNull(message = "数据校验级别不能为空")
private Integer validateType;
@Schema(description = "产品描述", example = "描述")
private String description;
}

View File

@ -10,6 +10,8 @@ import jakarta.annotation.Resource;
import org.springframework.stereotype.Service;
import org.springframework.validation.annotation.Validated;
import java.util.UUID;
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
import static cn.iocoder.yudao.module.iot.enums.ErrorCodeConstants.PRODUCT_NOT_EXISTS;
@ -27,6 +29,8 @@ public class ProductServiceImpl implements ProductService {
@Override
public Long createProduct(ProductSaveReqVO createReqVO) {
// 生成 ProductKey
createProductKey(createReqVO);
// 插入
ProductDO product = BeanUtils.toBean(createReqVO, ProductDO.class);
productMapper.insert(product);
@ -34,6 +38,17 @@ public class ProductServiceImpl implements ProductService {
return product.getId();
}
/**
* 创建 ProductKey
*
* @param createReqVO 创建信息
*/
private void createProductKey(ProductSaveReqVO createReqVO) {
// 生成随机的 11 位字符串
String productKey = UUID.randomUUID().toString().replace("-", "").substring(0, 11);
createReqVO.setProductKey(productKey);
}
@Override
public void updateProduct(ProductSaveReqVO updateReqVO) {
// 校验存在