From 4d73d01c66ad5f7887e62634cd22c286c5e8d3c6 Mon Sep 17 00:00:00 2001 From: luodangjia <luodangjia> Date: 星期四, 06 二月 2025 14:52:25 +0800 Subject: [PATCH] 修复bug:冻结用户后用户未掉线 --- ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AppUserController.java | 22 +++++++++++++++++++++- 1 files changed, 21 insertions(+), 1 deletions(-) diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AppUserController.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AppUserController.java index 8c18942..41e70b7 100644 --- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AppUserController.java +++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AppUserController.java @@ -15,11 +15,13 @@ import com.ruoyi.account.util.weChat.EnvVersion; import com.ruoyi.account.util.weChat.WeChatUtil; import com.ruoyi.account.vo.*; +import com.ruoyi.common.core.constant.CacheConstants; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.common.core.utils.bean.BeanUtils; import com.ruoyi.common.core.web.controller.BaseController; import com.ruoyi.common.core.web.page.PageInfo; +import com.ruoyi.common.redis.service.RedisService; import com.ruoyi.common.security.service.TokenService; import com.ruoyi.order.feignClient.OrderClient; import com.ruoyi.order.feignClient.RemoteOrderGoodsClient; @@ -33,7 +35,9 @@ import com.ruoyi.other.api.feignClient.VipSettingClient; import com.ruoyi.system.api.domain.SysUser; import com.ruoyi.system.api.feignClient.SysUserClient; +import com.ruoyi.system.api.model.LoginUser; import io.swagger.annotations.*; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.util.CollectionUtils; import org.springframework.web.bind.annotation.*; @@ -98,7 +102,9 @@ private BalanceChangeRecordService balanceChangeRecordService; @Resource private UserChangeLogService userChangeLogService; - + @Resource + private RedisService redisService; + @Resource private WeChatUtil weChatUtil; @@ -670,9 +676,23 @@ AppUser byId = appUserService.getById(id); byId.setStatus(status); appUserService.updateById(byId); + loginout(id); return R.ok(); } + private void loginout(Long userId) { + Collection<String> keys = redisService.keys(CacheConstants.LOGIN_TOKEN_KEY + "*"); + if (!CollectionUtils.isEmpty(keys)) { + for (String key : keys) { + LoginUser user = redisService.getCacheObject(key); + if (user.getUserid().equals(userId)) { + redisService.deleteObject(key); + break; + } + } + } + } + @GetMapping("/select") @ApiOperation(value = "用户列表-查询绑定人", tags = {"管理后台"}) public R<AppUser> select(String phone) { -- Gitblit v1.7.1