From f5b199e068f9e029314d19e8a3822df9ff37b86a Mon Sep 17 00:00:00 2001 From: 无关风月 <443237572@qq.com> Date: 星期一, 19 八月 2024 20:57:02 +0800 Subject: [PATCH] 代码提交 --- ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/TAppUserServiceImpl.java | 85 ++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 85 insertions(+), 0 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 3e3b665..f8cfe72 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,10 +1,25 @@ 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; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.account.api.model.TAppUser; import com.ruoyi.account.mapper.TAppUserMapper; import com.ruoyi.account.service.TAppUserService; +import com.ruoyi.account.wx.model.WeixinProperties; +import com.ruoyi.account.wx.pojo.AppletUserDecodeData; +import com.ruoyi.common.security.service.TokenService; +import com.ruoyi.system.api.model.LoginUserApplet; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.web.client.RestTemplate; + +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; /** * <p> @@ -16,5 +31,75 @@ */ @Service public class TAppUserServiceImpl extends ServiceImpl<TAppUserMapper, TAppUser> implements TAppUserService { + @Autowired + private TokenService tokenService; + @Override + 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")); + if(Objects.isNull(appUser)){ + // 先使用openId和当前手机号进行查询 + 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()); + } + } + appUser.setAvatar(appletUserDecodeData.getAvatarUrl()); + appUser.setCity(appletUserDecodeData.getCity()); + appUser.setName(appletUserDecodeData.getNickName()); + 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()); + } + } + 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()); + loginUserApplet.setName(appUser.getName()); + loginUserApplet.setPhone(appUser.getPhone()); + loginUserApplet.setAvatar(appUser.getAvatar()); + loginUserApplet.setAddress(appUser.getProvince()+appUser.getCity()); + } + Map<String, Object> tokenInfos = new HashMap<>(); + tokenInfos.put("token",tokenService.createTokenApplet(loginUserApplet)); + tokenInfos.put("info",loginUserApplet); + return tokenInfos; + } } -- Gitblit v1.7.1