ソースを参照

加入系统授权配置

wangliang 3 年 前
コミット
3e77c2798f

+ 39 - 0
distributed-print/src/main/java/com/qmth/distributed/print/api/NotifyApiController.java

@@ -0,0 +1,39 @@
+package com.qmth.distributed.print.api;
+
+import com.alibaba.fastjson.JSONObject;
+import com.qmth.boot.api.constant.ApiConstant;
+import com.qmth.teachcloud.common.util.Result;
+import com.qmth.teachcloud.common.util.ResultUtil;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiResponse;
+import io.swagger.annotations.ApiResponses;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 回调接口前端控制器
+ * </p>
+ *
+ * @author wangliang
+ * @since 2022-04-26
+ */
+@Api(tags = "回调接口Controller")
+@RestController
+@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.notify}")
+@Validated
+public class NotifyApiController {
+    private final static Logger log = LoggerFactory.getLogger(NotifyApiController.class);
+
+    @ApiOperation(value = "教研分析进度回调")
+    @ApiResponses({@ApiResponse(code = 200, message = "教研分析进度回调", response = Object.class)})
+    @RequestMapping(value = "/analysis/progress", method = RequestMethod.POST)
+    public Result analysisProgress(JSONObject jsonObject) {
+        return ResultUtil.ok(true);
+    }
+}

+ 39 - 0
distributed-print/src/main/java/com/qmth/distributed/print/api/OpenApiController.java

@@ -0,0 +1,39 @@
+package com.qmth.distributed.print.api;
+
+import com.alibaba.fastjson.JSONObject;
+import com.qmth.boot.api.constant.ApiConstant;
+import com.qmth.teachcloud.common.util.Result;
+import com.qmth.teachcloud.common.util.ResultUtil;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiResponse;
+import io.swagger.annotations.ApiResponses;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 开放接口前端控制器
+ * </p>
+ *
+ * @author wangliang
+ * @since 2022-04-26
+ */
+@Api(tags = "开放接口Controller")
+@RestController
+@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.open}")
+@Validated
+public class OpenApiController {
+    private final static Logger log = LoggerFactory.getLogger(OpenApiController.class);
+
+    @ApiOperation(value = "查询教研分析数据(1.蓝图数据,2.考生作答数据)")
+    @ApiResponses({@ApiResponse(code = 200, message = "查询教研分析数据(1.蓝图数据,2.考生作答数据)", response = Object.class)})
+    @RequestMapping(value = "/analysis/data", method = RequestMethod.POST)
+    public Result analysisData(JSONObject jsonObject) {
+        return ResultUtil.ok(true);
+    }
+}

+ 30 - 3
distributed-print/src/main/java/com/qmth/distributed/print/api/TSAuthController.java

@@ -1,15 +1,19 @@
 package com.qmth.distributed.print.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;
 import com.qmth.boot.core.solar.crypto.AppLicenseUtil;
+import com.qmth.boot.tools.signature.SignatureEntity;
+import com.qmth.boot.tools.signature.SignatureType;
 import com.qmth.distributed.print.business.service.AuthInfoService;
 import com.qmth.teachcloud.common.bean.dto.AuthOrgInfoDto;
 import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.entity.BasicSchool;
+import com.qmth.teachcloud.common.entity.SysUser;
 import com.qmth.teachcloud.common.service.CommonCacheService;
-import com.qmth.teachcloud.common.util.Result;
-import com.qmth.teachcloud.common.util.ResultUtil;
-import com.qmth.teachcloud.common.util.ServletUtil;
+import com.qmth.teachcloud.common.util.*;
 import io.swagger.annotations.*;
 import org.apache.commons.io.IOUtils;
 import org.slf4j.Logger;
@@ -88,4 +92,27 @@ public class TSAuthController {
         }
         return ResultUtil.ok(expireTime);
     }
+
+    @ApiOperation(value = "测试推送信息给教研分析")
+    @ApiResponses({@ApiResponse(code = 200, message = "测试推送信息给教研分析", response = Objects.class)})
+    @RequestMapping(value = "/test/push", method = RequestMethod.POST)
+    @Aac(auth = BOOL.FALSE)
+    public void testPush() throws IOException {
+        SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
+        Long schoolId = SystemConstant.getHeadOrUserSchoolId();
+        BasicSchool basicSchool = commonCacheService.schoolCache(schoolId);
+        JSONObject jsonObject = new JSONObject();
+        jsonObject.put("orgId", basicSchool.getId());
+        jsonObject.put("orgCode", basicSchool.getCode());
+        jsonObject.put("accessKey", basicSchool.getAccessKey());
+        jsonObject.put("accessSecret", basicSchool.getAccessSecret());
+        jsonObject.put("createId", sysUser.getId());
+        jsonObject.put("createUserName", sysUser.getRealName());
+        Long timestamp = System.currentTimeMillis();
+        String accessToken = SignatureEntity.build(SignatureType.SECRET, SystemConstant.METHOD, "/api/report/open/basic/examination/data", timestamp, basicSchool.getAccessKey(), basicSchool.getAccessSecret());
+        String result = HttpUtil.postJson("http://127.0.0.1:7004/api/report/open/basic/examination/data", jsonObject.toJSONString(), accessToken, timestamp);
+        if (Objects.nonNull(result)) {
+            log.info("result:{}", JacksonUtil.parseJson(result));
+        }
+    }
 }

+ 4 - 0
distributed-print/src/main/resources/application-36dev.properties

@@ -154,6 +154,10 @@ sync.config.groupCountUrl=/api/exam/mark_group/count
 sync.config.groupDeleteUrl=/api/exam/mark_group/delete
 sync.config.markerSaveUrl=/api/exam/marker/save
 
+#com.qmth.solar.access-key=274f823e5f59410f8b3bb6edcd8e2b6e
+#com.qmth.solar.access-secret=y7AO6W0TOdTF8HpWBwGHbp3wfIHsmUKr
+#com.qmth.solar.license=/Users/king/Downloads/tc-dev-wl.lic
+
 sms.config.smsNormalCode=qmth
 sms.config.codeExpiredTime=2
 sms.config.codeSendInterval=60

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

@@ -115,6 +115,8 @@ prefix.url.menu=admin/menu
 prefix.url.customFlow=admin/custom/flow
 prefix.url.teach=admin/teach
 prefix.url.auth=admin/auth
+prefix.url.open=admin/print/open
+prefix.url.notify=admin/print/notify
 
 #\u65E5\u671F\u683C\u5F0F\u5316
 spring.jackson.date-format=yyyy-MM-dd HH:mm:ss

+ 4 - 0
distributed-print/src/main/resources/application-release.properties

@@ -88,6 +88,10 @@ sys.config.flowSchoolCodeMap.GdykdxPaperApprove=gdpu
 sys.config.flowSchoolCodeMap.JxzyyPaperApprove=jxutcm,sisu,test-school-2
 spring.resources.static-locations=file:${sys.config.serverUpload},classpath:/META-INF/resources/,classpath:/resources/
 
+#com.qmth.solar.access-key=274f823e5f59410f8b3bb6edcd8e2b6e
+#com.qmth.solar.access-secret=y7AO6W0TOdTF8HpWBwGHbp3wfIHsmUKr
+#com.qmth.solar.license=/Users/king/Downloads/tc-dev-wl.lic
+
 org.center.url=https://solar.qmth.com.cn
 org.center.orgQueryApi=/api/open/org/query
 

+ 4 - 0
distributed-print/src/main/resources/application-test.properties

@@ -154,6 +154,10 @@ sync.config.groupCountUrl=/api/exam/mark_group/count
 sync.config.groupDeleteUrl=/api/exam/mark_group/delete
 sync.config.markerSaveUrl=/api/exam/marker/save
 
+#com.qmth.solar.access-key=274f823e5f59410f8b3bb6edcd8e2b6e
+#com.qmth.solar.access-secret=y7AO6W0TOdTF8HpWBwGHbp3wfIHsmUKr
+#com.qmth.solar.license=/Users/king/Downloads/tc-dev-wl.lic
+
 sms.config.smsNormalCode=8635
 sms.config.codeExpiredTime=2
 sms.config.codeSendInterval=60

+ 20 - 0
teachcloud-common/src/main/java/com/qmth/teachcloud/common/domain/PrefixUrlDomain.java

@@ -37,6 +37,26 @@ public class PrefixUrlDomain implements Serializable {
 
     String analyze;
 
+    String open;
+
+    String notify;
+
+    public String getNotify() {
+        return notify;
+    }
+
+    public void setNotify(String notify) {
+        this.notify = notify;
+    }
+
+    public String getOpen() {
+        return open;
+    }
+
+    public void setOpen(String open) {
+        this.open = open;
+    }
+
     public String getDatasource() {
         return datasource;
     }

+ 40 - 0
teachcloud-report/src/main/java/com/qmth/teachcloud/report/api/OpenApiController.java

@@ -0,0 +1,40 @@
+package com.qmth.teachcloud.report.api;
+
+import com.alibaba.fastjson.JSONObject;
+import com.qmth.boot.api.constant.ApiConstant;
+import com.qmth.teachcloud.common.util.Result;
+import com.qmth.teachcloud.common.util.ResultUtil;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiResponse;
+import io.swagger.annotations.ApiResponses;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 开放接口前端控制器
+ * </p>
+ *
+ * @author wangliang
+ * @since 2022-04-26
+ */
+@Api(tags = "开放接口Controller")
+@RestController
+@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.open}")
+@Validated
+public class OpenApiController {
+    private final static Logger log = LoggerFactory.getLogger(OpenApiController.class);
+
+    @ApiOperation(value = "接收基础考务数据")
+    @ApiResponses({@ApiResponse(code = 200, message = "推送基础考务数据", response = Object.class)})
+    @RequestMapping(value = "/basic/examination/data", method = RequestMethod.POST)
+    public Result basicExaminationData(JSONObject jsonObject) {
+        log.info("basicExaminationData进来了,jsonObject:{}", jsonObject.toJSONString());
+        return ResultUtil.ok(true);
+    }
+}

+ 1 - 0
teachcloud-report/src/main/resources/application-dev.properties

@@ -94,6 +94,7 @@ prefix.url.reportCourse=report/course
 prefix.url.reportExamStudent=report/exam_student
 prefix.url.datasource=report/datasource
 prefix.url.analyze=report/analyze
+prefix.url.open=report/open
 
 #\u65E5\u5FD7\u914D\u7F6E
 com.qmth.logging.root-level=info