Commit 67ff0452590a9887f605896bc3f6cc8677a2c269

Authored by xp.Huang
1 parent aa87faa5

fix:组织编辑bug

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