Commit 460d7a634348cea0ea4eccf27f8f7bc5bc5353ae

Authored by xp.Huang
1 parent 91a83b1d

perf: 将数据组件的List<DataSourceInfoDTO>改为JsonNode,便于组件扩展

1 1 package org.thingsboard.server.common.data.yunteng.dto;
2 2
  3 +import com.fasterxml.jackson.databind.JsonNode;
3 4 import io.swagger.annotations.ApiModelProperty;
4 5 import lombok.Data;
5 6 import lombok.EqualsAndHashCode;
6 7 import org.thingsboard.server.common.data.yunteng.dto.board.ComponentLayoutDTO;
7   -import org.thingsboard.server.common.data.yunteng.dto.board.DataSourceInfoDTO;
8   -
9   -import java.util.List;
10 8
11 9 @EqualsAndHashCode(callSuper = true)
12 10 @Data
... ... @@ -21,7 +19,7 @@ public class DataComponentDTO extends TenantDTO {
21 19 private String frontId;
22 20
23 21 @ApiModelProperty(value = "数据源", required = true)
24   - private List<DataSourceInfoDTO> dataSource;
  22 + private JsonNode dataSource;
25 23
26 24 @ApiModelProperty(value = "备注")
27 25 private String remark;
... ...
1   -package org.thingsboard.server.common.data.yunteng.dto.board;
2   -
3   -import io.swagger.annotations.ApiModelProperty;
4   -import lombok.Data;
5   -
6   -import java.io.Serializable;
7   -import java.util.List;
8   -
9   -@Data
10   -public class ComponentInfoDTO implements Serializable {
11   -
12   - private static final long serialVersionUID = -1383423212190365330L;
13   -
14   - @ApiModelProperty(value = "数值字体颜色", required = true)
15   - private String fontColor;
16   -
17   - @ApiModelProperty(value = "数值单位")
18   - private String unit;
19   -
20   - @ApiModelProperty(value = "icon图标")
21   - private String icon;
22   -
23   - @ApiModelProperty(value = "icon图标颜色")
24   - private String iconColor;
25   -
26   - @ApiModelProperty(value = "显示设备名称:默认true")
27   - private Boolean showDeviceName;
28   -
29   - @ApiModelProperty(value = "梯度信息")
30   - private List<GradientInfo> gradientInfo;
31   -
32   - public Boolean getShowDeviceName() {
33   - return showDeviceName;
34   - }
35   -
36   - public void setShowDeviceName(Boolean showDeviceName) {
37   - this.showDeviceName = null == showDeviceName || showDeviceName;
38   - }
39   -}
1   -package org.thingsboard.server.common.data.yunteng.dto.board;
2   -
3   -import com.fasterxml.jackson.databind.JsonNode;
4   -import io.swagger.annotations.ApiModelProperty;
5   -import lombok.Data;
6   -import org.thingsboard.server.common.data.yunteng.enums.DeviceTypeEnum;
7   -
8   -import java.io.Serializable;
9   -
10   -@Data
11   -public class DataSourceInfoDTO implements Serializable {
12   -
13   - private static final long serialVersionUID = -8044628645505274772L;
14   -
15   - @ApiModelProperty(value = "设备配置ID", required = true)
16   - private String deviceProfileId;
17   -
18   - @ApiModelProperty(value = "组织ID", required = true)
19   - private String organizationId;
20   -
21   - @ApiModelProperty(value = "设备ID", required = true)
22   - private String deviceId;
23   -
24   - @ApiModelProperty(value = "组织ID", required = true)
25   - private DeviceTypeEnum deviceType;
26   -
27   - @ApiModelProperty(value = "属性", required = true)
28   - private String attribute;
29   -
30   - @ApiModelProperty(value = "设备名称")
31   - private String deviceName;
32   -
33   - @ApiModelProperty(value = "是否网关设备")
34   - private boolean gatewayDevice = false;
35   -
36   - @ApiModelProperty(value = "子设备ID")
37   - private String slaveDeviceId;
38   -
39   - @ApiModelProperty(value = "设备重命名")
40   - private String deviceRename;
41   -
42   - @ApiModelProperty(value = "属性重命名")
43   - private String attributeRename;
44   -
45   - @ApiModelProperty(value = "组件选项信息")
46   - private ComponentInfoDTO componentInfo;
47   -
48   - @ApiModelProperty(value = "命令自定义json")
49   - private JsonNode customCommand;
50   -}
1   -package org.thingsboard.server.common.data.yunteng.dto.board;
2   -
3   -import io.swagger.annotations.ApiModelProperty;
4   -import lombok.Data;
5   -
6   -import java.io.Serializable;
7   -
8   -@Data
9   -public class GradientInfo implements Serializable {
10   -
11   - private static final long serialVersionUID = -4991589470363935653L;
12   -
13   - @ApiModelProperty(value = "梯度颜色")
14   - private String color;
15   -
16   - @ApiModelProperty(value = "梯度key")
17   - private String key;
18   -
19   - @ApiModelProperty(value = "梯度值")
20   - private Integer value;
21   -}
... ... @@ -9,14 +9,12 @@ import org.thingsboard.server.common.data.yunteng.core.exception.TkDataValidatio
9 9 import org.thingsboard.server.common.data.yunteng.core.message.ErrorMessage;
10 10 import org.thingsboard.server.common.data.yunteng.dto.DataComponentDTO;
11 11 import org.thingsboard.server.common.data.yunteng.dto.DeleteDTO;
12   -import org.thingsboard.server.common.data.yunteng.dto.board.DataSourceInfoDTO;
13 12 import org.thingsboard.server.common.data.yunteng.utils.JacksonUtil;
14 13 import org.thingsboard.server.dao.yunteng.entities.TkDataComponentEntity;
15 14 import org.thingsboard.server.dao.yunteng.mapper.DataComponentMapper;
16 15 import org.thingsboard.server.dao.yunteng.service.AbstractBaseService;
17 16 import org.thingsboard.server.dao.yunteng.service.TkDataComponentService;
18 17
19   -import java.util.ArrayList;
20 18 import java.util.List;
21 19 import java.util.Optional;
22 20 import java.util.Set;
... ... @@ -37,7 +35,7 @@ public class TkDataComponentServiceImpl
37 35 return null;
38 36 }
39 37 return dataComponentList.stream()
40   - .map(this::getDataSourceByJsonNode)
  38 + .map(entity->entity.getDTO(DataComponentDTO.class))
41 39 .collect(Collectors.toList());
42 40 }
43 41
... ... @@ -85,19 +83,7 @@ public class TkDataComponentServiceImpl
85 83 .eq(TkDataComponentEntity::getTenantId, tenantId)
86 84 .in(TkDataComponentEntity::getDataBoardId, dataBoardIds));
87 85 return Optional.ofNullable(dataComponents)
88   - .map(obj -> obj.stream().map(this::getDataSourceByJsonNode).collect(Collectors.toList()))
  86 + .map(obj -> obj.stream().map(entity->entity.getDTO(DataComponentDTO.class)).collect(Collectors.toList()))
89 87 .orElse(null);
90 88 }
91   -
92   - private DataComponentDTO getDataSourceByJsonNode(TkDataComponentEntity obj) {
93   - DataComponentDTO dto = obj.getDTO(DataComponentDTO.class);
94   - List<DataSourceInfoDTO> list = new ArrayList<>();
95   - if (null != obj.getDataSource() && obj.getDataSource().isArray()) {
96   - for (JsonNode jsonNode : obj.getDataSource()) {
97   - list.add(JacksonUtil.convertValue(jsonNode, DataSourceInfoDTO.class));
98   - }
99   - }
100   - dto.setDataSource(list);
101   - return dto;
102   - }
103 89 }
... ...