wangliang 3 năm trước cách đây
mục cha
commit
9c1745b60b

+ 34 - 6
teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/service/impl/CallPrintOpenApiServiceImpl.java

@@ -7,6 +7,7 @@ import com.qmth.boot.tools.signature.SignatureType;
 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.service.CommonCacheService;
 import com.qmth.teachcloud.common.util.HttpUtil;
 import com.qmth.teachcloud.common.util.JacksonUtil;
@@ -22,6 +23,7 @@ import java.io.IOException;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Objects;
+import java.util.Optional;
 
 /**
  * @Description: 请求分布式印刷服务实现类
@@ -38,7 +40,6 @@ public class CallPrintOpenApiServiceImpl implements CallPrintOpenApiService {
 
     private final static Logger log = LoggerFactory.getLogger(CallPrintOpenApiServiceImpl.class);
 
-
     @Override
     public PaperConfig callPaperConfig(Long schoolId, Long thirdExamId, String gradeCourseCode) throws IOException {
         BasicSchool basicSchool = commonCacheService.schoolCache(schoolId);
@@ -49,7 +50,13 @@ public class CallPrintOpenApiServiceImpl implements CallPrintOpenApiService {
         long timestamp = System.currentTimeMillis();
 
         String accessToken = SignatureEntity.build(SignatureType.SECRET, SystemConstant.METHOD, dictionaryConfig.printOpenDomain().getPaperConfig(), timestamp, basicSchool.getAccessKey(), basicSchool.getAccessSecret());
-        String callResult = HttpUtil.postJson(dictionaryConfig.printOpenDomain().getHostUrl() + dictionaryConfig.printOpenDomain().getPaperConfig(), JacksonUtil.parseJson(printOpenParams), accessToken, timestamp);
+
+        String hostUrl = dictionaryConfig.printOpenDomain().getHostUrl();
+        Optional.ofNullable(hostUrl).orElseThrow(() -> ExceptionResultEnum.ERROR.exception("未配置教研分析host"));
+        if (hostUrl.contains("*")) {
+            hostUrl = hostUrl.replace("*", basicSchool.getCode());
+        }
+        String callResult = HttpUtil.postJson(hostUrl + dictionaryConfig.printOpenDomain().getPaperConfig(), JacksonUtil.parseJson(printOpenParams), accessToken, timestamp);
         PaperConfig paperConfig = new PaperConfig();
         if (Objects.nonNull(callResult)) {
             log.info("callResult:{}", JacksonUtil.parseJson(callResult));
@@ -70,7 +77,12 @@ public class CallPrintOpenApiServiceImpl implements CallPrintOpenApiService {
         long timestamp = System.currentTimeMillis();
 
         String accessToken = SignatureEntity.build(SignatureType.SECRET, SystemConstant.METHOD, dictionaryConfig.printOpenDomain().getPaperDimension(), timestamp, basicSchool.getAccessKey(), basicSchool.getAccessSecret());
-        String callResult = HttpUtil.postJson(dictionaryConfig.printOpenDomain().getHostUrl() + dictionaryConfig.printOpenDomain().getPaperDimension(), JacksonUtil.parseJson(printOpenParams), accessToken, timestamp);
+        String hostUrl = dictionaryConfig.printOpenDomain().getHostUrl();
+        Optional.ofNullable(hostUrl).orElseThrow(() -> ExceptionResultEnum.ERROR.exception("未配置教研分析host"));
+        if (hostUrl.contains("*")) {
+            hostUrl = hostUrl.replace("*", basicSchool.getCode());
+        }
+        String callResult = HttpUtil.postJson(hostUrl + dictionaryConfig.printOpenDomain().getPaperDimension(), JacksonUtil.parseJson(printOpenParams), accessToken, timestamp);
         List<PaperDimension> paperDimensionList = new ArrayList<>();
         if (Objects.nonNull(callResult)) {
             log.info("callResult:{}", JacksonUtil.parseJson(callResult));
@@ -91,7 +103,12 @@ public class CallPrintOpenApiServiceImpl implements CallPrintOpenApiService {
         long timestamp = System.currentTimeMillis();
 
         String accessToken = SignatureEntity.build(SignatureType.SECRET, SystemConstant.METHOD, dictionaryConfig.printOpenDomain().getPaperStructure(), timestamp, basicSchool.getAccessKey(), basicSchool.getAccessSecret());
-        String callResult = HttpUtil.postJson(dictionaryConfig.printOpenDomain().getHostUrl() + dictionaryConfig.printOpenDomain().getPaperStructure(), JacksonUtil.parseJson(printOpenParams), accessToken, timestamp);
+        String hostUrl = dictionaryConfig.printOpenDomain().getHostUrl();
+        Optional.ofNullable(hostUrl).orElseThrow(() -> ExceptionResultEnum.ERROR.exception("未配置教研分析host"));
+        if (hostUrl.contains("*")) {
+            hostUrl = hostUrl.replace("*", basicSchool.getCode());
+        }
+        String callResult = HttpUtil.postJson(hostUrl + dictionaryConfig.printOpenDomain().getPaperStructure(), JacksonUtil.parseJson(printOpenParams), accessToken, timestamp);
         List<PaperStructure> paperStructureList = new ArrayList<>();
         if (Objects.nonNull(callResult)) {
             log.info("callResult:{}", JacksonUtil.parseJson(callResult));
@@ -112,7 +129,12 @@ public class CallPrintOpenApiServiceImpl implements CallPrintOpenApiService {
         long timestamp = System.currentTimeMillis();
 
         String accessToken = SignatureEntity.build(SignatureType.SECRET, SystemConstant.METHOD, dictionaryConfig.printOpenDomain().getPaperEvaluation(), timestamp, basicSchool.getAccessKey(), basicSchool.getAccessSecret());
-        String callResult = HttpUtil.postJson(dictionaryConfig.printOpenDomain().getHostUrl() + dictionaryConfig.printOpenDomain().getPaperEvaluation(), JacksonUtil.parseJson(printOpenParams), accessToken, timestamp);
+        String hostUrl = dictionaryConfig.printOpenDomain().getHostUrl();
+        Optional.ofNullable(hostUrl).orElseThrow(() -> ExceptionResultEnum.ERROR.exception("未配置教研分析host"));
+        if (hostUrl.contains("*")) {
+            hostUrl = hostUrl.replace("*", basicSchool.getCode());
+        }
+        String callResult = HttpUtil.postJson(hostUrl + dictionaryConfig.printOpenDomain().getPaperEvaluation(), JacksonUtil.parseJson(printOpenParams), accessToken, timestamp);
         List<PaperEvaluation> paperEvaluationList = new ArrayList<>();
         if (Objects.nonNull(callResult)) {
             log.info("callResult:{}", JacksonUtil.parseJson(callResult));
@@ -133,12 +155,18 @@ public class CallPrintOpenApiServiceImpl implements CallPrintOpenApiService {
         printOpenParams.put("pageSize", 100);
         List<ExamStudentScore> examStudentScoreList = new ArrayList<>();
         List<ExamStudentScore> examStudentScoreCell = new ArrayList<>();
+        String hostUrl = dictionaryConfig.printOpenDomain().getHostUrl();
+        Optional.ofNullable(hostUrl).orElseThrow(() -> ExceptionResultEnum.ERROR.exception("未配置教研分析host"));
+        if (hostUrl.contains("*")) {
+            hostUrl = hostUrl.replace("*", basicSchool.getCode());
+        }
+
         int pageNumber = 1;
         do {
             printOpenParams.put("pageNumber", pageNumber);
             long timestamp = System.currentTimeMillis();
             String accessToken = SignatureEntity.build(SignatureType.SECRET, SystemConstant.METHOD, dictionaryConfig.printOpenDomain().getExamStudentScore(), timestamp, basicSchool.getAccessKey(), basicSchool.getAccessSecret());
-            String callResult = HttpUtil.postJson(dictionaryConfig.printOpenDomain().getHostUrl() + dictionaryConfig.printOpenDomain().getExamStudentScore(), JacksonUtil.parseJson(printOpenParams), accessToken, timestamp);
+            String callResult = HttpUtil.postJson(hostUrl + dictionaryConfig.printOpenDomain().getExamStudentScore(), JacksonUtil.parseJson(printOpenParams), accessToken, timestamp);
             if (Objects.nonNull(callResult)) {
                 log.info("callResult:{}", JacksonUtil.parseJson(callResult));
                 Result result = JSON.parseObject(callResult, Result.class);