From ee29556679d92bdc1aa0d5951e4931d342c29c3f Mon Sep 17 00:00:00 2001
From: ‘liusuyi’ <1951119284@qq.com>
Date: Thu, 10 Aug 2023 12:51:18 +0800
Subject: [PATCH] 优化首次用户登录获取不到融云token的bug
---
ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java | 10 +++++++---
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java | 1 +
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java | 26 ++++++++++++++------------
ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/LoginBody.java | 13 -------------
4 files changed, 22 insertions(+), 28 deletions(-)
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java
index 736c164..b3053e5 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java
@@ -24,14 +24,13 @@
/**
* 登录验证
- *
+ *
* @author ruoyi
*/
@RestController
@Api(tags = "登录验证接口")
@Anonymous
-public class SysLoginController
-{
+public class SysLoginController {
@Autowired
private SysLoginService loginService;
@@ -43,14 +42,13 @@
/**
* 登录方法
- *
+ *
* @param loginBody 登录信息
* @return 结果
*/
@PostMapping("/login")
@ApiOperation(value = "登录")
- public AjaxResult login(@RequestBody LoginBody loginBody)
- {
+ public AjaxResult login(@RequestBody LoginBody loginBody) {
AjaxResult ajax = AjaxResult.success();
// 生成令牌
String token = loginService.login(loginBody.getUsername(), loginBody.getPassword(), loginBody.getCode(),
@@ -61,14 +59,19 @@
/**
* 获取用户信息
- *
+ *
* @return 用户信息
*/
@GetMapping("getInfo")
@ApiOperation(value = "获取用户信息")
- public AjaxResult getInfo()
- {
+ public AjaxResult getInfo() {
SysUser user = SecurityUtils.getLoginUser().getUser();
+ // 赋值融云token到用户信息
+ String rongCloudToken = SecurityUtils.getLoginUser().getRongCloudToken();
+ if (rongCloudToken != null) {
+ user.setRongCloudToken(rongCloudToken);
+ }
+
// 角色集合
Set<String> roles = permissionService.getRolePermission(user);
// 权限集合
@@ -82,12 +85,11 @@
/**
* 获取路由信息
- *
+ *
* @return 路由信息
*/
@GetMapping("getRouters")
- public AjaxResult getRouters()
- {
+ public AjaxResult getRouters() {
String userId = SecurityUtils.getUserId();
List<SysMenu> menus = menuService.selectMenuTreeByUserId(userId);
return AjaxResult.success(menuService.buildMenus(menus));
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/LoginBody.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/LoginBody.java
index 3d6e809..b9e58c6 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/LoginBody.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/LoginBody.java
@@ -27,19 +27,6 @@
*/
private String uuid;
- /**
- * 是否APP用户
- */
- private Boolean isApp;
-
-
- public Boolean getApp() {
- return isApp;
- }
-
- public void setApp(Boolean app) {
- isApp = app;
- }
public String getUsername()
{
diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java
index 65f812c..f3fa8aa 100644
--- a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java
+++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java
@@ -50,6 +50,7 @@
@Autowired
private ISysConfigService configService;
+
@Resource
RongCloudService rongCloudService;
@@ -63,6 +64,8 @@
* @return 结果
*/
public String login(String username, String password, String code, String uuid) {
+
+
boolean captchaEnabled = configService.selectCaptchaEnabled();
// 验证码开关
if (captchaEnabled) {
@@ -89,10 +92,10 @@
AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_SUCCESS, MessageUtils.message("user.login.success")));
LoginUser loginUser = (LoginUser) authentication.getPrincipal();
recordLoginInfo(loginUser.getUserId());
+
+ getRongCloudToken(loginUser);
// 生成token
String token = tokenService.createToken(loginUser);
- //获取融云token
- getRongCloudToken(loginUser);
return token;
}
/**
@@ -134,7 +137,7 @@
*
* @param loginUser 登录用户
*/
- public void getRongCloudToken(LoginUser loginUser) {
+ public String getRongCloudToken(LoginUser loginUser) {
try {
String userId = loginUser.getUserId();
String nickName = loginUser.getUser().getNickName();
@@ -144,6 +147,7 @@
sysUser.setUserId(userId);
sysUser.setRongCloudToken(token);
userService.updateUserProfile(sysUser);
+ return token;
} catch (Exception ex) {
throw ex;
}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java
index 0081723..aa41612 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java
@@ -13,6 +13,7 @@
import com.ruoyi.alarm.config.domain.ArdAlarmTypeConfig;
import com.ruoyi.alarm.config.mapper.ArdAlarmTypeConfigMapper;
import com.ruoyi.common.constant.CacheConstants;
+import com.ruoyi.common.core.domain.model.LoginUser;
import com.ruoyi.common.core.redis.RedisCache;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.DictUtils;
--
Gitblit v1.9.3