Commit dcea88c0 authored by huangcb's avatar huangcb

代码整理

parent 9d0209a7
package com.esv.datacenter.iot.common.component; package com.esv.datacenter.iot.common.component;
import com.esv.datacenter.iot.module.omodel.dto.ModelAndInstanceDto; import com.esv.datacenter.iot.module.omodel.dto.ModelAndInstanceDto;
import com.esv.datacenter.iot.module.omodel.entity.ObjectModelEntity; import com.esv.datacenter.iot.module.datamodel.entity.DataModelEntity;
import com.esv.datacenter.iot.module.omodel.entity.ObjectModelPropertyEntity; import com.esv.datacenter.iot.module.datamodel.entity.DataModelPropertyEntity;
import com.zaxxer.hikari.HikariDataSource; import com.zaxxer.hikari.HikariDataSource;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
...@@ -77,8 +77,8 @@ public class TimescaleComponent { ...@@ -77,8 +77,8 @@ public class TimescaleComponent {
HikariDataSource dataSource = this.getHikariDataSource4Transaction(); HikariDataSource dataSource = this.getHikariDataSource4Transaction();
// 表名 // 表名
ObjectModelEntity modelEntity = modelAndInstanceDto.getObjectModelEntity(); DataModelEntity modelEntity = modelAndInstanceDto.getDataModelEntity();
List<ObjectModelPropertyEntity> propertyEntityList = modelAndInstanceDto.getObjectModelPropertyEntityList(); List<DataModelPropertyEntity> propertyEntityList = modelAndInstanceDto.getDataModelPropertyEntityList();
String table = tablePrefix + modelEntity.getId(); String table = tablePrefix + modelEntity.getId();
try { try {
...@@ -156,7 +156,7 @@ public class TimescaleComponent { ...@@ -156,7 +156,7 @@ public class TimescaleComponent {
return true; 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(); Map<Integer, String> dbTableFieldMap = this.baseDataComponent.getDbTableFieldMap();
...@@ -170,7 +170,7 @@ public class TimescaleComponent { ...@@ -170,7 +170,7 @@ public class TimescaleComponent {
.append("instance_id int8 NULL"); .append("instance_id int8 NULL");
String propertyType; String propertyType;
String defaultValue; String defaultValue;
for (ObjectModelPropertyEntity propertyEntity : propertyEntityList) { for (DataModelPropertyEntity propertyEntity : propertyEntityList) {
propertyType = dbTableFieldMap.get(propertyEntity.getPropertyType()).toLowerCase(); propertyType = dbTableFieldMap.get(propertyEntity.getPropertyType()).toLowerCase();
defaultValue = StringUtils.trimToNull(propertyEntity.getPropertyDefaultValue()); defaultValue = StringUtils.trimToNull(propertyEntity.getPropertyDefaultValue());
sb.append(","); 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.alibaba.fastjson.JSONObject;
import com.esv.datacenter.iot.common.exception.EException; import com.esv.datacenter.iot.common.exception.EException;
import com.esv.datacenter.iot.common.response.ECode; import com.esv.datacenter.iot.common.response.ECode;
import com.esv.datacenter.iot.common.response.EResponse; import com.esv.datacenter.iot.common.response.EResponse;
import com.esv.datacenter.iot.common.validator.groups.*; import com.esv.datacenter.iot.common.validator.groups.*;
import com.esv.datacenter.iot.module.omodel.form.ModelInstanceForm; import com.esv.datacenter.iot.module.datamodel.form.DataModelForm;
import com.esv.datacenter.iot.module.omodel.form.ModelPropertyForm; import com.esv.datacenter.iot.module.datamodel.form.DataModelPropertyForm;
import com.esv.datacenter.iot.module.omodel.form.ObjectModelForm; import com.esv.datacenter.iot.module.datamodel.service.DataModelPropertyService;
import com.esv.datacenter.iot.module.omodel.service.ObjectModelInstanceService; import com.esv.datacenter.iot.module.datamodel.service.DataModelService;
import com.esv.datacenter.iot.module.omodel.service.ObjectModelPropertyService;
import com.esv.datacenter.iot.module.omodel.service.ObjectModelService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
...@@ -23,26 +21,23 @@ import java.util.List; ...@@ -23,26 +21,23 @@ import java.util.List;
import java.util.Objects; import java.util.Objects;
/** /**
* @description: 模型Controller * @description: 数据模型Controller
* @author: huangchaobin@esvtek.com * @author: huangchaobin@esvtek.com
* @createTime: 2020/07/31 14:52 * @createTime: 2020/07/31 14:52
* @version:1.0 * @version:1.0
*/ */
@Slf4j @Slf4j
@RestController @RestController
@RequestMapping("/model") @RequestMapping("/dataModel")
@Validated @Validated
public class ObjectModelController { public class DataModelController {
private ObjectModelService objectModelService; private DataModelService dataModelService;
private ObjectModelInstanceService objectModelInstanceService; private DataModelPropertyService dataModelPropertyService;
private ObjectModelPropertyService objectModelPropertyService;
public ObjectModelController(ObjectModelService objectModelService, ObjectModelInstanceService objectModelInstanceService, public DataModelController(DataModelService dataModelService, DataModelPropertyService dataModelPropertyService) {
ObjectModelPropertyService objectModelPropertyService) { this.dataModelService = dataModelService;
this.objectModelService = objectModelService; this.dataModelPropertyService = dataModelPropertyService;
this.objectModelInstanceService = objectModelInstanceService;
this.objectModelPropertyService = objectModelPropertyService;
} }
/** /**
...@@ -53,14 +48,14 @@ public class ObjectModelController { ...@@ -53,14 +48,14 @@ public class ObjectModelController {
* @createTime 2020/07/31 14:53 * @createTime 2020/07/31 14:53
**/ **/
@PostMapping("/add") @PostMapping("/add")
public EResponse add(@RequestBody @Validated(ValidatorInsert.class) ObjectModelForm form) throws EException { public EResponse add(@RequestBody @Validated(ValidatorInsert.class) DataModelForm form) throws EException {
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);
Long id = objectModelService.createObjectModel(form); Long id = dataModelService.createObjectModel(form);
JSONObject data = new JSONObject(); JSONObject data = new JSONObject();
data.put("id", id); data.put("id", id);
...@@ -75,14 +70,14 @@ public class ObjectModelController { ...@@ -75,14 +70,14 @@ public class ObjectModelController {
* @createTime 2020/07/31 16:31 * @createTime 2020/07/31 16:31
**/ **/
@PostMapping("/list") @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()); String modelName = StringUtils.trimToNull(form.getName());
if (Objects.nonNull(modelName)) { if (Objects.nonNull(modelName)) {
form.setName("%" + modelName + "%"); form.setName("%" + modelName + "%");
} else { } else {
form.setName(null); form.setName(null);
} }
return EResponse.ok(objectModelService.getModel4Page(form)); return EResponse.ok(dataModelService.getModel4Page(form));
} }
/** /**
...@@ -93,11 +88,11 @@ public class ObjectModelController { ...@@ -93,11 +88,11 @@ public class ObjectModelController {
* @createTime 2020/08/01 10:40 * @createTime 2020/08/01 10:40
**/ **/
@PostMapping("/detail") @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是否有效 // 校验模型ID是否有效
this.checkIsValidModelId(form.getId()); this.checkIsValidModelId(form.getId());
return EResponse.ok(objectModelService.getModelDetail(form)); return EResponse.ok(dataModelService.getModelDetail(form));
} }
/** /**
...@@ -108,18 +103,18 @@ public class ObjectModelController { ...@@ -108,18 +103,18 @@ public class ObjectModelController {
* @createTime 2020/08/01 10:40 * @createTime 2020/08/01 10:40
**/ **/
@PostMapping("/edit") @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是否有效 // 校验模型ID是否有效
this.checkIsValidModelId(form.getId()); 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(); return EResponse.ok();
} }
...@@ -132,11 +127,11 @@ public class ObjectModelController { ...@@ -132,11 +127,11 @@ public class ObjectModelController {
* @createTime 2020/08/01 11:35 * @createTime 2020/08/01 11:35
**/ **/
@PostMapping("/delete") @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是否有效 // 校验模型ID是否有效
this.checkIsValidModelId(form.getId()); this.checkIsValidModelId(form.getId());
objectModelService.deleteModel(form.getId()); dataModelService.deleteModel(form.getId());
return EResponse.ok(); return EResponse.ok();
} }
...@@ -148,44 +143,7 @@ public class ObjectModelController { ...@@ -148,44 +143,7 @@ public class ObjectModelController {
**/ **/
@PostMapping("/all") @PostMapping("/all")
public EResponse all() throws EException { public EResponse all() throws EException {
return EResponse.ok(objectModelService.getAllModeList()); return EResponse.ok(dataModelService.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));
} }
/** /**
...@@ -196,7 +154,7 @@ public class ObjectModelController { ...@@ -196,7 +154,7 @@ public class ObjectModelController {
* @createTime 2020/08/01 14:25 * @createTime 2020/08/01 14:25
**/ **/
private void checkIsValidModelId(Long modelId) { private void checkIsValidModelId(Long modelId) {
if (!objectModelService.isModelExits(modelId)) { if (!dataModelService.isModelExits(modelId)) {
throw new EException(ECode.BIZ_PARAM_ERROR.code(), "无效的模型id值"); 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.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.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; import org.apache.ibatis.annotations.Mapper;
/** /**
* 物模型表 * 数据模型Dao
* *
* @author 黄朝斌 * @author 黄朝斌
* @email huangchaobin@esvtek.com * @email huangchaobin@esvtek.com
* @date 2020-07-31 13:35:49 * @date 2020-07-31 13:35:49
*/ */
@Mapper @Mapper
public interface ObjectModelDao extends BaseMapper<ObjectModelEntity> { public interface DataModelDao extends BaseMapper<DataModelEntity> {
/** /**
* @description 分页查询 * @description 分页查询
...@@ -24,7 +24,7 @@ public interface ObjectModelDao extends BaseMapper<ObjectModelEntity> { ...@@ -24,7 +24,7 @@ public interface ObjectModelDao extends BaseMapper<ObjectModelEntity> {
* @author huangChaobin@esvtek.com * @author huangChaobin@esvtek.com
* @createTime 2020/07/31 16:24 * @createTime 2020/07/31 16:24
**/ **/
IPage select4Page(IPage page, ObjectModelForm queryObj); IPage select4Page(IPage page, DataModelForm queryObj);
/** /**
* @description 逻辑删除指定模型 * @description 逻辑删除指定模型
...@@ -33,6 +33,6 @@ public interface ObjectModelDao extends BaseMapper<ObjectModelEntity> { ...@@ -33,6 +33,6 @@ public interface ObjectModelDao extends BaseMapper<ObjectModelEntity> {
* @author huangChaobin@esvtek.com * @author huangChaobin@esvtek.com
* @createTime 2020/08/01 14:06 * @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 com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
/** /**
* 物模型属性表 * 数据模型属性Dao
* *
* @author 黄朝斌 * @author 黄朝斌
* @email huangchaobin@esvtek.com * @email huangchaobin@esvtek.com
* @date 2020-07-31 13:35:49 * @date 2020-07-31 13:35:49
*/ */
@Mapper @Mapper
public interface ObjectModelPropertyDao extends BaseMapper<ObjectModelPropertyEntity> { public interface DataModelPropertyDao extends BaseMapper<DataModelPropertyEntity> {
/** /**
* @description 逻辑删除指定模型的所有属性 * @description 逻辑删除指定模型的所有属性
...@@ -21,6 +21,6 @@ public interface ObjectModelPropertyDao extends BaseMapper<ObjectModelPropertyEn ...@@ -21,6 +21,6 @@ public interface ObjectModelPropertyDao extends BaseMapper<ObjectModelPropertyEn
* @author huangChaobin@esvtek.com * @author huangChaobin@esvtek.com
* @createTime 2020/08/01 13:28 * @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.*; import com.baomidou.mybatisplus.annotation.*;
...@@ -7,15 +7,15 @@ import java.util.Date; ...@@ -7,15 +7,15 @@ import java.util.Date;
import lombok.Data; import lombok.Data;
/** /**
* 模型表 * 数据模型表
* *
* @author 黄朝斌 * @author 黄朝斌
* @email huangchaobin@esvtek.com * @email huangchaobin@esvtek.com
* @date 2020-07-31 13:35:49 * @date 2020-07-31 13:35:49
*/ */
@Data @Data
@TableName("base_object_model") @TableName("data_model")
public class ObjectModelEntity implements Serializable { public class DataModelEntity implements Serializable {
private static final long serialVersionUID = 1L; 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.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableField;
...@@ -12,15 +12,15 @@ import java.io.Serializable; ...@@ -12,15 +12,15 @@ import java.io.Serializable;
import java.util.Date; import java.util.Date;
/** /**
* 模型属性表 * 数据模型属性表
* *
* @author 黄朝斌 * @author 黄朝斌
* @email huangchaobin@esvtek.com * @email huangchaobin@esvtek.com
* @date 2020-07-31 13:35:49 * @date 2020-07-31 13:35:49
*/ */
@Data @Data
@TableName("base_object_model_property") @TableName("data_model_property")
public class ObjectModelPropertyEntity implements Serializable { public class DataModelPropertyEntity implements Serializable {
private static final long serialVersionUID = 1L; 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 com.esv.datacenter.iot.common.validator.groups.*;
import lombok.Data; import lombok.Data;
...@@ -18,7 +18,7 @@ import java.util.List; ...@@ -18,7 +18,7 @@ import java.util.List;
* @version:1.0 * @version:1.0
*/ */
@Data @Data
public class ObjectModelForm { public class DataModelForm {
/** /**
* *
...@@ -50,7 +50,7 @@ public class ObjectModelForm { ...@@ -50,7 +50,7 @@ public class ObjectModelForm {
* 模型属性 * 模型属性
*/ */
@NotNull(message = "[模型属性]不能为空", groups = {ValidatorInsert.class}) @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 lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringBuilder;
...@@ -11,7 +11,7 @@ import org.apache.commons.lang3.builder.ToStringStyle; ...@@ -11,7 +11,7 @@ import org.apache.commons.lang3.builder.ToStringStyle;
* @version:1.0 * @version:1.0
*/ */
@Data @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.baomidou.mybatisplus.extension.service.IService;
import com.esv.datacenter.iot.module.omodel.entity.ObjectModelPropertyEntity; import com.esv.datacenter.iot.module.datamodel.entity.DataModelPropertyEntity;
import com.esv.datacenter.iot.module.omodel.form.ModelPropertyForm; import com.esv.datacenter.iot.module.datamodel.form.DataModelPropertyForm;
import com.esv.datacenter.iot.module.omodel.vo.ModelPropertyVO; import com.esv.datacenter.iot.module.datamodel.vo.DataModelPropertyVO;
import java.util.List; import java.util.List;
/** /**
* 模型属性表 * 数据模型属性表
* *
* @author 黄朝斌 * @author 黄朝斌
* @email huangchaobin@esvtek.com * @email huangchaobin@esvtek.com
* @date 2020-07-31 13:35:49 * @date 2020-07-31 13:35:49
*/ */
public interface ObjectModelPropertyService extends IService<ObjectModelPropertyEntity> { public interface DataModelPropertyService extends IService<DataModelPropertyEntity> {
/** /**
* @description 逻辑删除指定模型的所有属性 * @description 逻辑删除指定模型的所有属性
...@@ -23,16 +23,16 @@ public interface ObjectModelPropertyService extends IService<ObjectModelProperty ...@@ -23,16 +23,16 @@ public interface ObjectModelPropertyService extends IService<ObjectModelProperty
* @author huangChaobin@esvtek.com * @author huangChaobin@esvtek.com
* @createTime 2020/08/01 13:28 * @createTime 2020/08/01 13:28
**/ **/
Integer logicDeleteModelProperty(ObjectModelPropertyEntity entity); Integer logicDeleteModelProperty(DataModelPropertyEntity entity);
/** /**
* @description 获取指定模型的属性列表 * @description 获取指定模型的属性列表
* @param modelId: * @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 * @author huangChaobin@esvtek.com
* @createTime 2020/08/01 14:32 * @createTime 2020/08/01 14:32
**/ **/
List<ModelPropertyVO> getModelPropertyList(Long modelId); List<DataModelPropertyVO> getModelPropertyList(Long modelId);
/** /**
* @description 保存模型属性 * @description 保存模型属性
...@@ -42,7 +42,7 @@ public interface ObjectModelPropertyService extends IService<ObjectModelProperty ...@@ -42,7 +42,7 @@ public interface ObjectModelPropertyService extends IService<ObjectModelProperty
* @author huangChaobin@esvtek.com * @author huangChaobin@esvtek.com
* @createTime 2020/08/01 14:42 * @createTime 2020/08/01 14:42
**/ **/
void saveModelProperty(Long modelId, List<ModelPropertyForm> propertyList); void saveModelProperty(Long modelId, List<DataModelPropertyForm> propertyList);
/** /**
* @description 校验属性 * @description 校验属性
...@@ -51,7 +51,7 @@ public interface ObjectModelPropertyService extends IService<ObjectModelProperty ...@@ -51,7 +51,7 @@ public interface ObjectModelPropertyService extends IService<ObjectModelProperty
* @author huangChaobin@esvtek.com * @author huangChaobin@esvtek.com
* @createTime 2020/08/03 19:59 * @createTime 2020/08/03 19:59
**/ **/
void checkModelProperty(List<ModelPropertyForm> propertyList); void checkModelProperty(List<DataModelPropertyForm> propertyList);
/** /**
* @description 属性代码转换为小写 * @description 属性代码转换为小写
...@@ -60,7 +60,7 @@ public interface ObjectModelPropertyService extends IService<ObjectModelProperty ...@@ -60,7 +60,7 @@ public interface ObjectModelPropertyService extends IService<ObjectModelProperty
* @author huangChaobin@esvtek.com * @author huangChaobin@esvtek.com
* @createTime 2020/08/03 20:40 * @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.baomidou.mybatisplus.extension.service.IService;
import com.esv.datacenter.iot.common.vo.PageResultVO; import com.esv.datacenter.iot.common.vo.PageResultVO;
import com.esv.datacenter.iot.module.omodel.entity.ObjectModelEntity; import com.esv.datacenter.iot.module.datamodel.entity.DataModelEntity;
import com.esv.datacenter.iot.module.omodel.form.ObjectModelForm; import com.esv.datacenter.iot.module.datamodel.form.DataModelForm;
import com.esv.datacenter.iot.module.omodel.vo.ModelDetailVO; import com.esv.datacenter.iot.module.datamodel.vo.DataDataModelDetailVO;
import com.esv.datacenter.iot.module.omodel.vo.ModelVO; import com.esv.datacenter.iot.module.datamodel.vo.DataModelVO;
import java.util.List; import java.util.List;
/** /**
* 物模型表 * 数据物模型Service
* *
* @author 黄朝斌 * @author 黄朝斌
* @email huangchaobin@esvtek.com * @email huangchaobin@esvtek.com
* @date 2020-07-31 13:35:49 * @date 2020-07-31 13:35:49
*/ */
public interface ObjectModelService extends IService<ObjectModelEntity> { public interface DataModelService extends IService<DataModelEntity> {
/** /**
* @description 创建模型 * @description 创建模型
...@@ -25,7 +25,7 @@ public interface ObjectModelService extends IService<ObjectModelEntity> { ...@@ -25,7 +25,7 @@ public interface ObjectModelService extends IService<ObjectModelEntity> {
* @author huangChaobin@esvtek.com * @author huangChaobin@esvtek.com
* @createTime 2020/07/31 13:52 * @createTime 2020/07/31 13:52
**/ **/
Long createObjectModel(ObjectModelForm form); Long createObjectModel(DataModelForm form);
/** /**
* @description 分页查询模型列表 * @description 分页查询模型列表
...@@ -34,16 +34,16 @@ public interface ObjectModelService extends IService<ObjectModelEntity> { ...@@ -34,16 +34,16 @@ public interface ObjectModelService extends IService<ObjectModelEntity> {
* @author huangChaobin@esvtek.com * @author huangChaobin@esvtek.com
* @createTime 2020/07/31 16:26 * @createTime 2020/07/31 16:26
**/ **/
PageResultVO getModel4Page(ObjectModelForm queryObj); PageResultVO getModel4Page(DataModelForm queryObj);
/** /**
* @description 获取模型详情 * @description 获取模型详情
* @param form: * @param form:
* @return com.esv.datacenter.iot.module.omodel.vo.ModelDetailVO * @return com.esv.datacenter.iot.module.dmodel.vo.ModelDetailVO
* @author huangChaobin@esvtek.com * @author huangChaobin@esvtek.com
* @createTime 2020/08/01 10:25 * @createTime 2020/08/01 10:25
**/ **/
ModelDetailVO getModelDetail(ObjectModelForm form); DataDataModelDetailVO getModelDetail(DataModelForm form);
/** /**
* @description 更新模型 * @description 更新模型
...@@ -52,16 +52,7 @@ public interface ObjectModelService extends IService<ObjectModelEntity> { ...@@ -52,16 +52,7 @@ public interface ObjectModelService extends IService<ObjectModelEntity> {
* @author huangChaobin@esvtek.com * @author huangChaobin@esvtek.com
* @createTime 2020/08/01 10:48 * @createTime 2020/08/01 10:48
**/ **/
void updateModel(ObjectModelForm form); void updateModel(DataModelForm form);
/**
* @description 模型实例数
* @param modelId:
* @return java.lang.Integer
* @author huangChaobin@esvtek.com
* @createTime 2020/08/01 11:29
**/
Integer modelInstanceCount(Long modelId);
/** /**
* @description 删除模型 * @description 删除模型
...@@ -74,11 +65,11 @@ public interface ObjectModelService extends IService<ObjectModelEntity> { ...@@ -74,11 +65,11 @@ public interface ObjectModelService extends IService<ObjectModelEntity> {
/** /**
* @description 获取所有模型列表 * @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 * @author huangChaobin@esvtek.com
* @createTime 2020/08/01 13:04 * @createTime 2020/08/01 13:04
**/ **/
List<ModelVO> getAllModeList(); List<DataModelVO> getAllModeList();
/** /**
* @description 判断模型是否存在 * @description 判断模型是否存在
...@@ -92,11 +83,11 @@ public interface ObjectModelService extends IService<ObjectModelEntity> { ...@@ -92,11 +83,11 @@ public interface ObjectModelService extends IService<ObjectModelEntity> {
/** /**
* @description 获取模型信息 * @description 获取模型信息
* @param id: * @param id:
* @return com.esv.datacenter.iot.module.omodel.entity.ObjectModelEntity * @return com.esv.datacenter.iot.module.dmodel.entity.ObjectModelEntity
* @author huangChaobin@esvtek.com * @author huangChaobin@esvtek.com
* @createTime 2020/08/03 13:39 * @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.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
...@@ -8,11 +8,11 @@ import com.esv.datacenter.iot.common.em.DbDeletedEnum; ...@@ -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.exception.EException;
import com.esv.datacenter.iot.common.response.ECode; import com.esv.datacenter.iot.common.response.ECode;
import com.esv.datacenter.iot.common.util.ReqUtils; import com.esv.datacenter.iot.common.util.ReqUtils;
import com.esv.datacenter.iot.module.omodel.dao.ObjectModelPropertyDao; import com.esv.datacenter.iot.module.datamodel.dao.DataModelPropertyDao;
import com.esv.datacenter.iot.module.omodel.entity.ObjectModelPropertyEntity; import com.esv.datacenter.iot.module.datamodel.entity.DataModelPropertyEntity;
import com.esv.datacenter.iot.module.omodel.form.ModelPropertyForm; import com.esv.datacenter.iot.module.datamodel.form.DataModelPropertyForm;
import com.esv.datacenter.iot.module.omodel.service.ObjectModelPropertyService; import com.esv.datacenter.iot.module.datamodel.service.DataModelPropertyService;
import com.esv.datacenter.iot.module.omodel.vo.ModelPropertyVO; import com.esv.datacenter.iot.module.datamodel.vo.DataModelPropertyVO;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -26,28 +26,28 @@ import java.util.Map; ...@@ -26,28 +26,28 @@ import java.util.Map;
import java.util.Objects; import java.util.Objects;
@Service("objectModelPropertyService") @Service("dataModelPropertyService")
public class ObjectModelPropertyServiceImpl extends ServiceImpl<ObjectModelPropertyDao, ObjectModelPropertyEntity> implements ObjectModelPropertyService { public class DataModelPropertyServiceImpl extends ServiceImpl<DataModelPropertyDao, DataModelPropertyEntity> implements DataModelPropertyService {
@Autowired @Autowired
private BaseDataComponent baseDataComponent; private BaseDataComponent baseDataComponent;
@Override @Override
public Integer logicDeleteModelProperty(ObjectModelPropertyEntity entity) { public Integer logicDeleteModelProperty(DataModelPropertyEntity entity) {
return this.getBaseMapper().logicDeleteModelProperty(entity); return this.getBaseMapper().logicDeleteModelProperty(entity);
} }
@Override @Override
public List<ModelPropertyVO> getModelPropertyList(Long modelId) { public List<DataModelPropertyVO> getModelPropertyList(Long modelId) {
List<ObjectModelPropertyEntity> entityList = this.getBaseMapper() List<DataModelPropertyEntity> entityList = this.getBaseMapper()
.selectList(new LambdaQueryWrapper<ObjectModelPropertyEntity>() .selectList(new LambdaQueryWrapper<DataModelPropertyEntity>()
.eq(ObjectModelPropertyEntity::getModelId, modelId) .eq(DataModelPropertyEntity::getModelId, modelId)
.eq(ObjectModelPropertyEntity::getDeleted, DbDeletedEnum.NO.getCode()) .eq(DataModelPropertyEntity::getDeleted, DbDeletedEnum.NO.getCode())
.orderByAsc(ObjectModelPropertyEntity::getSortNum)); .orderByAsc(DataModelPropertyEntity::getSortNum));
List<ModelPropertyVO> voList = new ArrayList<>(); List<DataModelPropertyVO> voList = new ArrayList<>();
for (ObjectModelPropertyEntity entity : entityList) { for (DataModelPropertyEntity entity : entityList) {
ModelPropertyVO vo = new ModelPropertyVO(); DataModelPropertyVO vo = new DataModelPropertyVO();
BeanUtils.copyProperties(entity, vo); BeanUtils.copyProperties(entity, vo);
vo.setCreateTime(entity.getCreateTime().getTime()); vo.setCreateTime(entity.getCreateTime().getTime());
vo.setUpdateTime(entity.getUpdateTime().getTime()); vo.setUpdateTime(entity.getUpdateTime().getTime());
...@@ -59,17 +59,17 @@ public class ObjectModelPropertyServiceImpl extends ServiceImpl<ObjectModelPrope ...@@ -59,17 +59,17 @@ public class ObjectModelPropertyServiceImpl extends ServiceImpl<ObjectModelPrope
@Override @Override
@Transactional(rollbackFor = Exception.class) @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.setDeleted(DbDeletedEnum.YES.getCode());
propertyEntity.setModelId(modelId); propertyEntity.setModelId(modelId);
this.logicDeleteModelProperty(propertyEntity); this.logicDeleteModelProperty(propertyEntity);
// 新增模型属性 // 新增模型属性
List<ObjectModelPropertyEntity> modelPropertyEntityList = new ArrayList<>(); List<DataModelPropertyEntity> modelPropertyEntityList = new ArrayList<>();
for (ModelPropertyForm propertyForm : propertyList) { for (DataModelPropertyForm propertyForm : propertyList) {
ObjectModelPropertyEntity entity = new ObjectModelPropertyEntity(); DataModelPropertyEntity entity = new DataModelPropertyEntity();
BeanUtils.copyProperties(propertyForm, entity); BeanUtils.copyProperties(propertyForm, entity);
entity.setModelId(modelId); entity.setModelId(modelId);
modelPropertyEntityList.add(entity); modelPropertyEntityList.add(entity);
...@@ -77,8 +77,8 @@ public class ObjectModelPropertyServiceImpl extends ServiceImpl<ObjectModelPrope ...@@ -77,8 +77,8 @@ public class ObjectModelPropertyServiceImpl extends ServiceImpl<ObjectModelPrope
this.saveBatch(modelPropertyEntityList); this.saveBatch(modelPropertyEntityList);
// 更新属性排序值 // 更新属性排序值
for (ObjectModelPropertyEntity modelPropertyEntity : modelPropertyEntityList) { for (DataModelPropertyEntity modelPropertyEntity : modelPropertyEntityList) {
ObjectModelPropertyEntity entity = new ObjectModelPropertyEntity(); DataModelPropertyEntity entity = new DataModelPropertyEntity();
entity.setId(modelPropertyEntity.getId()); entity.setId(modelPropertyEntity.getId());
entity.setSortNum(modelPropertyEntity.getId()); entity.setSortNum(modelPropertyEntity.getId());
this.updateById(entity); this.updateById(entity);
...@@ -86,7 +86,7 @@ public class ObjectModelPropertyServiceImpl extends ServiceImpl<ObjectModelPrope ...@@ -86,7 +86,7 @@ public class ObjectModelPropertyServiceImpl extends ServiceImpl<ObjectModelPrope
} }
@Override @Override
public void checkModelProperty(List<ModelPropertyForm> propertyList) { public void checkModelProperty(List<DataModelPropertyForm> propertyList) {
Map<Integer, String> dbTableFieldMap = this.baseDataComponent.getDbTableFieldMap(); Map<Integer, String> dbTableFieldMap = this.baseDataComponent.getDbTableFieldMap();
Map<String, Boolean> sqlReservedWordsMap = this.baseDataComponent.getSqlReservedWordsMap(); Map<String, Boolean> sqlReservedWordsMap = this.baseDataComponent.getSqlReservedWordsMap();
String[] notBlandParams = new String[]{"propertyCode", "propertyName", "propertyType"}; String[] notBlandParams = new String[]{"propertyCode", "propertyName", "propertyType"};
...@@ -130,9 +130,9 @@ public class ObjectModelPropertyServiceImpl extends ServiceImpl<ObjectModelPrope ...@@ -130,9 +130,9 @@ public class ObjectModelPropertyServiceImpl extends ServiceImpl<ObjectModelPrope
} }
@Override @Override
public void propertyCode2Lowercase(List<ModelPropertyForm> propertyList) { public void propertyCode2Lowercase(List<DataModelPropertyForm> propertyList) {
for (int i = 0; i < propertyList.size(); i++) { for (int i = 0; i < propertyList.size(); i++) {
ModelPropertyForm form = propertyList.get(i); DataModelPropertyForm form = propertyList.get(i);
if (Objects.nonNull(form.getPropertyCode())) { if (Objects.nonNull(form.getPropertyCode())) {
form.setPropertyCode(form.getPropertyCode().toLowerCase()); form.setPropertyCode(form.getPropertyCode().toLowerCase());
propertyList.set(i, form); propertyList.set(i, form);
......
package com.esv.datacenter.iot.module.omodel.vo; package com.esv.datacenter.iot.module.datamodel.vo;
import lombok.Data; import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringBuilder;
...@@ -13,21 +13,12 @@ import java.util.List; ...@@ -13,21 +13,12 @@ import java.util.List;
* @version:1.0 * @version:1.0
*/ */
@Data @Data
public class ModelDetailVO extends ModelVO { public class DataDataModelDetailVO extends DataModelVO {
/**
* 模型是否有实例
*/
Boolean hasInstance;
/**
* 模型实例数
*/
Integer instanceCount;
/** /**
* 模型属性 * 模型属性
*/ */
List<ModelPropertyVO> propertyList; List<DataModelPropertyVO> propertyList;
@Override @Override
public String toString() { 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.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableField;
...@@ -13,7 +13,7 @@ import lombok.Data; ...@@ -13,7 +13,7 @@ import lombok.Data;
* @version:1.0 * @version:1.0
*/ */
@Data @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 lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringBuilder;
...@@ -11,7 +11,7 @@ import org.apache.commons.lang3.builder.ToStringStyle; ...@@ -11,7 +11,7 @@ import org.apache.commons.lang3.builder.ToStringStyle;
* @version:1.0 * @version:1.0
*/ */
@Data @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"?> <?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"> <!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="id" column="id"/>
<result property="tenantId" column="tenant_id"/> <result property="tenantId" column="tenant_id"/>
<result property="departmentId" column="department_id"/> <result property="departmentId" column="department_id"/>
...@@ -18,8 +18,8 @@ ...@@ -18,8 +18,8 @@
</resultMap> </resultMap>
<!-- 分页查询 --> <!-- 分页查询 -->
<select id="select4Page" parameterType="com.esv.datacenter.iot.module.omodel.form.ObjectModelForm" <select id="select4Page" parameterType="com.esv.datacenter.iot.module.datamodel.form.DataModelForm"
resultType="com.esv.datacenter.iot.module.omodel.entity.ObjectModelEntity"> resultType="com.esv.datacenter.iot.module.datamodel.entity.DataModelEntity">
select * select *
from base_object_model from base_object_model
where deleted = false where deleted = false
...@@ -29,7 +29,7 @@ ...@@ -29,7 +29,7 @@
ORDER BY name ASC ORDER BY name ASC
</select> </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 update base_object_model
set deleted = #{deleted} set deleted = #{deleted}
where id = #{id} where id = #{id}
......
<?xml version="1.0" encoding="UTF-8"?> <?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"> <!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="id" column="id"/>
<result property="tenantId" column="tenant_id"/> <result property="tenantId" column="tenant_id"/>
<result property="departmentId" column="department_id"/> <result property="departmentId" column="department_id"/>
...@@ -22,7 +22,7 @@ ...@@ -22,7 +22,7 @@
<result property="updateTime" column="update_time"/> <result property="updateTime" column="update_time"/>
</resultMap> </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 update base_object_model_property
set deleted = #{deleted} set deleted = #{deleted}
where model_id = #{modelId} 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; 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 lombok.extern.slf4j.Slf4j;
import org.junit.Test; import org.junit.Test;
import org.junit.runner.RunWith; import org.junit.runner.RunWith;
...@@ -10,9 +7,6 @@ import org.springframework.beans.factory.annotation.Autowired; ...@@ -10,9 +7,6 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner; import org.springframework.test.context.junit4.SpringRunner;
import java.util.ArrayList;
import java.util.List;
/** /**
* @description: * @description:
* @author: huangchaobin@esvtek.com * @author: huangchaobin@esvtek.com
...@@ -29,44 +23,7 @@ public class TimescaleComponentTest { ...@@ -29,44 +23,7 @@ public class TimescaleComponentTest {
@Test @Test
public void createTable_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 @Test
......
package com.esv.datacenter.iot.module.omodel.controller; package com.esv.datacenter.iot.module.datamodel.controller;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.esv.datacenter.iot.BaseTestController; import com.esv.datacenter.iot.BaseTestController;
import com.esv.datacenter.iot.common.response.ECode; import com.esv.datacenter.iot.common.response.ECode;
import com.esv.datacenter.iot.module.omodel.form.ModelPropertyForm; import com.esv.datacenter.iot.module.datamodel.form.DataModelPropertyForm;
import com.esv.datacenter.iot.module.omodel.form.ObjectModelForm; import com.esv.datacenter.iot.module.datamodel.form.DataModelForm;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.junit.Assert; import org.junit.Assert;
import org.junit.FixMethodOrder; import org.junit.FixMethodOrder;
...@@ -36,25 +36,25 @@ import java.util.List; ...@@ -36,25 +36,25 @@ import java.util.List;
@FixMethodOrder(MethodSorters.NAME_ASCENDING) @FixMethodOrder(MethodSorters.NAME_ASCENDING)
@Transactional @Transactional
@Rollback(false) @Rollback(false)
public class ObjectModelControllerTest extends BaseTestController { public class DataModelControllerTest extends BaseTestController {
/** /**
* 新增个人承运商 *
**/ **/
@Test @Test
public void a1_add_success_test() throws Exception { public void a1_add_success_test() throws Exception {
String url = "/model/add"; String url = "/model/add";
// 构造数据 // 构造数据
ObjectModelForm form = new ObjectModelForm(); DataModelForm form = new DataModelForm();
form.setName("测试模型"); form.setName("测试模型");
form.setDescription("这是一个测试模型"); form.setDescription("这是一个测试模型");
List<ModelPropertyForm> propertyList = new ArrayList<>(); List<DataModelPropertyForm> propertyList = new ArrayList<>();
ModelPropertyForm modelPropertyForm = new ModelPropertyForm(); DataModelPropertyForm dataModelPropertyForm = new DataModelPropertyForm();
modelPropertyForm.setPropertyCode("id"); dataModelPropertyForm.setPropertyCode("id");
modelPropertyForm.setPropertyName("主键"); dataModelPropertyForm.setPropertyName("主键");
modelPropertyForm.setPropertyType(1); dataModelPropertyForm.setPropertyType(1);
propertyList.add(modelPropertyForm); propertyList.add(dataModelPropertyForm);
form.setPropertyList(propertyList); form.setPropertyList(propertyList);
MvcResult mvcResult = this.getMockMvc().perform(MockMvcRequestBuilders.post(url) 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