Commit 2656cba37d264afa68c18b0c134f0f66a766a4ff

Authored by 黄 x
1 parent 0d17f3aa

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

... ... @@ -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 }
... ...