From 60f25c11afcff593ff56ccb7a52d9bd4714e30c4 Mon Sep 17 00:00:00 2001 From: liusheng <337615773@qq.com> Date: 星期二, 23 九月 2025 20:17:01 +0800 Subject: [PATCH] 处理因重复数据,导致的数据问题 --- smartor/src/main/java/com/smartor/service/impl/ServiceExternalServiceImpl.java | 28 ++++++++++++++++++++++++++-- 1 files changed, 26 insertions(+), 2 deletions(-) diff --git a/smartor/src/main/java/com/smartor/service/impl/ServiceExternalServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/ServiceExternalServiceImpl.java index 178feb8..603b80f 100644 --- a/smartor/src/main/java/com/smartor/service/impl/ServiceExternalServiceImpl.java +++ b/smartor/src/main/java/com/smartor/service/impl/ServiceExternalServiceImpl.java @@ -138,8 +138,12 @@ sysUser.setUserName(externalUserInfo.getYongHuDLM()); sysUser.setOrgid(externalUserInfo.getZuZhiJGID()); //鏍规嵁userName鍒ゆ柇涓�涓嬶紝鏄笉鏄箣鍓嶆湁鏂板 - SysUser sysUser1 = sysUserMapper.selectUserByUserName(externalUserInfo.getYongHuDLM()); - + SysUser sysUser1 = null; + List<SysUser> sysUserList = sysUserMapper.selectUserList(sysUser); + if (CollectionUtils.isNotEmpty(sysUserList)) { + sysUser1 = sysUserList.get(0); + if (sysUserList.size() > 1) sysUser1 = getUser(sysUserList); + } sysUser.setGuid(externalUserInfo.getZuZhiJGID()); sysUser.setNickName(externalUserInfo.getYongHuXM()); sysUser.setUserType(""); @@ -173,6 +177,26 @@ } + private SysUser getUser(List<SysUser> sysUserList) { + SysUser sysUser = null; + if (CollectionUtils.isNotEmpty(sysUserList) && sysUserList.size() > 1) { + // 鎸塩reate_time闄嶅簭鎺掑簭锛岃幏鍙栨渶鏂扮殑璁板綍 + List<SysUser> sortedList = sysUserList.stream().sorted(Comparator.comparing(SysUser::getCreateTime).reversed()).collect(Collectors.toList()); + + // 绗竴鏉★紙鏈�鏂扮殑锛夎祴鍊肩粰sysUser1 + sysUser = sortedList.get(0); + + // 鑾峰彇闇�瑕佸垹闄ょ殑ID锛堜粠绗簩鏉″紑濮嬶級 + List<Long> idsToDelete = sortedList.stream().skip(1).map(SysUser::getUserId).collect(Collectors.toList()); + Long[] idArray = idsToDelete.toArray(new Long[0]); + // 鎵归噺鍒犻櫎鍏朵粬璁板綍 + if (!idsToDelete.isEmpty()) { + sysUserMapper.deleteUserByIds(idArray); + } + } + return sysUser; + } + @Override public Boolean addOrganInfo(Map dataMap) { log.info("ServiceExternalServiceImpl---addOrganInfo鐨勬柊澧炵殑鍊间负锛歿}", dataMap); -- Gitblit v1.9.3