From 458159edd4915dda767ad44c1ffadf7ec0f82fbd Mon Sep 17 00:00:00 2001 From: wxyclub Date: Sun, 12 Nov 2023 14:27:07 +0800 Subject: [PATCH] =?UTF-8?q?bug:=20=E4=BF=AE=E6=94=B9=E4=BA=BA=E5=91=98?= =?UTF-8?q?=E5=90=8C=E6=AD=A5=E6=8E=A5=E5=8F=A3=EF=BC=8C=E5=8E=BB=E9=99=A4?= =?UTF-8?q?=E5=B7=B2=E7=A6=BB=E8=81=8C=E4=BA=BA=E5=91=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/DataSyncServiceImpl.java | 21 +++++++++++++++++++ .../sarInstitution/TsInstitutionMapper.xml | 4 +++- 2 files changed, 24 insertions(+), 1 deletion(-) 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 @@