From 8837ca248ca273fb5703de02c6842b73e1d230f8 Mon Sep 17 00:00:00 2001
From: xuhy <3313886187@qq.com>
Date: 星期三, 11 九月 2024 18:26:41 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/TAppUserServiceImpl.java | 155 +++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 155 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..66ff91a 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,28 @@
package com.ruoyi.account.service.impl;
+import com.alipay.api.response.AlipaySystemOauthTokenResponse;
+import com.alipay.api.response.AlipayUserInfoShareResponse;
+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.service.TInviteUserService;
+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;
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 +34,142 @@
*/
@Service
public class TAppUserServiceImpl extends ServiceImpl<TAppUserMapper, TAppUser> implements TAppUserService {
+ @Autowired
+ private TokenService tokenService;
+ @Autowired
+ private TInviteUserService inviteUserService;
+ @Override
+ public Map<String, Object> wxLogin(AppletUserDecodeData appletUserDecodeData,Long inviteUserId) {
+ // 通过手机号查询用户,是否已存在手动导入用户,包含支付宝用户
+ 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());
+ }
+ }
+ if(Objects.nonNull(appUser.getStatus())){
+ switch (appUser.getStatus()){
+ case 1:
+ break;
+ case 2:
+ throw new ServiceException("账号被冻结,请联系管理员");
+ case 3:
+ appUser = new TAppUser();
+ appUser.setPhone(appletUserDecodeData.getPhoneNumber());
+ break;
+ }
+ }
+ appUser.setInviteUserId(inviteUserId);
+ appUser.setAvatar(appletUserDecodeData.getAvatarUrl());
+ appUser.setCity(appletUserDecodeData.getCity());
+ appUser.setName(appletUserDecodeData.getNickName());
+ appUser.setProvince(appletUserDecodeData.getProvince());
+ appUser.setWxOpenid(appletUserDecodeData.getOpenId());
+ this.saveOrUpdate(appUser);
+ inviteUserService.saveInviteUser(appUser.getId(), inviteUserId);
+ return this.getUserInfo(appUser);
+ }
+ @Override
+ public Map<String, Object> aliLogin(AlipaySystemOauthTokenResponse response,String phone,Long inviteUserId) {
+ // 通过手机号查询用户,是否已存在手动导入用户,包含微信用户
+ TAppUser appUser = this.getOne(Wrappers.lambdaQuery(TAppUser.class)
+ .eq(TAppUser::getPhone, phone)
+ .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, phone)
+ .last("LIMIT 1"));
+ if(Objects.isNull(appUser)){
+ appUser = new TAppUser();
+ appUser.setPhone(phone);
+ }
+ }
+ if(Objects.nonNull(appUser.getStatus())){
+ switch (appUser.getStatus()){
+ case 1:
+ break;
+ case 2:
+ throw new ServiceException("账号被冻结,请联系管理员");
+ case 3:
+ appUser = new TAppUser();
+ appUser.setPhone(phone);
+ break;
+ }
+ }
+ appUser.setInviteUserId(inviteUserId);
+ appUser.setAliOpenid(response.getOpenId());
+ this.saveOrUpdate(appUser);
+ inviteUserService.saveInviteUser(appUser.getId(), inviteUserId);
+ return this.getUserInfo(appUser);
+ }
+// @Override
+// public Map<String, Object> aliLogin(AlipaySystemOauthTokenResponse response, AlipayUserInfoShareResponse 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());
+ 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;
+ }
+
+ @Override
+ public void throwInfo(Integer status){
+ switch (status){
+ case 2:
+ throw new ServiceException("账号被冻结,请联系管理员");
+ case 3:
+// throw new ServiceException("账号已注销,请重新注册使用");
+ default:
+ break;
+ }
+ }
}
--
Gitblit v1.7.1