Commit 484766955eda53e54e8718a8de507ac9abc48364

Authored by 云中非
1 parent 2e3350f2

fix: 场景联动只有创建者可以删除

@@ -97,7 +97,7 @@ public class YtSceneLinkageController extends BaseController { @@ -97,7 +97,7 @@ public class YtSceneLinkageController extends BaseController {
97 public void delete(@Validated({DeleteGroup.class}) @RequestBody DeleteDTO deleteDTO) 97 public void delete(@Validated({DeleteGroup.class}) @RequestBody DeleteDTO deleteDTO)
98 throws ThingsboardException { 98 throws ThingsboardException {
99 sceneLinkageService.deleteSceneLinkage( 99 sceneLinkageService.deleteSceneLinkage(
100 - deleteDTO.getIds(), getCurrentUser().getCurrentTenantId()); 100 + deleteDTO.getIds(), getCurrentUser().getCurrentTenantId(),getCurrentUser().getCurrentUserId());
101 } 101 }
102 102
103 103
@@ -91,7 +91,18 @@ public class SceneLinkageServiceImpl extends AbstractBaseService<SceneLinkageMap @@ -91,7 +91,18 @@ public class SceneLinkageServiceImpl extends AbstractBaseService<SceneLinkageMap
91 * @param ids 删除的ids 91 * @param ids 删除的ids
92 */ 92 */
93 @Override 93 @Override
94 - public void deleteSceneLinkage(Set<String> ids, String tenantId) { 94 + @Transactional
  95 + public void deleteSceneLinkage(Set<String> ids, String tenantId,String currentUserId) {
  96 + LambdaQueryWrapper<SceneLinkage> Wrapper =
  97 + new QueryWrapper<SceneLinkage>()
  98 + .lambda()
  99 + .eq(SceneLinkage::getTenantId, tenantId)
  100 + .eq(SceneLinkage::getCreator,currentUserId)
  101 + .in(SceneLinkage::getId, ids);
  102 + int result = sceneLinkageMapper.delete(Wrapper);
  103 + if(result != ids.size()){
  104 + throw new YtDataValidationException("存在非当前用户创建的场景联动");
  105 + }
95 // 删除场景,一并删除数据库触发器,执行条件,执行动作的数据 106 // 删除场景,一并删除数据库触发器,执行条件,执行动作的数据
96 triggerMapper.delete( 107 triggerMapper.delete(
97 new LambdaQueryWrapper<Trigger>() 108 new LambdaQueryWrapper<Trigger>()
@@ -105,12 +116,6 @@ public class SceneLinkageServiceImpl extends AbstractBaseService<SceneLinkageMap @@ -105,12 +116,6 @@ public class SceneLinkageServiceImpl extends AbstractBaseService<SceneLinkageMap
105 new LambdaQueryWrapper<DoAction>() 116 new LambdaQueryWrapper<DoAction>()
106 .eq(DoAction::getTenantId, tenantId) 117 .eq(DoAction::getTenantId, tenantId)
107 .in(DoAction::getSceneLinkageId, ids)); 118 .in(DoAction::getSceneLinkageId, ids));
108 - LambdaQueryWrapper<SceneLinkage> Wrapper =  
109 - new QueryWrapper<SceneLinkage>()  
110 - .lambda()  
111 - .eq(SceneLinkage::getTenantId, tenantId)  
112 - .in(SceneLinkage::getId, ids);  
113 - sceneLinkageMapper.delete(Wrapper);  
114 } 119 }
115 120
116 /** 121 /**
@@ -31,7 +31,7 @@ public interface SceneLinkageService extends BaseService<SceneLinkage>{ @@ -31,7 +31,7 @@ public interface SceneLinkageService extends BaseService<SceneLinkage>{
31 * @param ids 31 * @param ids
32 * @return 32 * @return
33 */ 33 */
34 - void deleteSceneLinkage(Set<String> ids,String tenantId); 34 + void deleteSceneLinkage(Set<String> ids,String tenantId,String currentUserId);
35 35
36 /** 36 /**
37 * 修改场景联动 37 * 修改场景联动