Commit 2656cba37d264afa68c18b0c134f0f66a766a4ff

Authored by 黄 x
1 parent 0d17f3aa

fix: 修改告警联系人分页查询BUG【客户查询只能查询他拥有的组织告警联系人】

@@ -78,7 +78,11 @@ public class YtAlarmContactController extends BaseController { @@ -78,7 +78,11 @@ public class YtAlarmContactController extends BaseController {
78 queryMap.put("organizationId", organizationId); 78 queryMap.put("organizationId", organizationId);
79 } 79 }
80 queryMap.put(CREATE_TIME, createtime); 80 queryMap.put(CREATE_TIME, createtime);
81 - return alarmService.page(getCurrentUser().getCurrentTenantId(),queryMap); 81 + return alarmService.page(
  82 + getCurrentUser().getCurrentTenantId(),
  83 + getCurrentUser().isPtTenantAdmin(),
  84 + getCurrentUser().getCurrentUserId(),
  85 + queryMap);
82 } 86 }
83 87
84 @ApiOperation(value = "删除") 88 @ApiOperation(value = "删除")
@@ -16,7 +16,9 @@ import org.thingsboard.server.common.data.yunteng.utils.tools.YtPageData; @@ -16,7 +16,9 @@ import org.thingsboard.server.common.data.yunteng.utils.tools.YtPageData;
16 import org.thingsboard.server.dao.yunteng.entities.AlarmContact; 16 import org.thingsboard.server.dao.yunteng.entities.AlarmContact;
17 import org.thingsboard.server.dao.yunteng.mapper.AlarmContactMapper; 17 import org.thingsboard.server.dao.yunteng.mapper.AlarmContactMapper;
18 import org.thingsboard.server.dao.yunteng.mapper.OrganizationMapper; 18 import org.thingsboard.server.dao.yunteng.mapper.OrganizationMapper;
  19 +import org.thingsboard.server.dao.yunteng.mapper.UserOrganizationMappingMapper;
19 import org.thingsboard.server.dao.yunteng.service.AbstractBaseService; 20 import org.thingsboard.server.dao.yunteng.service.AbstractBaseService;
  21 +import org.thingsboard.server.dao.yunteng.service.UserOrganizationMappingService;
20 import org.thingsboard.server.dao.yunteng.service.YtAlarmContactService; 22 import org.thingsboard.server.dao.yunteng.service.YtAlarmContactService;
21 23
22 import java.util.ArrayList; 24 import java.util.ArrayList;
@@ -33,6 +35,8 @@ public class YtAlarmContactServiceImpl extends AbstractBaseService<AlarmContactM @@ -33,6 +35,8 @@ public class YtAlarmContactServiceImpl extends AbstractBaseService<AlarmContactM
33 private final AlarmContactMapper alarmContactMapper; 35 private final AlarmContactMapper alarmContactMapper;
34 36
35 private final OrganizationMapper ytOrganizationMapper; 37 private final OrganizationMapper ytOrganizationMapper;
  38 +
  39 + private final UserOrganizationMappingService userOrganizationMappingService;
36 /** 40 /**
37 * 查询全部的告警联系人 41 * 查询全部的告警联系人
38 * 42 *
@@ -40,7 +44,7 @@ public class YtAlarmContactServiceImpl extends AbstractBaseService<AlarmContactM @@ -40,7 +44,7 @@ public class YtAlarmContactServiceImpl extends AbstractBaseService<AlarmContactM
40 * @return List 44 * @return List
41 */ 45 */
42 @Override 46 @Override
43 - public List<AlarmContactDTO> findAll(String tenantId,Map<String, Object> params) { 47 + public List<AlarmContactDTO> findAll(String tenantId, Map<String, Object> params) {
44 // 查询当前租户 48 // 查询当前租户
45 List<AlarmContact> list = 49 List<AlarmContact> list =
46 alarmContactMapper.selectList( 50 alarmContactMapper.selectList(
@@ -63,7 +67,7 @@ public class YtAlarmContactServiceImpl extends AbstractBaseService<AlarmContactM @@ -63,7 +67,7 @@ public class YtAlarmContactServiceImpl extends AbstractBaseService<AlarmContactM
63 /** 67 /**
64 * 新增租户 68 * 新增租户
65 * 69 *
66 - * @param tenantId 租户编码 70 + * @param tenantId 租户编码
67 * @return alarmContactDTO 71 * @return alarmContactDTO
68 */ 72 */
69 private LambdaQueryWrapper<AlarmContact> tenantWapper(String tenantId) { 73 private LambdaQueryWrapper<AlarmContact> tenantWapper(String tenantId) {
@@ -72,7 +76,7 @@ public class YtAlarmContactServiceImpl extends AbstractBaseService<AlarmContactM @@ -72,7 +76,7 @@ public class YtAlarmContactServiceImpl extends AbstractBaseService<AlarmContactM
72 76
73 @Override 77 @Override
74 @Transactional 78 @Transactional
75 - public AlarmContactDTO saveAlarmContact(String tenantId,AlarmContactDTO alarmContactDTO) { 79 + public AlarmContactDTO saveAlarmContact(String tenantId, AlarmContactDTO alarmContactDTO) {
76 LambdaQueryWrapper<AlarmContact> Wrapper = 80 LambdaQueryWrapper<AlarmContact> Wrapper =
77 tenantWapper(tenantId).eq(AlarmContact::getUsername, alarmContactDTO.getUsername()); 81 tenantWapper(tenantId).eq(AlarmContact::getUsername, alarmContactDTO.getUsername());
78 int Count = baseMapper.selectCount(Wrapper); 82 int Count = baseMapper.selectCount(Wrapper);
@@ -131,25 +135,32 @@ public class YtAlarmContactServiceImpl extends AbstractBaseService<AlarmContactM @@ -131,25 +135,32 @@ public class YtAlarmContactServiceImpl extends AbstractBaseService<AlarmContactM
131 * @return PageData 135 * @return PageData
132 */ 136 */
133 @Override 137 @Override
134 - @Transactional  
135 - public YtPageData<AlarmContactDTO> page(String tenantId,Map<String, Object> queryMap) { 138 + public YtPageData<AlarmContactDTO> page(
  139 + String tenantId,
  140 + boolean isPtTenantAdmin,
  141 + String currentUserId,
  142 + Map<String, Object> queryMap) {
136 // 查询分页,加入条模糊条件查询 143 // 查询分页,加入条模糊条件查询
  144 + String organizationId = (String) queryMap.get("organizationId");
137 queryMap.put("tenantId", tenantId); 145 queryMap.put("tenantId", tenantId);
138 - String organizationId= (String) queryMap.get("organizationId");  
139 - //传入的组织id不为空  
140 - if (!StringUtils.isEmpty(organizationId)){  
141 - List<String> organizationIds= new ArrayList<>();  
142 - organizationIds.add(organizationId);  
143 - //查询该组织的所有子类  
144 - List<OrganizationDTO> organizationDTOS=ytOrganizationMapper.findOrganizationTreeList(tenantId,organizationIds); 146 + if (StringUtils.isNotEmpty(organizationId)) {
  147 + List<String> ids = new ArrayList<>();
  148 + ids.add(organizationId);
  149 + // 查询该组织的所有子类
  150 + List<OrganizationDTO> organizationDTOS =
  151 + ytOrganizationMapper.findOrganizationTreeList(tenantId, ids);
145 List<String> queryOrganizationIds = new ArrayList<>(); 152 List<String> queryOrganizationIds = new ArrayList<>();
146 - organizationDTOS.forEach(item->{  
147 - queryOrganizationIds.add(item.getId());  
148 - });  
149 - queryMap.put("organizationIds",queryOrganizationIds); 153 + organizationDTOS.forEach(item -> queryOrganizationIds.add(item.getId()));
  154 + queryMap.put("organizationIds", queryOrganizationIds);
  155 + } else {
  156 + if (!isPtTenantAdmin) {
  157 + List<String> queryOrganizationIds =
  158 + userOrganizationMappingService.getOrganizationIdsByUserId(currentUserId);
  159 + queryMap.put("organizationIds", queryOrganizationIds);
  160 + }
150 } 161 }
151 - IPage<AlarmContact> page= getPage(queryMap, FastIotConstants.DefaultOrder.CREATE_TIME,false);  
152 - IPage<AlarmContactDTO> pageDto= baseMapper.getAlarmPage(page,queryMap); 162 + IPage<AlarmContact> page = getPage(queryMap, FastIotConstants.DefaultOrder.CREATE_TIME, false);
  163 + IPage<AlarmContactDTO> pageDto = baseMapper.getAlarmPage(page, queryMap);
153 return getPageData(pageDto, AlarmContactDTO.class); 164 return getPageData(pageDto, AlarmContactDTO.class);
154 } 165 }
155 } 166 }
@@ -7,53 +7,46 @@ import org.thingsboard.server.dao.yunteng.entities.AlarmContact; @@ -7,53 +7,46 @@ import org.thingsboard.server.dao.yunteng.entities.AlarmContact;
7 import java.util.List; 7 import java.util.List;
8 import java.util.Map; 8 import java.util.Map;
9 9
10 -  
11 -/**  
12 - * @Description 告警联系人的操作方法  
13 - * @Author cxy  
14 - * @Date 2021/11/2 14:46  
15 - */  
16 -  
17 -public interface YtAlarmContactService extends BaseService<AlarmContact>{  
18 - /**  
19 - * 查询全部的告警联系人  
20 - *  
21 - * @param  
22 - * @return List  
23 - */  
24 - List<AlarmContactDTO> findAll(String tenantId,Map<String,Object> params);  
25 -  
26 - /**  
27 - * 添加告警联系人  
28 - *  
29 - * @param alarmContactDTO 对象  
30 - * @return AlarmContactDTO  
31 - */  
32 - AlarmContactDTO saveAlarmContact(String tenantId,AlarmContactDTO alarmContactDTO);  
33 -  
34 - /**  
35 - * 删除告警联系人  
36 - *  
37 - * @param ids 通过列表id  
38 - * @return i  
39 - */  
40 - boolean delete(String[]ids);  
41 -  
42 -  
43 - /**  
44 - * 修改告警联系人数据  
45 - *  
46 - * @param alarmContactDTO 对象  
47 - * @return Integer  
48 - */  
49 - boolean update(AlarmContactDTO alarmContactDTO);  
50 -  
51 - /**  
52 - * 分页查询  
53 - *  
54 - * @param queryMap 查询集合  
55 - * @return PageData  
56 - */  
57 - YtPageData<AlarmContactDTO> page(String tenantId,Map<String, Object> queryMap);  
58 - 10 +/** @Description 告警联系人的操作方法 @Author cxy @Date 2021/11/2 14:46 */
  11 +public interface YtAlarmContactService extends BaseService<AlarmContact> {
  12 + /**
  13 + * 查询全部的告警联系人
  14 + *
  15 + * @param
  16 + * @return List
  17 + */
  18 + List<AlarmContactDTO> findAll(String tenantId, Map<String, Object> params);
  19 +
  20 + /**
  21 + * 添加告警联系人
  22 + *
  23 + * @param alarmContactDTO 对象
  24 + * @return AlarmContactDTO
  25 + */
  26 + AlarmContactDTO saveAlarmContact(String tenantId, AlarmContactDTO alarmContactDTO);
  27 +
  28 + /**
  29 + * 删除告警联系人
  30 + *
  31 + * @param ids 通过列表id
  32 + * @return i
  33 + */
  34 + boolean delete(String[] ids);
  35 +
  36 + /**
  37 + * 修改告警联系人数据
  38 + *
  39 + * @param alarmContactDTO 对象
  40 + * @return Integer
  41 + */
  42 + boolean update(AlarmContactDTO alarmContactDTO);
  43 +
  44 + /**
  45 + * 分页查询
  46 + *
  47 + * @param queryMap 查询集合
  48 + * @return PageData
  49 + */
  50 + YtPageData<AlarmContactDTO> page(
  51 + String tenantId, boolean isPtTenantAdmin, String currentUserId, Map<String, Object> queryMap);
59 } 52 }