Commit 3cdd2e1a60a6f0bd9b8df19c2bf0031aa73d0c19

Authored by lifeontrip
2 parents 6158725e 6c24e4f6

Merge branch 'master' into 后端权限控制

# Conflicts:
#	application/src/main/java/org/thingsboard/server/controller/yunteng/YtDataComponentController.java
@@ -12,6 +12,7 @@ import org.thingsboard.server.common.data.exception.ThingsboardException; @@ -12,6 +12,7 @@ import org.thingsboard.server.common.data.exception.ThingsboardException;
12 import org.thingsboard.server.common.data.yunteng.common.AddGroup; 12 import org.thingsboard.server.common.data.yunteng.common.AddGroup;
13 import org.thingsboard.server.common.data.yunteng.common.DeleteGroup; 13 import org.thingsboard.server.common.data.yunteng.common.DeleteGroup;
14 import org.thingsboard.server.common.data.yunteng.common.UpdateGroup; 14 import org.thingsboard.server.common.data.yunteng.common.UpdateGroup;
  15 +import org.thingsboard.server.common.data.yunteng.constant.FastIotConstants;
15 import org.thingsboard.server.common.data.yunteng.core.exception.YtDataValidationException; 16 import org.thingsboard.server.common.data.yunteng.core.exception.YtDataValidationException;
16 import org.thingsboard.server.common.data.yunteng.core.message.ErrorMessage; 17 import org.thingsboard.server.common.data.yunteng.core.message.ErrorMessage;
17 import org.thingsboard.server.common.data.yunteng.dto.DataBoardDTO; 18 import org.thingsboard.server.common.data.yunteng.dto.DataBoardDTO;
@@ -37,7 +38,8 @@ public class YtDataComponentController extends BaseController { @@ -37,7 +38,8 @@ public class YtDataComponentController extends BaseController {
37 38
38 @GetMapping("/{boardId}") 39 @GetMapping("/{boardId}")
39 @ApiOperation(value = "查询看板下的所有组件信息") 40 @ApiOperation(value = "查询看板下的所有组件信息")
40 - @PreAuthorize("@check.checkPermissions({'TENANT_ADMIN','CUSTOMER_USER'},{'api:yt:data_component:list'})") 41 + @PreAuthorize(
  42 + "@check.checkPermissions({'TENANT_ADMIN','CUSTOMER_USER'},{'api:yt:data_component:list'})")
41 public ResponseResult<MoreDataComponentInfoDTO> getDataComponentsByBoardId( 43 public ResponseResult<MoreDataComponentInfoDTO> getDataComponentsByBoardId(
42 @PathVariable("boardId") String boardId) throws ThingsboardException { 44 @PathVariable("boardId") String boardId) throws ThingsboardException {
43 DataBoardDTO dataBoardDTO = checkDataBoardInfo(boardId); 45 DataBoardDTO dataBoardDTO = checkDataBoardInfo(boardId);
@@ -52,7 +54,8 @@ public class YtDataComponentController extends BaseController { @@ -52,7 +54,8 @@ public class YtDataComponentController extends BaseController {
52 54
53 @PostMapping("/{boardId}/add") 55 @PostMapping("/{boardId}/add")
54 @ApiOperation(value = "新增组件") 56 @ApiOperation(value = "新增组件")
55 - @PreAuthorize("@check.checkPermissions({'TENANT_ADMIN','CUSTOMER_USER'},{'api:yt:data_component:add:post'})") 57 + @PreAuthorize(
  58 + "@check.checkPermissions({'TENANT_ADMIN','CUSTOMER_USER'},{'api:yt:data_component:add:post'})")
56 public ResponseResult<DataComponentDTO> save( 59 public ResponseResult<DataComponentDTO> save(
57 @PathVariable("boardId") String boardId, 60 @PathVariable("boardId") String boardId,
58 @RequestBody @Validated(AddGroup.class) DataComponentDTO dataComponent) 61 @RequestBody @Validated(AddGroup.class) DataComponentDTO dataComponent)
@@ -75,7 +78,8 @@ public class YtDataComponentController extends BaseController { @@ -75,7 +78,8 @@ public class YtDataComponentController extends BaseController {
75 78
76 @PostMapping("/{boardId}/update") 79 @PostMapping("/{boardId}/update")
77 @ApiOperation(value = "编辑组件") 80 @ApiOperation(value = "编辑组件")
78 - @PreAuthorize("@check.checkPermissions({'TENANT_ADMIN','CUSTOMER_USER'},{'api:yt:data_component:update:update'})") 81 + @PreAuthorize(
  82 + "@check.checkPermissions({'TENANT_ADMIN','CUSTOMER_USER'},{'api:yt:data_component:update:update'})")
79 public ResponseResult<DataComponentDTO> update( 83 public ResponseResult<DataComponentDTO> update(
80 @PathVariable("boardId") String boardId, 84 @PathVariable("boardId") String boardId,
81 @RequestBody @Validated(UpdateGroup.class) DataComponentDTO dataComponent) 85 @RequestBody @Validated(UpdateGroup.class) DataComponentDTO dataComponent)
@@ -89,13 +93,33 @@ public class YtDataComponentController extends BaseController { @@ -89,13 +93,33 @@ public class YtDataComponentController extends BaseController {
89 return saveOrUpdate(dataComponent); 93 return saveOrUpdate(dataComponent);
90 } 94 }
91 95
92 - @DeleteMapping 96 + @DeleteMapping("/{dataBoardId}")
93 @ApiOperation(value = "删除数据组件") 97 @ApiOperation(value = "删除数据组件")
94 - @PreAuthorize("@check.checkPermissions({'TENANT_ADMIN','CUSTOMER_USER'},{'api:yt:data_component:delete'})") 98 + @PreAuthorize(
  99 + "@check.checkPermissions({'TENANT_ADMIN','CUSTOMER_USER'},{'api:yt:data_component:delete'})")
95 public ResponseResult<Boolean> deleteDataBoard( 100 public ResponseResult<Boolean> deleteDataBoard(
96 - @Validated(DeleteGroup.class) @RequestBody DeleteDTO deleteDTO) throws ThingsboardException {  
97 - deleteDTO.setTenantId(getCurrentUser().getCurrentTenantId());  
98 - return ResponseResult.success(ytDataComponentService.deleteDataComponent(deleteDTO)); 101 + @PathVariable("dataBoardId") String dataBoardId,
  102 + @Validated(DeleteGroup.class) @RequestBody DeleteDTO deleteDTO)
  103 + throws ThingsboardException {
  104 + String tenantId = getCurrentUser().getCurrentTenantId();
  105 + deleteDTO.setTenantId(tenantId);
  106 + int deleteNum = ytDataComponentService.deleteDataComponent(deleteDTO);
  107 +
  108 + int zero = FastIotConstants.MagicNumber.ZERO;
  109 + boolean result = deleteNum > zero;
  110 + if (result) {
  111 + DataBoardDTO dataBoardDTO = ytDataBoardService.findDataBoardInfoById(dataBoardId, tenantId);
  112 + if (null != dataBoardDTO) {
  113 + int count =
  114 + dataBoardDTO.getComponentNum() != null
  115 + ? dataBoardDTO.getComponentNum() - deleteNum < zero
  116 + ? zero
  117 + : dataBoardDTO.getComponentNum() - deleteNum
  118 + : zero;
  119 + ytDataBoardService.updateDataBoardComponentNum(dataBoardId, tenantId, count);
  120 + }
  121 + }
  122 + return ResponseResult.success(result);
99 } 123 }
100 124
101 private ResponseResult<DataComponentDTO> saveOrUpdate(DataComponentDTO dataComponent) 125 private ResponseResult<DataComponentDTO> saveOrUpdate(DataComponentDTO dataComponent)
@@ -123,4 +123,9 @@ public class YtDataBoardServiceImpl extends AbstractBaseService<DataBoardMapper, @@ -123,4 +123,9 @@ public class YtDataBoardServiceImpl extends AbstractBaseService<DataBoardMapper,
123 }) 123 })
124 .orElse(null); 124 .orElse(null);
125 } 125 }
  126 +
  127 + @Override
  128 + public boolean updateDataBoardComponentNum(String id, String tenantId, int count) {
  129 + return baseMapper.updateDataBoardComponentNum(id, tenantId, count);
  130 + }
126 } 131 }
@@ -5,7 +5,6 @@ import com.fasterxml.jackson.databind.JsonNode; @@ -5,7 +5,6 @@ import com.fasterxml.jackson.databind.JsonNode;
5 import org.apache.commons.lang3.StringUtils; 5 import org.apache.commons.lang3.StringUtils;
6 import org.springframework.stereotype.Service; 6 import org.springframework.stereotype.Service;
7 import org.springframework.transaction.annotation.Transactional; 7 import org.springframework.transaction.annotation.Transactional;
8 -import org.thingsboard.server.common.data.yunteng.constant.FastIotConstants;  
9 import org.thingsboard.server.common.data.yunteng.core.exception.YtDataValidationException; 8 import org.thingsboard.server.common.data.yunteng.core.exception.YtDataValidationException;
10 import org.thingsboard.server.common.data.yunteng.core.message.ErrorMessage; 9 import org.thingsboard.server.common.data.yunteng.core.message.ErrorMessage;
11 import org.thingsboard.server.common.data.yunteng.dto.DataComponentDTO; 10 import org.thingsboard.server.common.data.yunteng.dto.DataComponentDTO;
@@ -80,11 +79,10 @@ public class YtDataComponentServiceImpl @@ -80,11 +79,10 @@ public class YtDataComponentServiceImpl
80 79
81 @Override 80 @Override
82 @Transactional 81 @Transactional
83 - public boolean deleteDataComponent(DeleteDTO deleteDTO) { 82 + public int deleteDataComponent(DeleteDTO deleteDTO) {
84 return baseMapper.delete( 83 return baseMapper.delete(
85 new LambdaQueryWrapper<DataComponent>() 84 new LambdaQueryWrapper<DataComponent>()
86 .eq(DataComponent::getTenantId, deleteDTO.getTenantId()) 85 .eq(DataComponent::getTenantId, deleteDTO.getTenantId())
87 - .in(DataComponent::getId, deleteDTO.getIds()))  
88 - > FastIotConstants.MagicNumber.ZERO; 86 + .in(DataComponent::getId, deleteDTO.getIds()));
89 } 87 }
90 } 88 }
@@ -2,8 +2,11 @@ package org.thingsboard.server.dao.yunteng.mapper; @@ -2,8 +2,11 @@ package org.thingsboard.server.dao.yunteng.mapper;
2 2
3 import com.baomidou.mybatisplus.core.mapper.BaseMapper; 3 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
4 import org.apache.ibatis.annotations.Mapper; 4 import org.apache.ibatis.annotations.Mapper;
  5 +import org.apache.ibatis.annotations.Param;
5 import org.thingsboard.server.dao.yunteng.entities.DataBoard; 6 import org.thingsboard.server.dao.yunteng.entities.DataBoard;
6 7
7 @Mapper 8 @Mapper
8 public interface DataBoardMapper extends BaseMapper<DataBoard> { 9 public interface DataBoardMapper extends BaseMapper<DataBoard> {
  10 + boolean updateDataBoardComponentNum(
  11 + @Param("id") String id, @Param("tenantId") String tenantId, @Param("count") int count);
9 } 12 }
@@ -47,4 +47,13 @@ public interface YtDataBoardService { @@ -47,4 +47,13 @@ public interface YtDataBoardService {
47 * @return 看板信息 47 * @return 看板信息
48 */ 48 */
49 DataBoardDTO findDataBoardInfoById(String id,String tenantId); 49 DataBoardDTO findDataBoardInfoById(String id,String tenantId);
  50 +
  51 + /**
  52 + * 跟新数据看板的组件数量
  53 + * @param id 看板id
  54 + * @param tenantId 租户ID
  55 + * @param count 更新值
  56 + * @return false失败 true成功
  57 + */
  58 + boolean updateDataBoardComponentNum(String id,String tenantId,int count);
50 } 59 }
@@ -26,5 +26,5 @@ public interface YtDataComponentService { @@ -26,5 +26,5 @@ public interface YtDataComponentService {
26 * 26 *
27 * @param deleteDTO 删除IDS 27 * @param deleteDTO 删除IDS
28 */ 28 */
29 - boolean deleteDataComponent(DeleteDTO deleteDTO); 29 + int deleteDataComponent(DeleteDTO deleteDTO);
30 } 30 }
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  3 +
  4 +<mapper namespace="org.thingsboard.server.dao.yunteng.mapper.DataBoardMapper">
  5 + <resultMap type="org.thingsboard.server.common.data.yunteng.dto.DataBoardDTO" id="boardMap">
  6 + <result property="id" column="id"/>
  7 + <result property="name" column="name"/>
  8 + <result property="tenantId" column="tenant_id"/>
  9 + <result property="componentNum" column="component_num"/>
  10 + <result property="createTime" column="create_time"/>
  11 + <result property="updateTime" column="update_time"/>
  12 + <result property="creator" column="creator"/>
  13 + <result property="updater" column="updater"/>
  14 + <result property="remark" column="remark"/>
  15 + </resultMap>
  16 + <update id="updateDataBoardComponentNum">
  17 + UPDATE iotfs_data_board
  18 + SET component_num =#{count}
  19 + <where>
  20 + id = #{id}
  21 + AND tenant_id = #{tenantId}
  22 + </where>
  23 + </update>
  24 +</mapper>