修改:优化 IOT 物模型 修改和查询接口
This commit is contained in:
parent
18e789d4fb
commit
9e77692414
|
@ -16,4 +16,5 @@ public interface ErrorCodeConstants {
|
||||||
|
|
||||||
// ========== IoT 产品物模型 1-050-002-000 ============
|
// ========== IoT 产品物模型 1-050-002-000 ============
|
||||||
ErrorCode THINK_MODEL_FUNCTION_NOT_EXISTS = new ErrorCode(1_050_002_000, "产品物模型不存在");
|
ErrorCode THINK_MODEL_FUNCTION_NOT_EXISTS = new ErrorCode(1_050_002_000, "产品物模型不存在");
|
||||||
|
ErrorCode THINK_MODEL_FUNCTION_EXISTS_BY_PRODUCT_KEY = new ErrorCode(1_050_002_001, "ProductKey 对应的产品物模型已存在");
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,6 +5,7 @@ tenant-id: {{adminTenentId}}
|
||||||
Authorization: Bearer {{token}}
|
Authorization: Bearer {{token}}
|
||||||
|
|
||||||
{
|
{
|
||||||
|
"productId": 1,
|
||||||
"productKey": "123456",
|
"productKey": "123456",
|
||||||
"properties": [
|
"properties": [
|
||||||
{
|
{
|
||||||
|
@ -51,6 +52,8 @@ tenant-id: {{adminTenentId}}
|
||||||
Authorization: Bearer {{token}}
|
Authorization: Bearer {{token}}
|
||||||
|
|
||||||
{
|
{
|
||||||
|
"id": 1,
|
||||||
|
"productId": 1,
|
||||||
"productKey": "123456",
|
"productKey": "123456",
|
||||||
"properties": [
|
"properties": [
|
||||||
{
|
{
|
||||||
|
@ -90,7 +93,7 @@ Authorization: Bearer {{token}}
|
||||||
"events": "{}"
|
"events": "{}"
|
||||||
}
|
}
|
||||||
|
|
||||||
### 请求 /iot/think-model-function/get 接口 => 成功
|
### 请求 /iot/think-model-function/get-by-product-key 接口 => 成功
|
||||||
GET {{baseUrl}}/iot/think-model-function/get?productKey=123456
|
GET {{baseUrl}}/iot/think-model-function/get-by-product-key?productKey=123456
|
||||||
tenant-id: {{adminTenentId}}
|
tenant-id: {{adminTenentId}}
|
||||||
Authorization: Bearer {{token}}
|
Authorization: Bearer {{token}}
|
|
@ -1,22 +1,21 @@
|
||||||
package cn.iocoder.yudao.module.iot.controller.admin.thinkmodelfunction;
|
package cn.iocoder.yudao.module.iot.controller.admin.thinkmodelfunction;
|
||||||
|
|
||||||
import org.springframework.web.bind.annotation.*;
|
|
||||||
import jakarta.annotation.Resource;
|
|
||||||
import org.springframework.validation.annotation.Validated;
|
|
||||||
import org.springframework.security.access.prepost.PreAuthorize;
|
|
||||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
|
||||||
import io.swagger.v3.oas.annotations.Parameter;
|
|
||||||
import io.swagger.v3.oas.annotations.Operation;
|
|
||||||
|
|
||||||
import jakarta.validation.*;
|
|
||||||
|
|
||||||
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
||||||
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
import cn.iocoder.yudao.module.iot.controller.admin.thinkmodelfunction.vo.IotThinkModelFunctionRespVO;
|
||||||
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
|
import cn.iocoder.yudao.module.iot.controller.admin.thinkmodelfunction.vo.IotThinkModelFunctionSaveReqVO;
|
||||||
|
import cn.iocoder.yudao.module.iot.convert.thinkmodelfunction.IotThinkModelFunctionConvert;
|
||||||
import cn.iocoder.yudao.module.iot.controller.admin.thinkmodelfunction.vo.*;
|
|
||||||
import cn.iocoder.yudao.module.iot.dal.dataobject.thinkmodelfunction.IotThinkModelFunctionDO;
|
import cn.iocoder.yudao.module.iot.dal.dataobject.thinkmodelfunction.IotThinkModelFunctionDO;
|
||||||
import cn.iocoder.yudao.module.iot.service.thinkmodelfunction.IotThinkModelFunctionService;
|
import cn.iocoder.yudao.module.iot.service.thinkmodelfunction.IotThinkModelFunctionService;
|
||||||
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
|
import io.swagger.v3.oas.annotations.Parameter;
|
||||||
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
|
import jakarta.annotation.Resource;
|
||||||
|
import jakarta.validation.Valid;
|
||||||
|
import org.springframework.security.access.prepost.PreAuthorize;
|
||||||
|
import org.springframework.validation.annotation.Validated;
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
|
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
|
||||||
|
|
||||||
@Tag(name = "管理后台 - IoT 产品物模型")
|
@Tag(name = "管理后台 - IoT 产品物模型")
|
||||||
@RestController
|
@RestController
|
||||||
|
@ -38,7 +37,7 @@ public class IotThinkModelFunctionController {
|
||||||
@Operation(summary = "更新IoT 产品物模型")
|
@Operation(summary = "更新IoT 产品物模型")
|
||||||
@PreAuthorize("@ss.hasPermission('iot:think-model-function:update')")
|
@PreAuthorize("@ss.hasPermission('iot:think-model-function:update')")
|
||||||
public CommonResult<Boolean> updateThinkModelFunction(@Valid @RequestBody IotThinkModelFunctionSaveReqVO updateReqVO) {
|
public CommonResult<Boolean> updateThinkModelFunction(@Valid @RequestBody IotThinkModelFunctionSaveReqVO updateReqVO) {
|
||||||
thinkModelFunctionService.updateThinkModelFunctionByProductKey(updateReqVO);
|
thinkModelFunctionService.updateThinkModelFunction(updateReqVO);
|
||||||
return success(true);
|
return success(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -51,13 +50,23 @@ public class IotThinkModelFunctionController {
|
||||||
return success(true);
|
return success(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
@GetMapping("/get")
|
@GetMapping("/get-by-product-key")
|
||||||
@Operation(summary = "获得IoT 产品物模型")
|
@Operation(summary = "获得IoT 产品物模型")
|
||||||
@Parameter(name = "productKey", description = "产品Key", required = true, example = "1024")
|
@Parameter(name = "productKey", description = "产品Key", required = true, example = "1024")
|
||||||
@PreAuthorize("@ss.hasPermission('iot:think-model-function:query')")
|
@PreAuthorize("@ss.hasPermission('iot:think-model-function:query')")
|
||||||
public CommonResult<IotThinkModelFunctionRespVO> getThinkModelFunctionByProductKey(@RequestParam("productKey") String productKey) {
|
public CommonResult<IotThinkModelFunctionRespVO> getThinkModelFunctionByProductKey(@RequestParam("productKey") String productKey) {
|
||||||
IotThinkModelFunctionDO thinkModelFunction = thinkModelFunctionService.getThinkModelFunctionByProductKey(productKey);
|
IotThinkModelFunctionDO thinkModelFunction = thinkModelFunctionService.getThinkModelFunctionByProductKey(productKey);
|
||||||
return success(BeanUtils.toBean(thinkModelFunction, IotThinkModelFunctionRespVO.class));
|
IotThinkModelFunctionRespVO respVO = IotThinkModelFunctionConvert.INSTANCE.convert(thinkModelFunction);
|
||||||
|
return success(respVO);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@GetMapping("/get-by-product-id")
|
||||||
|
@Operation(summary = "获得IoT 产品物模型")
|
||||||
|
@Parameter(name = "productId", description = "产品ID", required = true, example = "1024")
|
||||||
|
@PreAuthorize("@ss.hasPermission('iot:think-model-function:query')")
|
||||||
|
public CommonResult<IotThinkModelFunctionRespVO> getThinkModelFunctionByProductId(@RequestParam("productId") Long productId) {
|
||||||
|
IotThinkModelFunctionDO thinkModelFunction = thinkModelFunctionService.getThinkModelFunctionByProductId(productId);
|
||||||
|
IotThinkModelFunctionRespVO respVO = IotThinkModelFunctionConvert.INSTANCE.convert(thinkModelFunction);
|
||||||
|
return success(respVO);
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -1,10 +1,12 @@
|
||||||
package cn.iocoder.yudao.module.iot.controller.admin.thinkmodelfunction.vo;
|
package cn.iocoder.yudao.module.iot.controller.admin.thinkmodelfunction.vo;
|
||||||
|
|
||||||
|
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||||
|
import com.alibaba.excel.annotation.ExcelProperty;
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
import lombok.*;
|
import lombok.Data;
|
||||||
|
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import com.alibaba.excel.annotation.*;
|
import java.util.List;
|
||||||
|
|
||||||
@Schema(description = "管理后台 - IoT 产品物模型 Response VO")
|
@Schema(description = "管理后台 - IoT 产品物模型 Response VO")
|
||||||
@Data
|
@Data
|
||||||
|
@ -21,7 +23,7 @@ public class IotThinkModelFunctionRespVO {
|
||||||
|
|
||||||
@Schema(description = "属性列表", requiredMode = Schema.RequiredMode.REQUIRED)
|
@Schema(description = "属性列表", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||||
@ExcelProperty("属性列表")
|
@ExcelProperty("属性列表")
|
||||||
private String properties;
|
private List<IotThingModelProperty> properties;
|
||||||
|
|
||||||
@Schema(description = "服务列表")
|
@Schema(description = "服务列表")
|
||||||
@ExcelProperty("服务列表")
|
@ExcelProperty("服务列表")
|
||||||
|
|
|
@ -9,6 +9,13 @@ import jakarta.validation.constraints.*;
|
||||||
@Data
|
@Data
|
||||||
public class IotThinkModelFunctionSaveReqVO {
|
public class IotThinkModelFunctionSaveReqVO {
|
||||||
|
|
||||||
|
@Schema(description = "编号", example = "1")
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
@Schema(description = "产品ID", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||||
|
@NotNull(message = "产品ID不能为空")
|
||||||
|
private Long productId;
|
||||||
|
|
||||||
@Schema(description = "产品标识", requiredMode = Schema.RequiredMode.REQUIRED)
|
@Schema(description = "产品标识", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||||
@NotEmpty(message = "产品标识不能为空")
|
@NotEmpty(message = "产品标识不能为空")
|
||||||
private String productKey;
|
private String productKey;
|
||||||
|
|
|
@ -0,0 +1,51 @@
|
||||||
|
package cn.iocoder.yudao.module.iot.convert.thinkmodelfunction;
|
||||||
|
|
||||||
|
import cn.hutool.json.JSONUtil;
|
||||||
|
import cn.iocoder.yudao.module.iot.controller.admin.thinkmodelfunction.vo.IotThingModelProperty;
|
||||||
|
import cn.iocoder.yudao.module.iot.controller.admin.thinkmodelfunction.vo.IotThinkModelFunctionRespVO;
|
||||||
|
import cn.iocoder.yudao.module.iot.controller.admin.thinkmodelfunction.vo.IotThinkModelFunctionSaveReqVO;
|
||||||
|
import cn.iocoder.yudao.module.iot.dal.dataobject.thinkmodelfunction.IotThinkModelFunctionDO;
|
||||||
|
import org.mapstruct.AfterMapping;
|
||||||
|
import org.mapstruct.Mapper;
|
||||||
|
import org.mapstruct.Mapping;
|
||||||
|
import org.mapstruct.MappingTarget;
|
||||||
|
import org.mapstruct.factory.Mappers;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Mapper
|
||||||
|
public interface IotThinkModelFunctionConvert {
|
||||||
|
|
||||||
|
IotThinkModelFunctionConvert INSTANCE = Mappers.getMapper(IotThinkModelFunctionConvert.class);
|
||||||
|
|
||||||
|
// 将 SaveReqVO 转换为 DO
|
||||||
|
@Mapping(target = "properties", ignore = true)
|
||||||
|
IotThinkModelFunctionDO convert(IotThinkModelFunctionSaveReqVO bean);
|
||||||
|
|
||||||
|
// 将 DO 转换为 RespVO
|
||||||
|
@Mapping(target = "properties", ignore = true)
|
||||||
|
IotThinkModelFunctionRespVO convert(IotThinkModelFunctionDO bean);
|
||||||
|
|
||||||
|
// 处理 properties 字段的转换,从 VO 到 DO
|
||||||
|
@AfterMapping
|
||||||
|
default void convertPropertiesToDO(IotThinkModelFunctionSaveReqVO source, @MappingTarget IotThinkModelFunctionDO target) {
|
||||||
|
target.setProperties(JSONUtil.toJsonStr(source.getProperties()));
|
||||||
|
}
|
||||||
|
|
||||||
|
// 处理 properties 字段的转换,从 DO 到 VO
|
||||||
|
@AfterMapping
|
||||||
|
default void convertPropertiesToVO(IotThinkModelFunctionDO source, @MappingTarget IotThinkModelFunctionRespVO target) {
|
||||||
|
target.setProperties(JSONUtil.toList(source.getProperties(), IotThingModelProperty.class));
|
||||||
|
}
|
||||||
|
|
||||||
|
// 批量转换 DO 列表到 RespVO 列表
|
||||||
|
List<IotThinkModelFunctionRespVO> convertList(List<IotThinkModelFunctionDO> list);
|
||||||
|
|
||||||
|
// 批量转换处理 properties 字段
|
||||||
|
@AfterMapping
|
||||||
|
default void convertPropertiesListToVO(List<IotThinkModelFunctionDO> sourceList, @MappingTarget List<IotThinkModelFunctionRespVO> targetList) {
|
||||||
|
for (int i = 0; i < sourceList.size(); i++) {
|
||||||
|
convertPropertiesToVO(sourceList.get(i), targetList.get(i));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,8 +1,10 @@
|
||||||
package cn.iocoder.yudao.module.iot.dal.dataobject.thinkmodelfunction;
|
package cn.iocoder.yudao.module.iot.dal.dataobject.thinkmodelfunction;
|
||||||
|
|
||||||
import lombok.*;
|
|
||||||
import com.baomidou.mybatisplus.annotation.*;
|
|
||||||
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
|
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
|
||||||
|
import com.baomidou.mybatisplus.annotation.KeySequence;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import lombok.*;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* IoT 产品物模型 DO
|
* IoT 产品物模型 DO
|
||||||
|
@ -24,18 +26,27 @@ public class IotThinkModelFunctionDO extends BaseDO {
|
||||||
*/
|
*/
|
||||||
@TableId
|
@TableId
|
||||||
private Long id;
|
private Long id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 产品标识
|
||||||
|
*/
|
||||||
|
private Long productId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 产品标识
|
* 产品标识
|
||||||
*/
|
*/
|
||||||
private String productKey;
|
private String productKey;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 属性列表
|
* 属性列表
|
||||||
*/
|
*/
|
||||||
private String properties;
|
private String properties;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 服务列表
|
* 服务列表
|
||||||
*/
|
*/
|
||||||
private String services;
|
private String services;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 事件列表
|
* 事件列表
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -17,9 +17,8 @@ public interface IotThinkModelFunctionMapper extends BaseMapperX<IotThinkModelFu
|
||||||
return selectOne(new LambdaQueryWrapperX<IotThinkModelFunctionDO>().eq(IotThinkModelFunctionDO::getProductKey, productKey));
|
return selectOne(new LambdaQueryWrapperX<IotThinkModelFunctionDO>().eq(IotThinkModelFunctionDO::getProductKey, productKey));
|
||||||
}
|
}
|
||||||
|
|
||||||
default int updateByProductKey(IotThinkModelFunctionDO thinkModelFunction) {
|
default IotThinkModelFunctionDO selectByProductId(Long productId){
|
||||||
return update(thinkModelFunction, new LambdaQueryWrapperX<IotThinkModelFunctionDO>()
|
return selectOne(new LambdaQueryWrapperX<IotThinkModelFunctionDO>().eq(IotThinkModelFunctionDO::getProductId, productId));
|
||||||
.eq(IotThinkModelFunctionDO::getProductKey, thinkModelFunction.getProductKey())
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
|
@ -27,17 +27,25 @@ public interface IotThinkModelFunctionService {
|
||||||
void deleteThinkModelFunction(Long id);
|
void deleteThinkModelFunction(Long id);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获得IoT 产品物模型
|
* 获得IoT 产品物模型,通过产品Key
|
||||||
*
|
*
|
||||||
* @param productKey 产品Key
|
* @param productKey 产品Key
|
||||||
* @return IoT 产品物模型
|
* @return IoT 产品物模型
|
||||||
*/
|
*/
|
||||||
IotThinkModelFunctionDO getThinkModelFunctionByProductKey(String productKey);
|
IotThinkModelFunctionDO getThinkModelFunctionByProductKey(String productKey);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获得IoT 产品物模型,通过产品ID
|
||||||
|
*
|
||||||
|
* @param productId 产品ID
|
||||||
|
* @return IoT 产品物模型
|
||||||
|
*/
|
||||||
|
IotThinkModelFunctionDO getThinkModelFunctionByProductId(Long productId);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 更新IoT 产品物模型
|
* 更新IoT 产品物模型
|
||||||
*
|
*
|
||||||
* @param updateReqVO 更新信息
|
* @param updateReqVO 更新信息
|
||||||
*/
|
*/
|
||||||
void updateThinkModelFunctionByProductKey(@Valid IotThinkModelFunctionSaveReqVO updateReqVO);
|
void updateThinkModelFunction(@Valid IotThinkModelFunctionSaveReqVO updateReqVO);
|
||||||
}
|
}
|
|
@ -1,22 +1,20 @@
|
||||||
package cn.iocoder.yudao.module.iot.service.thinkmodelfunction;
|
package cn.iocoder.yudao.module.iot.service.thinkmodelfunction;
|
||||||
|
|
||||||
import cn.hutool.json.JSONUtil;
|
import cn.iocoder.yudao.framework.common.exception.ServiceException;
|
||||||
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
|
||||||
import cn.iocoder.yudao.module.iot.controller.admin.thinkmodelfunction.vo.IotThinkModelFunctionSaveReqVO;
|
import cn.iocoder.yudao.module.iot.controller.admin.thinkmodelfunction.vo.IotThinkModelFunctionSaveReqVO;
|
||||||
|
import cn.iocoder.yudao.module.iot.convert.thinkmodelfunction.IotThinkModelFunctionConvert;
|
||||||
import cn.iocoder.yudao.module.iot.dal.dataobject.thinkmodelfunction.IotThinkModelFunctionDO;
|
import cn.iocoder.yudao.module.iot.dal.dataobject.thinkmodelfunction.IotThinkModelFunctionDO;
|
||||||
import cn.iocoder.yudao.module.iot.dal.mysql.thinkmodelfunction.IotThinkModelFunctionMapper;
|
import cn.iocoder.yudao.module.iot.dal.mysql.thinkmodelfunction.IotThinkModelFunctionMapper;
|
||||||
import jakarta.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.validation.annotation.Validated;
|
import org.springframework.validation.annotation.Validated;
|
||||||
|
|
||||||
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
|
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
|
||||||
|
import static cn.iocoder.yudao.module.iot.enums.ErrorCodeConstants.THINK_MODEL_FUNCTION_EXISTS_BY_PRODUCT_KEY;
|
||||||
import static cn.iocoder.yudao.module.iot.enums.ErrorCodeConstants.THINK_MODEL_FUNCTION_NOT_EXISTS;
|
import static cn.iocoder.yudao.module.iot.enums.ErrorCodeConstants.THINK_MODEL_FUNCTION_NOT_EXISTS;
|
||||||
|
|
||||||
/**
|
@Slf4j
|
||||||
* IoT 产品物模型 Service 实现类
|
|
||||||
*
|
|
||||||
* @author 芋道源码
|
|
||||||
*/
|
|
||||||
@Service
|
@Service
|
||||||
@Validated
|
@Validated
|
||||||
public class IotThinkModelFunctionServiceImpl implements IotThinkModelFunctionService {
|
public class IotThinkModelFunctionServiceImpl implements IotThinkModelFunctionService {
|
||||||
|
@ -26,17 +24,25 @@ public class IotThinkModelFunctionServiceImpl implements IotThinkModelFunctionSe
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Long createThinkModelFunction(IotThinkModelFunctionSaveReqVO createReqVO) {
|
public Long createThinkModelFunction(IotThinkModelFunctionSaveReqVO createReqVO) {
|
||||||
|
log.info("创建物模型,参数:{}", createReqVO);
|
||||||
|
// 验证 ProductKey 对应的产品物模型是否已存在
|
||||||
|
validateThinkModelFunctionNotExistsByProductKey(createReqVO.getProductKey());
|
||||||
// 插入
|
// 插入
|
||||||
IotThinkModelFunctionDO thinkModelFunction = BeanUtils.toBean(createReqVO, IotThinkModelFunctionDO.class);
|
IotThinkModelFunctionDO thinkModelFunction = IotThinkModelFunctionConvert.INSTANCE.convert(createReqVO);
|
||||||
// properties 字段,需要转换成 JSON
|
|
||||||
thinkModelFunction.setProperties(JSONUtil.toJsonStr(createReqVO.getProperties()));
|
|
||||||
thinkModelFunctionMapper.insert(thinkModelFunction);
|
thinkModelFunctionMapper.insert(thinkModelFunction);
|
||||||
// 返回
|
// 返回
|
||||||
return thinkModelFunction.getId();
|
return thinkModelFunction.getId();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void validateThinkModelFunctionNotExistsByProductKey(String productKey) {
|
||||||
|
if (thinkModelFunctionMapper.selectByProductKey(productKey) != null) {
|
||||||
|
throw exception(THINK_MODEL_FUNCTION_EXISTS_BY_PRODUCT_KEY);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void deleteThinkModelFunction(Long id) {
|
public void deleteThinkModelFunction(Long id) {
|
||||||
|
log.info("删除物模型,id:{}", id);
|
||||||
// 校验存在
|
// 校验存在
|
||||||
validateThinkModelFunctionExists(id);
|
validateThinkModelFunctionExists(id);
|
||||||
// 删除
|
// 删除
|
||||||
|
@ -49,26 +55,32 @@ public class IotThinkModelFunctionServiceImpl implements IotThinkModelFunctionSe
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void validateThinkModelFunctionExistsByProductKey(String productKey) {
|
|
||||||
if (thinkModelFunctionMapper.selectByProductKey(productKey) == null) {
|
|
||||||
throw exception(THINK_MODEL_FUNCTION_NOT_EXISTS);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public IotThinkModelFunctionDO getThinkModelFunctionByProductKey(String productKey) {
|
public IotThinkModelFunctionDO getThinkModelFunctionByProductKey(String productKey) {
|
||||||
return thinkModelFunctionMapper.selectByProductKey(productKey);
|
return thinkModelFunctionMapper.selectByProductKey(productKey);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void updateThinkModelFunctionByProductKey(IotThinkModelFunctionSaveReqVO updateReqVO) {
|
public IotThinkModelFunctionDO getThinkModelFunctionByProductId(Long productId) {
|
||||||
// 校验存在
|
return thinkModelFunctionMapper.selectByProductId(productId);
|
||||||
validateThinkModelFunctionExistsByProductKey(updateReqVO.getProductKey());
|
|
||||||
// 更新
|
|
||||||
IotThinkModelFunctionDO thinkModelFunction = BeanUtils.toBean(updateReqVO, IotThinkModelFunctionDO.class);
|
|
||||||
// properties 字段,需要转换成 JSON
|
|
||||||
thinkModelFunction.setProperties(JSONUtil.toJsonStr(updateReqVO.getProperties()));
|
|
||||||
thinkModelFunctionMapper.updateByProductKey(thinkModelFunction);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void updateThinkModelFunction(IotThinkModelFunctionSaveReqVO updateReqVO) {
|
||||||
|
log.info("更新物模型,参数:{}", updateReqVO);
|
||||||
|
// 校验存在
|
||||||
|
validateThinkModelFunctionExists(updateReqVO.getId());
|
||||||
|
// 校验 productKey 是否重复
|
||||||
|
validateProductKeyUnique(updateReqVO.getId(), updateReqVO.getProductKey());
|
||||||
|
// 更新
|
||||||
|
IotThinkModelFunctionDO thinkModelFunction = IotThinkModelFunctionConvert.INSTANCE.convert(updateReqVO);
|
||||||
|
thinkModelFunctionMapper.updateById(thinkModelFunction);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void validateProductKeyUnique(Long id, String productKey) {
|
||||||
|
IotThinkModelFunctionDO existingFunction = thinkModelFunctionMapper.selectByProductKey(productKey);
|
||||||
|
if (existingFunction != null && !existingFunction.getId().equals(id)) {
|
||||||
|
throw exception(THINK_MODEL_FUNCTION_EXISTS_BY_PRODUCT_KEY);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
Loading…
Reference in New Issue