Jelajahi Sumber

新增教研分析单点登录

wangliang 3 tahun lalu
induk
melakukan
4ab6e63d45

+ 23 - 8
distributed-print/src/main/java/com/qmth/distributed/print/api/TSAuthController.java

@@ -10,6 +10,7 @@ import com.qmth.distributed.print.business.service.AuthInfoService;
 import com.qmth.teachcloud.common.config.DictionaryConfig;
 import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.entity.BasicSchool;
+import com.qmth.teachcloud.common.enums.RoleTypeEnum;
 import com.qmth.teachcloud.common.service.CommonCacheService;
 import com.qmth.teachcloud.common.util.*;
 import io.swagger.annotations.*;
@@ -113,19 +114,33 @@ public class TSAuthController {
 //        String result = HttpUtil.postJson(dictionaryConfig.reportOpenDomain().getHostUrl() + dictionaryConfig.reportOpenDomain().getExamApi(), JacksonUtil.parseJson(map), accessToken, timestamp);
 //        if (Objects.nonNull(result)) {
 //            log.info("result:{}", JacksonUtil.parseJson(result));
+//        }
+
+//        /**
+//         * 测试推送分析课程(试卷)
+//         */
+//        Map<String, Object> map = new HashMap<>();
+//        map.computeIfAbsent("examId", v -> 262946761763454976L);
+//        map.computeIfAbsent("courseCode", v -> 2022052700001L + "A");//试卷编号+卷型
+//        map.computeIfAbsent("courseName", v -> "测试课程1");
+//        map.computeIfAbsent("paperType", v -> "A");
+//        map.computeIfAbsent("teachCollegeName", v -> "测试机构1");//机构名称
+//        String accessToken = SignatureEntity.build(SignatureType.SECRET, SystemConstant.METHOD, dictionaryConfig.reportOpenDomain().getCourseApi(), timestamp, basicSchool.getAccessKey(), basicSchool.getAccessSecret());
+//        String result = HttpUtil.postJson(dictionaryConfig.reportOpenDomain().getHostUrl() + dictionaryConfig.reportOpenDomain().getCourseApi(), JacksonUtil.parseJson(map), accessToken, timestamp);
+//        if (Objects.nonNull(result)) {
+//            log.info("result:{}", JacksonUtil.parseJson(result));
 //        }
 
         /**
-         * 测试推送分析课程(试卷)
+         * 测试单点登录
          */
         Map<String, Object> map = new HashMap<>();
-        map.computeIfAbsent("examId", v -> 262946761763454976L);
-        map.computeIfAbsent("courseCode", v -> 2022052700001L + "A");//试卷编号+卷型
-        map.computeIfAbsent("courseName", v -> "测试课程1");
-        map.computeIfAbsent("paperType", v -> "A");
-        map.computeIfAbsent("teachCollegeName", v -> "测试机构1");//机构名称
-        String accessToken = SignatureEntity.build(SignatureType.SECRET, SystemConstant.METHOD, dictionaryConfig.reportOpenDomain().getCourseApi(), timestamp, basicSchool.getAccessKey(), basicSchool.getAccessSecret());
-        String result = HttpUtil.postJson(dictionaryConfig.reportOpenDomain().getHostUrl() + dictionaryConfig.reportOpenDomain().getCourseApi(), JacksonUtil.parseJson(map), accessToken, timestamp);
+        map.computeIfAbsent("loginName", v -> "admin");
+        map.computeIfAbsent("role", v -> RoleTypeEnum.OFFICE_TEACHER);
+        map.computeIfAbsent("realName", v -> "admin");
+        map.computeIfAbsent("mobileNumber", v -> "18008659001");
+        String accessToken = SignatureEntity.build(SignatureType.SECRET, SystemConstant.METHOD, dictionaryConfig.reportOpenDomain().getSsoLoginApi(), timestamp, basicSchool.getAccessKey(), basicSchool.getAccessSecret());
+        String result = HttpUtil.postJson(dictionaryConfig.reportOpenDomain().getHostUrl() + dictionaryConfig.reportOpenDomain().getSsoLoginApi(), JacksonUtil.parseJson(map), accessToken, timestamp);
         if (Objects.nonNull(result)) {
             log.info("result:{}", JacksonUtil.parseJson(result));
         }

+ 2 - 1
distributed-print/src/main/resources/application-dev.properties

@@ -199,4 +199,5 @@ sms.config.aliyunSMSAuditCopyUserCode=SMS_237206065
 report.open.hostUrl=http://127.0.0.1:7004
 report.open.semesterApi=/api/report/open/semester_edit
 report.open.examApi=/api/report/open/exam_edit
-report.open.courseApi=/api/report/open/course_edit
+report.open.courseApi=/api/report/open/course_edit
+report.open.ssoLoginApi=/api/report/sso/login

+ 10 - 0
teachcloud-common/src/main/java/com/qmth/teachcloud/common/domain/ReportOpenDomain.java

@@ -19,6 +19,16 @@ public class ReportOpenDomain implements Serializable {
 
     String courseApi;
 
+    String ssoLoginApi;
+
+    public String getSsoLoginApi() {
+        return ssoLoginApi;
+    }
+
+    public void setSsoLoginApi(String ssoLoginApi) {
+        this.ssoLoginApi = ssoLoginApi;
+    }
+
     public String getHostUrl() {
         return hostUrl;
     }

+ 13 - 7
teachcloud-report/src/main/java/com/qmth/teachcloud/report/api/SsoApiController.java

@@ -3,10 +3,11 @@ package com.qmth.teachcloud.report.api;
 import com.qmth.boot.api.annotation.Aac;
 import com.qmth.boot.api.annotation.BOOL;
 import com.qmth.boot.api.constant.ApiConstant;
+import com.qmth.teachcloud.common.config.DictionaryConfig;
 import com.qmth.teachcloud.common.contant.SystemConstant;
+import com.qmth.teachcloud.common.entity.BasicSchool;
 import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
-import com.qmth.teachcloud.common.util.Result;
-import com.qmth.teachcloud.common.util.ResultUtil;
+import com.qmth.teachcloud.common.util.AuthThirdUtil;
 import io.swagger.annotations.*;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -16,6 +17,9 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
 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.net.URLDecoder;
 import java.util.Optional;
@@ -35,20 +39,22 @@ import java.util.Optional;
 public class SsoApiController {
     private final static Logger log = LoggerFactory.getLogger(SsoApiController.class);
 
+    @Resource
+    DictionaryConfig dictionaryConfig;
+
     @ApiOperation(value = "单点登录接口")
     @ApiResponses({@ApiResponse(code = 200, message = "单点登录接口", response = Object.class)})
     @RequestMapping(value = "/login", method = RequestMethod.POST)
     @Aac(auth = BOOL.FALSE)
-    public Result login(@ApiParam(value = "接收登录数据信息", required = true) @RequestBody String result) throws IOException {
+    public void login(@ApiParam(value = "接收登录数据信息", required = true) @RequestBody String result, HttpServletRequest request, HttpServletResponse response) throws IOException {
         Optional.ofNullable(result).orElseThrow(() -> ExceptionResultEnum.PARAMS_ERROR.exception("数据为空"));
         String decodeJson = URLDecoder.decode(result, SystemConstant.CHARSET_NAME);
         log.info("login进来了,result:{}", decodeJson);
 //        BasicSemesterParams basicSemesterParams = JacksonUtil.readJson(decodeJson, BasicSemesterParams.class);
 //        Optional.ofNullable(basicSemesterParams).orElseThrow(() -> ExceptionResultEnum.ERROR.exception("转换后的数据为空"));
 //        basicSemesterParams.validParams();
-//        BasicSchool basicSchool = AuthThirdUtil.hasPermission();
-//        return ResultUtil.ok(basicSemesterService.saveBasicSemesterCommon(basicSemesterParams, basicSchool.getId(), null));
-
-        return ResultUtil.ok(true);
+        BasicSchool basicSchool = AuthThirdUtil.hasPermission();
+        response.setHeader("Access-Control-Allow-Origin", "*");
+        response.sendRedirect(dictionaryConfig.sysDomain().getLoginAuthenUrl() + SystemConstant.getUuid());
     }
 }