bug修改

This commit is contained in:
周鹏 committed 2026-08-20 21:56:17 +08:00
1 parent 3e92f81667
commit cf7e48ed83
2 files changed
+27 -1

No files matched your search

@@ -1,6 +1,7 @@
package cn.iocoder.yudao.module.member.controller.app.user;
import cn.hutool.core.util.ObjectUtil;
import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import cn.iocoder.yudao.module.member.controller.app.comauth.vo.CreateWechatAuthReqVo;
import cn.iocoder.yudao.module.member.service.comauth.ComAuthService;
@@ -16,6 +17,8 @@ import cn.iocoder.yudao.module.member.service.level.MemberLevelService;
import cn.iocoder.yudao.module.member.service.opentype.OpenTypeService;
import cn.iocoder.yudao.module.member.service.user.MemberRecentTagService;
import cn.iocoder.yudao.module.member.service.user.MemberUserService;
import cn.iocoder.yudao.module.system.api.oauth2.OAuth2TokenApi;
import cn.iocoder.yudao.framework.common.enums.UserTypeEnum;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.extern.slf4j.Slf4j;
@@ -28,8 +31,10 @@ import javax.validation.Valid;
import java.util.List;
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId;
import static cn.iocoder.yudao.module.member.enums.MemberErrorCode.AUTH_LOGIN_USER_DISABLED;
@Tag(name = "用户 APP - 用户个人中心")
@RestController
@@ -50,11 +55,24 @@ public class AppMemberUserController {
private ComAuthService comAuthService;
@Resource
private LocationService locationService;
@Resource
private OAuth2TokenApi oauth2TokenApi;
@GetMapping("/get")
@Operation(summary = "获得基本信息")
public CommonResult<AppMemberUserInfoRespVO> getUserInfo() {
MemberUserDO user = userService.getUser(getLoginUserId());
// 禁用后兜底:即使 token 未清干净,拉资料时也强制踢下线
if (user == null || CommonStatusEnum.isDisable(user.getStatus())) {
if (user != null) {
try {
oauth2TokenApi.removeAccessTokenByUserId(user.getId(), UserTypeEnum.MEMBER.getValue());
} catch (Exception e) {
log.warn("禁用用户拉资料时清 token 失败, userId={}", user.getId(), e);
}
}
throw exception(AUTH_LOGIN_USER_DISABLED);
}
MemberLevelDO level = levelService.getLevel(user.getLevelId());
AppMemberUserInfoRespVO result = MemberUserConvert.INSTANCE.convert(user, level);
// 获取用户tag
@@ -483,12 +483,20 @@ public class MemberUserServiceImpl implements MemberUserService {
private void kickMemberLogin(Long userId) {
try {
oauth2TokenApi.removeAccessTokenByUserId(userId, UserTypeEnum.MEMBER.getValue());
log.info("已清理会员登录 token, userId={}", userId);
} catch (Exception e) {
log.warn("踢出会员登录态失败, userId={}", userId, e);
throw e;
}
try {
chatApi.banUser(userId, "账号已被禁用");
// 确保 IM 侧有该用户,否则 /third/user/ban 会报「用户不存在」导致推送失败
syncChatUser(userId);
boolean banned = chatApi.banUser(userId, "账号已被禁用");
if (!banned) {
log.warn("通知聊天服务封禁用户失败(返回 false), userId={}", userId);
} else {
log.info("已通知聊天服务封禁并踢下线, userId={}", userId);
}
} catch (Exception e) {
log.warn("通知聊天服务封禁用户失败, userId={}", userId, e);
}