فهرست منبع

西安交通大学逻辑修改

wangliang 2 سال پیش
والد
کامیت
fb2750b733
2فایلهای تغییر یافته به همراه35 افزوده شده و 26 حذف شده
  1. 3 3
      pom.xml
  2. 32 23
      xjtu-exchange/src/main/java/com/qmth/xjtu/api/OpenApiController.java

+ 3 - 3
pom.xml

@@ -13,10 +13,10 @@
     </modules>
 
     <properties>
-        <java.version>11</java.version>
+        <java.version>1.8</java.version>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-        <maven.compiler.source>11</maven.compiler.source>
-        <maven.compiler.target>11</maven.compiler.target>
+        <maven.compiler.source>1.8</maven.compiler.source>
+        <maven.compiler.target>1.8</maven.compiler.target>
         <qmth.boot.version>1.0.3</qmth.boot.version>
         <java.version>1.8</java.version>
         <swagger2.version>2.9.2</swagger2.version>

+ 32 - 23
xjtu-exchange/src/main/java/com/qmth/xjtu/api/OpenApiController.java

@@ -1,5 +1,6 @@
 package com.qmth.xjtu.api;
 
+import com.alibaba.fastjson.JSONObject;
 import com.qmth.boot.api.annotation.Aac;
 import com.qmth.boot.api.annotation.BOOL;
 import com.qmth.boot.api.constant.ApiConstant;
@@ -8,7 +9,6 @@ import com.qmth.teachcloud.exchange.common.service.CommonService;
 import com.qmth.teachcloud.exchange.common.util.HttpUtil;
 import com.qmth.teachcloud.exchange.common.util.JacksonUtil;
 import com.qmth.teachcloud.exchange.common.util.Result;
-import com.qmth.teachcloud.exchange.common.util.ServletUtil;
 import io.swagger.annotations.*;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -19,8 +19,6 @@ import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
 import javax.annotation.Resource;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
 import java.util.LinkedHashMap;
 import java.util.Map;
@@ -40,6 +38,9 @@ import java.util.Objects;
 @Validated
 public class OpenApiController {
     private static final Logger log = LoggerFactory.getLogger(OpenApiController.class);
+    private static final String ACCESS_TOKEN_URL = "https://org.xjtu.edu.cn/openplatform/oauth/getAccessToken";
+    private static final String USER_INFO_URL = "https://org.xjtu.edu.cn/openplatform/oauth/open/getUserInfo";
+    private static final String LOGOUT_URL = "http://org.xjtu.edu.cn/openplatform/oauth/logout";
 
     @Resource
     CommonService commonService;
@@ -53,39 +54,47 @@ public class OpenApiController {
                                @ApiParam(value = "用户类型") @RequestParam(required = false) String userType,
                                @ApiParam(value = "员工工号") @RequestParam(required = false) String employeeNo,
                                @ApiParam(value = "返回url") @RequestParam(required = false) String returnUrl) throws IOException {
-        HttpServletRequest request = ServletUtil.getRequest();
-        HttpServletResponse response = ServletUtil.getResponse();
         String schoolCode = "test-school-2";
 
-//        String authenticationUrl = "https://org.xjtu.edu.cn/openplatform/oauth/authorize?appId=1548&redirectUri=https://org.xjtu.edu.cn/dologin/&responseType=code&scope=user_info&state=1234";
-//        String authenticationUrl = "https://org.xjtu.edu.cn/openplatform/oauth/authorize";
-//        Map<String, Object> params = new LinkedHashMap<>();
-//        params.put("appId", 1548);
-//        params.put("redirectUri", "https://org.xjtu.edu.cn/dologin/");
-//        params.put("responseType", "code");
-//        params.put("scope", "user_info");
-//        params.put("state", "1234");
-
-//        String result = HttpUtil.post(authenticationUrl, null);
-//        String result = HttpUtil.post(authenticationUrl, params);
-
-        String accessTokenUrl = "https://org.xjtu.edu.cn/openplatform/oauth/getAccessToken";
         Map<String, Object> accessTokenParams = new LinkedHashMap<>();
         accessTokenParams.put("code", code);
-        String accessTokenResult = HttpUtil.post(accessTokenUrl, accessTokenParams, null);
+        String accessTokenResult = HttpUtil.post(ACCESS_TOKEN_URL, accessTokenParams, null);
+        String accessToken = null, gsessionId = null;
+
+        //获取accessToken
         if (Objects.nonNull(accessTokenResult)) {
             log.info("accessTokenResult:{}", JacksonUtil.parseJson(accessTokenResult));
+            JSONObject jsonObject = JSONObject.parseObject(accessTokenResult);
+            JSONObject object = jsonObject.getJSONObject("data");
+            String message = jsonObject.getString("message");
+            if (Objects.nonNull(object) && Objects.equals(message, "成功")) {
+                accessToken = object.getString("accessToken");
+                gsessionId = object.getString("gsessionId");
+            }
         }
-        String userInfoUrl = "https://org.xjtu.edu.cn/openplatform/oauth/open/getUserInfo";
-        String userInfoResult = HttpUtil.post(userInfoUrl, null, "123");
-        if (Objects.nonNull(userInfoResult)) {
-            log.info("userInfoResult:{}", JacksonUtil.parseJson(userInfoResult));
+
+        //获取用户信息
+        if (Objects.nonNull(accessToken)) {
+            String userInfoResult = HttpUtil.post(USER_INFO_URL, null, accessToken);
+            if (Objects.nonNull(userInfoResult)) {
+                log.info("userInfoResult:{}", JacksonUtil.parseJson(userInfoResult));
+            }
         }
 
         //todo 学校业务逻辑待完善
         OpenParams openParams = new OpenParams();
         openParams.setName("test1");
 
+        //登出
+        if (Objects.nonNull(gsessionId)) {
+            Map<String, Object> logoutParams = new LinkedHashMap<>();
+            logoutParams.put("gsessionId", gsessionId);
+            String logoutResult = HttpUtil.post(LOGOUT_URL, logoutParams, null);
+            if (Objects.nonNull(logoutResult)) {
+                log.info("logoutResult:{}", JacksonUtil.parseJson(logoutResult));
+            }
+        }
+
         commonService.redirectLogic(code, schoolCode, returnUrl, Objects.nonNull(openParams) ? JacksonUtil.parseJson(openParams) : null);
     }
 }