From e8075d5384c07c059521ce798f5130433181dd45 Mon Sep 17 00:00:00 2001 From: tianfeng <769204422@qq.com> Date: Thu, 26 Feb 2026 18:30:44 +0800 Subject: [PATCH] =?UTF-8?q?=E6=88=90=E4=B8=BA=E4=B8=BB=E6=92=AD=E6=8C=87?= =?UTF-8?q?=E7=BA=B9=E6=A0=A1=E9=AA=8C=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../device/LatestMobileDeviceService.java | 10 ++++++- .../impl/LatestMobileDeviceServiceImpl.java | 26 ++++++++++++++++++- .../user/RegisterDeviceGatewayImpl.java | 2 +- .../impl/RegisterDeviceClientServiceImpl.java | 2 +- 4 files changed, 36 insertions(+), 4 deletions(-) diff --git a/rc-service/rc-service-other/other-infrastructure/src/main/java/com/red/circle/other/infra/database/rds/service/user/device/LatestMobileDeviceService.java b/rc-service/rc-service-other/other-infrastructure/src/main/java/com/red/circle/other/infra/database/rds/service/user/device/LatestMobileDeviceService.java index 11385c49..a267fcf3 100644 --- a/rc-service/rc-service-other/other-infrastructure/src/main/java/com/red/circle/other/infra/database/rds/service/user/device/LatestMobileDeviceService.java +++ b/rc-service/rc-service-other/other-infrastructure/src/main/java/com/red/circle/other/infra/database/rds/service/user/device/LatestMobileDeviceService.java @@ -109,13 +109,21 @@ public interface LatestMobileDeviceService extends BaseService getImeiUserId(Long userId); /** - * 获取用户设备指纹(旧版) + * 获取用户设备指纹 IP段 * * @param userId 用户ID * @return 设备指纹字符串 */ String getDeviceFingerprintByUserId(Long userId); + /** + * 获取用户设备指纹 全IP + * + * @param userId 用户ID + * @return 设备指纹字符串 + */ + String getDeviceFingerprintAndIPByUserId(Long userId); + /** * 获取用户设备指纹(增强版) * 包含:手机型号 + 系统版本 + IP段 + 编译版本 diff --git a/rc-service/rc-service-other/other-infrastructure/src/main/java/com/red/circle/other/infra/database/rds/service/user/device/impl/LatestMobileDeviceServiceImpl.java b/rc-service/rc-service-other/other-infrastructure/src/main/java/com/red/circle/other/infra/database/rds/service/user/device/impl/LatestMobileDeviceServiceImpl.java index d2a416ec..408ec23f 100644 --- a/rc-service/rc-service-other/other-infrastructure/src/main/java/com/red/circle/other/infra/database/rds/service/user/device/impl/LatestMobileDeviceServiceImpl.java +++ b/rc-service/rc-service-other/other-infrastructure/src/main/java/com/red/circle/other/infra/database/rds/service/user/device/impl/LatestMobileDeviceServiceImpl.java @@ -300,6 +300,30 @@ public class LatestMobileDeviceServiceImpl extends ); } + @Override + public String getDeviceFingerprintAndIPByUserId(Long userId) { + if (userId == null) { + return ""; + } + + LatestMobileDevice device = query() + .eq(LatestMobileDevice::getUserId, userId) + .last(PageConstant.LIMIT_ONE) + .getOne(); + + if (device == null) { + return ""; + } + + if (StringUtils.isBlank(device.getRequestClient()) + || StringUtils.isBlank(device.getPhoneModel()) + || StringUtils.isBlank(device.getIp())) { + return ""; + } + + return device.getRequestClient() + "|" + device.getPhoneModel() + "|" + device.getIp(); + } + @Override public String getEnhancedDeviceFingerprintByUserId(Long userId) { if (userId == null) { @@ -386,7 +410,7 @@ public class LatestMobileDeviceServiceImpl extends .select(LatestMobileDevice::getUserId) .eq(LatestMobileDevice::getRequestClient, requestClient) .eq(LatestMobileDevice::getPhoneModel, phoneModel) - .likeRight(LatestMobileDevice::getIp, ipPrefix) // 前缀匹配 + .eq(LatestMobileDevice::getIp, ipPrefix) // 前缀匹配 .eq(LatestMobileDevice::getSysOrigin, sysOrigin) .last(PageConstant.formatLimit(500)) .list()) diff --git a/rc-service/rc-service-other/other-infrastructure/src/main/java/com/red/circle/other/infra/gateway/user/RegisterDeviceGatewayImpl.java b/rc-service/rc-service-other/other-infrastructure/src/main/java/com/red/circle/other/infra/gateway/user/RegisterDeviceGatewayImpl.java index 5c22fcea..7bb49a73 100644 --- a/rc-service/rc-service-other/other-infrastructure/src/main/java/com/red/circle/other/infra/gateway/user/RegisterDeviceGatewayImpl.java +++ b/rc-service/rc-service-other/other-infrastructure/src/main/java/com/red/circle/other/infra/gateway/user/RegisterDeviceGatewayImpl.java @@ -93,7 +93,7 @@ public class RegisterDeviceGatewayImpl implements RegisterDeviceGateway { return false; } - String fingerprint = latestMobileDeviceService.getDeviceFingerprintByUserId(userId); + String fingerprint = latestMobileDeviceService.getDeviceFingerprintAndIPByUserId(userId); if (StringUtils.isBlank(fingerprint)) { return false; } diff --git a/rc-service/rc-service-other/other-inner-endpoint/src/main/java/com/red/circle/other/app/inner/service/user/device/impl/RegisterDeviceClientServiceImpl.java b/rc-service/rc-service-other/other-inner-endpoint/src/main/java/com/red/circle/other/app/inner/service/user/device/impl/RegisterDeviceClientServiceImpl.java index 82166c00..036d98c8 100644 --- a/rc-service/rc-service-other/other-inner-endpoint/src/main/java/com/red/circle/other/app/inner/service/user/device/impl/RegisterDeviceClientServiceImpl.java +++ b/rc-service/rc-service-other/other-inner-endpoint/src/main/java/com/red/circle/other/app/inner/service/user/device/impl/RegisterDeviceClientServiceImpl.java @@ -252,7 +252,7 @@ public class RegisterDeviceClientServiceImpl implements RegisterDeviceClientServ return false; } - String fingerprint = latestMobileDeviceService.getDeviceFingerprintByUserId(userId); + String fingerprint = latestMobileDeviceService.getDeviceFingerprintAndIPByUserId(userId); if (StringUtils.isBlank(fingerprint)) { return false; }