فهرست منبع

Merge branch 'master' of http://62.234.61.92:3000/wjm/mec-cloud_IntelligentManufacturing_CLIENT

lph 1 سال پیش
والد
کامیت
b7ca392ed4

+ 1 - 1
zkqy-admin/src/main/java/com/zkqy/web/controller/system/SysIndexController.java

@@ -24,6 +24,6 @@ public class SysIndexController
     @RequestMapping("/")
     public String index()
     {
-        return StringUtils.format("欢迎使用{}后台管理框架,当前版本:v{},请通过前端地址访问。", ruoyiConfig.getName(), ruoyiConfig.getVersion());
+        return StringUtils.format("生产协同{}后台管理框架,当前版本:v{},请通过前端地址访问。", ruoyiConfig.getName(), ruoyiConfig.getVersion());
     }
 }

+ 76 - 9
zkqy-framework/src/main/java/com/zkqy/framework/sso_oauth2/controller/OauthController.java

@@ -28,11 +28,18 @@ import org.springframework.security.core.AuthenticationException;
 import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.*;
 
+import java.io.UnsupportedEncodingException;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.net.URLDecoder;
+import java.net.URLEncoder;
+import java.util.HashMap;
+import java.util.Map;
+
+
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 import java.time.LocalDateTime;
-import java.util.HashMap;
-import java.util.Map;
 
 /**
  * 基于oauth2.0相关的授权相关操作
@@ -109,7 +116,12 @@ public class OauthController {
         if (StringUtils.isNoneBlank(status)) {
             params = params + "&status=" + status;
         }
-//        request.getSession().setAttribute(Constants.SESSION_USER, sysUser);
+        // 放
+        request.getSession().setAttribute(Constants.SESSION_USER, sysUser);
+        // 取
+        SysUser user = (SysUser) request.getSession().getAttribute(Constants.SESSION_USER);
+        System.err.println(user);
+        System.err.println(sysUser);
         // 存放redis用户信息数据
         redisCache.setCacheObject(authorizationCode, sysUser);
         return AjaxResult.success(authorizationCode, params);
@@ -123,7 +135,8 @@ public class OauthController {
     public String getAuthorize(HttpServletRequest request) {
         String key = request.getParameter("key");
         String tenantCode = request.getParameter("tenantCode");
-        Object user = request.getParameter(Constants.SESSION_USER);
+        // 取
+        SysUser user = (SysUser) request.getSession().getAttribute(Constants.SESSION_USER);
         if (key != null && !key.isEmpty()) {
             SysUser sysUser = redisService.get(key);
             String clientIdStr = request.getParameter("client_id");
@@ -131,13 +144,28 @@ public class OauthController {
             String redirectUri = request.getParameter("redirect_uri");
             String status = request.getParameter("status");
             String authorizationCode = authorizationService.createAuthorizationCode(clientIdStr, scopeStr, sysUser);
-            String params =
-                    redirectUri + "?code=" + authorizationCode;
-            if (StringUtils.isNoneBlank(status)) {
-                params = params + "&status=" + status;
+            String UrlString = "";
+            try {
+                URL url = new URL(redirectUri);
+                String queryString = url.getQuery();
+                // 解析查询参数
+                Map<String, String> params = parseQueryParameters(queryString);
+                // 修改或添加参数
+                params.put("code", authorizationCode);
+                params.put("status", status);
+                params.put("params", request.getParameter("params"));  // 增加第三方所需参数字段
+                // 封装新的查询参数为字符串
+                String newQueryString = buildQueryString(params);
+                // 构造新的URL
+                UrlString = url.getProtocol() + "://" + url.getHost() + ":" + url.getPort() + url.getPath() + "?" + newQueryString;
+                // redisService.delete(key);
+                return "redirect:" + UrlString;
+            } catch (MalformedURLException e) {
+                e.printStackTrace();
             }
             // redisService.delete(key);
-            return "redirect:" + params;
+            return "redirect:" + REDIRECT_URL + "/login?tenantCode=" + tenantCode;
+
         } else {
             return "redirect:" + REDIRECT_URL + "/login?tenantCode=" + tenantCode;
         }
@@ -322,4 +350,43 @@ public class OauthController {
         result.put("error_description", errorCodeEnum.getErrorDescription());
     }
 
+    // 解析URL查询参数
+    public static Map<String, String> parseQueryParameters(String queryString) {
+        Map<String, String> params = new HashMap<>();
+        if (queryString != null && !queryString.isEmpty()) {
+            String[] pairs = queryString.split("&");
+            for (String pair : pairs) {
+                int idx = pair.indexOf("=");
+                if (idx > 0) {
+                    try {
+                        String key = URLDecoder.decode(pair.substring(0, idx), "UTF-8");
+                        String value = URLDecoder.decode(pair.substring(idx + 1), "UTF-8");
+                        params.put(key, value);
+                    } catch (UnsupportedEncodingException e) {
+                        e.printStackTrace();
+                    }
+                }
+            }
+        }
+        return params;
+    }
+
+    // 封装查询参数为字符串
+    public static String buildQueryString(Map<String, String> params) {
+        StringBuilder queryBuilder = new StringBuilder();
+        for (Map.Entry<String, String> entry : params.entrySet()) {
+            if (queryBuilder.length() > 0) {
+                queryBuilder.append("&");
+            }
+            try {
+                queryBuilder.append(URLEncoder.encode(entry.getKey(), "UTF-8"))
+                        .append("=")
+                        .append(URLEncoder.encode(entry.getValue(), "UTF-8"));
+            } catch (UnsupportedEncodingException e) {
+                e.printStackTrace();
+            }
+        }
+        return queryBuilder.toString();
+    }
+
 }

+ 4 - 4
zkqy-process-execution/src/main/java/com/zkqy/execution/produce/dispersed/runbpm/PreExecutionToolClass.java

@@ -557,10 +557,10 @@ public class PreExecutionToolClass<R> {
                 String sqlKey = taskNodeFromContentJson.get("sqlKey").toString();
                 //根据sqlKey查询表单数据
 
-//                if (!sqlKey.isEmpty()) {
-//                    Map<String, String> tableSqlBySqlKey = executeNodeFormMapper.getTableSqlBySqlKey(sqlKey);
-//                    hashMap.put("resultMap", tableSqlBySqlKey);
-//                }
+                // if (!sqlKey.isEmpty()) {
+                // Map<String, String> tableSqlBySqlKey = executeNodeFormMapper.getTableSqlBySqlKey(sqlKey);
+                // hashMap.put("resultMap", tableSqlBySqlKey);
+                // }
 
                 //得到【df_form_sql】
                 String dfFormSql = taskNodeFromContentJson.get("dfFormSql").toString();

+ 0 - 1
zkqy-process-execution/src/main/java/com/zkqy/execution/produce/dispersed/service/impl/BpmExecuteProcessServiceImpl.java

@@ -82,7 +82,6 @@ public class BpmExecuteProcessServiceImpl implements IBpmExecuteProcessService {
         if (StringUtils.isNotEmpty(dictDataList)) {
             Map<String, Object> objectMap = new HashMap<>();  // 查询执行管道的参数
             objectMap.putAll(convertEntityToMap(bpmExecuteProcess));
-
             if (!bpmExecuteProcess.getTaskProcessType().equals("1")) {  // 审批类型
                 dictDataList.forEach(item -> {
                     objectMap.put(item.getDictLabel(), item.getDictValue());

+ 6 - 1
zkqy-ui/src/layout/components/Sidebar/SidebarItem.vue

@@ -96,14 +96,18 @@ export default {
       if (isExternal(this.basePath)) {
         if (routeQuery) {
           let query = JSON.parse(routeQuery);
+          console.log("query参数", query)
           if (query.key) {
             // 设置code
             query.key = window.localStorage.getItem("setoauthUUID" + this.userInfo.name);
             query.tenantCode = this.userInfo.tenant.tenantCode
+            query.redirect_uri = encodeURIComponent(query.redirect_uri);
+            query.params = encodeURIComponent(query.params);
+            console.log(query)
             let baseURL = this.basePath
             Object.keys(query).forEach((key, index) => {
               if (index == 0) {
-                baseURL += '?' + key + '=' + query[key];
+                baseURL += '&' + key + '=' + query[key];
               } else {
                 baseURL += '&' + key + '=' + query[key];
               }
@@ -111,6 +115,7 @@ export default {
             return baseURL;
           }
         }
+        console.log(this.basePath)
         return this.basePath
       }