From 2d4d397ce9ea8e53d4a63b6463c02a7586fb27ea Mon Sep 17 00:00:00 2001 From: ZhuDongming <773644075@qq.com> Date: Thu, 08 Aug 2019 17:03:55 +0800 Subject: [PATCH] Merge branch 'master' of http://blit.7drlb.com:8888/r/screen_api_v2 --- src/main/java/com/moral/service/impl/OrganizationServiceImpl.java | 53 ++++++++++++++++++++++++++++++++++++++++------------- 1 files changed, 40 insertions(+), 13 deletions(-) diff --git a/src/main/java/com/moral/service/impl/OrganizationServiceImpl.java b/src/main/java/com/moral/service/impl/OrganizationServiceImpl.java index 2dca7d1..da6e198 100644 --- a/src/main/java/com/moral/service/impl/OrganizationServiceImpl.java +++ b/src/main/java/com/moral/service/impl/OrganizationServiceImpl.java @@ -1,8 +1,26 @@ package com.moral.service.impl; +import static com.moral.common.bean.Constants.IS_DELETE_FALSE; + +import java.util.Arrays; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.stream.Collectors; + +import javax.annotation.Resource; + +import org.apache.commons.collections.CollectionUtils; +import org.springframework.data.annotation.Transient; +import org.springframework.stereotype.Service; +import org.springframework.util.ObjectUtils; + +import com.alibaba.fastjson.JSON; import com.github.pagehelper.PageHelper; import com.moral.common.bean.Constants; import com.moral.common.bean.PageBean; +import com.moral.common.exception.BusinessException; import com.moral.common.util.ExampleUtil; import com.moral.common.util.ValidateUtil; import com.moral.entity.Organization; @@ -10,17 +28,9 @@ import com.moral.mapper.OrganizationMapper; import com.moral.mapper.OrganizationRelationMapper; import com.moral.service.OrganizationService; -import org.apache.commons.collections.CollectionUtils; -import org.springframework.data.annotation.Transient; -import org.springframework.stereotype.Service; + import tk.mybatis.mapper.entity.Example; import tk.mybatis.mapper.entity.Example.Criteria; - -import javax.annotation.Resource; -import java.util.*; -import java.util.stream.Collectors; - -import static com.moral.common.bean.Constants.IS_DELETE_FALSE; @Service public class OrganizationServiceImpl implements OrganizationService { @@ -88,8 +98,23 @@ }else{ organizationMapper.updateByPrimaryKey(organization); } - //��������������������� - addOrModifyOrgRelation(organization); + if(organization.getId()!=null && !organization.getId().equals(organization.getParentId())){ + List<Integer> orgIds = organizationMapper.selectLowerOrgIds(organization.getId()); + boolean isChild = orgIds.stream().anyMatch( + item -> { + return item!=null && item.equals(organization.getParentId()); + } + ); + // ������������������������������������������������������������ + if(!isChild){ + //��������������������� + addOrModifyOrgRelation(organization); + }else{ + throw new BusinessException("cannot set the children as father,organization:"+ JSON.toJSONString(organization)); + } + }else { + throw new BusinessException("id of organization can't equal to it's parentId,organization:"+ JSON.toJSONString(organization)); + } } catch (Exception ex){ throw ex; @@ -101,8 +126,10 @@ relation.setChildId(organization.getId()); List<OrganizationRelation> relations = organizationRelationMapper.select(relation); if(CollectionUtils.isEmpty(relations)){ - relation.setParentId(organization.getParentId()); - organizationRelationMapper.insert(relation); + if (!ObjectUtils.isEmpty(organization.getParentId())) { + relation.setParentId(organization.getParentId()); + organizationRelationMapper.insert(relation); + } }else{ OrganizationRelation relationOfSelect = relations.get(0); //��������������������������������������� -- Gitblit v1.8.0