Commit 2656cba37d264afa68c18b0c134f0f66a766a4ff
1 parent
0d17f3aa
fix: 修改告警联系人分页查询BUG【客户查询只能查询他拥有的组织告警联系人】
Showing
3 changed files
with
76 additions
and
68 deletions
... | ... | @@ -78,7 +78,11 @@ public class YtAlarmContactController extends BaseController { |
78 | 78 | queryMap.put("organizationId", organizationId); |
79 | 79 | } |
80 | 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 | 88 | @ApiOperation(value = "删除") | ... | ... |
... | ... | @@ -16,7 +16,9 @@ import org.thingsboard.server.common.data.yunteng.utils.tools.YtPageData; |
16 | 16 | import org.thingsboard.server.dao.yunteng.entities.AlarmContact; |
17 | 17 | import org.thingsboard.server.dao.yunteng.mapper.AlarmContactMapper; |
18 | 18 | import org.thingsboard.server.dao.yunteng.mapper.OrganizationMapper; |
19 | +import org.thingsboard.server.dao.yunteng.mapper.UserOrganizationMappingMapper; | |
19 | 20 | import org.thingsboard.server.dao.yunteng.service.AbstractBaseService; |
21 | +import org.thingsboard.server.dao.yunteng.service.UserOrganizationMappingService; | |
20 | 22 | import org.thingsboard.server.dao.yunteng.service.YtAlarmContactService; |
21 | 23 | |
22 | 24 | import java.util.ArrayList; |
... | ... | @@ -33,6 +35,8 @@ public class YtAlarmContactServiceImpl extends AbstractBaseService<AlarmContactM |
33 | 35 | private final AlarmContactMapper alarmContactMapper; |
34 | 36 | |
35 | 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 | 44 | * @return List |
41 | 45 | */ |
42 | 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 | 49 | List<AlarmContact> list = |
46 | 50 | alarmContactMapper.selectList( |
... | ... | @@ -63,7 +67,7 @@ public class YtAlarmContactServiceImpl extends AbstractBaseService<AlarmContactM |
63 | 67 | /** |
64 | 68 | * 新增租户 |
65 | 69 | * |
66 | - * @param tenantId 租户编码 | |
70 | + * @param tenantId 租户编码 | |
67 | 71 | * @return alarmContactDTO |
68 | 72 | */ |
69 | 73 | private LambdaQueryWrapper<AlarmContact> tenantWapper(String tenantId) { |
... | ... | @@ -72,7 +76,7 @@ public class YtAlarmContactServiceImpl extends AbstractBaseService<AlarmContactM |
72 | 76 | |
73 | 77 | @Override |
74 | 78 | @Transactional |
75 | - public AlarmContactDTO saveAlarmContact(String tenantId,AlarmContactDTO alarmContactDTO) { | |
79 | + public AlarmContactDTO saveAlarmContact(String tenantId, AlarmContactDTO alarmContactDTO) { | |
76 | 80 | LambdaQueryWrapper<AlarmContact> Wrapper = |
77 | 81 | tenantWapper(tenantId).eq(AlarmContact::getUsername, alarmContactDTO.getUsername()); |
78 | 82 | int Count = baseMapper.selectCount(Wrapper); |
... | ... | @@ -131,25 +135,32 @@ public class YtAlarmContactServiceImpl extends AbstractBaseService<AlarmContactM |
131 | 135 | * @return PageData |
132 | 136 | */ |
133 | 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 | 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 | 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 | 164 | return getPageData(pageDto, AlarmContactDTO.class); |
154 | 165 | } |
155 | 166 | } | ... | ... |
... | ... | @@ -7,53 +7,46 @@ import org.thingsboard.server.dao.yunteng.entities.AlarmContact; |
7 | 7 | import java.util.List; |
8 | 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 | } | ... | ... |