小程序登录相关
This commit is contained in:
parent
efe0407560
commit
de857dd7dd
|
|
@ -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);
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue