Commit dcea88c0 authored by huangcb's avatar huangcb

代码整理

parent 9d0209a7
package com.esv.datacenter.iot.common.component;
import com.esv.datacenter.iot.module.omodel.dto.ModelAndInstanceDto;
import com.esv.datacenter.iot.module.omodel.entity.ObjectModelEntity;
import com.esv.datacenter.iot.module.omodel.entity.ObjectModelPropertyEntity;
import com.esv.datacenter.iot.module.datamodel.entity.DataModelEntity;
import com.esv.datacenter.iot.module.datamodel.entity.DataModelPropertyEntity;
import com.zaxxer.hikari.HikariDataSource;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
......@@ -77,8 +77,8 @@ public class TimescaleComponent {
HikariDataSource dataSource = this.getHikariDataSource4Transaction();
// 表名
ObjectModelEntity modelEntity = modelAndInstanceDto.getObjectModelEntity();
List<ObjectModelPropertyEntity> propertyEntityList = modelAndInstanceDto.getObjectModelPropertyEntityList();
DataModelEntity modelEntity = modelAndInstanceDto.getDataModelEntity();
List<DataModelPropertyEntity> propertyEntityList = modelAndInstanceDto.getDataModelPropertyEntityList();
String table = tablePrefix + modelEntity.getId();
try {
......@@ -156,7 +156,7 @@ public class TimescaleComponent {
return true;
}
private String generateCreateTableSql(String table, List<ObjectModelPropertyEntity> propertyEntityList) {
private String generateCreateTableSql(String table, List<DataModelPropertyEntity> propertyEntityList) {
// 获取字典表数据
Map<Integer, String> dbTableFieldMap = this.baseDataComponent.getDbTableFieldMap();
......@@ -170,7 +170,7 @@ public class TimescaleComponent {
.append("instance_id int8 NULL");
String propertyType;
String defaultValue;
for (ObjectModelPropertyEntity propertyEntity : propertyEntityList) {
for (DataModelPropertyEntity propertyEntity : propertyEntityList) {
propertyType = dbTableFieldMap.get(propertyEntity.getPropertyType()).toLowerCase();
defaultValue = StringUtils.trimToNull(propertyEntity.getPropertyDefaultValue());
sb.append(",");
......
package com.esv.datacenter.iot.module.omodel.controller;
package com.esv.datacenter.iot.module.datamodel.controller;
import com.alibaba.fastjson.JSONObject;
import com.esv.datacenter.iot.common.exception.EException;
import com.esv.datacenter.iot.common.response.ECode;
import com.esv.datacenter.iot.common.response.EResponse;
import com.esv.datacenter.iot.common.validator.groups.*;
import com.esv.datacenter.iot.module.omodel.form.ModelInstanceForm;
import com.esv.datacenter.iot.module.omodel.form.ModelPropertyForm;
import com.esv.datacenter.iot.module.omodel.form.ObjectModelForm;
import com.esv.datacenter.iot.module.omodel.service.ObjectModelInstanceService;
import com.esv.datacenter.iot.module.omodel.service.ObjectModelPropertyService;
import com.esv.datacenter.iot.module.omodel.service.ObjectModelService;
import com.esv.datacenter.iot.module.datamodel.form.DataModelForm;
import com.esv.datacenter.iot.module.datamodel.form.DataModelPropertyForm;
import com.esv.datacenter.iot.module.datamodel.service.DataModelPropertyService;
import com.esv.datacenter.iot.module.datamodel.service.DataModelService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.validation.annotation.Validated;
......@@ -23,26 +21,23 @@ import java.util.List;
import java.util.Objects;
/**
* @description: 模型Controller
* @description: 数据模型Controller
* @author: huangchaobin@esvtek.com
* @createTime: 2020/07/31 14:52
* @version:1.0
*/
@Slf4j
@RestController
@RequestMapping("/model")
@RequestMapping("/dataModel")
@Validated
public class ObjectModelController {
public class DataModelController {
private ObjectModelService objectModelService;
private ObjectModelInstanceService objectModelInstanceService;
private ObjectModelPropertyService objectModelPropertyService;
private DataModelService dataModelService;
private DataModelPropertyService dataModelPropertyService;
public ObjectModelController(ObjectModelService objectModelService, ObjectModelInstanceService objectModelInstanceService,
ObjectModelPropertyService objectModelPropertyService) {
this.objectModelService = objectModelService;
this.objectModelInstanceService = objectModelInstanceService;
this.objectModelPropertyService = objectModelPropertyService;
public DataModelController(DataModelService dataModelService, DataModelPropertyService dataModelPropertyService) {
this.dataModelService = dataModelService;
this.dataModelPropertyService = dataModelPropertyService;
}
/**
......@@ -53,14 +48,14 @@ public class ObjectModelController {
* @createTime 2020/07/31 14:53
**/
@PostMapping("/add")
public EResponse add(@RequestBody @Validated(ValidatorInsert.class) ObjectModelForm form) throws EException {
List<ModelPropertyForm> propertyList = form.getPropertyList();
public EResponse add(@RequestBody @Validated(ValidatorInsert.class) DataModelForm form) throws EException {
List<DataModelPropertyForm> propertyList = form.getPropertyList();
// 将模型属性代码转换为小写
this.objectModelPropertyService.propertyCode2Lowercase(propertyList);
this.dataModelPropertyService.propertyCode2Lowercase(propertyList);
// 模型属性校验
this.objectModelPropertyService.checkModelProperty(propertyList);
this.dataModelPropertyService.checkModelProperty(propertyList);
Long id = objectModelService.createObjectModel(form);
Long id = dataModelService.createObjectModel(form);
JSONObject data = new JSONObject();
data.put("id", id);
......@@ -75,14 +70,14 @@ public class ObjectModelController {
* @createTime 2020/07/31 16:31
**/
@PostMapping("/list")
public EResponse list(@RequestBody @Validated(ValidatorList.class) ObjectModelForm form) throws EException {
public EResponse list(@RequestBody @Validated(ValidatorList.class) DataModelForm form) throws EException {
String modelName = StringUtils.trimToNull(form.getName());
if (Objects.nonNull(modelName)) {
form.setName("%" + modelName + "%");
} else {
form.setName(null);
}
return EResponse.ok(objectModelService.getModel4Page(form));
return EResponse.ok(dataModelService.getModel4Page(form));
}
/**
......@@ -93,11 +88,11 @@ public class ObjectModelController {
* @createTime 2020/08/01 10:40
**/
@PostMapping("/detail")
public EResponse detail(@RequestBody @Validated(ValidatorDetail.class) ObjectModelForm form) throws EException {
public EResponse detail(@RequestBody @Validated(ValidatorDetail.class) DataModelForm form) throws EException {
// 校验模型ID是否有效
this.checkIsValidModelId(form.getId());
return EResponse.ok(objectModelService.getModelDetail(form));
return EResponse.ok(dataModelService.getModelDetail(form));
}
/**
......@@ -108,18 +103,18 @@ public class ObjectModelController {
* @createTime 2020/08/01 10:40
**/
@PostMapping("/edit")
public EResponse edit(@RequestBody @Validated(ValidatorUpdate.class) ObjectModelForm form) throws EException {
public EResponse edit(@RequestBody @Validated(ValidatorUpdate.class) DataModelForm form) throws EException {
// 校验模型ID是否有效
this.checkIsValidModelId(form.getId());
List<ModelPropertyForm> propertyList = form.getPropertyList();
List<DataModelPropertyForm> propertyList = form.getPropertyList();
// 将模型属性代码转换为小写
this.objectModelPropertyService.propertyCode2Lowercase(propertyList);
this.dataModelPropertyService.propertyCode2Lowercase(propertyList);
// 模型属性校验
this.objectModelPropertyService.checkModelProperty(propertyList);
this.dataModelPropertyService.checkModelProperty(propertyList);
// 更新模型
this.objectModelService.updateModel(form);
this.dataModelService.updateModel(form);
return EResponse.ok();
}
......@@ -132,11 +127,11 @@ public class ObjectModelController {
* @createTime 2020/08/01 11:35
**/
@PostMapping("/delete")
public EResponse delete(@RequestBody @Validated(ValidatorDelete.class) ObjectModelForm form) throws EException {
public EResponse delete(@RequestBody @Validated(ValidatorDelete.class) DataModelForm form) throws EException {
// 校验模型ID是否有效
this.checkIsValidModelId(form.getId());
objectModelService.deleteModel(form.getId());
dataModelService.deleteModel(form.getId());
return EResponse.ok();
}
......@@ -148,44 +143,7 @@ public class ObjectModelController {
**/
@PostMapping("/all")
public EResponse all() throws EException {
return EResponse.ok(objectModelService.getAllModeList());
}
/**
* @description 获取指定模型的实例列表
* @param form:
* @return com.esv.datacenter.iot.common.response.EResponse
* @author huangChaobin@esvtek.com
* @createTime 2020/08/01 13:43
**/
@PostMapping("/getModelInstanceList")
public EResponse getModelInstanceList(@RequestBody @Validated(ValidatorDetail.class) ObjectModelForm form) throws EException {
// 校验模型ID是否有效
this.checkIsValidModelId(form.getId());
return EResponse.ok(objectModelInstanceService.getModelInstanceList(form.getId()));
}
/**
* @description 分页查询指定模型的实例列表
* @param form:
* @return com.esv.datacenter.iot.common.response.EResponse
* @author huangChaobin@esvtek.com
* @createTime 2020/08/03 10:06
**/
@PostMapping("/getModelInstance4Page")
public EResponse getModelInstance4Page(@RequestBody @Validated(ValidatorList.class) ModelInstanceForm form) throws EException {
// 校验模型ID是否有效
this.checkIsValidModelId(form.getModelId());
String instanceName = StringUtils.trimToNull(form.getInstanceName());
if (Objects.nonNull(instanceName)) {
form.setInstanceName("%" + instanceName + "%");
} else {
form.setInstanceName(null);
}
return EResponse.ok(objectModelInstanceService.getModelInstance4Page(form));
return EResponse.ok(dataModelService.getAllModeList());
}
/**
......@@ -196,7 +154,7 @@ public class ObjectModelController {
* @createTime 2020/08/01 14:25
**/
private void checkIsValidModelId(Long modelId) {
if (!objectModelService.isModelExits(modelId)) {
if (!dataModelService.isModelExits(modelId)) {
throw new EException(ECode.BIZ_PARAM_ERROR.code(), "无效的模型id值");
}
}
......
package com.esv.datacenter.iot.module.omodel.dao;
package com.esv.datacenter.iot.module.datamodel.dao;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.esv.datacenter.iot.module.omodel.entity.ObjectModelEntity;
import com.esv.datacenter.iot.module.datamodel.entity.DataModelEntity;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.esv.datacenter.iot.module.omodel.form.ObjectModelForm;
import com.esv.datacenter.iot.module.datamodel.form.DataModelForm;
import org.apache.ibatis.annotations.Mapper;
/**
* 物模型表
* 数据模型Dao
*
* @author 黄朝斌
* @email huangchaobin@esvtek.com
* @date 2020-07-31 13:35:49
*/
@Mapper
public interface ObjectModelDao extends BaseMapper<ObjectModelEntity> {
public interface DataModelDao extends BaseMapper<DataModelEntity> {
/**
* @description 分页查询
......@@ -24,7 +24,7 @@ public interface ObjectModelDao extends BaseMapper<ObjectModelEntity> {
* @author huangChaobin@esvtek.com
* @createTime 2020/07/31 16:24
**/
IPage select4Page(IPage page, ObjectModelForm queryObj);
IPage select4Page(IPage page, DataModelForm queryObj);
/**
* @description 逻辑删除指定模型
......@@ -33,6 +33,6 @@ public interface ObjectModelDao extends BaseMapper<ObjectModelEntity> {
* @author huangChaobin@esvtek.com
* @createTime 2020/08/01 14:06
**/
Integer logicDeleteModel(ObjectModelEntity entity);
Integer logicDeleteModel(DataModelEntity entity);
}
package com.esv.datacenter.iot.module.omodel.dao;
package com.esv.datacenter.iot.module.datamodel.dao;
import com.esv.datacenter.iot.module.omodel.entity.ObjectModelPropertyEntity;
import com.esv.datacenter.iot.module.datamodel.entity.DataModelPropertyEntity;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
/**
* 物模型属性表
* 数据模型属性Dao
*
* @author 黄朝斌
* @email huangchaobin@esvtek.com
* @date 2020-07-31 13:35:49
*/
@Mapper
public interface ObjectModelPropertyDao extends BaseMapper<ObjectModelPropertyEntity> {
public interface DataModelPropertyDao extends BaseMapper<DataModelPropertyEntity> {
/**
* @description 逻辑删除指定模型的所有属性
......@@ -21,6 +21,6 @@ public interface ObjectModelPropertyDao extends BaseMapper<ObjectModelPropertyEn
* @author huangChaobin@esvtek.com
* @createTime 2020/08/01 13:28
**/
Integer logicDeleteModelProperty(ObjectModelPropertyEntity entity);
Integer logicDeleteModelProperty(DataModelPropertyEntity entity);
}
package com.esv.datacenter.iot.module.omodel.entity;
package com.esv.datacenter.iot.module.datamodel.entity;
import com.baomidou.mybatisplus.annotation.*;
......@@ -7,15 +7,15 @@ import java.util.Date;
import lombok.Data;
/**
* 模型表
* 数据模型表
*
* @author 黄朝斌
* @email huangchaobin@esvtek.com
* @date 2020-07-31 13:35:49
*/
@Data
@TableName("base_object_model")
public class ObjectModelEntity implements Serializable {
@TableName("data_model")
public class DataModelEntity implements Serializable {
private static final long serialVersionUID = 1L;
/**
......
package com.esv.datacenter.iot.module.omodel.entity;
package com.esv.datacenter.iot.module.datamodel.entity;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
......@@ -12,15 +12,15 @@ import java.io.Serializable;
import java.util.Date;
/**
* 模型属性表
* 数据模型属性表
*
* @author 黄朝斌
* @email huangchaobin@esvtek.com
* @date 2020-07-31 13:35:49
*/
@Data
@TableName("base_object_model_property")
public class ObjectModelPropertyEntity implements Serializable {
@TableName("data_model_property")
public class DataModelPropertyEntity implements Serializable {
private static final long serialVersionUID = 1L;
/**
......
package com.esv.datacenter.iot.module.omodel.form;
package com.esv.datacenter.iot.module.datamodel.form;
import com.esv.datacenter.iot.common.validator.groups.*;
import lombok.Data;
......@@ -18,7 +18,7 @@ import java.util.List;
* @version:1.0
*/
@Data
public class ObjectModelForm {
public class DataModelForm {
/**
*
......@@ -50,7 +50,7 @@ public class ObjectModelForm {
* 模型属性
*/
@NotNull(message = "[模型属性]不能为空", groups = {ValidatorInsert.class})
private List<ModelPropertyForm> propertyList;
private List<DataModelPropertyForm> propertyList;
/**
* 页码
......
package com.esv.datacenter.iot.module.omodel.form;
package com.esv.datacenter.iot.module.datamodel.form;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
......@@ -11,7 +11,7 @@ import org.apache.commons.lang3.builder.ToStringStyle;
* @version:1.0
*/
@Data
public class ModelPropertyForm {
public class DataModelPropertyForm {
/**
* 属性代码
......
package com.esv.datacenter.iot.module.omodel.service;
package com.esv.datacenter.iot.module.datamodel.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.esv.datacenter.iot.module.omodel.entity.ObjectModelPropertyEntity;
import com.esv.datacenter.iot.module.omodel.form.ModelPropertyForm;
import com.esv.datacenter.iot.module.omodel.vo.ModelPropertyVO;
import com.esv.datacenter.iot.module.datamodel.entity.DataModelPropertyEntity;
import com.esv.datacenter.iot.module.datamodel.form.DataModelPropertyForm;
import com.esv.datacenter.iot.module.datamodel.vo.DataModelPropertyVO;
import java.util.List;
/**
* 模型属性表
* 数据模型属性表
*
* @author 黄朝斌
* @email huangchaobin@esvtek.com
* @date 2020-07-31 13:35:49
*/
public interface ObjectModelPropertyService extends IService<ObjectModelPropertyEntity> {
public interface DataModelPropertyService extends IService<DataModelPropertyEntity> {
/**
* @description 逻辑删除指定模型的所有属性
......@@ -23,16 +23,16 @@ public interface ObjectModelPropertyService extends IService<ObjectModelProperty
* @author huangChaobin@esvtek.com
* @createTime 2020/08/01 13:28
**/
Integer logicDeleteModelProperty(ObjectModelPropertyEntity entity);
Integer logicDeleteModelProperty(DataModelPropertyEntity entity);
/**
* @description 获取指定模型的属性列表
* @param modelId:
* @return java.util.List<com.esv.datacenter.iot.module.omodel.vo.ModelPropertyVO>
* @return java.util.List<com.esv.datacenter.iot.module.dmodel.vo.ModelPropertyVO>
* @author huangChaobin@esvtek.com
* @createTime 2020/08/01 14:32
**/
List<ModelPropertyVO> getModelPropertyList(Long modelId);
List<DataModelPropertyVO> getModelPropertyList(Long modelId);
/**
* @description 保存模型属性
......@@ -42,7 +42,7 @@ public interface ObjectModelPropertyService extends IService<ObjectModelProperty
* @author huangChaobin@esvtek.com
* @createTime 2020/08/01 14:42
**/
void saveModelProperty(Long modelId, List<ModelPropertyForm> propertyList);
void saveModelProperty(Long modelId, List<DataModelPropertyForm> propertyList);
/**
* @description 校验属性
......@@ -51,7 +51,7 @@ public interface ObjectModelPropertyService extends IService<ObjectModelProperty
* @author huangChaobin@esvtek.com
* @createTime 2020/08/03 19:59
**/
void checkModelProperty(List<ModelPropertyForm> propertyList);
void checkModelProperty(List<DataModelPropertyForm> propertyList);
/**
* @description 属性代码转换为小写
......@@ -60,7 +60,7 @@ public interface ObjectModelPropertyService extends IService<ObjectModelProperty
* @author huangChaobin@esvtek.com
* @createTime 2020/08/03 20:40
**/
void propertyCode2Lowercase(List<ModelPropertyForm> propertyList);
void propertyCode2Lowercase(List<DataModelPropertyForm> propertyList);
}
package com.esv.datacenter.iot.module.omodel.service;
package com.esv.datacenter.iot.module.datamodel.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.esv.datacenter.iot.common.vo.PageResultVO;
import com.esv.datacenter.iot.module.omodel.entity.ObjectModelEntity;
import com.esv.datacenter.iot.module.omodel.form.ObjectModelForm;
import com.esv.datacenter.iot.module.omodel.vo.ModelDetailVO;
import com.esv.datacenter.iot.module.omodel.vo.ModelVO;
import com.esv.datacenter.iot.module.datamodel.entity.DataModelEntity;
import com.esv.datacenter.iot.module.datamodel.form.DataModelForm;
import com.esv.datacenter.iot.module.datamodel.vo.DataDataModelDetailVO;
import com.esv.datacenter.iot.module.datamodel.vo.DataModelVO;
import java.util.List;
/**
* 物模型表
* 数据物模型Service
*
* @author 黄朝斌
* @email huangchaobin@esvtek.com
* @date 2020-07-31 13:35:49
*/
public interface ObjectModelService extends IService<ObjectModelEntity> {
public interface DataModelService extends IService<DataModelEntity> {
/**
* @description 创建模型
......@@ -25,7 +25,7 @@ public interface ObjectModelService extends IService<ObjectModelEntity> {
* @author huangChaobin@esvtek.com
* @createTime 2020/07/31 13:52
**/
Long createObjectModel(ObjectModelForm form);
Long createObjectModel(DataModelForm form);
/**
* @description 分页查询模型列表
......@@ -34,16 +34,16 @@ public interface ObjectModelService extends IService<ObjectModelEntity> {
* @author huangChaobin@esvtek.com
* @createTime 2020/07/31 16:26
**/
PageResultVO getModel4Page(ObjectModelForm queryObj);
PageResultVO getModel4Page(DataModelForm queryObj);
/**
* @description 获取模型详情
* @param form:
* @return com.esv.datacenter.iot.module.omodel.vo.ModelDetailVO
* @return com.esv.datacenter.iot.module.dmodel.vo.ModelDetailVO
* @author huangChaobin@esvtek.com
* @createTime 2020/08/01 10:25
**/
ModelDetailVO getModelDetail(ObjectModelForm form);
DataDataModelDetailVO getModelDetail(DataModelForm form);
/**
* @description 更新模型
......@@ -52,16 +52,7 @@ public interface ObjectModelService extends IService<ObjectModelEntity> {
* @author huangChaobin@esvtek.com
* @createTime 2020/08/01 10:48
**/
void updateModel(ObjectModelForm form);
/**
* @description 模型实例数
* @param modelId:
* @return java.lang.Integer
* @author huangChaobin@esvtek.com
* @createTime 2020/08/01 11:29
**/
Integer modelInstanceCount(Long modelId);
void updateModel(DataModelForm form);
/**
* @description 删除模型
......@@ -74,11 +65,11 @@ public interface ObjectModelService extends IService<ObjectModelEntity> {
/**
* @description 获取所有模型列表
* @return java.util.List<com.esv.datacenter.iot.module.omodel.vo.ModelVO>
* @return java.util.List<com.esv.datacenter.iot.module.dmodel.vo.ModelVO>
* @author huangChaobin@esvtek.com
* @createTime 2020/08/01 13:04
**/
List<ModelVO> getAllModeList();
List<DataModelVO> getAllModeList();
/**
* @description 判断模型是否存在
......@@ -92,11 +83,11 @@ public interface ObjectModelService extends IService<ObjectModelEntity> {
/**
* @description 获取模型信息
* @param id:
* @return com.esv.datacenter.iot.module.omodel.entity.ObjectModelEntity
* @return com.esv.datacenter.iot.module.dmodel.entity.ObjectModelEntity
* @author huangChaobin@esvtek.com
* @createTime 2020/08/03 13:39
**/
ObjectModelEntity getModelInfo(Long id);
DataModelEntity getModelInfo(Long id);
}
package com.esv.datacenter.iot.module.omodel.service.impl;
package com.esv.datacenter.iot.module.datamodel.service.impl;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
......@@ -8,11 +8,11 @@ import com.esv.datacenter.iot.common.em.DbDeletedEnum;
import com.esv.datacenter.iot.common.exception.EException;
import com.esv.datacenter.iot.common.response.ECode;
import com.esv.datacenter.iot.common.util.ReqUtils;
import com.esv.datacenter.iot.module.omodel.dao.ObjectModelPropertyDao;
import com.esv.datacenter.iot.module.omodel.entity.ObjectModelPropertyEntity;
import com.esv.datacenter.iot.module.omodel.form.ModelPropertyForm;
import com.esv.datacenter.iot.module.omodel.service.ObjectModelPropertyService;
import com.esv.datacenter.iot.module.omodel.vo.ModelPropertyVO;
import com.esv.datacenter.iot.module.datamodel.dao.DataModelPropertyDao;
import com.esv.datacenter.iot.module.datamodel.entity.DataModelPropertyEntity;
import com.esv.datacenter.iot.module.datamodel.form.DataModelPropertyForm;
import com.esv.datacenter.iot.module.datamodel.service.DataModelPropertyService;
import com.esv.datacenter.iot.module.datamodel.vo.DataModelPropertyVO;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -26,28 +26,28 @@ import java.util.Map;
import java.util.Objects;
@Service("objectModelPropertyService")
public class ObjectModelPropertyServiceImpl extends ServiceImpl<ObjectModelPropertyDao, ObjectModelPropertyEntity> implements ObjectModelPropertyService {
@Service("dataModelPropertyService")
public class DataModelPropertyServiceImpl extends ServiceImpl<DataModelPropertyDao, DataModelPropertyEntity> implements DataModelPropertyService {
@Autowired
private BaseDataComponent baseDataComponent;
@Override
public Integer logicDeleteModelProperty(ObjectModelPropertyEntity entity) {
public Integer logicDeleteModelProperty(DataModelPropertyEntity entity) {
return this.getBaseMapper().logicDeleteModelProperty(entity);
}
@Override
public List<ModelPropertyVO> getModelPropertyList(Long modelId) {
List<ObjectModelPropertyEntity> entityList = this.getBaseMapper()
.selectList(new LambdaQueryWrapper<ObjectModelPropertyEntity>()
.eq(ObjectModelPropertyEntity::getModelId, modelId)
.eq(ObjectModelPropertyEntity::getDeleted, DbDeletedEnum.NO.getCode())
.orderByAsc(ObjectModelPropertyEntity::getSortNum));
List<ModelPropertyVO> voList = new ArrayList<>();
for (ObjectModelPropertyEntity entity : entityList) {
ModelPropertyVO vo = new ModelPropertyVO();
public List<DataModelPropertyVO> getModelPropertyList(Long modelId) {
List<DataModelPropertyEntity> entityList = this.getBaseMapper()
.selectList(new LambdaQueryWrapper<DataModelPropertyEntity>()
.eq(DataModelPropertyEntity::getModelId, modelId)
.eq(DataModelPropertyEntity::getDeleted, DbDeletedEnum.NO.getCode())
.orderByAsc(DataModelPropertyEntity::getSortNum));
List<DataModelPropertyVO> voList = new ArrayList<>();
for (DataModelPropertyEntity entity : entityList) {
DataModelPropertyVO vo = new DataModelPropertyVO();
BeanUtils.copyProperties(entity, vo);
vo.setCreateTime(entity.getCreateTime().getTime());
vo.setUpdateTime(entity.getUpdateTime().getTime());
......@@ -59,17 +59,17 @@ public class ObjectModelPropertyServiceImpl extends ServiceImpl<ObjectModelPrope
@Override
@Transactional(rollbackFor = Exception.class)
public void saveModelProperty(Long modelId, List<ModelPropertyForm> propertyList) {
public void saveModelProperty(Long modelId, List<DataModelPropertyForm> propertyList) {
// 删除模型属性
ObjectModelPropertyEntity propertyEntity = new ObjectModelPropertyEntity();
DataModelPropertyEntity propertyEntity = new DataModelPropertyEntity();
propertyEntity.setDeleted(DbDeletedEnum.YES.getCode());
propertyEntity.setModelId(modelId);
this.logicDeleteModelProperty(propertyEntity);
// 新增模型属性
List<ObjectModelPropertyEntity> modelPropertyEntityList = new ArrayList<>();
for (ModelPropertyForm propertyForm : propertyList) {
ObjectModelPropertyEntity entity = new ObjectModelPropertyEntity();
List<DataModelPropertyEntity> modelPropertyEntityList = new ArrayList<>();
for (DataModelPropertyForm propertyForm : propertyList) {
DataModelPropertyEntity entity = new DataModelPropertyEntity();
BeanUtils.copyProperties(propertyForm, entity);
entity.setModelId(modelId);
modelPropertyEntityList.add(entity);
......@@ -77,8 +77,8 @@ public class ObjectModelPropertyServiceImpl extends ServiceImpl<ObjectModelPrope
this.saveBatch(modelPropertyEntityList);
// 更新属性排序值
for (ObjectModelPropertyEntity modelPropertyEntity : modelPropertyEntityList) {
ObjectModelPropertyEntity entity = new ObjectModelPropertyEntity();
for (DataModelPropertyEntity modelPropertyEntity : modelPropertyEntityList) {
DataModelPropertyEntity entity = new DataModelPropertyEntity();
entity.setId(modelPropertyEntity.getId());
entity.setSortNum(modelPropertyEntity.getId());
this.updateById(entity);
......@@ -86,7 +86,7 @@ public class ObjectModelPropertyServiceImpl extends ServiceImpl<ObjectModelPrope
}
@Override
public void checkModelProperty(List<ModelPropertyForm> propertyList) {
public void checkModelProperty(List<DataModelPropertyForm> propertyList) {
Map<Integer, String> dbTableFieldMap = this.baseDataComponent.getDbTableFieldMap();
Map<String, Boolean> sqlReservedWordsMap = this.baseDataComponent.getSqlReservedWordsMap();
String[] notBlandParams = new String[]{"propertyCode", "propertyName", "propertyType"};
......@@ -130,9 +130,9 @@ public class ObjectModelPropertyServiceImpl extends ServiceImpl<ObjectModelPrope
}
@Override
public void propertyCode2Lowercase(List<ModelPropertyForm> propertyList) {
public void propertyCode2Lowercase(List<DataModelPropertyForm> propertyList) {
for (int i = 0; i < propertyList.size(); i++) {
ModelPropertyForm form = propertyList.get(i);
DataModelPropertyForm form = propertyList.get(i);
if (Objects.nonNull(form.getPropertyCode())) {
form.setPropertyCode(form.getPropertyCode().toLowerCase());
propertyList.set(i, form);
......
package com.esv.datacenter.iot.module.omodel.service.impl;
package com.esv.datacenter.iot.module.datamodel.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
......@@ -9,18 +9,16 @@ import com.esv.datacenter.iot.common.em.DbDeletedEnum;
import com.esv.datacenter.iot.common.exception.EException;
import com.esv.datacenter.iot.common.response.ECode;
import com.esv.datacenter.iot.common.vo.PageResultVO;
import com.esv.datacenter.iot.module.omodel.dao.ObjectModelDao;
import com.esv.datacenter.iot.module.datamodel.dao.DataModelDao;
import com.esv.datacenter.iot.module.datamodel.entity.DataModelEntity;
import com.esv.datacenter.iot.module.datamodel.entity.DataModelPropertyEntity;
import com.esv.datacenter.iot.module.datamodel.form.DataModelForm;
import com.esv.datacenter.iot.module.datamodel.form.DataModelPropertyForm;
import com.esv.datacenter.iot.module.datamodel.service.DataModelPropertyService;
import com.esv.datacenter.iot.module.datamodel.service.DataModelService;
import com.esv.datacenter.iot.module.datamodel.vo.DataDataModelDetailVO;
import com.esv.datacenter.iot.module.datamodel.vo.DataModelVO;
import com.esv.datacenter.iot.module.omodel.dto.ModelAndInstanceDto;
import com.esv.datacenter.iot.module.omodel.entity.ObjectModelEntity;
import com.esv.datacenter.iot.module.omodel.entity.ObjectModelInstanceEntity;
import com.esv.datacenter.iot.module.omodel.entity.ObjectModelPropertyEntity;
import com.esv.datacenter.iot.module.omodel.form.ModelPropertyForm;
import com.esv.datacenter.iot.module.omodel.form.ObjectModelForm;
import com.esv.datacenter.iot.module.omodel.service.ObjectModelInstanceService;
import com.esv.datacenter.iot.module.omodel.service.ObjectModelPropertyService;
import com.esv.datacenter.iot.module.omodel.service.ObjectModelService;
import com.esv.datacenter.iot.module.omodel.vo.ModelDetailVO;
import com.esv.datacenter.iot.module.omodel.vo.ModelVO;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
......@@ -30,36 +28,34 @@ import java.util.ArrayList;
import java.util.List;
@Service("objectModelService")
public class ObjectModelServiceImpl extends ServiceImpl<ObjectModelDao, ObjectModelEntity> implements ObjectModelService {
@Service("dataModelService")
public class DataModelServiceImpl extends ServiceImpl<DataModelDao, DataModelEntity> implements DataModelService {
@Autowired
private TimescaleComponent timescaleComponent;
@Autowired
private ObjectModelPropertyService objectModelPropertyService;
@Autowired
private ObjectModelInstanceService objectModelInstanceService;
private DataModelPropertyService dataModelPropertyService;
@Override
@Transactional(rollbackFor = Exception.class)
public Long createObjectModel(ObjectModelForm form) {
public Long createObjectModel(DataModelForm form) {
// 0.模型名称校验:不能重复
int modelCount = this.getBaseMapper().selectCount(new LambdaQueryWrapper<ObjectModelEntity>()
.eq(ObjectModelEntity::getDeleted, DbDeletedEnum.NO.getCode())
.eq(ObjectModelEntity::getName, form.getName()));
int modelCount = this.getBaseMapper().selectCount(new LambdaQueryWrapper<DataModelEntity>()
.eq(DataModelEntity::getDeleted, DbDeletedEnum.NO.getCode())
.eq(DataModelEntity::getName, form.getName()));
if (0 < modelCount) {
throw new EException(ECode.BIZ_PARAM_ERROR.code(), "模型[" + form.getName() + "]已存在");
}
// 1.创建模型
ObjectModelEntity modelEntity = new ObjectModelEntity();
DataModelEntity modelEntity = new DataModelEntity();
modelEntity.setName(form.getName());
modelEntity.setDescription(form.getDescription());
this.getBaseMapper().insert(modelEntity);
Long modelId = modelEntity.getId();
// 2.保存模型属性
this.objectModelPropertyService.saveModelProperty(modelId, form.getPropertyList());
this.dataModelPropertyService.saveModelProperty(modelId, form.getPropertyList());
// 3.创建时序数据库表
this.createModelTimescaleDB(modelEntity, form);
......@@ -68,79 +64,66 @@ public class ObjectModelServiceImpl extends ServiceImpl<ObjectModelDao, ObjectMo
}
@Override
public PageResultVO getModel4Page(ObjectModelForm queryObj) {
IPage<ObjectModelEntity> page = new Page<>(queryObj.getPageNum(), queryObj.getPageSize());
public PageResultVO getModel4Page(DataModelForm queryObj) {
IPage<DataModelEntity> page = new Page<>(queryObj.getPageNum(), queryObj.getPageSize());
this.baseMapper.select4Page(page, queryObj);
List<ObjectModelEntity> modelEntityList = page.getRecords();
List<ModelVO> modelVOList = new ArrayList<>();
for (ObjectModelEntity entity : modelEntityList) {
ModelVO vo = new ModelVO();
List<DataModelEntity> modelEntityList = page.getRecords();
List<DataModelVO> dataModelVOList = new ArrayList<>();
for (DataModelEntity entity : modelEntityList) {
DataModelVO vo = new DataModelVO();
BeanUtils.copyProperties(entity, vo);
vo.setCreateTime(entity.getCreateTime().getTime());
vo.setUpdateTime(entity.getUpdateTime().getTime());
modelVOList.add(vo);
dataModelVOList.add(vo);
}
return new PageResultVO(page, modelVOList);
return new PageResultVO(page, dataModelVOList);
}
@Override
public ModelDetailVO getModelDetail(ObjectModelForm form) {
ModelDetailVO modelDetailVO = new ModelDetailVO();
public DataDataModelDetailVO getModelDetail(DataModelForm form) {
DataDataModelDetailVO dataModelDetailVO = new DataDataModelDetailVO();
// 获取模型
Long modelId = form.getId();
ObjectModelEntity modelEntity = this.getById(modelId);
BeanUtils.copyProperties(modelEntity, modelDetailVO);
modelDetailVO.setCreateTime(modelEntity.getCreateTime().getTime());
modelDetailVO.setUpdateTime(modelEntity.getUpdateTime().getTime());
// 设置模型是否有实例
int instanceCount = this.modelInstanceCount(modelId);
modelDetailVO.setInstanceCount(instanceCount);
if (0 == instanceCount) {
modelDetailVO.setHasInstance(false);
} else {
modelDetailVO.setHasInstance(true);
}
DataModelEntity modelEntity = this.getById(modelId);
BeanUtils.copyProperties(modelEntity, dataModelDetailVO);
dataModelDetailVO.setCreateTime(modelEntity.getCreateTime().getTime());
dataModelDetailVO.setUpdateTime(modelEntity.getUpdateTime().getTime());
// 获取模型属性
modelDetailVO.setPropertyList(objectModelPropertyService.getModelPropertyList(modelId));
dataModelDetailVO.setPropertyList(dataModelPropertyService.getModelPropertyList(modelId));
return modelDetailVO;
return dataModelDetailVO;
}
@Override
@Transactional(rollbackFor = Exception.class)
public void updateModel(ObjectModelForm form) {
public void updateModel(DataModelForm form) {
Long modelId = form.getId();
// 模型名称校验:不能重复
int modelCount = this.getBaseMapper().selectCount(new LambdaQueryWrapper<ObjectModelEntity>()
.eq(ObjectModelEntity::getName, form.getName())
.eq(ObjectModelEntity::getDeleted, DbDeletedEnum.NO.getCode())
.ne(ObjectModelEntity::getId, modelId));
int modelCount = this.getBaseMapper().selectCount(new LambdaQueryWrapper<DataModelEntity>()
.eq(DataModelEntity::getName, form.getName())
.eq(DataModelEntity::getDeleted, DbDeletedEnum.NO.getCode())
.ne(DataModelEntity::getId, modelId));
if (0 < modelCount) {
throw new EException(ECode.BIZ_PARAM_ERROR.code(), "模型[" + form.getName() + "]已存在");
}
// 更新模型
ObjectModelEntity modelEntity = new ObjectModelEntity();
DataModelEntity modelEntity = new DataModelEntity();
modelEntity.setId(modelId);
modelEntity.setName(form.getName());
modelEntity.setDescription(form.getDescription());
this.getBaseMapper().updateById(modelEntity);
// 判断是否修改模型属性并校验
List<ModelPropertyForm> propertyList = form.getPropertyList();
// TODO,判断是否修改模型属性并校验
List<DataModelPropertyForm> propertyList = form.getPropertyList();
if (null != propertyList && 0 < propertyList.size()) {
if (0 < this.modelInstanceCount(modelId)) {
throw new EException(ECode.BIZ_PARAM_ERROR.code(), "该模型已有实例,属性不能编辑");
}
// 保存模型属性
this.objectModelPropertyService.saveModelProperty(modelId, propertyList);
this.dataModelPropertyService.saveModelProperty(modelId, propertyList);
// 删除时序数据库表
this.timescaleComponent.dropTable(modelId);
......@@ -153,56 +136,42 @@ public class ObjectModelServiceImpl extends ServiceImpl<ObjectModelDao, ObjectMo
@Override
@Transactional(rollbackFor = Exception.class)
public void deleteModel(Long modelId) {
// 获取模型实例数
int modelInstanceCount = this.modelInstanceCount(modelId);
if (0 < modelInstanceCount) {
throw new EException(ECode.BIZ_PARAM_ERROR.code(), "该模型已有" + modelInstanceCount + "个实例,不能删除");
}
// 逻辑删除模型
ObjectModelEntity modelEntity = new ObjectModelEntity();
DataModelEntity modelEntity = new DataModelEntity();
modelEntity.setId(modelId);
modelEntity.setDeleted(DbDeletedEnum.YES.getCode());
this.baseMapper.logicDeleteModel(modelEntity);
// 删除模型属性
ObjectModelPropertyEntity propertyEntity = new ObjectModelPropertyEntity();
DataModelPropertyEntity propertyEntity = new DataModelPropertyEntity();
propertyEntity.setDeleted(DbDeletedEnum.YES.getCode());
propertyEntity.setModelId(modelId);
this.objectModelPropertyService.logicDeleteModelProperty(propertyEntity);
this.dataModelPropertyService.logicDeleteModelProperty(propertyEntity);
// 删除时序数据库表
this.timescaleComponent.dropTable(modelId);
}
@Override
public List<ModelVO> getAllModeList() {
List<ObjectModelEntity> modelEntityList = this.getBaseMapper().selectList(new LambdaQueryWrapper<ObjectModelEntity>()
.orderByAsc(ObjectModelEntity::getName));
List<ModelVO> modelVOList = new ArrayList<>();
for (ObjectModelEntity entity : modelEntityList) {
ModelVO vo = new ModelVO();
public List<DataModelVO> getAllModeList() {
List<DataModelEntity> modelEntityList = this.getBaseMapper().selectList(new LambdaQueryWrapper<DataModelEntity>()
.orderByAsc(DataModelEntity::getName));
List<DataModelVO> dataModelVOList = new ArrayList<>();
for (DataModelEntity entity : modelEntityList) {
DataModelVO vo = new DataModelVO();
BeanUtils.copyProperties(entity, vo);
vo.setCreateTime(entity.getCreateTime().getTime());
vo.setUpdateTime(entity.getUpdateTime().getTime());
modelVOList.add(vo);
dataModelVOList.add(vo);
}
return modelVOList;
}
@Override
public Integer modelInstanceCount(Long modelId) {
return this.objectModelInstanceService.getBaseMapper()
.selectCount(new LambdaQueryWrapper<ObjectModelInstanceEntity>()
.eq(ObjectModelInstanceEntity::getDeleted, DbDeletedEnum.NO.getCode())
.eq(ObjectModelInstanceEntity::getModelId, modelId));
return dataModelVOList;
}
@Override
public Boolean isModelExits(Long modelId) {
int count = this.getBaseMapper().selectCount(new LambdaQueryWrapper<ObjectModelEntity>()
.eq(ObjectModelEntity::getId, modelId));
int count = this.getBaseMapper().selectCount(new LambdaQueryWrapper<DataModelEntity>()
.eq(DataModelEntity::getId, modelId));
if (0 == count) {
return false;
} else {
......@@ -211,22 +180,22 @@ public class ObjectModelServiceImpl extends ServiceImpl<ObjectModelDao, ObjectMo
}
@Override
public ObjectModelEntity getModelInfo(Long id) {
public DataModelEntity getModelInfo(Long id) {
return this.getBaseMapper().selectById(id);
}
private Boolean createModelTimescaleDB(ObjectModelEntity modelEntity, ObjectModelForm form) {
private Boolean createModelTimescaleDB(DataModelEntity modelEntity, DataModelForm form) {
ModelAndInstanceDto modelAndInstanceDto = new ModelAndInstanceDto();
modelAndInstanceDto.setObjectModelEntity(modelEntity);
modelAndInstanceDto.setDataModelEntity(modelEntity);
List<ObjectModelPropertyEntity> modelPropertyEntityList = new ArrayList<>();
for (ModelPropertyForm propertyForm : form.getPropertyList()) {
ObjectModelPropertyEntity entity = new ObjectModelPropertyEntity();
List<DataModelPropertyEntity> modelPropertyEntityList = new ArrayList<>();
for (DataModelPropertyForm propertyForm : form.getPropertyList()) {
DataModelPropertyEntity entity = new DataModelPropertyEntity();
BeanUtils.copyProperties(propertyForm, entity);
entity.setModelId(modelEntity.getId());
modelPropertyEntityList.add(entity);
}
modelAndInstanceDto.setObjectModelPropertyEntityList(modelPropertyEntityList);
modelAndInstanceDto.setDataModelPropertyEntityList(modelPropertyEntityList);
return timescaleComponent.createTable(modelAndInstanceDto);
}
......
package com.esv.datacenter.iot.module.omodel.vo;
package com.esv.datacenter.iot.module.datamodel.vo;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
......@@ -13,21 +13,12 @@ import java.util.List;
* @version:1.0
*/
@Data
public class ModelDetailVO extends ModelVO {
/**
* 模型是否有实例
*/
Boolean hasInstance;
/**
* 模型实例数
*/
Integer instanceCount;
public class DataDataModelDetailVO extends DataModelVO {
/**
* 模型属性
*/
List<ModelPropertyVO> propertyList;
List<DataModelPropertyVO> propertyList;
@Override
public String toString() {
......
package com.esv.datacenter.iot.module.omodel.vo;
package com.esv.datacenter.iot.module.datamodel.vo;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
......@@ -13,7 +13,7 @@ import lombok.Data;
* @version:1.0
*/
@Data
public class ModelPropertyVO {
public class DataModelPropertyVO {
/**
*
......
package com.esv.datacenter.iot.module.omodel.vo;
package com.esv.datacenter.iot.module.datamodel.vo;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
......@@ -11,7 +11,7 @@ import org.apache.commons.lang3.builder.ToStringStyle;
* @version:1.0
*/
@Data
public class ModelVO {
public class DataModelVO {
/**
*
......
package com.esv.datacenter.iot.module.omodel.controller;
import com.alibaba.fastjson.JSONObject;
import com.esv.datacenter.iot.common.exception.EException;
import com.esv.datacenter.iot.common.response.ECode;
import com.esv.datacenter.iot.common.response.EResponse;
import com.esv.datacenter.iot.common.validator.groups.ValidatorDelete;
import com.esv.datacenter.iot.common.validator.groups.ValidatorDetail;
import com.esv.datacenter.iot.common.validator.groups.ValidatorInsert;
import com.esv.datacenter.iot.module.omodel.form.ModelInstanceForm;
import com.esv.datacenter.iot.module.omodel.service.ObjectModelInstanceService;
import com.esv.datacenter.iot.module.omodel.service.ObjectModelService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @description: 物模型实例Controller
* @author: huangchaobin@esvtek.com
* @createTime: 2020/08/03 10:14
* @version:1.0
*/
@Slf4j
@RestController
@RequestMapping("/model/instance")
@Validated
public class ObjectModelInstanceController {
private ObjectModelService objectModelService;
private ObjectModelInstanceService objectModelInstanceService;
public ObjectModelInstanceController(ObjectModelService objectModelService, ObjectModelInstanceService objectModelInstanceService) {
this.objectModelService = objectModelService;
this.objectModelInstanceService = objectModelInstanceService;
}
/**
* @description 创建模型实例
* @param form:
* @return com.esv.datacenter.iot.common.response.EResponse
* @author huangChaobin@esvtek.com
* @createTime 2020/08/03 10:31
**/
@PostMapping("/add")
public EResponse add(@RequestBody @Validated(ValidatorInsert.class) ModelInstanceForm form) throws EException {
// 校验模型ID是否有效
this.checkIsValidModelId(form.getModelId());
Long id = objectModelInstanceService.createModelInstance(form);
JSONObject data = new JSONObject();
data.put("id", id);
return EResponse.ok(data);
}
/**
* @description 更新模型实例
* @param form:
* @return com.esv.datacenter.iot.common.response.EResponse
* @author huangChaobin@esvtek.com
* @createTime 2020/08/03 11:20
**/
@PostMapping("/edit")
public EResponse edit(@RequestBody @Validated(ValidatorInsert.class) ModelInstanceForm form) throws EException {
// 校验模型ID是否有效
this.checkIsValidModelId(form.getModelId());
// 校验模型实例ID是否有效
this.checkIsValidModelInstanceId(form.getId());
// 更新模型实例
objectModelInstanceService.updateModelInstance(form);
return EResponse.ok();
}
/**
* @description 删除模型实例
* @param form:
* @return com.esv.datacenter.iot.common.response.EResponse
* @author huangChaobin@esvtek.com
* @createTime 2020/08/03 11:26
**/
@PostMapping("/delete")
public EResponse delete(@RequestBody @Validated(ValidatorDelete.class) ModelInstanceForm form) throws EException {
// 校验模型实例ID是否有效
this.checkIsValidModelInstanceId(form.getId());
// 更新模型实例
objectModelInstanceService.deleteModelInstance(form.getId());
return EResponse.ok();
}
/**
* @description 获取模型实例详情
* @param form:
* @return com.esv.datacenter.iot.common.response.EResponse
* @author huangChaobin@esvtek.com
* @createTime 2020/08/03 13:45
**/
@PostMapping("/detail")
public EResponse detail(@RequestBody @Validated(ValidatorDetail.class) ModelInstanceForm form) throws EException {
objectModelInstanceService.getModelInstanceDetail(form.getId());
return EResponse.ok();
}
/**
* @description 校验模型ID是否有效
* @param modelId:
* @return void
* @author huangChaobin@esvtek.com
* @createTime 2020/08/01 14:25
**/
private void checkIsValidModelId(Long modelId) {
if (!objectModelService.isModelExits(modelId)) {
throw new EException(ECode.BIZ_PARAM_ERROR.code(), "无效的模型id值");
}
}
/**
* @description 校验是否有效模型实例ID
* @param id:
* @return void
* @author huangChaobin@esvtek.com
* @createTime 2020/08/03 11:18
**/
private void checkIsValidModelInstanceId(Long id) {
if (!objectModelInstanceService.isModelInstanceExits(id)) {
throw new EException(ECode.BIZ_PARAM_ERROR.code(), "无效的模型实例id值");
}
}
}
package com.esv.datacenter.iot.module.omodel.dao;
import com.esv.datacenter.iot.module.omodel.entity.InstanceTopicEntity;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
/**
* 物模型实例Topic表
*
* @author 黄朝斌
* @email huangchaobin@esvtek.com
* @date 2020-07-31 13:35:49
*/
@Mapper
public interface InstanceTopicDao extends BaseMapper<InstanceTopicEntity> {
}
package com.esv.datacenter.iot.module.omodel.dao;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.esv.datacenter.iot.module.omodel.entity.ObjectModelEntity;
import com.esv.datacenter.iot.module.omodel.entity.ObjectModelInstanceEntity;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.esv.datacenter.iot.module.omodel.form.ModelInstanceForm;
import com.esv.datacenter.iot.module.omodel.form.ObjectModelForm;
import org.apache.ibatis.annotations.Mapper;
/**
* 物模型实例表
*
* @author 黄朝斌
* @email huangchaobin@esvtek.com
* @date 2020-07-31 13:35:49
*/
@Mapper
public interface ObjectModelInstanceDao extends BaseMapper<ObjectModelInstanceEntity> {
/**
* @description 分页查询
* @param page:
* @param queryObj:
* @return com.baomidou.mybatisplus.core.metadata.IPage
* @author huangChaobin@esvtek.com
* @createTime 2020/07/31 16:24
**/
IPage select4Page(IPage page, ModelInstanceForm queryObj);
/**
* @description 逻辑删除模型实例
* @param entity:
* @return java.lang.Integer
* @author huangChaobin@esvtek.com
* @createTime 2020/08/03 10:11
**/
Integer logicDeleteInstance(ObjectModelInstanceEntity entity);
}
package com.esv.datacenter.iot.module.omodel.dto;
import com.esv.datacenter.iot.module.omodel.entity.ObjectModelEntity;
import com.esv.datacenter.iot.module.omodel.entity.ObjectModelPropertyEntity;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import java.util.List;
/**
* @description:
* @author: huangchaobin@esvtek.com
* @createTime: 2020/08/03 15:11
* @version:1.0
*/
@Data
public class ModelAndInstanceDto {
private ObjectModelEntity objectModelEntity;
private List<ObjectModelPropertyEntity> objectModelPropertyEntityList;
@Override
public String toString() {
return ToStringBuilder.reflectionToString(this, ToStringStyle.JSON_STYLE);
}
}
package com.esv.datacenter.iot.module.omodel.entity;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;
/**
* 物模型实例Topic表
*
* @author 黄朝斌
* @email huangchaobin@esvtek.com
* @date 2020-07-31 13:35:49
*/
@Data
@TableName("base_instance_topic")
public class InstanceTopicEntity implements Serializable {
private static final long serialVersionUID = 1L;
/**
*
*/
@TableId
private Long id;
/**
* 租户ID
*/
@TableField(fill = FieldFill.INSERT)
private Long tenantId;
/**
* 部门ID
*/
@TableField(fill = FieldFill.INSERT)
private Long departmentId;
/**
* 模型ID
*/
private Long modelId;
/**
* 实例ID
*/
private Long instanceId;
/**
* MQTT Topic
*/
private String topic;
/**
* 创建时间
*/
private Date createTime;
}
package com.esv.datacenter.iot.module.omodel.entity;
import com.baomidou.mybatisplus.annotation.*;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;
/**
* 物模型实例表
*
* @author 黄朝斌
* @email huangchaobin@esvtek.com
* @date 2020-07-31 13:35:49
*/
@Data
@TableName("base_object_model_instance")
public class ObjectModelInstanceEntity implements Serializable {
private static final long serialVersionUID = 1L;
/**
*
*/
@TableId
private Long id;
/**
* 租户ID
*/
@TableField(fill = FieldFill.INSERT)
private Long tenantId;
/**
* 部门ID
*/
@TableField(fill = FieldFill.INSERT)
private Long departmentId;
/**
* 模型ID
*/
private Long modelId;
/**
* 实例名称
*/
private String instanceName;
/**
* 实例描述
*/
private String description;
/**
* 是否删除:0-未删除、1-已删除
*/
@TableLogic
private Boolean deleted;
/**
* 创建者
*/
@TableField(fill = FieldFill.INSERT)
private String createUser;
/**
* 修改者
*/
@TableField(fill = FieldFill.INSERT_UPDATE)
private String updateUser;
/**
* 创建时间
*/
private Date createTime;
/**
* 修改时间
*/
private Date updateTime;
}
package com.esv.datacenter.iot.module.omodel.form;
import com.esv.datacenter.iot.common.validator.groups.*;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import org.hibernate.validator.constraints.Length;
import org.hibernate.validator.constraints.Range;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
/**
* @description:
* @author: huangchaobin@esvtek.com
* @createTime: 2020/07/31 14:44
* @version:1.0
*/
@Data
public class ModelInstanceForm {
/**
*
*/
@NotNull(message = "[模型实例ID]不能为空", groups = {ValidatorUpdate.class, ValidatorDetail.class, ValidatorDelete.class})
private Long id;
/**
* 租户ID
*/
private Long tenantId;
/**
* 部门ID
*/
private Long departmentId;
/**
* 模型ID
*/
@NotNull(message = "[模型ID]不能为空", groups = {ValidatorInsert.class, ValidatorUpdate.class, ValidatorList.class})
private Long modelId;
/**
* 实例名称
*/
@Length(max = 50, message = "[实例名称]长度不合法", groups = {ValidatorInsert.class, ValidatorUpdate.class})
@NotBlank(message = "[实例名称]不能为空", groups = {ValidatorInsert.class})
private String instanceName;
/**
* 实例描述
*/
@Length(max = 200, message = "[实例描述]长度不合法", groups = {ValidatorInsert.class, ValidatorUpdate.class})
@NotBlank(message = "[实例描述]不能为空", groups = {ValidatorInsert.class})
private String description;
/**
* 页码
**/
@Range(min = 1, max = 65535, message = "无效的pageNum", groups = {ValidatorList.class})
@NotNull(message = "参数pageNum不能为空", groups = {ValidatorList.class})
private Integer pageNum;
/**
* 每页记录条数
**/
@Range(min = 1, max = 100, message = "pageSize", groups = {ValidatorList.class})
@NotNull(message = "参数pageSize不能为空", groups = {ValidatorList.class})
private Integer pageSize;
@Override
public String toString() {
return ToStringBuilder.reflectionToString(this, ToStringStyle.JSON_STYLE);
}
}
package com.esv.datacenter.iot.module.omodel.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.esv.datacenter.iot.module.omodel.entity.InstanceTopicEntity;
/**
* 物模型实例Topic表
*
* @author 黄朝斌
* @email huangchaobin@esvtek.com
* @date 2020-07-31 13:35:49
*/
public interface InstanceTopicService extends IService<InstanceTopicEntity> {
/**
* @description 新增模型实例Topic
* @param modelId:
* @param instanceId:
* @return void
* @author huangChaobin@esvtek.com
* @createTime 2020/08/04 11:22
**/
void insertTopic(Long modelId, Long instanceId);
/**
* @description 删除模型实例Topic
* @param instanceId:
* @return void
* @author huangChaobin@esvtek.com
* @createTime 2020/08/04 11:22
**/
void deleteTopic(Long instanceId);
}
package com.esv.datacenter.iot.module.omodel.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.esv.datacenter.iot.common.vo.PageResultVO;
import com.esv.datacenter.iot.module.omodel.entity.ObjectModelInstanceEntity;
import com.esv.datacenter.iot.module.omodel.form.ModelInstanceForm;
import com.esv.datacenter.iot.module.omodel.vo.ModelInstanceDetailVO;
import com.esv.datacenter.iot.module.omodel.vo.ModelInstanceVO;
import java.util.List;
/**
* 物模型实例表
*
* @author 黄朝斌
* @email huangchaobin@esvtek.com
* @date 2020-07-31 13:35:49
*/
public interface ObjectModelInstanceService extends IService<ObjectModelInstanceEntity> {
/**
* @description 获取指定模型的实例列表
* @param modelId:
* @return java.util.List<com.esv.datacenter.iot.module.omodel.vo.ModelInstanceVO>
* @author huangChaobin@esvtek.com
* @createTime 2020/08/01 13:37
**/
List<ModelInstanceVO> getModelInstanceList(Long modelId);
/**
* @description 分页查询模型实例列表
* @param queryObj:
* @return com.esv.datacenter.iot.common.vo.PageResultVO
* @author huangChaobin@esvtek.com
* @createTime 2020/07/31 16:26
**/
PageResultVO getModelInstance4Page(ModelInstanceForm queryObj);
/**
* @description 创建模型实例
* @param form:
* @return java.lang.Long
* @author huangChaobin@esvtek.com
* @createTime 2020/08/03 10:22
**/
Long createModelInstance(ModelInstanceForm form);
/**
* @description 更新模型实例
* @param form:
* @return void
* @author huangChaobin@esvtek.com
* @createTime 2020/08/03 11:02
**/
void updateModelInstance(ModelInstanceForm form);
/**
* @description 删除模型实例
* @param id:
* @return void
* @author huangChaobin@esvtek.com
* @createTime 2020/08/03 11:23
**/
void deleteModelInstance(Long id);
/**
* @description 判断模型实例是否存在
* @param id:
* @return java.lang.Boolean
* @author huangChaobin@esvtek.com
* @createTime 2020/08/03 11:06
**/
Boolean isModelInstanceExits(Long id);
/**
* @description 获取模型实例详情
* @param id:
* @return com.esv.datacenter.iot.module.omodel.vo.ModelInstanceDetailVO
* @author huangChaobin@esvtek.com
* @createTime 2020/08/03 11:30
**/
ModelInstanceDetailVO getModelInstanceDetail(Long id);
}
package com.esv.datacenter.iot.module.omodel.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.esv.datacenter.iot.module.omodel.dao.InstanceTopicDao;
import com.esv.datacenter.iot.module.omodel.entity.InstanceTopicEntity;
import com.esv.datacenter.iot.module.omodel.service.InstanceTopicService;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.stereotype.Service;
@Service("instanceTopicService")
@RefreshScope
public class InstanceTopicServiceImpl extends ServiceImpl<InstanceTopicDao, InstanceTopicEntity> implements InstanceTopicService {
private static final String TOPIC_PREFIX = "$esv/iot/";
@Override
public void insertTopic(Long modelId, Long instanceId) {
String topic = TOPIC_PREFIX + modelId + "/" + instanceId + "/data/upload";
InstanceTopicEntity entity = new InstanceTopicEntity();
entity.setModelId(modelId);
entity.setInstanceId(instanceId);
entity.setTopic(topic);
this.getBaseMapper().insert(entity);
}
@Override
public void deleteTopic(Long instanceId) {
this.getBaseMapper().delete(new LambdaQueryWrapper<InstanceTopicEntity>().eq(InstanceTopicEntity::getInstanceId, instanceId));
}
}
\ No newline at end of file
package com.esv.datacenter.iot.module.omodel.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.esv.datacenter.iot.common.em.DbDeletedEnum;
import com.esv.datacenter.iot.common.exception.EException;
import com.esv.datacenter.iot.common.response.ECode;
import com.esv.datacenter.iot.common.vo.PageResultVO;
import com.esv.datacenter.iot.module.omodel.dao.ObjectModelInstanceDao;
import com.esv.datacenter.iot.module.omodel.entity.ObjectModelEntity;
import com.esv.datacenter.iot.module.omodel.entity.ObjectModelInstanceEntity;
import com.esv.datacenter.iot.module.omodel.form.ModelInstanceForm;
import com.esv.datacenter.iot.module.omodel.service.InstanceTopicService;
import com.esv.datacenter.iot.module.omodel.service.ObjectModelInstanceService;
import com.esv.datacenter.iot.module.omodel.service.ObjectModelService;
import com.esv.datacenter.iot.module.omodel.vo.ModelInstanceDetailVO;
import com.esv.datacenter.iot.module.omodel.vo.ModelInstanceVO;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.List;
@Service("objectModelInstanceService")
public class ObjectModelInstanceServiceImpl extends ServiceImpl<ObjectModelInstanceDao, ObjectModelInstanceEntity> implements ObjectModelInstanceService {
@Autowired
ObjectModelService objectModelService;
@Autowired
InstanceTopicService instanceTopicService;
@Override
public List<ModelInstanceVO> getModelInstanceList(Long modelId) {
List<ObjectModelInstanceEntity> entityList = this.getBaseMapper().selectList(new LambdaQueryWrapper<ObjectModelInstanceEntity>()
.eq(ObjectModelInstanceEntity::getDeleted, DbDeletedEnum.NO.getCode())
.eq(ObjectModelInstanceEntity::getModelId, modelId)
.orderByAsc(ObjectModelInstanceEntity::getInstanceName));
List<ModelInstanceVO> voList = new ArrayList<>();
for (ObjectModelInstanceEntity entity : entityList) {
ModelInstanceVO vo = new ModelInstanceVO();
BeanUtils.copyProperties(entity, vo);
vo.setCreateTime(entity.getCreateTime().getTime());
vo.setUpdateTime(entity.getUpdateTime().getTime());
voList.add(vo);
}
return voList;
}
@Override
public PageResultVO getModelInstance4Page(ModelInstanceForm queryObj) {
IPage<ObjectModelInstanceEntity> page = new Page<>(queryObj.getPageNum(), queryObj.getPageSize());
this.baseMapper.select4Page(page, queryObj);
List<ObjectModelInstanceEntity> entityList = page.getRecords();
List<ModelInstanceVO> voList = new ArrayList<>();
for (ObjectModelInstanceEntity entity : entityList) {
ModelInstanceVO vo = new ModelInstanceVO();
BeanUtils.copyProperties(entity, vo);
vo.setCreateTime(entity.getCreateTime().getTime());
vo.setUpdateTime(entity.getUpdateTime().getTime());
voList.add(vo);
}
return new PageResultVO(page, voList);
}
@Override
@Transactional(rollbackFor = Exception.class)
public Long createModelInstance(ModelInstanceForm form) {
// 模型实例名称校验
int instanceCount = this.getBaseMapper().selectCount(new LambdaQueryWrapper<ObjectModelInstanceEntity>()
.eq(ObjectModelInstanceEntity::getModelId, form.getModelId())
.eq(ObjectModelInstanceEntity::getInstanceName, form.getInstanceName())
.eq(ObjectModelInstanceEntity::getDeleted, DbDeletedEnum.NO.getCode()));
if (0 < instanceCount) {
throw new EException(ECode.BIZ_PARAM_ERROR.code(), "实例名称[" + form.getInstanceName() + "]已存在");
}
// 新增模型实例
ObjectModelInstanceEntity entity = new ObjectModelInstanceEntity();
BeanUtils.copyProperties(form, entity);
this.getBaseMapper().insert(entity);
Long instanceId = entity.getId();
// 新增模型实例Topic
this.instanceTopicService.insertTopic(form.getModelId(), instanceId);
return instanceId;
}
@Override
public void updateModelInstance(ModelInstanceForm form) {
// 模型实例名称校验:不能重复
int count = this.getBaseMapper().selectCount(new LambdaQueryWrapper<ObjectModelInstanceEntity>()
.eq(ObjectModelInstanceEntity::getModelId, form.getModelId())
.eq(ObjectModelInstanceEntity::getInstanceName, form.getInstanceName())
.eq(ObjectModelInstanceEntity::getDeleted, DbDeletedEnum.NO.getCode())
.ne(ObjectModelInstanceEntity::getId, form.getId()));
if (0 < count) {
if (0 < count) {
throw new EException(ECode.BIZ_PARAM_ERROR.code(), "实例名称[" + form.getInstanceName() + "]已存在");
}
}
ObjectModelInstanceEntity entity = new ObjectModelInstanceEntity();
entity.setId(form.getId());
entity.setInstanceName(form.getInstanceName());
entity.setDescription(form.getDescription());
this.getBaseMapper().updateById(entity);
}
@Override
public void deleteModelInstance(Long id) {
this.getBaseMapper().deleteById(id);
// 删除模型实例Topic
this.instanceTopicService.deleteTopic(id);
}
@Override
public Boolean isModelInstanceExits(Long id) {
int count = this.getBaseMapper().selectCount(new LambdaQueryWrapper<ObjectModelInstanceEntity>()
.eq(ObjectModelInstanceEntity::getId, id));
if (0 == count) {
return false;
} else {
return true;
}
}
@Override
public ModelInstanceDetailVO getModelInstanceDetail(Long id) {
ModelInstanceDetailVO vo = new ModelInstanceDetailVO();
ObjectModelInstanceEntity instanceEntity = this.getBaseMapper().selectById(id);
if (null == instanceEntity) {
throw new EException(ECode.BIZ_PARAM_ERROR.code(), "无效的模型实例id值");
} else {
BeanUtils.copyProperties(instanceEntity, vo);
vo.setCreateTime(instanceEntity.getCreateTime().getTime());
vo.setUpdateTime(instanceEntity.getUpdateTime().getTime());
}
ObjectModelEntity modelEntity = objectModelService.getModelInfo(instanceEntity.getModelId());
if (null == modelEntity) {
throw new EException(ECode.BIZ_PARAM_ERROR.code(), "该实例未查询到有效模型");
} else {
vo.setModelName(modelEntity.getName());
vo.setModelDescription(modelEntity.getDescription());
}
return vo;
}
}
\ No newline at end of file
package com.esv.datacenter.iot.module.omodel.vo;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
/**
* @description:
* @author: huangchaobin@esvtek.com
* @createTime: 2020/08/03 11:26
* @version:1.0
*/
@Data
public class ModelInstanceDetailVO extends ModelInstanceVO {
/**
* 模型名称
*/
private String modelName;
/**
* 模型描述
*/
private String modelDescription;
@Override
public String toString() {
return ToStringBuilder.reflectionToString(this, ToStringStyle.JSON_STYLE);
}
}
package com.esv.datacenter.iot.module.omodel.vo;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
/**
* @description:
* @author: huangchaobin@esvtek.com
* @createTime: 2020/08/01 13:35
* @version:1.0
*/
@Data
public class ModelInstanceVO {
/**
*
*/
private Long id;
/**
* 模型ID
*/
private Long modelId;
/**
* 实例名称
*/
private String instanceName;
/**
* 实例描述
*/
private String description;
/**
* 创建者
*/
private String createUser;
/**
* 修改者
*/
private String updateUser;
/**
* 创建时间
*/
private Long createTime;
/**
* 修改时间
*/
private Long updateTime;
@Override
public String toString() {
return ToStringBuilder.reflectionToString(this, ToStringStyle.JSON_STYLE);
}
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.esv.datacenter.iot.module.omodel.dao.ObjectModelDao">
<mapper namespace="com.esv.datacenter.iot.module.datamodel.dao.DataModelDao">
<!-- 可根据自己的需求,是否要使用 -->
<resultMap type="com.esv.datacenter.iot.module.omodel.entity.ObjectModelEntity" id="objectModelMap">
<resultMap type="com.esv.datacenter.iot.module.datamodel.entity.DataModelEntity" id="objectModelMap">
<result property="id" column="id"/>
<result property="tenantId" column="tenant_id"/>
<result property="departmentId" column="department_id"/>
......@@ -18,8 +18,8 @@
</resultMap>
<!-- 分页查询 -->
<select id="select4Page" parameterType="com.esv.datacenter.iot.module.omodel.form.ObjectModelForm"
resultType="com.esv.datacenter.iot.module.omodel.entity.ObjectModelEntity">
<select id="select4Page" parameterType="com.esv.datacenter.iot.module.datamodel.form.DataModelForm"
resultType="com.esv.datacenter.iot.module.datamodel.entity.DataModelEntity">
select *
from base_object_model
where deleted = false
......@@ -29,7 +29,7 @@
ORDER BY name ASC
</select>
<update id="logicDeleteModel" parameterType="com.esv.datacenter.iot.module.omodel.entity.ObjectModelEntity">
<update id="logicDeleteModel" parameterType="com.esv.datacenter.iot.module.datamodel.entity.DataModelEntity">
update base_object_model
set deleted = #{deleted}
where id = #{id}
......
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.esv.datacenter.iot.module.omodel.dao.ObjectModelPropertyDao">
<mapper namespace="com.esv.datacenter.iot.module.datamodel.dao.DataModelPropertyDao">
<!-- 可根据自己的需求,是否要使用 -->
<resultMap type="com.esv.datacenter.iot.module.omodel.entity.ObjectModelPropertyEntity" id="objectModelPropertyMap">
<resultMap type="com.esv.datacenter.iot.module.datamodel.entity.DataModelPropertyEntity" id="objectModelPropertyMap">
<result property="id" column="id"/>
<result property="tenantId" column="tenant_id"/>
<result property="departmentId" column="department_id"/>
......@@ -22,7 +22,7 @@
<result property="updateTime" column="update_time"/>
</resultMap>
<update id="logicDeleteModelProperty" parameterType="com.esv.datacenter.iot.module.omodel.entity.ObjectModelPropertyEntity">
<update id="logicDeleteModelProperty" parameterType="com.esv.datacenter.iot.module.datamodel.entity.DataModelPropertyEntity">
update base_object_model_property
set deleted = #{deleted}
where model_id = #{modelId}
......
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.esv.datacenter.iot.module.omodel.dao.InstanceTopicDao">
<!-- 可根据自己的需求,是否要使用 -->
<resultMap type="com.esv.datacenter.iot.module.omodel.entity.InstanceTopicEntity" id="instanceTopicMap">
<result property="id" column="id"/>
<result property="tenantId" column="tenant_id"/>
<result property="departmentId" column="department_id"/>
<result property="modelId" column="model_id"/>
<result property="instanceId" column="instance_id"/>
<result property="topic" column="topic"/>
<result property="createTime" column="create_time"/>
</resultMap>
</mapper>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.esv.datacenter.iot.module.omodel.dao.ObjectModelInstanceDao">
<!-- 可根据自己的需求,是否要使用 -->
<resultMap type="com.esv.datacenter.iot.module.omodel.entity.ObjectModelInstanceEntity" id="objectModelInstanceMap">
<result property="id" column="id"/>
<result property="tenantId" column="tenant_id"/>
<result property="departmentId" column="department_id"/>
<result property="modelId" column="model_id"/>
<result property="instanceName" column="instance_name"/>
<result property="description" column="description"/>
<result property="deleted" column="deleted"/>
<result property="createUser" column="create_user"/>
<result property="updateUser" column="update_user"/>
<result property="createTime" column="create_time"/>
<result property="updateTime" column="update_time"/>
</resultMap>
<!-- 分页查询 -->
<select id="select4Page" parameterType="com.esv.datacenter.iot.module.omodel.form.ModelInstanceForm"
resultType="com.esv.datacenter.iot.module.omodel.entity.ObjectModelInstanceEntity">
select *
from base_object_model_instance
where deleted = false
<if test="queryObj.modelId != null">
and model_id = #{queryObj.modelId}
</if>
<if test="queryObj.instanceName != null">
and instance_name like #{queryObj.instanceName}
</if>
ORDER BY instance_name ASC
</select>
<update id="logicDeleteInstance" parameterType="com.esv.datacenter.iot.module.omodel.entity.ObjectModelInstanceEntity">
update base_object_model_instance
set deleted = #{deleted}
where id = #{id}
</update>
</mapper>
\ No newline at end of file
package com.esv.datacenter.iot.common.component;
import com.esv.datacenter.iot.module.omodel.dto.ModelAndInstanceDto;
import com.esv.datacenter.iot.module.omodel.entity.ObjectModelEntity;
import com.esv.datacenter.iot.module.omodel.entity.ObjectModelPropertyEntity;
import lombok.extern.slf4j.Slf4j;
import org.junit.Test;
import org.junit.runner.RunWith;
......@@ -10,9 +7,6 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import java.util.ArrayList;
import java.util.List;
/**
* @description:
* @author: huangchaobin@esvtek.com
......@@ -29,44 +23,7 @@ public class TimescaleComponentTest {
@Test
public void createTable_test() {
Long modelId = 99999L;
ModelAndInstanceDto modelAndInstanceDto = new ModelAndInstanceDto();
ObjectModelEntity objectModelEntity = new ObjectModelEntity();
objectModelEntity.setId(modelId);
modelAndInstanceDto.setObjectModelEntity(objectModelEntity);
List<ObjectModelPropertyEntity> objectModelPropertyEntityList = new ArrayList<>();
ObjectModelPropertyEntity objectModelPropertyEntity = new ObjectModelPropertyEntity();
objectModelPropertyEntity.setPropertyCode("temp");
objectModelPropertyEntity.setPropertyType(2);
objectModelPropertyEntity.setPropertyDefaultValue("26");
objectModelPropertyEntity.setPropertyName("温度");
objectModelPropertyEntity.setPropertyUnit("摄氏度");
objectModelPropertyEntityList.add(objectModelPropertyEntity);
modelAndInstanceDto.setObjectModelPropertyEntityList(objectModelPropertyEntityList);
objectModelPropertyEntity = new ObjectModelPropertyEntity();
objectModelPropertyEntity.setPropertyCode("hum");
objectModelPropertyEntity.setPropertyType(2);
objectModelPropertyEntity.setPropertyName("湿度");
objectModelPropertyEntityList.add(objectModelPropertyEntity);
modelAndInstanceDto.setObjectModelPropertyEntityList(objectModelPropertyEntityList);
objectModelPropertyEntity = new ObjectModelPropertyEntity();
objectModelPropertyEntity.setPropertyCode("deleted");
objectModelPropertyEntity.setPropertyType(3);
objectModelPropertyEntity.setPropertyName("是否删除");
objectModelPropertyEntity.setPropertyDefaultValue("false");
objectModelPropertyEntityList.add(objectModelPropertyEntity);
modelAndInstanceDto.setObjectModelPropertyEntityList(objectModelPropertyEntityList);
objectModelPropertyEntity = new ObjectModelPropertyEntity();
objectModelPropertyEntity.setPropertyCode("remark");
objectModelPropertyEntity.setPropertyType(1);
objectModelPropertyEntity.setPropertyName("备注");
objectModelPropertyEntityList.add(objectModelPropertyEntity);
modelAndInstanceDto.setObjectModelPropertyEntityList(objectModelPropertyEntityList);
Boolean result = timescaleComponent.createTable(modelAndInstanceDto);
log.info(String.valueOf(result));
}
@Test
......
package com.esv.datacenter.iot.module.omodel.controller;
package com.esv.datacenter.iot.module.datamodel.controller;
import com.alibaba.fastjson.JSONObject;
import com.esv.datacenter.iot.BaseTestController;
import com.esv.datacenter.iot.common.response.ECode;
import com.esv.datacenter.iot.module.omodel.form.ModelPropertyForm;
import com.esv.datacenter.iot.module.omodel.form.ObjectModelForm;
import com.esv.datacenter.iot.module.datamodel.form.DataModelPropertyForm;
import com.esv.datacenter.iot.module.datamodel.form.DataModelForm;
import lombok.extern.slf4j.Slf4j;
import org.junit.Assert;
import org.junit.FixMethodOrder;
......@@ -36,25 +36,25 @@ import java.util.List;
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
@Transactional
@Rollback(false)
public class ObjectModelControllerTest extends BaseTestController {
public class DataModelControllerTest extends BaseTestController {
/**
* 新增个人承运商
*
**/
@Test
public void a1_add_success_test() throws Exception {
String url = "/model/add";
// 构造数据
ObjectModelForm form = new ObjectModelForm();
DataModelForm form = new DataModelForm();
form.setName("测试模型");
form.setDescription("这是一个测试模型");
List<ModelPropertyForm> propertyList = new ArrayList<>();
ModelPropertyForm modelPropertyForm = new ModelPropertyForm();
modelPropertyForm.setPropertyCode("id");
modelPropertyForm.setPropertyName("主键");
modelPropertyForm.setPropertyType(1);
propertyList.add(modelPropertyForm);
List<DataModelPropertyForm> propertyList = new ArrayList<>();
DataModelPropertyForm dataModelPropertyForm = new DataModelPropertyForm();
dataModelPropertyForm.setPropertyCode("id");
dataModelPropertyForm.setPropertyName("主键");
dataModelPropertyForm.setPropertyType(1);
propertyList.add(dataModelPropertyForm);
form.setPropertyList(propertyList);
MvcResult mvcResult = this.getMockMvc().perform(MockMvcRequestBuilders.post(url)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment