修复在线用户对象类型转换小概率异常BUG

Signed-off-by: 邵立佳 <418843795@qq.com>
This commit is contained in:
邵立佳
2024-08-29 02:04:03 +00:00
committed by Gitee
parent 8984ecba86
commit eadcd8bf36

View File

@@ -46,7 +46,23 @@ public class SysUserOnlineController extends BaseController
List<SysUserOnline> userOnlineList = new ArrayList<SysUserOnline>(); List<SysUserOnline> userOnlineList = new ArrayList<SysUserOnline>();
for (String key : keys) for (String key : keys)
{ {
LoginUser user = redisService.getCacheObject(key); // 获取登录用户缓存对象
Object object = redisService.getCacheObject(key);
// 登录用户对象
LoginUser user;
// 判断object类型如果是JSONObject需要单独处理解决小概率类型转换异常问题
if (object instanceof JSONObject)
{
user = JSONObject.parseObject(JSONObject.toJSONString(object, JSONWriter.Feature.WriteNulls), LoginUser.class);
}
else if (object instanceof LoginUser)
{
user = (LoginUser) object;
}
else
{
throw new ServiceException("用户缓存对象类型异常");
}
if (StringUtils.isNotEmpty(ipaddr) && StringUtils.isNotEmpty(userName)) if (StringUtils.isNotEmpty(ipaddr) && StringUtils.isNotEmpty(userName))
{ {
userOnlineList.add(userOnlineService.selectOnlineByInfo(ipaddr, userName, user)); userOnlineList.add(userOnlineService.selectOnlineByInfo(ipaddr, userName, user));