Commit 484766955eda53e54e8718a8de507ac9abc48364

Authored by 云中非
1 parent 2e3350f2

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

... ... @@ -97,7 +97,7 @@ public class YtSceneLinkageController extends BaseController {
97 97 public void delete(@Validated({DeleteGroup.class}) @RequestBody DeleteDTO deleteDTO)
98 98 throws ThingsboardException {
99 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 91 * @param ids 删除的ids
92 92 */
93 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 107 triggerMapper.delete(
97 108 new LambdaQueryWrapper<Trigger>()
... ... @@ -105,12 +116,6 @@ public class SceneLinkageServiceImpl extends AbstractBaseService<SceneLinkageMap
105 116 new LambdaQueryWrapper<DoAction>()
106 117 .eq(DoAction::getTenantId, tenantId)
107 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 31 * @param ids
32 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 * 修改场景联动
... ...