From de857dd7ddc05e8a6c1be591224d7a7fa275e1b7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=9D=BE?= <8605635+zhang3064194730@user.noreply.gitee.com> Date: Tue, 11 Feb 2025 17:46:22 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B0=8F=E7=A8=8B=E5=BA=8F=E7=99=BB=E5=BD=95?= =?UTF-8?q?=E7=9B=B8=E5=85=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/UserAuthorizationServiceImpl.java | 28 +++++++++++-------- 1 file changed, 17 insertions(+), 11 deletions(-) diff --git a/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/UserAuthorizationServiceImpl.java b/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/UserAuthorizationServiceImpl.java index c05582b7..f5354efc 100644 --- a/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/UserAuthorizationServiceImpl.java +++ b/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/UserAuthorizationServiceImpl.java @@ -9,7 +9,9 @@ import com.czg.account.dto.auth.UserAuthorizationLoginDTO; import com.czg.account.dto.auth.WechatRawDataDTO; import com.czg.account.entity.UserInfo; import com.czg.account.service.UserAuthorizationService; +import com.czg.enums.StatusEnum; import com.czg.enums.UserAuthSourceEnum; +import com.czg.exception.CzgException; import com.czg.sa.StpKit; import com.czg.account.service.UserInfoService; import com.czg.utils.AlipayUtil; @@ -32,31 +34,35 @@ public class UserAuthorizationServiceImpl implements UserAuthorizationService { @Override public LoginTokenDTO login(UserAuthorizationLoginDTO userAuthorizationLoginDTO) { + UserInfo userInfo; String openId; if (UserAuthSourceEnum.WECHAT.getValue().equals(userAuthorizationLoginDTO.getSource())) { openId = wechatAuthUtil.getSessionKeyOrOpenId(userAuthorizationLoginDTO.getCode()); userInfo = userInfoService.queryChain().eq(UserInfo::getWechatOpenId, openId).one(); - }else { - openId = alipayUtil.getOpenId(userAuthorizationLoginDTO.getCode()); - userInfo = userInfoService.queryChain().eq(UserInfo::getAlipayOpenId, openId).one(); - } - - if (ObjectUtil.isNull(userInfo)) { - userInfo = new UserInfo(); + userInfo = userInfo == null ? new UserInfo() : userInfo; if (StrUtil.isNotBlank(userAuthorizationLoginDTO.getRawData())) { WechatRawDataDTO wechatRawDataDTO = JSONObject.parseObject(userAuthorizationLoginDTO.getRawData(), WechatRawDataDTO.class); userInfo.setHeadImg(wechatRawDataDTO.getAvatarUrl()); userInfo.setNickName(StrUtil.isNotBlank(wechatRawDataDTO.getNickName()) ? wechatRawDataDTO.getNickName() : "微信用户"); + } else { + userInfo.setNickName("微信用户"); } userInfo.setWechatOpenId(openId); - userInfo.setStatus(1); - userInfo.setLastLoginTime(DateUtil.date().toLocalDateTime()); } else { - userInfo.setLastLoginTime(DateUtil.date().toLocalDateTime()); + openId = alipayUtil.getOpenId(userAuthorizationLoginDTO.getCode()); + userInfo = userInfoService.queryChain().eq(UserInfo::getAlipayOpenId, openId).one(); + userInfo = userInfo == null ? new UserInfo() : userInfo; + userInfo.setNickName("支付宝用户"); + userInfo.setAlipayOpenId(openId); } - userInfoService.saveOrUpdate(userInfo); + if (StatusEnum.DISABLE.value() == userInfo.getStatus()) { + throw new CzgException("账号已禁用"); + } + + userInfo.setLastLoginTime(DateUtil.date().toLocalDateTime()); + userInfoService.saveOrUpdate(userInfo); StpKit.USER.login(userInfo.getId()); return new LoginTokenDTO(StpKit.USER.getTokenValue(), userInfo); }