Explorar o código

修改飞书 授权回调地址

syh %!s(int64=5) %!d(string=hai) anos
pai
achega
65938be441

+ 21 - 20
jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/controller/LoginController.java

@@ -24,7 +24,6 @@ import me.chanjar.weixin.cp.bean.WxCpUser;
 import me.chanjar.weixin.cp.config.impl.WxCpDefaultConfigImpl;
 import me.chanjar.weixin.cp.config.impl.WxCpDefaultConfigImpl;
 import org.apache.shiro.SecurityUtils;
 import org.apache.shiro.SecurityUtils;
 import org.apache.shiro.subject.Subject;
 import org.apache.shiro.subject.Subject;
-import org.eclipse.jetty.util.UrlEncoded;
 import org.jeecg.common.api.vo.Result;
 import org.jeecg.common.api.vo.Result;
 import org.jeecg.common.constant.CommonConstant;
 import org.jeecg.common.constant.CommonConstant;
 import org.jeecg.common.system.api.ISysBaseApi;
 import org.jeecg.common.system.api.ISysBaseApi;
@@ -90,17 +89,19 @@ public class LoginController {
         }
         }
     }
     }
     @GetMapping("/feishu/auth")
     @GetMapping("/feishu/auth")
-    public void feishuAuth(HttpServletRequest request,
+    public Map<String,Object> feishuAuth(HttpServletRequest request,
                            HttpServletResponse response,
                            HttpServletResponse response,
                            @RequestParam(name = "code",defaultValue = "code") String code,
                            @RequestParam(name = "code",defaultValue = "code") String code,
                            @RequestParam(name = "state",defaultValue = "_t") String state) throws IOException {
                            @RequestParam(name = "state",defaultValue = "_t") String state) throws IOException {
-        Result<JSONObject> result = new Result<>();
+        Map<String,Object> result = new HashMap<>();
         //1:根据code值获取用户飞书信息
         //1:根据code值获取用户飞书信息
         try {
         try {
             if(code.trim().equals("code")){
             if(code.trim().equals("code")){
                 String url = AuthProvider.getAuthUrl("");
                 String url = AuthProvider.getAuthUrl("");
-                response.sendRedirect(url);
-                return ;
+                result.put("url",url);
+                result.put("type",1);
+                ResultMapUtils.setResultMap(result,StatusCode.COMMON_SUCCESS);
+                return result;
             }
             }
             JSONObject data = AuthProvider.getFeishuUserInfo(code);
             JSONObject data = AuthProvider.getFeishuUserInfo(code);
             String accessToken = data.getJSONObject("data").getString("access_token");
             String accessToken = data.getJSONObject("data").getString("access_token");
@@ -110,27 +111,27 @@ public class LoginController {
             JSONObject dataObject = userData.getJSONObject("data");
             JSONObject dataObject = userData.getJSONObject("data");
             String email = dataObject.getString("email");
             String email = dataObject.getString("email");
             if(null == email||email.trim().equals("")){
             if(null == email||email.trim().equals("")){
-                response.sendRedirect(DOMAIN_SERVER+"errorPage?desc="+ UrlEncoded.encodeString("飞书账号未绑定邮箱"));
-                return ;
+                ResultMapUtils.setResultMap(result,StatusCode.CTOP_FEISHU_EMAIL_NOT_EXIST);
+                return result;
             }
             }
             SysUser sysUser = sysUserService.getUserByEmail(email);
             SysUser sysUser = sysUserService.getUserByEmail(email);
             if (sysUser == null) {
             if (sysUser == null) {
-                response.sendRedirect(DOMAIN_SERVER+"errorPage?desc="+ UrlEncoded.encodeString("该用户未注册系统账户,请联系管理员"));
-                return ;
+                ResultMapUtils.setResultMap(result,StatusCode.CTOP_FEISHU_ACCOUNT_NOT_EXIST);
+                return result;
             }
             }
             if(sysUser.getStatus() != 1){
             if(sysUser.getStatus() != 1){
-                response.sendRedirect(DOMAIN_SERVER+"errorPage?desc="+UrlEncoded.encodeString("该用户已被冻结,请联系管理员"));
-                return ;
+                ResultMapUtils.setResultMap(result,StatusCode.CTOP_FEISHU_ACCOUNT_NOT_EXIST);
+                return result;
             }
             }
             String departId = sysDepartService.selectIdByOrdCode(sysUser.getOrgCode());
             String departId = sysDepartService.selectIdByOrdCode(sysUser.getOrgCode());
             sysUser.setDepartId(departId);
             sysUser.setDepartId(departId);
-            result = sysUserService.checkUserIsEffective(sysUser);
-            if (!result.isSuccess()) {
-                response.sendRedirect(DOMAIN_SERVER+"errorPage?desc="+UrlEncoded.encodeString(result.getMessage()));
-                return ;
+            Result<JSONObject> getResult = sysUserService.checkUserIsEffective(sysUser);
+            if (!getResult.isSuccess()) {
+                ResultMapUtils.setResultMap(result,StatusCode.COMMON_ACCOUNT_ERROR);
+                return result;
             }
             }
             //用户登录信息
             //用户登录信息
-            userInfo(sysUser, result);
+            userInfo(sysUser, getResult);
             sysBaseApi.addLog("用户名: " + email + ",登录成功!", CommonConstant.LOG_TYPE_1, null);
             sysBaseApi.addLog("用户名: " + email + ",登录成功!", CommonConstant.LOG_TYPE_1, null);
             CorpFeishuUser feishuUser = corpFeishuUserService.getById(sysUser.getId());
             CorpFeishuUser feishuUser = corpFeishuUserService.getById(sysUser.getId());
             if (feishuUser == null) {
             if (feishuUser == null) {
@@ -148,12 +149,12 @@ public class LoginController {
                 feishuUser.setUpdateTime(new Date());
                 feishuUser.setUpdateTime(new Date());
                 corpFeishuUserService.save(feishuUser);
                 corpFeishuUserService.save(feishuUser);
             }
             }
-            response.sendRedirect(DOMAIN_SERVER+"dashboard/analysis");
-            return ;
+            ResultMapUtils.setResultMap(result,StatusCode.COMMON_SUCCESS);
+            return result;
         } catch (Exception e) {
         } catch (Exception e) {
             e.printStackTrace();
             e.printStackTrace();
-            response.sendRedirect(DOMAIN_SERVER+"errorPage?desc="+ UrlEncoded.encodeString("系统异常,请联系管理员"));
-            return;
+            ResultMapUtils.setResultMap(result,StatusCode.COMMON_SERVER_ERROR);
+            return result;
         }
         }
     }
     }
 
 

+ 4 - 0
module-common/src/main/java/cn/com/ctop/common/module/utils/StatusCode.java

@@ -20,6 +20,7 @@ public enum StatusCode {
      */
      */
     COMMON_SUCCESS("success", 0, true),
     COMMON_SUCCESS("success", 0, true),
     COMMON_PARAM_ERROR("参数异常", -1, false),
     COMMON_PARAM_ERROR("参数异常", -1, false),
+    COMMON_ACCOUNT_ERROR("参数异常", -2, false),
     COMMON_DATA_NOT_EXIST("数据不存在或者已经被删除", -101, false),
     COMMON_DATA_NOT_EXIST("数据不存在或者已经被删除", -101, false),
     COMMON_VERSION_NOT_EXIST("版本号不存在", -102, false),
     COMMON_VERSION_NOT_EXIST("版本号不存在", -102, false),
     BYTEDANCE_VIDEO_UPLOAD_FAIL("今日头条视频文件上传失败", -201, false),
     BYTEDANCE_VIDEO_UPLOAD_FAIL("今日头条视频文件上传失败", -201, false),
@@ -37,6 +38,9 @@ public enum StatusCode {
     CTOP_HAS_NO_PERFORMANCE_STATISTIC_LOGIC("绩效统计逻辑尚未确定", -103, false),
     CTOP_HAS_NO_PERFORMANCE_STATISTIC_LOGIC("绩效统计逻辑尚未确定", -103, false),
     CTOP_SCRIPT_FILE_NOT_EXIST("脚本文件不存在", -104, false),
     CTOP_SCRIPT_FILE_NOT_EXIST("脚本文件不存在", -104, false),
     CTOP_PROJECT_NOT_EXIST("项目不存在", -105, false),
     CTOP_PROJECT_NOT_EXIST("项目不存在", -105, false),
+    CTOP_FEISHU_EMAIL_NOT_EXIST("飞书账户未绑定邮箱", -106, false),
+    CTOP_FEISHU_ACCOUNT_NOT_EXIST("该用户未注册系统账户,请联系管理员", -107, false),
+
     KUAISHOU_CRAWLER_APP_EXIT("快手app异常退出", -1001, false),
     KUAISHOU_CRAWLER_APP_EXIT("快手app异常退出", -1001, false),
     KUAISHOU_CRAWLER_APP_ELEMENT_ERROR("快手元素异常", -1002, false),
     KUAISHOU_CRAWLER_APP_ELEMENT_ERROR("快手元素异常", -1002, false),
     KUAISHOU_CRAWLER_APP_ELEMENT_IS_NULL("此快手元素获取不到", -1003, false),
     KUAISHOU_CRAWLER_APP_ELEMENT_IS_NULL("此快手元素获取不到", -1003, false),