From 83e3542043aa031da4d0cd22e3284d279337e2f5 Mon Sep 17 00:00:00 2001
From: phpcjl <phpcjl@gmail.com>
Date: 星期一, 09 十二月 2024 17:33:50 +0800
Subject: [PATCH] 1.
---
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/AppUserServiceImpl.java | 28 ++++++++++++++++++++++++----
1 files changed, 24 insertions(+), 4 deletions(-)
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/AppUserServiceImpl.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/AppUserServiceImpl.java
index d16e473..28554a7 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/AppUserServiceImpl.java
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/AppUserServiceImpl.java
@@ -1,5 +1,7 @@
package com.ruoyi.account.service.impl;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.account.api.model.AppUserShop;
@@ -7,9 +9,11 @@
import com.ruoyi.account.api.model.AppUser;
import com.ruoyi.account.service.AppUserService;
import com.ruoyi.account.service.AppUserShopService;
+import com.ruoyi.account.util.weChat.WXCore;
import com.ruoyi.account.util.weChat.WeChatUtil;
import com.ruoyi.account.vo.*;
import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.core.utils.StringUtils;
import com.ruoyi.common.redis.service.RedisService;
import com.ruoyi.common.security.service.TokenService;
import com.ruoyi.other.api.domain.Shop;
@@ -73,11 +77,19 @@
return R.fail(map.get("msg").toString());
}
String openid = map.get("openid").toString();
+ String sessionKey = map.get("sessionKey").toString();
//查询用户是否注册,没有注册则跳转到注册页面
AppUser appUser = this.getOne(new LambdaQueryWrapper<AppUser>().eq(AppUser::getWxOpenid, openid).ne(AppUser::getStatus, 3).eq(AppUser::getDelFlag, 0));
if(null == appUser){
+ String decrypt = WXCore.decrypt(appletLogin.getEncryptedData_phone(), sessionKey, appletLogin.getIv_phone());
+ if (StringUtils.isEmpty(decrypt)) {
+ return R.fail("获取手机信息失败");
+ }
+ JSONObject phone = JSON.parseObject(decrypt);
+ String purePhoneNumber = phone.getString("purePhoneNumber");
LoginVo loginVo = new LoginVo();
loginVo.setSkipPage(2);
+ loginVo.setPhone(purePhoneNumber);
return R.ok(loginVo);
}
//账户被冻结,给出提示
@@ -117,6 +129,7 @@
if(null == appUser){
LoginVo loginVo = new LoginVo();
loginVo.setSkipPage(2);
+ loginVo.setPhone(mobileLogin.getPhone());
return R.ok(loginVo);
}
//账户被冻结,给出提示
@@ -204,10 +217,18 @@
return R.fail("此微信号已注册,请直接登录!");
}
AppUser appUser1 = this.getOne(new LambdaQueryWrapper<AppUser>().eq(AppUser::getPhone, registerAccount.getPhone()).ne(AppUser::getStatus, 3).eq(AppUser::getDelFlag, 0));
- if(null != appUser1){
+ if(null != appUser1 && StringUtils.isNotEmpty(appUser1.getWxOpenid())){
return R.fail("手机号已注册,请直接登录!");
}
- if(null == appUser){
+ if(null != appUser1 && appUser1.getStatus() == 2){
+ return R.fail("手机号已注册,请直接登录!");
+ }
+ //如果手机号已注册,但是没有微信号,则将微信号添加到已有账户上
+ if(null != appUser1 && StringUtils.isEmpty(appUser1.getWxOpenid())){
+ appUser1.setWxOpenid(openid);
+ this.updateById(appUser1);
+ appUser = appUser1;
+ }else if(null == appUser){
appUser = new AppUser();
appUser.setName(registerAccount.getName());
appUser.setPhone(registerAccount.getPhone());
@@ -276,11 +297,10 @@
sysUserClient.saveShopUser(user);
}
}
-
}
LoginVo loginVo = new LoginVo();
loginVo.setSkipPage(1);
- loginVo.setFirstTime(false);
+ loginVo.setFirstTime(null == appUser1 ? true : false);
loginVo.setPhone(appUser.getPhone());
//构建token
LoginUser loginUser = new LoginUser();
--
Gitblit v1.7.1