Commit e0d969d3cfb80e59aeffa346a36b2a6cd3584fdc

Authored by 云中非
1 parent a7720348

fix: 场景联动编辑时校验设备有效性问题修复

@@ -47,7 +47,7 @@ public class YtSceneLinkageController extends BaseController { @@ -47,7 +47,7 @@ public class YtSceneLinkageController extends BaseController {
47 throws ThingsboardException { 47 throws ThingsboardException {
48 SceneLinkageDTO newSceneLinkageDTO = 48 SceneLinkageDTO newSceneLinkageDTO =
49 sceneLinkageService.saveSceneLinkage( 49 sceneLinkageService.saveSceneLinkage(
50 - sceneLinkageDTO, getCurrentUser().getCurrentTenantId()); 50 + sceneLinkageDTO, getCurrentUser().getCurrentTenantId(),getCurrentUser().isPtTenantAdmin(), getCurrentUser().getCurrentUserId());
51 return Optional.ofNullable(newSceneLinkageDTO) 51 return Optional.ofNullable(newSceneLinkageDTO)
52 .map( 52 .map(
53 dto -> { 53 dto -> {
@@ -66,7 +66,7 @@ public class YtSceneLinkageController extends BaseController { @@ -66,7 +66,7 @@ public class YtSceneLinkageController extends BaseController {
66 public void updateSceneLinkage( 66 public void updateSceneLinkage(
67 @Validated(UpdateGroup.class) @RequestBody SceneLinkageDTO sceneLinkageDTO) 67 @Validated(UpdateGroup.class) @RequestBody SceneLinkageDTO sceneLinkageDTO)
68 throws ThingsboardException { 68 throws ThingsboardException {
69 - sceneLinkageService.updateSceneLinkage(sceneLinkageDTO, getCurrentUser().getCurrentTenantId()); 69 + sceneLinkageService.updateSceneLinkage(sceneLinkageDTO, getCurrentUser().getCurrentTenantId(),getCurrentUser().isPtTenantAdmin(), getCurrentUser().getCurrentUserId());
70 } 70 }
71 71
72 @ApiOperation("查询(分页列表)") 72 @ApiOperation("查询(分页列表)")
@@ -98,16 +98,7 @@ public class YtSceneLinkageController extends BaseController { @@ -98,16 +98,7 @@ public class YtSceneLinkageController extends BaseController {
98 deleteDTO.getIds(), getCurrentUser().getCurrentTenantId()); 98 deleteDTO.getIds(), getCurrentUser().getCurrentTenantId());
99 } 99 }
100 100
101 - @ApiOperation(value = "启用/禁用")  
102 - @PutMapping("/updateSceneStatus/{sceneLinkageId}/{status}")  
103 - public void updateRoleStatus(  
104 - @PathVariable String sceneLinkageId, @PathVariable("status") int status)  
105 - throws ThingsboardException {  
106 - // TODO: 启动时,验证必填的动作是否为空  
107 101
108 - sceneLinkageService.updateSceneStatus(  
109 - sceneLinkageId, status, getCurrentUser().getCurrentTenantId());  
110 - }  
111 102
112 @ApiOperation(value = "通过场景id获取所属组织的设备集合") 103 @ApiOperation(value = "通过场景id获取所属组织的设备集合")
113 @GetMapping("/device") 104 @GetMapping("/device")
@@ -55,7 +55,7 @@ public class SceneLinkageServiceImpl extends AbstractBaseService<SceneLinkageMap @@ -55,7 +55,7 @@ public class SceneLinkageServiceImpl extends AbstractBaseService<SceneLinkageMap
55 */ 55 */
56 @Override 56 @Override
57 @Transactional 57 @Transactional
58 - public SceneLinkageDTO saveSceneLinkage(SceneLinkageDTO sceneLinkageDTO, String tenantId) { 58 + public SceneLinkageDTO saveSceneLinkage(SceneLinkageDTO sceneLinkageDTO, String tenantId,boolean tenantAdmin,String currentUserId) {
59 sceneLinkageDTO.setTenantId(tenantId); 59 sceneLinkageDTO.setTenantId(tenantId);
60 // 第一步保存场景,获取场景ID 60 // 第一步保存场景,获取场景ID
61 // 场景对象 61 // 场景对象
@@ -67,7 +67,7 @@ public class SceneLinkageServiceImpl extends AbstractBaseService<SceneLinkageMap @@ -67,7 +67,7 @@ public class SceneLinkageServiceImpl extends AbstractBaseService<SceneLinkageMap
67 } 67 }
68 68
69 String organizationId = sceneLinkage.getOrganizationId(); 69 String organizationId = sceneLinkage.getOrganizationId();
70 - List<DeviceDTO> organizationDevices = findDeviceList(organizationId,true,sceneLinkage.getTenantId(),sceneLinkage.getCreator()); 70 + List<DeviceDTO> organizationDevices = findDeviceList(organizationId,tenantAdmin,tenantId,currentUserId);
71 71
72 List<String> tbDeviceIds = new ArrayList<>(); 72 List<String> tbDeviceIds = new ArrayList<>();
73 for (DeviceDTO item : organizationDevices) { 73 for (DeviceDTO item : organizationDevices) {
@@ -118,22 +118,17 @@ public class SceneLinkageServiceImpl extends AbstractBaseService<SceneLinkageMap @@ -118,22 +118,17 @@ public class SceneLinkageServiceImpl extends AbstractBaseService<SceneLinkageMap
118 */ 118 */
119 @Override 119 @Override
120 @Transactional 120 @Transactional
121 - public SceneLinkageDTO updateSceneLinkage(SceneLinkageDTO sceneLinkageDTO, String tenantId) { 121 + public SceneLinkageDTO updateSceneLinkage(SceneLinkageDTO sceneLinkageDTO, String tenantId,boolean tenantAdmin ,String currentUserId) {
122 // 获取场景 122 // 获取场景
123 SceneLinkage sceneLinkage = baseMapper.selectById(sceneLinkageDTO.getId()); 123 SceneLinkage sceneLinkage = baseMapper.selectById(sceneLinkageDTO.getId());
124 if (sceneLinkage == null) { 124 if (sceneLinkage == null) {
125 throw new YtDataValidationException("此场景已不存在"); 125 throw new YtDataValidationException("此场景已不存在");
126 } 126 }
127 String organizationId = sceneLinkage.getOrganizationId(); 127 String organizationId = sceneLinkage.getOrganizationId();
128 - List<YtDevice> organizationDevices =  
129 - deviceMapper.selectList(  
130 - new QueryWrapper<YtDevice>()  
131 - .lambda()  
132 - .eq(YtDevice::getTenantId, sceneLinkage.getTenantId())  
133 - .eq(StringUtils.isNoneBlank(organizationId), YtDevice::getOrganizationId, organizationId)  
134 - ); 128 + List<DeviceDTO> organizationDevices = findDeviceList(organizationId,tenantAdmin,tenantId,currentUserId);
  129 +
135 List<String> tbDeviceIds = new ArrayList<>(); 130 List<String> tbDeviceIds = new ArrayList<>();
136 - for (YtDevice item : organizationDevices) { 131 + for (DeviceDTO item : organizationDevices) {
137 tbDeviceIds.add(item.getTbDeviceId()); 132 tbDeviceIds.add(item.getTbDeviceId());
138 } 133 }
139 134
@@ -15,12 +15,16 @@ import java.util.Set; @@ -15,12 +15,16 @@ import java.util.Set;
15 * @Date 2021/11/25 11:19 15 * @Date 2021/11/25 11:19
16 */ 16 */
17 public interface SceneLinkageService extends BaseService<SceneLinkage>{ 17 public interface SceneLinkageService extends BaseService<SceneLinkage>{
  18 +
18 /** 19 /**
19 - * 新增场景联动  
20 - * @param sceneLinkageDTO  
21 - * @return 20 + * 新增场景联动
  21 + * @param sceneLinkageDTO 场景联动信息
  22 + * @param tenantId 租户主键
  23 + * @param tenantAdmin 当前用户是否租户管理员
  24 + * @param currentUserId 当前登录用户主键
  25 + * @return sceneLinkageDTO
22 */ 26 */
23 - SceneLinkageDTO saveSceneLinkage(SceneLinkageDTO sceneLinkageDTO, String tenantId); 27 + SceneLinkageDTO saveSceneLinkage(SceneLinkageDTO sceneLinkageDTO, String tenantId,boolean tenantAdmin,String currentUserId);
24 28
25 /** 29 /**
26 * 删除场景联动 30 * 删除场景联动
@@ -31,10 +35,13 @@ public interface SceneLinkageService extends BaseService<SceneLinkage>{ @@ -31,10 +35,13 @@ public interface SceneLinkageService extends BaseService<SceneLinkage>{
31 35
32 /** 36 /**
33 * 修改场景联动 37 * 修改场景联动
34 - * @param sceneLinkageDTO 38 + * @param sceneLinkageDTO 场景联动信息
  39 + * @param tenantId 租户主键
  40 + * @param tenantAdmin 当前用户是否租户管理员
  41 + * @param currentUserId 当前登录用户主键
35 * @return 42 * @return
36 */ 43 */
37 - SceneLinkageDTO updateSceneLinkage(SceneLinkageDTO sceneLinkageDTO,String tenantId); 44 + SceneLinkageDTO updateSceneLinkage(SceneLinkageDTO sceneLinkageDTO,String tenantId,boolean tenantAdmin,String currentUserId);
38 45
39 /** 46 /**
40 * 分页查询 47 * 分页查询