bug修改
This commit is contained in:
1 parent
3e92f81667
commit
cf7e48ed83
2 files changed
+27
-1
No files matched your search
+18
@@ -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
|
||||
|
||||
+9
-1
@@ -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);
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user