Forráskód Böngészése

增加OA接口调用公共类

wangjun 3 hete
szülő
commit
350aa935a7

+ 157 - 0
code/jyyy/nckd-jimin-jyyy-bd/src/main/java/nckd/jimin/jyyy/bd/common/oauth/FanWeiUtils.java

@@ -0,0 +1,157 @@
+package nckd.jimin.jyyy.bd.common.oauth;
+
+import com.alibaba.fastjson.JSONObject;
+import com.alibaba.fastjson.JSONArray;
+import kd.bos.exception.KDBizException;
+
+import kd.bos.logging.Log;
+import kd.bos.logging.LogFactory;
+import kd.bos.sdk.util.KHttpClientUtils;
+import kd.bos.util.StringUtils;
+import nckd.base.helper.CommonHelperUtils;
+
+import java.util.HashMap;
+import java.util.Map;
+
+public class FanWeiUtils {
+    private static final Log logger = LogFactory.getLog(FanWeiUtils.class);
+
+    public static String getFanWeiToken(String url) {
+        try {
+            Map<String, String> mapentity = CommonHelperUtils.getCommonParams("fanwei");
+            if(mapentity == null){
+                return null;
+            }
+            String param_corpid = mapentity.get("corpid");
+            String param_response = mapentity.get("response_type");
+            String param_state = mapentity.get("state");
+            String param_app_key = mapentity.get("app_key");
+            String param_grant_type = mapentity.get("grant_type");
+            String param_app_secret = mapentity.get("app_secret");
+            String param_code_url = mapentity.get("getcode");
+            String param_token_url = mapentity.get("gettoken");
+            String post_getspeaker_url = mapentity.get("getspeaker");
+
+            if( StringUtils.isEmpty(param_corpid) || StringUtils.isEmpty(param_app_secret)
+                    || StringUtils.isEmpty(param_code_url) || StringUtils.isEmpty(param_token_url)
+                    ||  StringUtils.isEmpty(param_app_key)){
+                return null;
+            }
+
+            String post_url = null;
+            switch (url) {
+                case "speaker":
+                    post_url = post_getspeaker_url;break;
+                default:
+                    break;
+            }
+
+            //http://172.16.51.120:20600/papi/openapi/oauth2/authorize?corpid=ca9c4a14fe2e2d92d94125024c538ba3&response_type=code&state=jyyy
+
+            //获取token
+            StringBuilder authorizeUrl = new StringBuilder();
+            authorizeUrl.append(param_code_url);
+            authorizeUrl.append("?corpid=");
+            authorizeUrl.append(param_corpid);
+            authorizeUrl.append("&response_type=");
+            authorizeUrl.append(param_response);
+            authorizeUrl.append("&state=");
+            authorizeUrl.append(param_state);
+
+            logger.info("请求泛微 接口:" + authorizeUrl.toString() );
+            String code = KHttpClientUtils.get(authorizeUrl.toString());
+            logger.info("请求泛微 authorizeUrl Return:" + code );
+
+            JSONObject codeJson  = JSONObject.parseObject(code);
+            String codeString = codeJson.getString("code");
+            if(StringUtils.isNotEmpty(codeString)){
+                StringBuilder tokenUrl = new StringBuilder();
+                tokenUrl.append(param_token_url);
+                tokenUrl.append("?app_key=");
+                tokenUrl.append(param_app_key);
+                tokenUrl.append("&app_secret=");
+                tokenUrl.append(param_app_secret);
+                tokenUrl.append("&grant_type=");
+                tokenUrl.append(param_grant_type);
+                tokenUrl.append("&code=");
+                tokenUrl.append(codeString);
+
+//                JSONObject jsonData = new JSONObject();
+//                jsonData.put("app_key",param_app_key);
+//                jsonData.put("app_secret",param_app_secret);
+//                jsonData.put("grant_type",param_grant_type);
+//                jsonData.put("code",codeString);
+
+                String tokenPostData = getTokenData();
+                Map<String, String> header = new HashMap<>();
+                header.put("Content-Type", "application/x-www-form-urlencoded");
+                logger.info("请求泛微 接口:" + tokenUrl.toString() );
+                String reToken = KHttpClientUtils.postjson(tokenUrl.toString(),header,tokenPostData);
+                logger.info("请求泛微 TokenUrl Return:" + reToken );
+                JSONObject tokenJson  = JSONObject.parseObject(reToken);
+                String tokenString = tokenJson.getString("accessToken");
+                if(StringUtils.isNotEmpty(tokenString)){
+                    StringBuilder speakerUrl = new StringBuilder();
+                    speakerUrl.append(post_url);
+                    speakerUrl.append("?access_token=");
+                    speakerUrl.append(tokenString);
+                    String speakerJsonData = getSpeakerData();
+                    Map<String, String> header1 = new HashMap<>();
+                    header.put("Content-Type", "application/json");
+                    logger.info("请求SAP 接口:" + speakerUrl.toString() );
+                    String result = KHttpClientUtils.postjson(speakerUrl.toString(), header1, speakerJsonData);
+                    logger.info("请求SAP Speaker Return:" + result);
+                    return result;
+                }
+
+            }
+            return null;
+
+        } catch (Exception e) {
+            throw new KDBizException("请求SAP接口失败:" + e.getMessage());
+        }
+    }
+
+    public static String getSpeakerData()
+    {
+        // 构建 requestHead 对象
+        JSONObject requestHead = new JSONObject();
+        requestHead.put("mainBodyId", "JY");
+
+        // 构建 pageInfo 对象
+        JSONObject pageInfo = new JSONObject();
+        pageInfo.put("pageNo", "1");
+        pageInfo.put("pageSize", "1000");
+
+        // 构建 header 对象
+        JSONObject header = new JSONObject();
+        header.put("operator", "037267");
+
+        // 构建 datajson 对象
+        JSONObject datajson = new JSONObject();
+        datajson.put("mainTable", new JSONObject()); // mainTable 是一个空对象
+        datajson.put("pageInfo", pageInfo);
+        datajson.put("header", header);
+
+        // 构建 requestData 数组
+        JSONArray requestData = new JSONArray();
+        requestData.add(datajson);
+
+        // 构建最终的根 JSON 对象
+        JSONObject rootJson = new JSONObject();
+        rootJson.put("requestHead", requestHead);
+        rootJson.put("requestData", requestData);
+
+        return rootJson.toString();
+    }
+
+    public static String getTokenData(){
+        JSONObject requestHead = new JSONObject();
+        requestHead.put("mainBodyId", "JY");
+
+        JSONObject rootJson = new JSONObject();
+        rootJson.put("requestHead", requestHead);
+        return rootJson.toString();
+    }
+
+}