Commit b790166a1cfe1be4fea23cad62fdd2821c4bef3f

Authored by xp.Huang
1 parent 94e1cf7f

feat: 组织下拉列表增加通过组织Id过滤

... ... @@ -60,12 +60,13 @@ public class TkOrganizationController extends BaseController {
60 60
61 61 @GetMapping("/me/list")
62 62 @ApiOperation("下拉列表")
63   - public ResponseEntity getMyOrganizations() throws ThingsboardException {
  63 + public ResponseEntity getMyOrganizations(@RequestParam(required = false,name = "organizationId")String organizationId) throws ThingsboardException {
64 64 List<OrganizationDTO> result = organizationService.getMyOrganizations(
65 65 getCurrentUser().isPtSysadmin(),
66 66 getCurrentUser().isPtTenantAdmin(),
  67 + getCurrentUser().isCustomerUser(),
67 68 getCurrentUser().getCurrentTenantId(),
68   - getCurrentUser().getCurrentUserId());
  69 + getCurrentUser().getCurrentUserId(),organizationId);
69 70 return ResponseEntity.ok(result);
70 71 }
71 72
... ...
... ... @@ -73,7 +73,7 @@ public class TkOrganizationServiceImpl extends AbstractBaseService<OrganizationM
73 73 if (isCustomerOrPlatform) {
74 74 if (StringUtils.isEmpty(organizationDTO.getParentId())) {
75 75 // 获取当前用户的最顶级组织ID的父ID
76   - List<OrganizationDTO> myOrganizations = getMyOrganizations(false, false, tenantId, userId);
  76 + List<OrganizationDTO> myOrganizations = getMyOrganizations(false, false, false,tenantId, userId,null);
77 77 if (null != myOrganizations && myOrganizations.size() > 0) {
78 78 OrganizationDTO organizationDto = myOrganizations.get(0);
79 79 String parentId = organizationDto.getParentId();
... ... @@ -212,10 +212,11 @@ public class TkOrganizationServiceImpl extends AbstractBaseService<OrganizationM
212 212
213 213 @Override
214 214 public List<OrganizationDTO> getMyOrganizations(
215   - boolean isPtSysAdmin, boolean isPtTenantAdmin, String tenantId, String currentUserId) {
  215 + boolean isPtSysAdmin, boolean isPtTenantAdmin,boolean isCustomer, String tenantId, String currentUserId,String organizationId) {
216 216 // 如果是租户管理员,则返回该租户id下的所有组织
217   - if (isPtTenantAdmin) {
218   - return findOrganizationTree(tenantId);
  217 + if (isPtTenantAdmin || isPtSysAdmin || !isCustomer) {
  218 + List<String> organizationIds = StringUtils.isEmpty(organizationId)?null:List.of(organizationId);
  219 + return findOrganizationTree(tenantId,organizationIds);
219 220 } else {
220 221 // 返回当前用户组织id集
221 222 Set<String> organizationIds =
... ... @@ -227,30 +228,28 @@ public class TkOrganizationServiceImpl extends AbstractBaseService<OrganizationM
227 228 .stream()
228 229 .map(TkUserOrganizationMappingEntity::getOrganizationId)
229 230 .collect(Collectors.toSet());
230   - List<TkOrganizationEntity> organizations;
231   - if (organizationIds.size() > 0 || isPtSysAdmin) {
232   - organizations =
233   - baseMapper.selectList(
234   - new QueryWrapper<TkOrganizationEntity>()
235   - .lambda()
236   - .eq(TkOrganizationEntity::getTenantId, tenantId)
237   - .in(organizationIds.size() > 0, TkOrganizationEntity::getId, organizationIds));
  231 + if(!StringUtils.isEmpty(organizationId)){
  232 + organizationIds = new HashSet<>(List.of(organizationId));
  233 + }
  234 + if (organizationIds.size() > 0) {
  235 + return findOrganizationTree(tenantId, new ArrayList<>(organizationIds));
238 236 } else {
239 237 return null;
240 238 }
241   - return TreeUtils.buildTree(ReflectUtils.sourceToTarget(organizations, OrganizationDTO.class));
  239 +
242 240 }
243 241 }
244 242
245 243 /**
246   - * 查询租户id下的所有组织
  244 + * 查询租户id下的所有组织或对应组织的下级组织及本身
247 245 *
248 246 * @param tenantId 租户ID
  247 + * @param organizationIds 组织IDS
249 248 * @return 组织列表
250 249 */
251   - private List<OrganizationDTO> findOrganizationTree(String tenantId) {
  250 + private List<OrganizationDTO> findOrganizationTree(String tenantId,List<String> organizationIds) {
252 251 List<OrganizationDTO> organizationTreeList =
253   - baseMapper.findOrganizationTreeList(tenantId, null);
  252 + baseMapper.findOrganizationTreeList(tenantId, organizationIds);
254 253 return buildOrganizationDTOTree(organizationTreeList);
255 254 }
256 255
... ...
... ... @@ -12,7 +12,7 @@ public interface TkOrganizationService extends BaseService<TkOrganizationEntity>
12 12 boolean deleteOrganizations(DeleteDTO deleteDTO,String tenantId);
13 13
14 14 List<OrganizationDTO> getMyOrganizations(
15   - boolean isPtSysAdmin,boolean isPtTenantAdmin, String tenantId, String currentUserId);
  15 + boolean isPtSysAdmin,boolean isPtTenantAdmin,boolean isCustomer, String tenantId, String currentUserId,String organizationId);
16 16
17 17 OrganizationDTO updateOrganization(OrganizationDTO organizationDTO, String tenantId,boolean isCustomerOrPlatform,String userId);
18 18
... ...