Merge remote-tracking branch 'origin/cc_20230520_partner' into cc_20230520_partner
This commit is contained in:
@@ -74,4 +74,26 @@ public class RegionDAO {
|
||||
return regionMapper.getRegionInfoByRegionId(regionId);
|
||||
}
|
||||
|
||||
/**
|
||||
* 判断一个节点是否是叶子节点
|
||||
* @param regionId
|
||||
* @return
|
||||
*/
|
||||
public boolean isLeafNode(String regionId){
|
||||
Integer subCount = regionMapper.getSubNodeCountByRegionId(regionId);
|
||||
return subCount <= CommonConstants.ZERO;
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除区域
|
||||
* @param regionId
|
||||
* @return
|
||||
*/
|
||||
public Integer deleteRegionByRegionId(String regionId){
|
||||
if(StringUtils.isBlank(regionId)){
|
||||
return CommonConstants.ZERO;
|
||||
}
|
||||
return regionMapper.deleteRegionByRegionId(regionId);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -58,4 +58,17 @@ public interface RegionMapper {
|
||||
* @return
|
||||
*/
|
||||
RegionDO getRegionInfoByRegionId(@Param("regionId") String regionId);
|
||||
|
||||
/**
|
||||
* 获取区域的子节点个数
|
||||
* @return
|
||||
*/
|
||||
Integer getSubNodeCountByRegionId(@Param("regionId") String regionId);
|
||||
|
||||
/**
|
||||
* 删除区域
|
||||
* @param regionId
|
||||
* @return
|
||||
*/
|
||||
Integer deleteRegionByRegionId(@Param("regionId") String regionId);
|
||||
}
|
||||
@@ -196,4 +196,12 @@
|
||||
where
|
||||
deleted = 0 and region_id= #{regionId}
|
||||
</select>
|
||||
|
||||
<select id="getSubNodeCountByRegionId" resultType="integer">
|
||||
select count(1) from region where deleted = 0 and parent_id = #{regionId}
|
||||
</select>
|
||||
|
||||
<update id="deleteRegionByRegionId">
|
||||
update region set deleted = 1 where region_id = #{regionId}
|
||||
</update>
|
||||
</mapper>
|
||||
@@ -11,6 +11,9 @@ import com.cool.store.dto.dept.DepartmentEventDTO;
|
||||
*/
|
||||
public interface EnterpriseSyncService {
|
||||
|
||||
/**
|
||||
* 全量同步
|
||||
*/
|
||||
void syncAll();
|
||||
|
||||
/**
|
||||
|
||||
@@ -85,7 +85,10 @@ public class EnterpriseSyncServiceImpl implements EnterpriseSyncService {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 同步组织架构
|
||||
* @return
|
||||
*/
|
||||
private Pair<List<RegionDO>, Multimap<String, String>> syncRegion(){
|
||||
//同步部门
|
||||
List<SysDepartmentDTO> departments = isvHttpRequest.getSubDepartments(CommonConstants.ROOT_DEPT_ID_STR, true);
|
||||
@@ -239,13 +242,23 @@ public class EnterpriseSyncServiceImpl implements EnterpriseSyncService {
|
||||
dealUserLeaderDept(updateLeaderDeptMap);
|
||||
break;
|
||||
case DEPARTMENT_DELETED:
|
||||
syncAll();
|
||||
boolean leafNode = regionDAO.isLeafNode(departmentDetail.getId());
|
||||
if(leafNode){
|
||||
//叶子节点的时候会删除部门
|
||||
regionDAO.deleteRegionByRegionId(departmentDetail.getId());
|
||||
}else{
|
||||
syncAll();
|
||||
}
|
||||
break;
|
||||
default:
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 处理用户负责部门信息
|
||||
* @param leaderDeptMap
|
||||
*/
|
||||
public void dealUserLeaderDept(Multimap<String, String> leaderDeptMap){
|
||||
if(leaderDeptMap.isEmpty()){
|
||||
return;
|
||||
|
||||
Reference in New Issue
Block a user