From 782f0259bc2c0362a1075ea401c815186321d8c6 Mon Sep 17 00:00:00 2001
From: luodangjia <luodangjia>
Date: 星期三, 21 八月 2024 10:45:41 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/TAppUserServiceImpl.java | 70 +++++++++++++++++++++++++++++-----
1 files changed, 59 insertions(+), 11 deletions(-)
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/TAppUserServiceImpl.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/TAppUserServiceImpl.java
index 912a5e0..7fd0ff1 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/TAppUserServiceImpl.java
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/TAppUserServiceImpl.java
@@ -1,5 +1,7 @@
package com.ruoyi.account.service.impl;
+import com.alipay.api.response.AlipaySystemOauthTokenResponse;
+import com.alipay.api.response.AlipayUserUserinfoShareResponse;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
@@ -9,6 +11,7 @@
import com.ruoyi.account.service.TAppUserService;
import com.ruoyi.account.wx.model.WeixinProperties;
import com.ruoyi.account.wx.pojo.AppletUserDecodeData;
+import com.ruoyi.common.core.exception.ServiceException;
import com.ruoyi.common.security.service.TokenService;
import com.ruoyi.system.api.model.LoginUserApplet;
import org.springframework.beans.factory.annotation.Autowired;
@@ -32,27 +35,25 @@
@Autowired
private TokenService tokenService;
@Override
- public Map<String, Object> login(AppletUserDecodeData appletUserDecodeData) {
- // 通过手机号查询用户,是否已存在手动导入用户
+ public Map<String, Object> wxLogin(AppletUserDecodeData appletUserDecodeData) {
+ // 通过手机号查询用户,是否已存在手动导入用户,包含支付宝用户
TAppUser appUser = this.getOne(Wrappers.lambdaQuery(TAppUser.class)
.eq(TAppUser::getPhone, appletUserDecodeData.getPhoneNumber())
.isNull(TAppUser::getWxOpenid)
.last("LIMIT 1"));
- LambdaQueryWrapper<TAppUser> wrapper = Wrappers.lambdaQuery(TAppUser.class)
- .eq(TAppUser::getWxOpenid, appletUserDecodeData.getOpenId());
if(Objects.isNull(appUser)){
// 先使用openId和当前手机号进行查询
- wrapper.eq(TAppUser::getPhone, appletUserDecodeData.getPhoneNumber())
- .last("LIMIT 1");
- appUser = this.getOne(wrapper);
+ appUser = this.getOne(Wrappers.lambdaQuery(TAppUser.class)
+ .eq(TAppUser::getWxOpenid, appletUserDecodeData.getOpenId())
+ .eq(TAppUser::getPhone, appletUserDecodeData.getPhoneNumber())
+ .last("LIMIT 1"));
if(Objects.isNull(appUser)){
appUser = new TAppUser();
appUser.setPhone(appletUserDecodeData.getPhoneNumber());
}
- }else {
- wrapper.last("LIMIT 1");
- // 删除小程序原有授权用户
- this.remove(wrapper);
+ }
+ if(Objects.nonNull(appUser.getStatus())){
+ throwInfo(appUser.getStatus());
}
appUser.setAvatar(appletUserDecodeData.getAvatarUrl());
appUser.setCity(appletUserDecodeData.getCity());
@@ -60,6 +61,41 @@
appUser.setProvince(appletUserDecodeData.getProvince());
appUser.setWxOpenid(appletUserDecodeData.getOpenId());
this.saveOrUpdate(appUser);
+ return this.getUserInfo(appUser);
+ }
+
+ @Override
+ public Map<String, Object> aliLogin(AlipaySystemOauthTokenResponse response, AlipayUserUserinfoShareResponse userInfo) {
+ // 通过手机号查询用户,是否已存在手动导入用户,包含微信用户
+ TAppUser appUser = this.getOne(Wrappers.lambdaQuery(TAppUser.class)
+ .eq(TAppUser::getPhone, userInfo.getMobile())
+ .isNull(TAppUser::getAliOpenid)
+ .last("LIMIT 1"));
+ if(Objects.isNull(appUser)){
+ // 先使用openId和当前手机号进行查询
+ appUser = this.getOne(Wrappers.lambdaQuery(TAppUser.class)
+ .eq(TAppUser::getAliOpenid, response.getOpenId())
+ .eq(TAppUser::getPhone, userInfo.getMobile())
+ .last("LIMIT 1"));
+ if(Objects.isNull(appUser)){
+ appUser = new TAppUser();
+ appUser.setPhone(userInfo.getMobile());
+ }
+ }
+ if(Objects.nonNull(appUser.getStatus())){
+ throwInfo(appUser.getStatus());
+ }
+ appUser.setAvatar(userInfo.getAvatar());
+ appUser.setCity(userInfo.getCity());
+ appUser.setName(userInfo.getNickName());
+ appUser.setProvince(userInfo.getProvince());
+ appUser.setAliOpenid(response.getOpenId());
+ this.saveOrUpdate(appUser);
+ return this.getUserInfo(appUser);
+ }
+
+ @Override
+ public Map<String, Object> getUserInfo(TAppUser appUser) {
LoginUserApplet loginUserApplet = new LoginUserApplet();
if(ObjectUtils.isNotNull(appUser)){
loginUserApplet.setUserId(appUser.getId());
@@ -73,4 +109,16 @@
tokenInfos.put("info",loginUserApplet);
return tokenInfos;
}
+
+ @Override
+ public void throwInfo(Integer status){
+ switch (status){
+ case 2:
+ throw new ServiceException("账号被冻结,请联系管理员");
+ case 3:
+ throw new ServiceException("账号已注销,请重新注册使用");
+ default:
+ break;
+ }
+ }
}
--
Gitblit v1.7.1