From 94ae02e6f73b7011f0fcf6acff8636341d35351d Mon Sep 17 00:00:00 2001
From: xuhy <3313886187@qq.com>
Date: 星期三, 15 一月 2025 17:24:06 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
ruoyi-service/ruoyi-user/src/main/java/com/ruoyi/user/service/impl/UserServiceImpl.java | 53 ++++++++++++++++++-----------------------------------
1 files changed, 18 insertions(+), 35 deletions(-)
diff --git a/ruoyi-service/ruoyi-user/src/main/java/com/ruoyi/user/service/impl/UserServiceImpl.java b/ruoyi-service/ruoyi-user/src/main/java/com/ruoyi/user/service/impl/UserServiceImpl.java
index f2b8f7f..a5eafa9 100644
--- a/ruoyi-service/ruoyi-user/src/main/java/com/ruoyi/user/service/impl/UserServiceImpl.java
+++ b/ruoyi-service/ruoyi-user/src/main/java/com/ruoyi/user/service/impl/UserServiceImpl.java
@@ -1,7 +1,6 @@
package com.ruoyi.user.service.impl;
import cn.binarywang.wx.miniapp.api.WxMaService;
-import cn.binarywang.wx.miniapp.api.WxMaUserService;
import cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult;
import cn.binarywang.wx.miniapp.bean.WxMaPhoneNumberInfo;
import cn.hutool.core.util.RandomUtil;
@@ -37,8 +36,6 @@
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {
@Resource
- private WxMaUserService wxMaUserService;
- @Resource
private TokenService tokenService;
@Resource
private WxMaService wxMaService;
@@ -49,7 +46,8 @@
@Value("${wx.appSecret}")
private String appSecret;
- private final String BASE_URL = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=%s&secret=%s&code=%s&grant_type=authorization_code";
+ @Value("${default.profilePicture}")
+ private String profilePicture;
@Override
public R<String> decodeOpenid(HttpServletResponse response, String code) {
@@ -91,15 +89,15 @@
}
if (session != null && StringUtils.isNotBlank(session.getOpenid())) {
String openid = session.getOpenid();
-// String sessionKey = session.getSessionKey();
+ /*String sessionKey = session.getSessionKey();
// 加密明文及初始向量转义
-// encryptedData = URLEncoder.encode(encryptedData, "UTF-8").replace("%3D", "=").replace("%2F", "/");
-// ivStr = URLEncoder.encode(ivStr, "UTF-8").replace("%3D", "=").replace("%2F", "/");
-// // 获取用户信息
-// String result = WxAesUtils.decryptData(WxAesUtils.getUrlDecoderString(encryptedData),
-// sessionKey,
-// WxAesUtils.getUrlDecoderString(ivStr));
-// JSONObject userJson = JSONObject.parseObject(result);
+ encryptedData = URLEncoder.encode(encryptedData, "UTF-8").replace("%3D", "=").replace("%2F", "/");
+ ivStr = URLEncoder.encode(ivStr, "UTF-8").replace("%3D", "=").replace("%2F", "/");
+ // 获取用户信息
+ String result = WxAesUtils.decryptData(WxAesUtils.getUrlDecoderString(encryptedData),
+ sessionKey,
+ WxAesUtils.getUrlDecoderString(ivStr));
+ JSONObject userJson = JSONObject.parseObject(result);*/
// 封装项目用户信息
if (null != phoneNoInfo) {
String phoneNumber = phoneNoInfo.getPhoneNumber();
@@ -108,15 +106,22 @@
if (null == user) {
user = new User();
user.setUserNo(String.format(Constants.USER_NO_PRE, RandomUtil.randomNumbers(Constants.EIGHT)));
+ user.setState(Constants.ONE);
user.setPhone(phoneNumber);
+ user.setProfilePicture(profilePicture);
+ user.setNickname(String.format(Constants.USER_NO_PRE, StringUtils.getCharAndNum(Constants.SIX)));
user.setState(Constants.ONE);
user.setOpenId(openid);
user.setIsDelete(Constants.ZERO);
this.save(user);
} else {
+ if (user.getOpenId()!=null && !user.getOpenId().equals(openid)){
+ user.setOpenId(openid);
+ this.updateById(user);
+ }
Integer state = user.getState();
if (state == 0) {
- throw new GlobalException("该账号未开启,无法进行登录!");
+ throw new GlobalException("账号已被禁用,请联系平台管理员。");
}
}
// 校验通过,生成token及过期时间
@@ -133,27 +138,5 @@
return null;
}
-
- public JSONObject getPhone(String code) {
- // 授权(必填)
- String grantType = "client_credential";
- // 向微信服务器 使用登录凭证 code 获取 session_key 和 openid
- // 请求参数
- String params2 = "appid=" + appId + "&secret=" + appSecret + "&grant_type=" + grantType;
- // 发送请求
- String sr2 = com.ruoyi.user.vx.utils.HttpRequest.sendGet("https://api.weixin.qq.com/cgi-bin/token", params2);
- // 解析相应内容(转换成json对象)
- JSONObject json2 = JSONObject.parseObject(sr2);
- String accessToken = json2.getString("access_token");
- //使用获取到的token和接受到的code像微信获取手机号
- JSONObject jsonObject = new JSONObject();
- jsonObject.put("code", code);
- String url = ("https://api.weixin.qq.com/wxa/business/getuserphonenumber?access_token=" + accessToken);
- String sr3 = com.ruoyi.user.vx.utils.HttpRequest.sendPostNew(url, jsonObject);
- JSONObject json = JSONObject.parseObject(sr3);
- JSONObject phoneInfo = json.getJSONObject("phone_info");
-// return phoneInfo.getString("phoneNumber");
- return phoneInfo;
- }
}
--
Gitblit v1.7.1