From d954874fad36cb31a910a3bbce8bda04cb6e8be7 Mon Sep 17 00:00:00 2001
From: ‘liusuyi’ <1951119284@qq.com>
Date: 周四, 10 8月 2023 11:30:42 +0800
Subject: [PATCH] 修改首次用户登录获取不到融云token的bug

---
 ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java |   38 ------------------
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java  |    2 
 ard-work/src/main/java/com/ruoyi/storage/minio/utils/MinioService.java             |   12 +++--
 ard-work/src/main/java/com/ruoyi/media/service/impl/WebrtcService.java             |   10 +++--
 ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/LoginUser.java       |   17 ++++----
 ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/TokenService.java    |    3 +
 ard-work/src/main/java/com/ruoyi/media/service/impl/MediaService.java              |   10 +++--
 7 files changed, 31 insertions(+), 61 deletions(-)

diff --git a/ard-work/src/main/java/com/ruoyi/media/service/impl/MediaService.java b/ard-work/src/main/java/com/ruoyi/media/service/impl/MediaService.java
index d10da3b..c4be437 100644
--- a/ard-work/src/main/java/com/ruoyi/media/service/impl/MediaService.java
+++ b/ard-work/src/main/java/com/ruoyi/media/service/impl/MediaService.java
@@ -71,10 +71,12 @@
 
     @PreDestroy
     public void destroyMediaMtx() {
-        log.info("销毁mediaMtx");
-        if (CmdUtils.isProcessRunning(processName)) {
-            // 进程已经在运行,结束该进程
-            CmdUtils.stopProcess(processName);
+        if (mediamtxEnabled) {
+            log.info("销毁mediaMtx");
+            if (CmdUtils.isProcessRunning(processName)) {
+                // 进程已经在运行,结束该进程
+                CmdUtils.stopProcess(processName);
+            }
         }
     }
 
diff --git a/ard-work/src/main/java/com/ruoyi/media/service/impl/WebrtcService.java b/ard-work/src/main/java/com/ruoyi/media/service/impl/WebrtcService.java
index 28c0053..e8b45ba 100644
--- a/ard-work/src/main/java/com/ruoyi/media/service/impl/WebrtcService.java
+++ b/ard-work/src/main/java/com/ruoyi/media/service/impl/WebrtcService.java
@@ -55,10 +55,12 @@
 
     @PreDestroy
     public void destroyMediaMtx() {
-        log.info("销毁webrtc-streamer");
-        if (CmdUtils.isProcessRunning(processName)) {
-            // 进程已经在运行,结束该进程
-            CmdUtils.stopProcess(processName);
+        if (webrtcEnabled) {
+            log.info("销毁webrtc-streamer");
+            if (CmdUtils.isProcessRunning(processName)) {
+                // 进程已经在运行,结束该进程
+                CmdUtils.stopProcess(processName);
+            }
         }
     }
 }
diff --git a/ard-work/src/main/java/com/ruoyi/media/service/impl/MinioService.java b/ard-work/src/main/java/com/ruoyi/storage/minio/utils/MinioService.java
similarity index 87%
rename from ard-work/src/main/java/com/ruoyi/media/service/impl/MinioService.java
rename to ard-work/src/main/java/com/ruoyi/storage/minio/utils/MinioService.java
index 3c41b6c..2e095bc 100644
--- a/ard-work/src/main/java/com/ruoyi/media/service/impl/MinioService.java
+++ b/ard-work/src/main/java/com/ruoyi/storage/minio/utils/MinioService.java
@@ -1,4 +1,4 @@
-package com.ruoyi.media.service.impl;
+package com.ruoyi.storage.minio.utils;
 
 import com.ruoyi.utils.tools.CmdUtils;
 import com.sun.jna.Platform;
@@ -61,10 +61,12 @@
 
     @PreDestroy
     public void destroyMediaMtx() {
-        log.info("销毁minio");
-        if (CmdUtils.isProcessRunning(processName)) {
-            // 进程已经在运行,结束该进程
-            CmdUtils.stopProcess(processName);
+        if (minioEnabled) {
+            log.info("销毁minio");
+            if (CmdUtils.isProcessRunning(processName)) {
+                // 进程已经在运行,结束该进程
+                CmdUtils.stopProcess(processName);
+            }
         }
     }
 }
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 780665c..736c164 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
@@ -54,7 +54,7 @@
         AjaxResult ajax = AjaxResult.success();
         // 生成令牌
         String token = loginService.login(loginBody.getUsername(), loginBody.getPassword(), loginBody.getCode(),
-                loginBody.getUuid(),loginBody.getApp());
+                loginBody.getUuid());
         ajax.put(Constants.TOKEN, token);
         return ajax;
     }
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/LoginUser.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/LoginUser.java
index c2a07d4..63da276 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/LoginUser.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/LoginUser.java
@@ -30,7 +30,10 @@
      * 用户唯一标识
      */
     private String token;
-
+    /**
+     * 融云token
+     */
+    private String rongCloudToken;
     /**
      * 登录时间
      */
@@ -71,17 +74,13 @@
      */
     private SysUser user;
 
-    /**
-     *  是否app用户
-     */
-    private Boolean isApp;
 
-    public Boolean getIsApp() {
-        return isApp;
+    public String getRongCloudToken() {
+        return rongCloudToken;
     }
 
-    public void setIsApp(Boolean isApp) {
-        this.isApp = isApp;
+    public void setRongCloudToken(String rongCloudToken) {
+        this.rongCloudToken = rongCloudToken;
     }
 
     public String getUserId()
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 cd67a89..65f812c 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
@@ -95,43 +95,6 @@
         getRongCloudToken(loginUser);
         return token;
     }
-    public String login(String username, String password, String code, String uuid,Boolean isApp) {
-        boolean captchaEnabled = configService.selectCaptchaEnabled();
-        // 验证码开关
-        if (captchaEnabled) {
-            validateCaptcha(username, code, uuid);
-        }
-        // 用户验证
-        Authentication authentication = null;
-        try {
-            UsernamePasswordAuthenticationToken authenticationToken = new UsernamePasswordAuthenticationToken(username, password);
-            AuthenticationContextHolder.setContext(authenticationToken);
-            // 该方法会去调用UserDetailsServiceImpl.loadUserByUsername
-            authentication = authenticationManager.authenticate(authenticationToken);
-        } catch (Exception e) {
-            if (e instanceof BadCredentialsException) {
-                AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_FAIL, MessageUtils.message("user.password.not.match")));
-                throw new UserPasswordNotMatchException();
-            } else {
-                AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_FAIL, e.getMessage()));
-                throw new ServiceException(e.getMessage());
-            }
-        } finally {
-            AuthenticationContextHolder.clearContext();
-        }
-        AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_SUCCESS, MessageUtils.message("user.login.success")));
-        LoginUser loginUser = (LoginUser) authentication.getPrincipal();
-        recordLoginInfo(loginUser.getUserId());
-        // 生成token
-        if(StringUtils.isNotNull(isApp))
-        {
-            loginUser.setIsApp(isApp);
-        }
-        String token = tokenService.createToken(loginUser);
-        //获取融云token
-        getRongCloudToken(loginUser);
-        return token;
-    }
     /**
      * 校验验证码
      *
@@ -176,6 +139,7 @@
             String userId = loginUser.getUserId();
             String nickName = loginUser.getUser().getNickName();
             String token = rongCloudService.getToken(userId, nickName);
+            loginUser.setRongCloudToken(token);
             SysUser sysUser = new SysUser();
             sysUser.setUserId(userId);
             sysUser.setRongCloudToken(token);
diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/TokenService.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/TokenService.java
index 6183d67..710b5d3 100644
--- a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/TokenService.java
+++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/TokenService.java
@@ -142,7 +142,8 @@
     public void refreshToken(LoginUser loginUser)
     {
         loginUser.setLoginTime(System.currentTimeMillis());
-        if(StringUtils.isNull(loginUser.getIsApp()))
+        String appUserType = loginUser.getUser().getAppUserType();
+        if(StringUtils.isNull(appUserType))
         {
             loginUser.setExpireTime(loginUser.getLoginTime() + expireTime * MILLIS_MINUTE);
             // 根据uuid将loginUser缓存

--
Gitblit v1.9.3