diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/DataSync/service/impl/DataSyncServiceImpl.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/DataSync/service/impl/DataSyncServiceImpl.java index 3ef873b1..eeb0c340 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/DataSync/service/impl/DataSyncServiceImpl.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/DataSync/service/impl/DataSyncServiceImpl.java @@ -23,7 +23,9 @@ import com.adc.da.sys.constant.ValidFlagEnum; import com.adc.da.sys.entity.UserOrgEO; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import lombok.extern.log4j.Log4j; @@ -496,6 +498,7 @@ public class DataSyncServiceImpl implements IDataSyncService { } List addUserList = new ArrayList<>(); List upUserList = new ArrayList<>(); + Set syncUserIdSet = new HashSet<>(); for (String s : res) { JSONObject userData = JSONObject.parseObject(s); if(userData.containsKey("results")){ @@ -503,6 +506,7 @@ public class DataSyncServiceImpl implements IDataSyncService { jsonArray.forEach(object -> { JSONObject jsonObject = JSONObject.parseObject(object.toString()); String userid = jsonObject.getString("userid"); + syncUserIdSet.add(userid); TsUser userEO = tsUserService.getById(userid); String userState = ""; if(userEO != null){ @@ -566,6 +570,23 @@ public class DataSyncServiceImpl implements IDataSyncService { logger.debug("本次更新的用户为:"+JSONObject.toJSONString(upUserList)); tsUserService.updateBatchById(upUserList); } + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(TsUser::getState,"1"); + wrapper.eq(TsUser::getValidFlag,"0"); + wrapper.eq(TsUser::getDisableFlag,"0"); + wrapper.select(TsUser::getUserId); + Set userIdDbList = tsUserService.list(wrapper).stream().map(TsUser::getUserId).collect(Collectors.toSet()); + userIdDbList.removeAll(syncUserIdSet); + logger.info("本次同步删除掉的用户有:"+userIdDbList); + if(!userIdDbList.isEmpty()){ + //删除数据库中不存在的用户 + LambdaUpdateWrapper wrapper1 = new LambdaUpdateWrapper<>(); + wrapper1.in(TsUser::getUserId,userIdDbList); + wrapper1.set(TsUser::getState,"0"); + wrapper1.set(TsUser::getValidFlag,"1"); + wrapper1.set(TsUser::getDisableFlag,"1"); + tsUserService.update(wrapper1); + } }else{ logger.info("本次获取用户的数据为空,原因有2种:1、没有同步数据 2、请求接口报错"); } diff --git a/adc-da-slrs/src/main/resources/mybatis/mapper/sarInstitution/TsInstitutionMapper.xml b/adc-da-slrs/src/main/resources/mybatis/mapper/sarInstitution/TsInstitutionMapper.xml index 4e26835d..c0e99240 100644 --- a/adc-da-slrs/src/main/resources/mybatis/mapper/sarInstitution/TsInstitutionMapper.xml +++ b/adc-da-slrs/src/main/resources/mybatis/mapper/sarInstitution/TsInstitutionMapper.xml @@ -47,6 +47,7 @@