From 792cbb986fb8c32f6bbc1638c4ae264372e7a28f Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期四, 23 一月 2025 19:31:36 +0800
Subject: [PATCH] 新增引流接口及业务逻辑
---
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/TAppUserServiceImpl.java | 56 +++++++++++++++++++++++++++++++++++++++++++++++++-------
1 files changed, 49 insertions(+), 7 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 d3351ef..879ca16 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
@@ -10,6 +10,8 @@
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.util.RptUtils;
import com.ruoyi.account.wx.model.WeixinProperties;
import com.ruoyi.account.wx.pojo.AppletUserDecodeData;
import com.ruoyi.common.core.exception.ServiceException;
@@ -17,6 +19,7 @@
import com.ruoyi.system.api.model.LoginUserApplet;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+import org.springframework.util.StringUtils;
import org.springframework.web.client.RestTemplate;
import java.util.HashMap;
@@ -35,18 +38,22 @@
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) {
+ 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)
+ .eq(TAppUser::getStatus,1)
.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())
+ .eq(TAppUser::getStatus,1)
.last("LIMIT 1"));
if(Objects.isNull(appUser)){
appUser = new TAppUser();
@@ -54,29 +61,46 @@
}
}
if(Objects.nonNull(appUser.getStatus())){
- throwInfo(appUser.getStatus());
+ switch (appUser.getStatus()){
+ case 1:
+ break;
+ case 2:
+ throw new ServiceException("账号被冻结,请联系管理员");
+ case 3:
+ appUser = new TAppUser();
+ appUser.setPhone(appletUserDecodeData.getPhoneNumber());
+ break;
+ }
}
- appUser.setAvatar(appletUserDecodeData.getAvatarUrl());
+ if(Objects.nonNull(inviteUserId)){
+ appUser.setInviteUserId(inviteUserId);
+ }
+ appUser.setAvatar(StringUtils.hasLength(appUser.getAvatar())?appUser.getAvatar():"http://221.182.45.100:8090/2024-10-26/logo.png");
+ appUser.setName(StringUtils.hasLength(appUser.getName())?appUser.getName():RptUtils.around(appletUserDecodeData.getPhoneNumber(),3,4));
appUser.setCity(appletUserDecodeData.getCity());
- appUser.setName(appletUserDecodeData.getNickName());
appUser.setProvince(appletUserDecodeData.getProvince());
appUser.setWxOpenid(appletUserDecodeData.getOpenId());
this.saveOrUpdate(appUser);
+ if(Objects.nonNull(inviteUserId)){
+ inviteUserService.saveInviteUser(appUser.getId(), inviteUserId);
+ }
return this.getUserInfo(appUser);
}
@Override
- public Map<String, Object> aliLogin(AlipaySystemOauthTokenResponse response,String phone) {
+ 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)
+ .eq(TAppUser::getStatus,1)
.last("LIMIT 1"));
if(Objects.isNull(appUser)){
// 先使用openId和当前手机号进行查询
appUser = this.getOne(Wrappers.lambdaQuery(TAppUser.class)
.eq(TAppUser::getAliOpenid, response.getOpenId())
.eq(TAppUser::getPhone, phone)
+ .eq(TAppUser::getStatus,1)
.last("LIMIT 1"));
if(Objects.isNull(appUser)){
appUser = new TAppUser();
@@ -84,10 +108,27 @@
}
}
if(Objects.nonNull(appUser.getStatus())){
- throwInfo(appUser.getStatus());
+ switch (appUser.getStatus()){
+ case 1:
+ break;
+ case 2:
+ throw new ServiceException("账号被冻结,请联系管理员");
+ case 3:
+ appUser = new TAppUser();
+ appUser.setPhone(phone);
+ break;
+ }
+ }
+ if(Objects.nonNull(inviteUserId)){
+ appUser.setInviteUserId(inviteUserId);
}
appUser.setAliOpenid(response.getOpenId());
+ appUser.setAvatar(StringUtils.hasLength(appUser.getAvatar())?appUser.getAvatar():"http://221.182.45.100:8090/2024-10-26/logo.png");
+ appUser.setName(StringUtils.hasLength(appUser.getName())?appUser.getName():RptUtils.around(phone,3,4));
this.saveOrUpdate(appUser);
+ if(Objects.nonNull(inviteUserId)){
+ inviteUserService.saveInviteUser(appUser.getId(), inviteUserId);
+ }
return this.getUserInfo(appUser);
}
// @Override
@@ -125,6 +166,7 @@
LoginUserApplet loginUserApplet = new LoginUserApplet();
if(ObjectUtils.isNotNull(appUser)){
loginUserApplet.setUserId(appUser.getId());
+ loginUserApplet.setUserIdStr(appUser.getId().toString());
loginUserApplet.setName(appUser.getName());
loginUserApplet.setPhone(appUser.getPhone());
loginUserApplet.setAvatar(appUser.getAvatar());
@@ -142,7 +184,7 @@
case 2:
throw new ServiceException("账号被冻结,请联系管理员");
case 3:
- throw new ServiceException("账号已注销,请重新注册使用");
+// throw new ServiceException("账号已注销,请重新注册使用");
default:
break;
}
--
Gitblit v1.7.1