Commit 037e3427628d101caca090e7a8f834a27b056db1

Authored by 黄 x
1 parent 0bcfe92b

feat: add component layout to data board detail

@@ -17,6 +17,8 @@ import org.thingsboard.server.common.data.yunteng.core.message.ErrorMessage; @@ -17,6 +17,8 @@ import org.thingsboard.server.common.data.yunteng.core.message.ErrorMessage;
17 import org.thingsboard.server.common.data.yunteng.dto.DataBoardDTO; 17 import org.thingsboard.server.common.data.yunteng.dto.DataBoardDTO;
18 import org.thingsboard.server.common.data.yunteng.dto.DataComponentDTO; 18 import org.thingsboard.server.common.data.yunteng.dto.DataComponentDTO;
19 import org.thingsboard.server.common.data.yunteng.dto.DeleteDTO; 19 import org.thingsboard.server.common.data.yunteng.dto.DeleteDTO;
  20 +import org.thingsboard.server.common.data.yunteng.dto.board.ComponentLayoutDTO;
  21 +import org.thingsboard.server.common.data.yunteng.dto.board.MoreDataComponentInfoDTO;
20 import org.thingsboard.server.common.data.yunteng.utils.tools.ResponseResult; 22 import org.thingsboard.server.common.data.yunteng.utils.tools.ResponseResult;
21 import org.thingsboard.server.controller.BaseController; 23 import org.thingsboard.server.controller.BaseController;
22 import org.thingsboard.server.dao.yunteng.service.YtDataBoardService; 24 import org.thingsboard.server.dao.yunteng.service.YtDataBoardService;
@@ -35,12 +37,16 @@ public class YtDataComponentController extends BaseController { @@ -35,12 +37,16 @@ public class YtDataComponentController extends BaseController {
35 37
36 @GetMapping("/{boardId}") 38 @GetMapping("/{boardId}")
37 @ApiOperation(value = "查询看板下的所有组件信息") 39 @ApiOperation(value = "查询看板下的所有组件信息")
38 - public ResponseResult<List<DataComponentDTO>> getDataComponentsByBoardId( 40 + public ResponseResult<MoreDataComponentInfoDTO> getDataComponentsByBoardId(
39 @PathVariable("boardId") String boardId) throws ThingsboardException { 41 @PathVariable("boardId") String boardId) throws ThingsboardException {
40 - checkDataBoardInfo(boardId);  
41 - return ResponseResult.success( 42 + DataBoardDTO dataBoardDTO = checkDataBoardInfo(boardId);
  43 + MoreDataComponentInfoDTO moreDataComponentInfoDTO = new MoreDataComponentInfoDTO();
  44 + List<DataComponentDTO> data =
42 ytDataComponentService.getDataComponentsByBoardId( 45 ytDataComponentService.getDataComponentsByBoardId(
43 - getCurrentUser().getCurrentTenantId(), boardId)); 46 + getCurrentUser().getCurrentTenantId(), boardId);
  47 + moreDataComponentInfoDTO.setComponentLayout(dataBoardDTO.getLayout());
  48 + moreDataComponentInfoDTO.setComponentData(data);
  49 + return ResponseResult.success(moreDataComponentInfoDTO);
44 } 50 }
45 51
46 @PostMapping("/{boardId}/add") 52 @PostMapping("/{boardId}/add")
@@ -87,11 +93,12 @@ public class YtDataComponentController extends BaseController { @@ -87,11 +93,12 @@ public class YtDataComponentController extends BaseController {
87 return ResponseResult.success(ytDataComponentService.saveOrUpdateDataBoard(dataComponent)); 93 return ResponseResult.success(ytDataComponentService.saveOrUpdateDataBoard(dataComponent));
88 } 94 }
89 95
90 - private void checkDataBoardInfo(String boardId) throws ThingsboardException { 96 + private DataBoardDTO checkDataBoardInfo(String boardId) throws ThingsboardException {
91 DataBoardDTO dto = 97 DataBoardDTO dto =
92 ytDataBoardService.findDataBoardInfoById(boardId, getCurrentUser().getCurrentTenantId()); 98 ytDataBoardService.findDataBoardInfoById(boardId, getCurrentUser().getCurrentTenantId());
93 if (null == dto) { 99 if (null == dto) {
94 throw new YtDataValidationException(ErrorMessage.NOT_BELONG_CURRENT_TENANT.getMessage()); 100 throw new YtDataValidationException(ErrorMessage.NOT_BELONG_CURRENT_TENANT.getMessage());
95 } 101 }
  102 + return dto;
96 } 103 }
97 } 104 }
  1 +package org.thingsboard.server.common.data.yunteng.dto.board;
  2 +
  3 +import io.swagger.annotations.ApiModelProperty;
  4 +import lombok.Data;
  5 +import org.thingsboard.server.common.data.yunteng.dto.DataComponentDTO;
  6 +
  7 +import java.io.Serializable;
  8 +import java.util.List;
  9 +
  10 +@Data
  11 +public class MoreDataComponentInfoDTO implements Serializable {
  12 +
  13 + private static final long serialVersionUID = 5702474912490319623L;
  14 +
  15 + @ApiModelProperty("组件数据信息")
  16 + private List<DataComponentDTO> componentData;
  17 +
  18 + @ApiModelProperty("组件布局信息")
  19 + private List<ComponentLayoutDTO> componentLayout;
  20 +}
@@ -12,7 +12,6 @@ import org.thingsboard.server.common.data.yunteng.core.message.ErrorMessage; @@ -12,7 +12,6 @@ import org.thingsboard.server.common.data.yunteng.core.message.ErrorMessage;
12 import org.thingsboard.server.common.data.yunteng.dto.DataBoardDTO; 12 import org.thingsboard.server.common.data.yunteng.dto.DataBoardDTO;
13 import org.thingsboard.server.common.data.yunteng.dto.DeleteDTO; 13 import org.thingsboard.server.common.data.yunteng.dto.DeleteDTO;
14 import org.thingsboard.server.common.data.yunteng.dto.board.ComponentLayoutDTO; 14 import org.thingsboard.server.common.data.yunteng.dto.board.ComponentLayoutDTO;
15 -import org.thingsboard.server.common.data.yunteng.enums.ViewType;  
16 import org.thingsboard.server.common.data.yunteng.utils.JacksonUtil; 15 import org.thingsboard.server.common.data.yunteng.utils.JacksonUtil;
17 import org.thingsboard.server.common.data.yunteng.utils.tools.YtPageData; 16 import org.thingsboard.server.common.data.yunteng.utils.tools.YtPageData;
18 import org.thingsboard.server.dao.yunteng.entities.DataBoard; 17 import org.thingsboard.server.dao.yunteng.entities.DataBoard;
@@ -20,6 +19,7 @@ import org.thingsboard.server.dao.yunteng.mapper.DataBoardMapper; @@ -20,6 +19,7 @@ import org.thingsboard.server.dao.yunteng.mapper.DataBoardMapper;
20 import org.thingsboard.server.dao.yunteng.service.AbstractBaseService; 19 import org.thingsboard.server.dao.yunteng.service.AbstractBaseService;
21 import org.thingsboard.server.dao.yunteng.service.YtDataBoardService; 20 import org.thingsboard.server.dao.yunteng.service.YtDataBoardService;
22 21
  22 +import java.util.ArrayList;
23 import java.util.List; 23 import java.util.List;
24 import java.util.Map; 24 import java.util.Map;
25 import java.util.Optional; 25 import java.util.Optional;
@@ -66,9 +66,6 @@ public class YtDataBoardServiceImpl extends AbstractBaseService<DataBoardMapper, @@ -66,9 +66,6 @@ public class YtDataBoardServiceImpl extends AbstractBaseService<DataBoardMapper,
66 throw new YtDataValidationException(ErrorMessage.INTERNAL_ERROR.getMessage()); 66 throw new YtDataValidationException(ErrorMessage.INTERNAL_ERROR.getMessage());
67 }); 67 });
68 } 68 }
69 - // 公有视图,生成访问路径  
70 - if (dataBoard.getViewType() == ViewType.PUBLIC_VIEW) {}  
71 -  
72 return dataBoard.getDTO(DataBoardDTO.class); 69 return dataBoard.getDTO(DataBoardDTO.class);
73 } 70 }
74 71
@@ -111,7 +108,18 @@ public class YtDataBoardServiceImpl extends AbstractBaseService<DataBoardMapper, @@ -111,7 +108,18 @@ public class YtDataBoardServiceImpl extends AbstractBaseService<DataBoardMapper,
111 new LambdaQueryWrapper<DataBoard>() 108 new LambdaQueryWrapper<DataBoard>()
112 .eq(DataBoard::getTenantId, tenantId) 109 .eq(DataBoard::getTenantId, tenantId)
113 .eq(DataBoard::getId, id))) 110 .eq(DataBoard::getId, id)))
114 - .map(obj -> obj.getDTO(DataBoardDTO.class)) 111 + .map(
  112 + obj -> {
  113 + DataBoardDTO returnBoard = obj.getDTO(DataBoardDTO.class);
  114 + List<ComponentLayoutDTO> layout = new ArrayList<>();
  115 + if (obj.getLayout().isArray()) {
  116 + for (JsonNode jsonNode : obj.getLayout()) {
  117 + layout.add(JacksonUtil.convertValue(jsonNode, ComponentLayoutDTO.class));
  118 + }
  119 + }
  120 + returnBoard.setLayout(layout);
  121 + return returnBoard;
  122 + })
115 .orElse(null); 123 .orElse(null);
116 } 124 }
117 } 125 }
@@ -42,9 +42,9 @@ public interface YtDataBoardService { @@ -42,9 +42,9 @@ public interface YtDataBoardService {
42 42
43 /** 43 /**
44 * 根据租户ID和看板ID查询看板信息 44 * 根据租户ID和看板ID查询看板信息
45 - * @param id  
46 - * @param tenantId  
47 - * @return 45 + * @param id 看板ID
  46 + * @param tenantId 租户ID
  47 + * @return 看板信息
48 */ 48 */
49 DataBoardDTO findDataBoardInfoById(String id,String tenantId); 49 DataBoardDTO findDataBoardInfoById(String id,String tenantId);
50 } 50 }