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 12 import org.thingsboard.server.common.data.yunteng.common.AddGroup;
13 13 import org.thingsboard.server.common.data.yunteng.common.DeleteGroup;
14 14 import org.thingsboard.server.common.data.yunteng.common.UpdateGroup;
  15 +import org.thingsboard.server.common.data.yunteng.constant.FastIotConstants;
15 16 import org.thingsboard.server.common.data.yunteng.core.exception.YtDataValidationException;
16 17 import org.thingsboard.server.common.data.yunteng.core.message.ErrorMessage;
17 18 import org.thingsboard.server.common.data.yunteng.dto.DataBoardDTO;
... ... @@ -37,7 +38,8 @@ public class YtDataComponentController extends BaseController {
37 38
38 39 @GetMapping("/{boardId}")
39 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 43 public ResponseResult<MoreDataComponentInfoDTO> getDataComponentsByBoardId(
42 44 @PathVariable("boardId") String boardId) throws ThingsboardException {
43 45 DataBoardDTO dataBoardDTO = checkDataBoardInfo(boardId);
... ... @@ -52,7 +54,8 @@ public class YtDataComponentController extends BaseController {
52 54
53 55 @PostMapping("/{boardId}/add")
54 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 59 public ResponseResult<DataComponentDTO> save(
57 60 @PathVariable("boardId") String boardId,
58 61 @RequestBody @Validated(AddGroup.class) DataComponentDTO dataComponent)
... ... @@ -75,7 +78,8 @@ public class YtDataComponentController extends BaseController {
75 78
76 79 @PostMapping("/{boardId}/update")
77 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 83 public ResponseResult<DataComponentDTO> update(
80 84 @PathVariable("boardId") String boardId,
81 85 @RequestBody @Validated(UpdateGroup.class) DataComponentDTO dataComponent)
... ... @@ -89,13 +93,33 @@ public class YtDataComponentController extends BaseController {
89 93 return saveOrUpdate(dataComponent);
90 94 }
91 95
92   - @DeleteMapping
  96 + @DeleteMapping("/{dataBoardId}")
93 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 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 125 private ResponseResult<DataComponentDTO> saveOrUpdate(DataComponentDTO dataComponent)
... ...
... ... @@ -123,4 +123,9 @@ public class YtDataBoardServiceImpl extends AbstractBaseService<DataBoardMapper,
123 123 })
124 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 5 import org.apache.commons.lang3.StringUtils;
6 6 import org.springframework.stereotype.Service;
7 7 import org.springframework.transaction.annotation.Transactional;
8   -import org.thingsboard.server.common.data.yunteng.constant.FastIotConstants;
9 8 import org.thingsboard.server.common.data.yunteng.core.exception.YtDataValidationException;
10 9 import org.thingsboard.server.common.data.yunteng.core.message.ErrorMessage;
11 10 import org.thingsboard.server.common.data.yunteng.dto.DataComponentDTO;
... ... @@ -80,11 +79,10 @@ public class YtDataComponentServiceImpl
80 79
81 80 @Override
82 81 @Transactional
83   - public boolean deleteDataComponent(DeleteDTO deleteDTO) {
  82 + public int deleteDataComponent(DeleteDTO deleteDTO) {
84 83 return baseMapper.delete(
85 84 new LambdaQueryWrapper<DataComponent>()
86 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 2
3 3 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
4 4 import org.apache.ibatis.annotations.Mapper;
  5 +import org.apache.ibatis.annotations.Param;
5 6 import org.thingsboard.server.dao.yunteng.entities.DataBoard;
6 7
7 8 @Mapper
8 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 47 * @return 看板信息
48 48 */
49 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 26 *
27 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>
... ...