Commit 893ece35437d95930c08d2d15c7f2e4090d4fd3f

Authored by chenjunyu_1481036421
1 parent 7872e33d

fix:openapi部分bug修复

@@ -7,6 +7,7 @@ import org.springframework.security.access.prepost.PreAuthorize; @@ -7,6 +7,7 @@ import org.springframework.security.access.prepost.PreAuthorize;
7 import org.springframework.validation.annotation.Validated; 7 import org.springframework.validation.annotation.Validated;
8 import org.springframework.web.bind.annotation.*; 8 import org.springframework.web.bind.annotation.*;
9 import org.thingsboard.server.common.data.exception.ThingsboardException; 9 import org.thingsboard.server.common.data.exception.ThingsboardException;
  10 +import org.thingsboard.server.common.data.id.EntityId;
10 import org.thingsboard.server.common.data.yunteng.common.AddGroup; 11 import org.thingsboard.server.common.data.yunteng.common.AddGroup;
11 import org.thingsboard.server.common.data.yunteng.common.DeleteGroup; 12 import org.thingsboard.server.common.data.yunteng.common.DeleteGroup;
12 import org.thingsboard.server.common.data.yunteng.common.UpdateGroup; 13 import org.thingsboard.server.common.data.yunteng.common.UpdateGroup;
@@ -21,6 +22,7 @@ import org.thingsboard.server.controller.BaseController; @@ -21,6 +22,7 @@ import org.thingsboard.server.controller.BaseController;
21 import org.thingsboard.server.dao.yunteng.service.OpenApiService; 22 import org.thingsboard.server.dao.yunteng.service.OpenApiService;
22 import org.thingsboard.server.queue.util.TbCoreComponent; 23 import org.thingsboard.server.queue.util.TbCoreComponent;
23 24
  25 +import java.util.ArrayList;
24 import java.util.HashMap; 26 import java.util.HashMap;
25 import java.util.List; 27 import java.util.List;
26 28
@@ -42,14 +44,17 @@ public class TkOpenApiController extends BaseController { @@ -42,14 +44,17 @@ public class TkOpenApiController extends BaseController {
42 @RequestParam(value = "name", required = false) String name, 44 @RequestParam(value = "name", required = false) String name,
43 @RequestParam(value = "classify", required = false) String classify, 45 @RequestParam(value = "classify", required = false) String classify,
44 @RequestParam(value = ORDER_FILED, required = false) String orderBy, 46 @RequestParam(value = ORDER_FILED, required = false) String orderBy,
45 - @RequestParam(value = ORDER_TYPE, required = false) OrderTypeEnum orderType) {  
46 - 47 + @RequestParam(value = ORDER_TYPE, required = false) OrderTypeEnum orderType) throws ThingsboardException {
47 HashMap<String, Object> queryMap = new HashMap<>(); 48 HashMap<String, Object> queryMap = new HashMap<>();
48 queryMap.put(PAGE_SIZE, pageSize); 49 queryMap.put(PAGE_SIZE, pageSize);
49 queryMap.put(PAGE, page); 50 queryMap.put(PAGE, page);
50 queryMap.put(ORDER_FILED, orderBy); 51 queryMap.put(ORDER_FILED, orderBy);
51 queryMap.put("name", name); 52 queryMap.put("name", name);
52 queryMap.put("classify", classify); 53 queryMap.put("classify", classify);
  54 + List<String> tenantIds = new ArrayList<>();
  55 + tenantIds.add(EntityId.NULL_UUID.toString());
  56 + tenantIds.add(getCurrentUser().getTenantId().toString());
  57 + queryMap.put("tenantIds",tenantIds);
53 if (orderType != null) { 58 if (orderType != null) {
54 queryMap.put(ORDER_TYPE, orderType.name()); 59 queryMap.put(ORDER_TYPE, orderType.name());
55 } 60 }
@@ -69,8 +74,8 @@ public class TkOpenApiController extends BaseController { @@ -69,8 +74,8 @@ public class TkOpenApiController extends BaseController {
69 @DeleteMapping 74 @DeleteMapping
70 @PreAuthorize("@check.checkPermissions({'TENANT_ADMIN'},{})") 75 @PreAuthorize("@check.checkPermissions({'TENANT_ADMIN'},{})")
71 public ResponseResult<String> delete( 76 public ResponseResult<String> delete(
72 - @Validated({DeleteGroup.class}) @RequestBody DeleteDTO deleteDTO) {  
73 - return apiService.delete(deleteDTO.getIds()) 77 + @Validated({DeleteGroup.class}) @RequestBody DeleteDTO deleteDTO) throws ThingsboardException {
  78 + return apiService.delete(deleteDTO.getIds(), getCurrentUser().getCurrentTenantId())
74 ? ResponseResult.success(FastIotConstants.StateValue.DELETE_SUCCESS) 79 ? ResponseResult.success(FastIotConstants.StateValue.DELETE_SUCCESS)
75 : ResponseResult.failed(FastIotConstants.StateValue.DELETE_FAILED); 80 : ResponseResult.failed(FastIotConstants.StateValue.DELETE_FAILED);
76 } 81 }
@@ -13,6 +13,7 @@ import org.thingsboard.server.dao.yunteng.entities.TkApplicationApiEntity; @@ -13,6 +13,7 @@ import org.thingsboard.server.dao.yunteng.entities.TkApplicationApiEntity;
13 import org.thingsboard.server.dao.yunteng.entities.TkApplicationEntity; 13 import org.thingsboard.server.dao.yunteng.entities.TkApplicationEntity;
14 import org.thingsboard.server.dao.yunteng.mapper.ApplicationApiMapper; 14 import org.thingsboard.server.dao.yunteng.mapper.ApplicationApiMapper;
15 import org.thingsboard.server.dao.yunteng.mapper.ApplicationMapper; 15 import org.thingsboard.server.dao.yunteng.mapper.ApplicationMapper;
  16 +import org.thingsboard.server.dao.yunteng.mapper.OpenApiRecordMapper;
16 import org.thingsboard.server.dao.yunteng.service.AbstractBaseService; 17 import org.thingsboard.server.dao.yunteng.service.AbstractBaseService;
17 import org.thingsboard.server.dao.yunteng.service.ApplicationService; 18 import org.thingsboard.server.dao.yunteng.service.ApplicationService;
18 19
@@ -30,7 +31,7 @@ public class ApplicationServiceImpl extends AbstractBaseService<ApplicationMappe @@ -30,7 +31,7 @@ public class ApplicationServiceImpl extends AbstractBaseService<ApplicationMappe
30 private static final int KEY_LENGTH = 32; // 32位字符 31 private static final int KEY_LENGTH = 32; // 32位字符
31 private static final SecureRandom secureRandom = new SecureRandom(); 32 private static final SecureRandom secureRandom = new SecureRandom();
32 private static final Base64.Encoder base64Encoder = Base64.getUrlEncoder().withoutPadding(); 33 private static final Base64.Encoder base64Encoder = Base64.getUrlEncoder().withoutPadding();
33 - 34 + private final OpenApiRecordMapper openApiRecordMapper;
34 35
35 @Override 36 @Override
36 public ApplicationDTO getDto(String id) { 37 public ApplicationDTO getDto(String id) {
@@ -90,6 +91,7 @@ public class ApplicationServiceImpl extends AbstractBaseService<ApplicationMappe @@ -90,6 +91,7 @@ public class ApplicationServiceImpl extends AbstractBaseService<ApplicationMappe
90 @Transactional 91 @Transactional
91 public boolean delete(Set<String> applicationIds) { 92 public boolean delete(Set<String> applicationIds) {
92 applicationApiMapper.deleteByAppIds(applicationIds); 93 applicationApiMapper.deleteByAppIds(applicationIds);
  94 + openApiRecordMapper.deleteByAppIds(applicationIds);
93 return baseMapper.deleteBatchIds(applicationIds) > 0; 95 return baseMapper.deleteBatchIds(applicationIds) > 0;
94 } 96 }
95 97
@@ -7,6 +7,7 @@ import lombok.RequiredArgsConstructor; @@ -7,6 +7,7 @@ import lombok.RequiredArgsConstructor;
7 import lombok.extern.slf4j.Slf4j; 7 import lombok.extern.slf4j.Slf4j;
8 import org.springframework.stereotype.Service; 8 import org.springframework.stereotype.Service;
9 import org.springframework.transaction.annotation.Transactional; 9 import org.springframework.transaction.annotation.Transactional;
  10 +import org.thingsboard.server.common.data.yunteng.core.exception.TkDataValidationException;
10 import org.thingsboard.server.common.data.yunteng.dto.DeviceDTO; 11 import org.thingsboard.server.common.data.yunteng.dto.DeviceDTO;
11 import org.thingsboard.server.common.data.yunteng.dto.OpenApiContrlooerDTO; 12 import org.thingsboard.server.common.data.yunteng.dto.OpenApiContrlooerDTO;
12 import org.thingsboard.server.common.data.yunteng.dto.OpenApiDTO; 13 import org.thingsboard.server.common.data.yunteng.dto.OpenApiDTO;
@@ -42,18 +43,22 @@ public class OpenApiImpl extends AbstractBaseService<OpenApiMapper, TkOpenApiEnt @@ -42,18 +43,22 @@ public class OpenApiImpl extends AbstractBaseService<OpenApiMapper, TkOpenApiEnt
42 @Override 43 @Override
43 public TkPageData<OpenApiDTO> page(Map<String, Object> queryMap) { 44 public TkPageData<OpenApiDTO> page(Map<String, Object> queryMap) {
44 IPage<TkOpenApiEntity> iPage = 45 IPage<TkOpenApiEntity> iPage =
45 - baseMapper.selectPage(  
46 - getPage(queryMap, "create_time", false),  
47 - new QueryWrapper<TkOpenApiEntity>()  
48 - .lambda()  
49 - .like(  
50 - queryMap.get("name") != null,  
51 - TkOpenApiEntity::getName,  
52 - String.valueOf(queryMap.get("name")))  
53 - .like(  
54 - queryMap.get("classify") != null,  
55 - TkOpenApiEntity::getClassify,  
56 - String.valueOf(queryMap.get("classify")))); 46 + baseMapper.selectPage(
  47 + getPage(queryMap, "create_time", false),
  48 + new QueryWrapper<TkOpenApiEntity>()
  49 + .lambda()
  50 + .like(
  51 + queryMap.get("name") != null,
  52 + TkOpenApiEntity::getName,
  53 + String.valueOf(queryMap.get("name")))
  54 + .like(
  55 + queryMap.get("classify") != null,
  56 + TkOpenApiEntity::getClassify,
  57 + String.valueOf(queryMap.get("classify")))
  58 + .in(
  59 + queryMap.get("tenantIds") != null,
  60 + TkOpenApiEntity::getTenantId,
  61 + (List<String>)queryMap.get("tenantIds")));
57 return getPageData(iPage, OpenApiDTO.class); 62 return getPageData(iPage, OpenApiDTO.class);
58 } 63 }
59 64
@@ -69,7 +74,14 @@ public class OpenApiImpl extends AbstractBaseService<OpenApiMapper, TkOpenApiEnt @@ -69,7 +74,14 @@ public class OpenApiImpl extends AbstractBaseService<OpenApiMapper, TkOpenApiEnt
69 74
70 @Override 75 @Override
71 @Transactional 76 @Transactional
72 - public boolean delete(Set<String> apiIds) { 77 + public boolean delete(Set<String> apiIds ,String tenantId) {
  78 + List<TkOpenApiEntity> list = baseMapper.selectList(new LambdaQueryWrapper<TkOpenApiEntity>()
  79 + .in(TkOpenApiEntity::getId,apiIds));
  80 + list.stream().forEach(entity ->{
  81 + if(!entity.getTenantId().equals(tenantId)){
  82 + throw new TkDataValidationException("没有权限删除");
  83 + }
  84 + });
73 return baseMapper.deleteBatchIds(apiIds) > 0; 85 return baseMapper.deleteBatchIds(apiIds) > 0;
74 } 86 }
75 87
@@ -77,6 +89,9 @@ public class OpenApiImpl extends AbstractBaseService<OpenApiMapper, TkOpenApiEnt @@ -77,6 +89,9 @@ public class OpenApiImpl extends AbstractBaseService<OpenApiMapper, TkOpenApiEnt
77 @Transactional 89 @Transactional
78 public OpenApiDTO update(OpenApiDTO dto, String tenantId) { 90 public OpenApiDTO update(OpenApiDTO dto, String tenantId) {
79 TkOpenApiEntity openApi = baseMapper.selectById(dto.getId()); 91 TkOpenApiEntity openApi = baseMapper.selectById(dto.getId());
  92 + if(!openApi.getTenantId().equals(tenantId)){
  93 + throw new TkDataValidationException("没有权限删除");
  94 + }
80 dto.copyToEntity(openApi); 95 dto.copyToEntity(openApi);
81 baseMapper.updateById(openApi); 96 baseMapper.updateById(openApi);
82 return dto; 97 return dto;
@@ -7,6 +7,7 @@ import org.thingsboard.server.common.data.yunteng.dto.OpenApiRecordClassifyDTO; @@ -7,6 +7,7 @@ import org.thingsboard.server.common.data.yunteng.dto.OpenApiRecordClassifyDTO;
7 import org.thingsboard.server.common.data.yunteng.dto.OpenApiRecordTopDTO; 7 import org.thingsboard.server.common.data.yunteng.dto.OpenApiRecordTopDTO;
8 import org.thingsboard.server.dao.yunteng.entities.TkOpenApiRecordEntity; 8 import org.thingsboard.server.dao.yunteng.entities.TkOpenApiRecordEntity;
9 9
  10 +import java.util.Collection;
10 import java.util.List; 11 import java.util.List;
11 12
12 @Mapper 13 @Mapper
@@ -16,4 +17,6 @@ public interface OpenApiRecordMapper extends BaseMapper<TkOpenApiRecordEntity> { @@ -16,4 +17,6 @@ public interface OpenApiRecordMapper extends BaseMapper<TkOpenApiRecordEntity> {
16 17
17 List<OpenApiRecordClassifyDTO> getClassify(@Param("tenantId") String tenantId, 18 List<OpenApiRecordClassifyDTO> getClassify(@Param("tenantId") String tenantId,
18 @Param("type") String type); 19 @Param("type") String type);
  20 +
  21 + int deleteByAppIds(@Param("applicationIds") Collection<String> applicationId);
19 } 22 }
@@ -18,7 +18,7 @@ public interface OpenApiService extends BaseService<TkOpenApiEntity>{ @@ -18,7 +18,7 @@ public interface OpenApiService extends BaseService<TkOpenApiEntity>{
18 18
19 OpenApiDTO save(OpenApiDTO dto, String tenantId); 19 OpenApiDTO save(OpenApiDTO dto, String tenantId);
20 20
21 - boolean delete(Set<String> applicationIds); 21 + boolean delete(Set<String> applicationIds, String tenantId);
22 22
23 OpenApiDTO update(OpenApiDTO dto, String tenantId); 23 OpenApiDTO update(OpenApiDTO dto, String tenantId);
24 24
@@ -64,5 +64,11 @@ @@ -64,5 +64,11 @@
64 time_period 64 time_period
65 </select> 65 </select>
66 66
  67 + <delete id="deleteByAppIds">
  68 + DELETE FROM tk_open_api_record WHERE application_id IN
  69 + <foreach collection="applicationIds" item="applicationId" open="(" separator="," close=")">
  70 + #{applicationId}
  71 + </foreach>
  72 + </delete>
67 73
68 </mapper> 74 </mapper>