Commit 772593bc4ab749fcf1e80f594ea2df43d4a18bc3

Authored by 云中非
2 parents 72468740 c201e6cc

Merge branch 'master' into ljl0224

# Conflicts:
#	dao/src/main/java/org/thingsboard/server/dao/yunteng/impl/SceneLinkageServiceImpl.java
... ... @@ -86,7 +86,8 @@ public class YtSceneLinkageController extends BaseController {
86 86 queryMap.put("status", status);
87 87 queryMap.put("organizationId", organizationId);
88 88 queryMap.put("triggers", triggers);
89   - return sceneLinkageService.page(queryMap, getCurrentUser().getCurrentTenantId());
  89 + queryMap.put("currentUser",getCurrentUser().getCurrentUserId());
  90 + return sceneLinkageService.page(queryMap, getCurrentUser().getCurrentTenantId(),getCurrentUser().isCustomerUser());
90 91 }
91 92
92 93 @ApiOperation(value = "删除")
... ...
... ... @@ -43,6 +43,9 @@ public class SceneLinkageServiceImpl extends AbstractBaseService<SceneLinkageMap
43 43 private final DoConditionService doConditionService;
44 44 private final DoActionService doActionService;
45 45 private final UserMapper userMapper;
  46 + private final ConvertConfigMapper ruleEngineMapper;
  47 + private final ConvertConfigService ruleEngineService;
  48 + private final UserOrganizationMappingService userOrganizationMappingService;
46 49 /**
47 50 * 增加场景联动,触发器可以多个,执行条件可以多个,执行动作可以多个
48 51 *
... ... @@ -277,27 +280,18 @@ public class SceneLinkageServiceImpl extends AbstractBaseService<SceneLinkageMap
277 280 * @return SceneLinkageDTO 场景对象
278 281 */
279 282 @Override
280   - @Transactional
281   - public YtPageData<SceneLinkageDTO> page(Map<String, Object> queryMap, String tenantId) {
  283 + public YtPageData<SceneLinkageDTO> page(Map<String, Object> queryMap, String tenantId,boolean isCustomerUser) {
282 284 queryMap.put("tenantId", tenantId);
283 285 // 拿到传入的组织id
284 286 String organizationId = (String) queryMap.get("organizationId");
285 287 // 不为空
286 288 if (null != organizationId && !StringUtils.isEmpty(organizationId)) {
287   - // 新建组织集合
288   - List<String> organizationIds = new ArrayList<>();
289   - // 添加拿到的组织
290   - organizationIds.add(organizationId);
291   - // 查询该组织的所有子类
292   - List<OrganizationDTO> organizationDTOS =
293   - organizationMapper.findOrganizationTreeList(tenantId, organizationIds);
294   - // 遍历组织id
295   - List<String> queryOrganizationIds = new ArrayList<>();
296   - organizationDTOS.forEach(
297   - item -> {
298   - queryOrganizationIds.add(item.getId());
299   - });
300   - queryMap.put("organizationIds", queryOrganizationIds);
  289 + queryMap.put("organizationIds", getQueryOrganizationIds(tenantId,Arrays.asList(organizationId)));
  290 + }
  291 + if(null == organizationId && isCustomerUser){
  292 + String currentUserId = (String) queryMap.get("currentUser");
  293 + List<String> ids = userOrganizationMappingService.getOrganizationIdsByUserId(currentUserId);
  294 + queryMap.put("organizationIds", getQueryOrganizationIds(tenantId,ids));
301 295 }
302 296 IPage<SceneLinkage> page = getPage(queryMap, FastIotConstants.DefaultOrder.CREATE_TIME, false);
303 297 IPage<SceneLinkageDTO> scenePage = baseMapper.getScenePage(page, queryMap);
... ... @@ -441,5 +435,15 @@ public class SceneLinkageServiceImpl extends AbstractBaseService<SceneLinkageMap
441 435
442 436 return JacksonUtil.convertValue(engineConfig, JsonNode.class);
443 437 }
444   -
  438 + private List<String> getQueryOrganizationIds(String tenantId,List<String> organizationIds){
  439 + // 查询该组织的所有子类
  440 + List<OrganizationDTO> organizationDTOS =
  441 + organizationMapper.findOrganizationTreeList(tenantId, organizationIds);
  442 + // 遍历组织id
  443 + List<String> queryOrganizationIds = new ArrayList<>();
  444 + organizationDTOS.forEach(item -> queryOrganizationIds.add(item.getId()));
  445 + Set<String> set = new HashSet<>();
  446 + set.addAll(queryOrganizationIds);
  447 + return new ArrayList<>(set);
  448 + }
445 449 }
... ...
... ... @@ -38,10 +38,12 @@ public interface SceneLinkageService extends BaseService<SceneLinkage>{
38 38
39 39 /**
40 40 * 分页查询
41   - * @param queryMap
  41 + * @param queryMap 查询条件
  42 + * @param tenantId 租户ID
  43 + * @param isCustomerUser true是客户 false不是
42 44 * @return
43 45 */
44   - YtPageData<SceneLinkageDTO> page(Map<String, Object> queryMap, String tenantId);
  46 + YtPageData<SceneLinkageDTO> page(Map<String, Object> queryMap, String tenantId,boolean isCustomerUser);
45 47
46 48 /**
47 49 * 查找场景联动所有数据
... ...
... ... @@ -36,7 +36,7 @@
36 36 <if test="queryMap.status !=null">
37 37 AND s.status = #{queryMap.status}
38 38 </if>
39   - <if test="queryMap.organizationId !=null">
  39 + <if test="queryMap.organizationIds !=null">
40 40 AND s.organization_id IN
41 41 <foreach collection="queryMap.organizationIds" item="organizationId" open="(" separator="," close=")">
42 42 #{organizationId}
... ...