行政区域更新 原上级未对leaf更新
悬赏:20积分
行政区域更新,修改上级区域,原上级的leaf不更新吗?
看代码只处理了 更新后的上级区域的leaf
img[//cdn.renren.io/25882202301291619444097.png]
[pre]
@Override
@Transactional(rollbackFor = Exception.class)
public void update(SysRegionDTO dto) {
SysRegionEntity entity = ConvertUtils.sourceToTarget(dto, SysRegionEntity.class);
//上级不能为自身
if(entity.getId().equals(entity.getPid())){
throw new RenException(ErrorCode.SUPERIOR_REGION_ERROR);
}
//查询上级
SysRegionEntity parentEntity = baseDao.getById(dto.getPid());
if(parentEntity == null){
entity.setTreeLevel(RegionLevelEnum.ONE.value());
}else {
entity.setTreeLevel(parentEntity.getTreeLevel() + 1);
//上级存在,且为叶子节点,需要修改为非叶子节点
if(parentEntity.getLeaf() == RegionLeafEnum.YES.value()){
parentEntity.setLeaf(RegionLeafEnum.NO.value());
baseDao.updateById(parentEntity);
}
}
//查询下级
int subCount = baseDao.getCountByPid(dto.getId());
if(subCount == 0){
entity.setLeaf(RegionLeafEnum.YES.value());
}else {
entity.setLeaf(RegionLeafEnum.NO.value());
}
updateById(entity);
}
[/pre]