Commit 6b070a7ff9fd2093fd351573afa9475c10fa2d05

Authored by xp.Huang
2 parents aa87faa5 67ff0452

Merge branch '2024-03-13' into 'master_dev'

fix:组织编辑bug

See merge request yunteng/thingskit!367
@@ -196,12 +196,16 @@ public class TkOrganizationServiceImpl extends AbstractBaseService<OrganizationM @@ -196,12 +196,16 @@ public class TkOrganizationServiceImpl extends AbstractBaseService<OrganizationM
196 } else { 196 } else {
197 organization.setParentId(null); 197 organization.setParentId(null);
198 } 198 }
199 - baseMapper.updateById(organization);  
200 - organization.copyToDTO(organizationDTO);  
201 - //父级组织有变化才更新  
202 - if(!organizationDTO.getParentId().equals(sourceParentOrganizationId)){  
203 - invalidateParentAndMeCacheByTenantIdAndId(tenantId,false,organizationDTO.getParentId(),organization.getId()); 199 +
  200 + String parentId = organizationDTO.getParentId();
  201 + // 只要变更上级id都向上清除原上级以及目标上级缓存
  202 + if((StringUtils.isEmpty(parentId)&&StringUtils.isNotEmpty(sourceParentOrganizationId))||//顶级变次级 原为null
  203 + (StringUtils.isEmpty(sourceParentOrganizationId)&&StringUtils.isNotEmpty(parentId))||//次级便顶级 目标为null
  204 + (StringUtils.isNotEmpty(parentId)&&!parentId.equals(sourceParentOrganizationId))){//正常变化
  205 + invalidateParentAndMeCacheByTenantIdAndId(tenantId,false,sourceParentOrganizationId,parentId);
204 } 206 }
  207 +
  208 + baseMapper.updateById(organization);
205 return organizationDTO; 209 return organizationDTO;
206 } 210 }
207 211
@@ -389,14 +393,17 @@ public class TkOrganizationServiceImpl extends AbstractBaseService<OrganizationM @@ -389,14 +393,17 @@ public class TkOrganizationServiceImpl extends AbstractBaseService<OrganizationM
389 public void invalidateParentAndMeCacheByTenantIdAndId(String tenantId, boolean isAdd, String sourceParentOrganizationId, 393 public void invalidateParentAndMeCacheByTenantIdAndId(String tenantId, boolean isAdd, String sourceParentOrganizationId,
390 String targetOrganizationId) { 394 String targetOrganizationId) {
391 if(!isAdd && StringUtils.isNotEmpty(sourceParentOrganizationId)){ 395 if(!isAdd && StringUtils.isNotEmpty(sourceParentOrganizationId)){
392 - //原组织缓存 396 + //原组织缓存
393 List<OrganizationDTO> sourceParentOrganizationIds = 397 List<OrganizationDTO> sourceParentOrganizationIds =
394 findOrganizationTreeList(tenantId,OrganizationEnum.UP,List.of(sourceParentOrganizationId)); 398 findOrganizationTreeList(tenantId,OrganizationEnum.UP,List.of(sourceParentOrganizationId));
395 sourceParentOrganizationIds.forEach(org->cacheUtils.invalidate(cacheName,tenantId + "_" + org.getId())); 399 sourceParentOrganizationIds.forEach(org->cacheUtils.invalidate(cacheName,tenantId + "_" + org.getId()));
396 } 400 }
397 - //目标组织缓存  
398 - List<OrganizationDTO> targetOrganizationIds =  
399 - findOrganizationTreeList(tenantId,OrganizationEnum.UP,List.of(targetOrganizationId));  
400 - targetOrganizationIds.forEach(org->cacheUtils.invalidate(cacheName,tenantId + "_" + org.getId())); 401 + if(!isAdd && StringUtils.isNotEmpty(targetOrganizationId)){
  402 + //目标组织缓存
  403 + List<OrganizationDTO> targetOrganizationIds =
  404 + findOrganizationTreeList(tenantId,OrganizationEnum.UP,List.of(targetOrganizationId));
  405 + targetOrganizationIds.forEach(org->cacheUtils.invalidate(cacheName,tenantId + "_" + org.getId()));
  406 + }
  407 +
401 } 408 }
402 } 409 }