Browse Source

commit2

pull/1053/head
viktorbasanets 8 years ago
parent
commit
70ee363528
  1. 1
      dao/src/main/java/org/thingsboard/server/dao/model/ModelConstants.java
  2. 32
      dao/src/main/java/org/thingsboard/server/dao/model/nosql/EntityViewEntity.java
  3. 40
      dao/src/main/java/org/thingsboard/server/dao/model/sql/EntityViewEntity.java
  4. 1
      dao/src/main/resources/sql/schema.sql

1
dao/src/main/java/org/thingsboard/server/dao/model/ModelConstants.java

@ -152,6 +152,7 @@ public class ModelConstants {
public static final String ENTITY_VIEW_TENANT_ID_PROPERTY = TENANT_ID_PROPERTY; public static final String ENTITY_VIEW_TENANT_ID_PROPERTY = TENANT_ID_PROPERTY;
public static final String ENTITY_VIEW_CUSTOMER_ID_PROPERTY = CUSTOMER_ID_PROPERTY; public static final String ENTITY_VIEW_CUSTOMER_ID_PROPERTY = CUSTOMER_ID_PROPERTY;
public static final String ENTITY_VIEW_NAME_PROPERTY = DEVICE_NAME_PROPERTY; public static final String ENTITY_VIEW_NAME_PROPERTY = DEVICE_NAME_PROPERTY;
public static final String ENTITY_VIEW_TYPE_PROPERTY = "type_entity";
public static final String ENTITY_VIEW_KEYS_PROPERTY = "keys"; public static final String ENTITY_VIEW_KEYS_PROPERTY = "keys";
public static final String ENTITY_VIEW_TS_BEGIN_PROPERTY = "ts_begin"; public static final String ENTITY_VIEW_TS_BEGIN_PROPERTY = "ts_begin";
public static final String ENTITY_VIEW_TS_END_PROPERTY = "ts_end"; public static final String ENTITY_VIEW_TS_END_PROPERTY = "ts_end";

32
dao/src/main/java/org/thingsboard/server/dao/model/nosql/EntityViewEntity.java

@ -18,9 +18,7 @@ package org.thingsboard.server.dao.model.nosql;
import com.datastax.driver.core.utils.UUIDs; import com.datastax.driver.core.utils.UUIDs;
import com.datastax.driver.mapping.annotations.PartitionKey; import com.datastax.driver.mapping.annotations.PartitionKey;
import com.datastax.driver.mapping.annotations.Table; import com.datastax.driver.mapping.annotations.Table;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import lombok.ToString; import lombok.ToString;
@ -30,15 +28,14 @@ import org.thingsboard.server.common.data.id.CustomerId;
import org.thingsboard.server.common.data.id.DeviceId; import org.thingsboard.server.common.data.id.DeviceId;
import org.thingsboard.server.common.data.id.EntityViewId; import org.thingsboard.server.common.data.id.EntityViewId;
import org.thingsboard.server.common.data.id.TenantId; import org.thingsboard.server.common.data.id.TenantId;
import org.thingsboard.server.common.data.objects.TelemetryEntityView;
import org.thingsboard.server.dao.model.ModelConstants; import org.thingsboard.server.dao.model.ModelConstants;
import org.thingsboard.server.dao.model.SearchTextEntity; import org.thingsboard.server.dao.model.SearchTextEntity;
import javax.persistence.Column; import javax.persistence.Column;
import java.io.IOException; import java.io.IOException;
import java.util.List;
import java.util.UUID; import java.util.UUID;
import java.util.stream.Collectors;
import static org.thingsboard.server.dao.model.ModelConstants.ENTITY_VIEW_TABLE_FAMILY_NAME; import static org.thingsboard.server.dao.model.ModelConstants.ENTITY_VIEW_TABLE_FAMILY_NAME;
import static org.thingsboard.server.dao.model.ModelConstants.ID_PROPERTY; import static org.thingsboard.server.dao.model.ModelConstants.ID_PROPERTY;
@ -106,16 +103,13 @@ public class EntityViewEntity implements SearchTextEntity<EntityView> {
this.customerId = entityView.getCustomerId().getId(); this.customerId = entityView.getCustomerId().getId();
} }
this.name = entityView.getName(); this.name = entityView.getName();
try { // try {
this.keys = new ObjectMapper().readTree("{\"" + entityView.getName() + "\" : [" + // this.keys = entityView.getKeys();
entityView.getKeys().stream() // } catch (IOException e) {
.map(k -> "\"" + k + "\"") // e.printStackTrace();
.collect(Collectors.joining(", ")) + "]}"); // }
} catch (IOException e) { this.tsBegin = entityView.getTsBegin() != null ? String.valueOf(entityView.getTsBegin()) : "0";
e.printStackTrace(); this.tsEnd = entityView.getTsEnd() != null ? String.valueOf(entityView.getTsEnd()) : "0";
}
this.tsBegin = String.valueOf(entityView.getTsBegin());
this.tsEnd = String.valueOf(entityView.getTsEnd());
this.searchText = entityView.getSearchText(); this.searchText = entityView.getSearchText();
this.additionalInfo = entityView.getAdditionalInfo(); this.additionalInfo = entityView.getAdditionalInfo();
} }
@ -139,11 +133,11 @@ public class EntityViewEntity implements SearchTextEntity<EntityView> {
entityView.setCustomerId(new CustomerId(customerId)); entityView.setCustomerId(new CustomerId(customerId));
} }
entityView.setName(name); entityView.setName(name);
try { // try {
entityView.setKeys(new ObjectMapper().readValue(keys.toString(), new TypeReference<List<String>>(){})); // entityView.setKeys((TelemetryEntityView) entityView.getKeys().toObject(keys));
} catch (IOException e) { // } catch (IOException e) {
e.printStackTrace(); // e.printStackTrace();
} // }
entityView.setTsBegin(Long.parseLong(tsBegin)); entityView.setTsBegin(Long.parseLong(tsBegin));
entityView.setTsEnd(Long.parseLong(tsEnd)); entityView.setTsEnd(Long.parseLong(tsEnd));
entityView.setAdditionalInfo(additionalInfo); entityView.setAdditionalInfo(additionalInfo);

40
dao/src/main/java/org/thingsboard/server/dao/model/sql/EntityViewEntity.java

@ -16,7 +16,6 @@
package org.thingsboard.server.dao.model.sql; package org.thingsboard.server.dao.model.sql;
import com.datastax.driver.core.utils.UUIDs; import com.datastax.driver.core.utils.UUIDs;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectMapper;
import lombok.Data; import lombok.Data;
@ -25,21 +24,18 @@ import org.hibernate.annotations.Type;
import org.hibernate.annotations.TypeDef; import org.hibernate.annotations.TypeDef;
import org.thingsboard.server.common.data.EntityType; import org.thingsboard.server.common.data.EntityType;
import org.thingsboard.server.common.data.EntityView; import org.thingsboard.server.common.data.EntityView;
import org.thingsboard.server.common.data.id.CustomerId; import org.thingsboard.server.common.data.id.*;
import org.thingsboard.server.common.data.id.DeviceId; import org.thingsboard.server.common.data.objects.TelemetryEntityView;
import org.thingsboard.server.common.data.id.EntityViewId;
import org.thingsboard.server.common.data.id.TenantId;
import org.thingsboard.server.dao.model.BaseSqlEntity; import org.thingsboard.server.dao.model.BaseSqlEntity;
import org.thingsboard.server.dao.model.ModelConstants; import org.thingsboard.server.dao.model.ModelConstants;
import org.thingsboard.server.dao.model.SearchTextEntity; import org.thingsboard.server.dao.model.SearchTextEntity;
import org.thingsboard.server.dao.util.mapping.JsonStringType; import org.thingsboard.server.dao.util.mapping.JsonStringType;
import javax.persistence.Column; import javax.persistence.*;
import javax.persistence.Entity;
import javax.persistence.Table;
import java.io.IOException; import java.io.IOException;
import java.util.List;
import java.util.stream.Collectors; import static org.thingsboard.server.dao.model.ModelConstants.AUDIT_LOG_ENTITY_TYPE_PROPERTY;
import static org.thingsboard.server.dao.model.ModelConstants.ENTITY_TYPE_PROPERTY;
/** /**
* Created by Victor Basanets on 8/30/2017. * Created by Victor Basanets on 8/30/2017.
@ -64,9 +60,12 @@ public class EntityViewEntity extends BaseSqlEntity<EntityView> implements Searc
@Column(name = ModelConstants.ENTITY_VIEW_NAME_PROPERTY) @Column(name = ModelConstants.ENTITY_VIEW_NAME_PROPERTY)
private String name; private String name;
@Type(type = "json") @Enumerated(EnumType.STRING)
@Column(name = ENTITY_TYPE_PROPERTY)
private EntityType entityType;
@Column(name = ModelConstants.ENTITY_VIEW_KEYS_PROPERTY) @Column(name = ModelConstants.ENTITY_VIEW_KEYS_PROPERTY)
private JsonNode keys; private String keys;
@Column(name = ModelConstants.ENTITY_VIEW_TS_BEGIN_PROPERTY) @Column(name = ModelConstants.ENTITY_VIEW_TS_BEGIN_PROPERTY)
private String tsBegin; private String tsBegin;
@ -81,6 +80,8 @@ public class EntityViewEntity extends BaseSqlEntity<EntityView> implements Searc
@Column(name = ModelConstants.ENTITY_VIEW_ADDITIONAL_INFO_PROPERTY) @Column(name = ModelConstants.ENTITY_VIEW_ADDITIONAL_INFO_PROPERTY)
private JsonNode additionalInfo; private JsonNode additionalInfo;
private static final ObjectMapper mapper = new ObjectMapper();
public EntityViewEntity() { public EntityViewEntity() {
super(); super();
} }
@ -91,6 +92,7 @@ public class EntityViewEntity extends BaseSqlEntity<EntityView> implements Searc
} }
if (entityView.getEntityId() != null) { if (entityView.getEntityId() != null) {
this.entityId = toString(entityView.getEntityId().getId()); this.entityId = toString(entityView.getEntityId().getId());
this.entityType = entityView.getEntityId().getEntityType();
} }
if (entityView.getTenantId() != null) { if (entityView.getTenantId() != null) {
this.tenantId = toString(entityView.getTenantId().getId()); this.tenantId = toString(entityView.getTenantId().getId());
@ -100,15 +102,12 @@ public class EntityViewEntity extends BaseSqlEntity<EntityView> implements Searc
} }
this.name = entityView.getName(); this.name = entityView.getName();
try { try {
this.keys = new ObjectMapper().readTree("{\"" + entityView.getName() + "\" : [" + this.keys = mapper.writeValueAsString(entityView.getKeys());
entityView.getKeys().stream()
.map(k -> "\"" + k + "\"")
.collect(Collectors.joining(", ")) + "]}");
} catch (IOException e) { } catch (IOException e) {
e.printStackTrace(); e.printStackTrace();
} }
this.tsBegin = String.valueOf(entityView.getTsBegin()); this.tsBegin = entityView.getTsBegin() != null ? String.valueOf(entityView.getTsBegin()) : "";
this.tsEnd = String.valueOf(entityView.getTsEnd()); this.tsEnd = entityView.getTsEnd() != null ? String.valueOf(entityView.getTsEnd()) : "";
this.searchText = entityView.getSearchText(); this.searchText = entityView.getSearchText();
this.additionalInfo = entityView.getAdditionalInfo(); this.additionalInfo = entityView.getAdditionalInfo();
} }
@ -128,9 +127,8 @@ public class EntityViewEntity extends BaseSqlEntity<EntityView> implements Searc
EntityView entityView = new EntityView(new EntityViewId(getId())); EntityView entityView = new EntityView(new EntityViewId(getId()));
entityView.setCreatedTime(UUIDs.unixTimestamp(getId())); entityView.setCreatedTime(UUIDs.unixTimestamp(getId()));
/*Ned to refactor and replace DeviceId to Class<> instance*/
if (entityId != null) { if (entityId != null) {
entityView.setEntityId(new DeviceId(toUUID(entityId))); entityView.setEntityId(EntityIdFactory.getByTypeAndId(entityType.name(), toUUID(entityId).toString()));
} }
if (tenantId != null) { if (tenantId != null) {
entityView.setTenantId(new TenantId(toUUID(tenantId))); entityView.setTenantId(new TenantId(toUUID(tenantId)));
@ -140,7 +138,7 @@ public class EntityViewEntity extends BaseSqlEntity<EntityView> implements Searc
} }
entityView.setName(name); entityView.setName(name);
try { try {
entityView.setKeys(new ObjectMapper().readValue(keys.toString(), new TypeReference<List<String>>(){})); entityView.setKeys(mapper.readValue(keys, TelemetryEntityView.class));
} catch (IOException e) { } catch (IOException e) {
e.printStackTrace(); e.printStackTrace();
} }

1
dao/src/main/resources/sql/schema.sql

@ -260,6 +260,7 @@ CREATE TABLE IF NOT EXISTS entity_views (
ts_begin varchar(255), ts_begin varchar(255),
ts_end varchar(255), ts_end varchar(255),
name varchar(255), name varchar(255),
entity_type varchar(255),
search_text varchar(255), search_text varchar(255),
entity_id varchar(31), entity_id varchar(31),
tenant_id varchar(31) tenant_id varchar(31)

Loading…
Cancel
Save