Commit 67ff0452590a9887f605896bc3f6cc8677a2c269

Authored by xp.Huang
1 parent aa87faa5

fix:组织编辑bug

... ... @@ -196,12 +196,16 @@ public class TkOrganizationServiceImpl extends AbstractBaseService<OrganizationM
196 196 } else {
197 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 209 return organizationDTO;
206 210 }
207 211
... ... @@ -389,14 +393,17 @@ public class TkOrganizationServiceImpl extends AbstractBaseService<OrganizationM
389 393 public void invalidateParentAndMeCacheByTenantIdAndId(String tenantId, boolean isAdd, String sourceParentOrganizationId,
390 394 String targetOrganizationId) {
391 395 if(!isAdd && StringUtils.isNotEmpty(sourceParentOrganizationId)){
392   - //原组织缓存
  396 + //原组织缓存
393 397 List<OrganizationDTO> sourceParentOrganizationIds =
394 398 findOrganizationTreeList(tenantId,OrganizationEnum.UP,List.of(sourceParentOrganizationId));
395 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 }
... ...