Commit 6c24e4f643dfc4febe49e6beffd008f18a143caf

Authored by 黄 x
1 parent de148a4e

fix: delete data component and update data board component_num

@@ -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;
@@ -28,7 +29,7 @@ import java.util.List; @@ -28,7 +29,7 @@ import java.util.List;
28 29
29 @RestController 30 @RestController
30 @RequiredArgsConstructor 31 @RequiredArgsConstructor
31 -@PreAuthorize("hasAnyAuthority('TENANT_ADMIN','CUSTOMER_USER')") 32 +@PreAuthorize("@check.checkPermissions({'TENANT_ADMIN','CUSTOMER_USER'},{})")
32 @RequestMapping("api/yt/data_component") 33 @RequestMapping("api/yt/data_component")
33 @Api(tags = {"数据组件"}) 34 @Api(tags = {"数据组件"})
34 public class YtDataComponentController extends BaseController { 35 public class YtDataComponentController extends BaseController {
@@ -37,6 +38,8 @@ public class YtDataComponentController extends BaseController { @@ -37,6 +38,8 @@ public class YtDataComponentController extends BaseController {
37 38
38 @GetMapping("/{boardId}") 39 @GetMapping("/{boardId}")
39 @ApiOperation(value = "查询看板下的所有组件信息") 40 @ApiOperation(value = "查询看板下的所有组件信息")
  41 + @PreAuthorize(
  42 + "@check.checkPermissions({'TENANT_ADMIN','CUSTOMER_USER'},{'api:yt:data_component:list'})")
40 public ResponseResult<MoreDataComponentInfoDTO> getDataComponentsByBoardId( 43 public ResponseResult<MoreDataComponentInfoDTO> getDataComponentsByBoardId(
41 @PathVariable("boardId") String boardId) throws ThingsboardException { 44 @PathVariable("boardId") String boardId) throws ThingsboardException {
42 DataBoardDTO dataBoardDTO = checkDataBoardInfo(boardId); 45 DataBoardDTO dataBoardDTO = checkDataBoardInfo(boardId);
@@ -51,6 +54,8 @@ public class YtDataComponentController extends BaseController { @@ -51,6 +54,8 @@ public class YtDataComponentController extends BaseController {
51 54
52 @PostMapping("/{boardId}/add") 55 @PostMapping("/{boardId}/add")
53 @ApiOperation(value = "新增组件") 56 @ApiOperation(value = "新增组件")
  57 + @PreAuthorize(
  58 + "@check.checkPermissions({'TENANT_ADMIN','CUSTOMER_USER'},{'api:yt:data_component:add:post'})")
54 public ResponseResult<DataComponentDTO> save( 59 public ResponseResult<DataComponentDTO> save(
55 @PathVariable("boardId") String boardId, 60 @PathVariable("boardId") String boardId,
56 @RequestBody @Validated(AddGroup.class) DataComponentDTO dataComponent) 61 @RequestBody @Validated(AddGroup.class) DataComponentDTO dataComponent)
@@ -73,6 +78,8 @@ public class YtDataComponentController extends BaseController { @@ -73,6 +78,8 @@ public class YtDataComponentController extends BaseController {
73 78
74 @PostMapping("/{boardId}/update") 79 @PostMapping("/{boardId}/update")
75 @ApiOperation(value = "编辑组件") 80 @ApiOperation(value = "编辑组件")
  81 + @PreAuthorize(
  82 + "@check.checkPermissions({'TENANT_ADMIN','CUSTOMER_USER'},{'api:yt:data_component:update:update'})")
76 public ResponseResult<DataComponentDTO> update( 83 public ResponseResult<DataComponentDTO> update(
77 @PathVariable("boardId") String boardId, 84 @PathVariable("boardId") String boardId,
78 @RequestBody @Validated(UpdateGroup.class) DataComponentDTO dataComponent) 85 @RequestBody @Validated(UpdateGroup.class) DataComponentDTO dataComponent)
@@ -86,12 +93,33 @@ public class YtDataComponentController extends BaseController { @@ -86,12 +93,33 @@ public class YtDataComponentController extends BaseController {
86 return saveOrUpdate(dataComponent); 93 return saveOrUpdate(dataComponent);
87 } 94 }
88 95
89 - @DeleteMapping 96 + @DeleteMapping("/{dataBoardId}")
90 @ApiOperation(value = "删除数据组件") 97 @ApiOperation(value = "删除数据组件")
  98 + @PreAuthorize(
  99 + "@check.checkPermissions({'TENANT_ADMIN','CUSTOMER_USER'},{'api:yt:data_component:delete'})")
91 public ResponseResult<Boolean> deleteDataBoard( 100 public ResponseResult<Boolean> deleteDataBoard(
92 - @Validated(DeleteGroup.class) @RequestBody DeleteDTO deleteDTO) throws ThingsboardException {  
93 - deleteDTO.setTenantId(getCurrentUser().getCurrentTenantId());  
94 - 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);
95 } 123 }
96 124
97 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>