zyy
2025-12-05 6983124000997b16d88b13ee99af339566a69128
trading-order-admin/src/main/java/com/yami/trading/admin/controller/AdminLoginController.java
@@ -122,12 +122,18 @@
        userInfoInToken.setPerms(getUserPermissions(sysUser.getUserId()));
        userInfoInToken.setNickName(sysUser.getUsername());
        userInfoInToken.setShopId(sysUser.getShopId());
       tokenStore.deleteAllToken(String.valueOf(SysTypeEnum.ADMIN.value()), String.valueOf(sysUser.getUserId()));
        //tokenStore.deleteAllToken(String.valueOf(SysTypeEnum.ADMIN.value()), String.valueOf(sysUser.getUserId()));
       
        // 存储token返回vo
        TokenInfoVO tokenInfoVO = tokenStore.storeAndGetVo(userInfoInToken);
        RedisUtil.set(RedisKeys.ACCESS_IP + sysUser.getUserId().intValue(),IPHelper.getIpAddr());
        //RedisUtil.set(RedisKeys.ACCESS_IP + sysUser.getUserId().intValue(),IPHelper.getIpAddr());
        // 关键修改2:用Redis Set存储多个登录IP(自动去重)
        String loginIp = IPHelper.getIpAddr();
        String ipSetKey = RedisKeys.ACCESS_IP + sysUser.getUserId().intValue(); // 键:ACCESS_IP+用户ID
        long tokenExpiresIn = tokenInfoVO.getExpiresIn(); // 与Token过期时间一致
        RedisUtil.sAdd(ipSetKey, loginIp); // 存入IP到Set
        RedisUtil.expire(ipSetKey, tokenExpiresIn); // 设置过期时间
        String context = MessageFormat.format("ip:{0}, 登录系统,时间[{1}]",
                new Object[]{IPHelper.getIpAddr(),
                        DateUtils.dateToStr(new Date(),