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