|
@@ -1,19 +1,20 @@
|
|
package com.qmth.teachcloud.report.api;
|
|
package com.qmth.teachcloud.report.api;
|
|
|
|
|
|
-import com.alibaba.fastjson.JSONObject;
|
|
|
|
import com.qmth.boot.api.annotation.Aac;
|
|
import com.qmth.boot.api.annotation.Aac;
|
|
import com.qmth.boot.api.annotation.BOOL;
|
|
import com.qmth.boot.api.annotation.BOOL;
|
|
import com.qmth.boot.api.constant.ApiConstant;
|
|
import com.qmth.boot.api.constant.ApiConstant;
|
|
-import com.qmth.teachcloud.common.SignatureEntityTest;
|
|
|
|
import com.qmth.teachcloud.common.bean.params.BasicSemesterParams;
|
|
import com.qmth.teachcloud.common.bean.params.BasicSemesterParams;
|
|
-import com.qmth.teachcloud.common.bean.params.CalculateParams;
|
|
|
|
import com.qmth.teachcloud.common.config.DictionaryConfig;
|
|
import com.qmth.teachcloud.common.config.DictionaryConfig;
|
|
import com.qmth.teachcloud.common.contant.SystemConstant;
|
|
import com.qmth.teachcloud.common.contant.SystemConstant;
|
|
import com.qmth.teachcloud.common.entity.BasicSchool;
|
|
import com.qmth.teachcloud.common.entity.BasicSchool;
|
|
import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
|
|
import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
|
|
import com.qmth.teachcloud.common.service.BasicCourseService;
|
|
import com.qmth.teachcloud.common.service.BasicCourseService;
|
|
import com.qmth.teachcloud.common.service.BasicSemesterService;
|
|
import com.qmth.teachcloud.common.service.BasicSemesterService;
|
|
-import com.qmth.teachcloud.common.util.*;
|
|
|
|
|
|
+import com.qmth.teachcloud.common.util.AuthThirdUtil;
|
|
|
|
+import com.qmth.teachcloud.common.util.JacksonUtil;
|
|
|
|
+import com.qmth.teachcloud.common.util.Result;
|
|
|
|
+import com.qmth.teachcloud.common.util.ResultUtil;
|
|
|
|
+import com.qmth.teachcloud.report.business.bean.params.CalculateParams;
|
|
import com.qmth.teachcloud.report.business.bean.params.CourseParam;
|
|
import com.qmth.teachcloud.report.business.bean.params.CourseParam;
|
|
import com.qmth.teachcloud.report.business.bean.params.TBExamParam;
|
|
import com.qmth.teachcloud.report.business.bean.params.TBExamParam;
|
|
import com.qmth.teachcloud.report.business.service.TBExamCourseService;
|
|
import com.qmth.teachcloud.report.business.service.TBExamCourseService;
|
|
@@ -31,11 +32,7 @@ import org.springframework.web.bind.annotation.RestController;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
import javax.annotation.Resource;
|
|
import java.io.IOException;
|
|
import java.io.IOException;
|
|
-import java.math.BigDecimal;
|
|
|
|
import java.net.URLDecoder;
|
|
import java.net.URLDecoder;
|
|
-import java.net.URLEncoder;
|
|
|
|
-import java.text.MessageFormat;
|
|
|
|
-import java.util.Objects;
|
|
|
|
import java.util.Optional;
|
|
import java.util.Optional;
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -129,45 +126,43 @@ public class OpenApiController {
|
|
log.info("calculate进来了,result:{}", decodeJson);
|
|
log.info("calculate进来了,result:{}", decodeJson);
|
|
CalculateParams calculateParams = JacksonUtil.readJson(decodeJson, CalculateParams.class);
|
|
CalculateParams calculateParams = JacksonUtil.readJson(decodeJson, CalculateParams.class);
|
|
calculateParams.validParams();
|
|
calculateParams.validParams();
|
|
- AuthThirdUtil.hasPermission();
|
|
|
|
|
|
+ BasicSchool basicSchool = AuthThirdUtil.hasPermission();
|
|
|
|
+ calculateParams.setSchoolId(basicSchool.getId());
|
|
|
|
|
|
String callbackPwd = dictionaryConfig.printOpenDomain().getCallbackPwd();
|
|
String callbackPwd = dictionaryConfig.printOpenDomain().getCallbackPwd();
|
|
Optional.ofNullable(callbackPwd).orElseThrow(() -> ExceptionResultEnum.ERROR.exception("配置文件回调密码为空"));
|
|
Optional.ofNullable(callbackPwd).orElseThrow(() -> ExceptionResultEnum.ERROR.exception("配置文件回调密码为空"));
|
|
|
|
|
|
courseCodeSyncTaskService.start(calculateParams);
|
|
courseCodeSyncTaskService.start(calculateParams);
|
|
-
|
|
|
|
- try {
|
|
|
|
- //TODO 这里加入前置校验数据环节
|
|
|
|
-
|
|
|
|
- BigDecimal progress = new BigDecimal(0);
|
|
|
|
- BigDecimal finished = new BigDecimal(1);
|
|
|
|
- for (int i = 0; i < calculateParams.getCourseCode().size(); i++) {
|
|
|
|
- progress = new BigDecimal(i).divide(new BigDecimal(calculateParams.getCourseCode().size() - 1), 2, BigDecimal.ROUND_HALF_UP).setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
|
- Long time = System.currentTimeMillis();
|
|
|
|
- JSONObject dataObjectJson = new JSONObject();
|
|
|
|
- dataObjectJson.put("examId", calculateParams.getExamId());
|
|
|
|
- dataObjectJson.put("courseCode", calculateParams.getCourseCode().get(i));
|
|
|
|
- dataObjectJson.put("progress", progress);
|
|
|
|
- if (progress.compareTo(finished) == 0) {
|
|
|
|
- dataObjectJson.put("status", "FINISHED");
|
|
|
|
- } else {
|
|
|
|
- dataObjectJson.put("status", "RUNNING");
|
|
|
|
- }
|
|
|
|
- dataObjectJson.put("time", time);
|
|
|
|
- String pattern = "{0}{1}{2}";
|
|
|
|
- String sign = URLEncoder.encode(MessageFormat.format(pattern, Base64Util.encode(ShaUtils.sha1(callbackPwd)), SignatureEntityTest.FIELD_JOINER, SignatureEntityTest.encrypt(dataObjectJson.toJSONString())), SystemConstant.CHARSET_NAME);
|
|
|
|
- String callbackResult = HttpUtil.postJson(dictionaryConfig.printOpenDomain().getHostUrl() + dictionaryConfig.printOpenDomain().getCallbackUrlApi(), dataObjectJson.toJSONString(), sign, time);
|
|
|
|
- if (Objects.nonNull(callbackResult)) {
|
|
|
|
- log.info("callbackResult:{}", JacksonUtil.parseJson(callbackResult));
|
|
|
|
- }
|
|
|
|
- if (progress.compareTo(finished) == 0) {
|
|
|
|
- break;
|
|
|
|
- }
|
|
|
|
-// Thread.sleep(5000);
|
|
|
|
- }
|
|
|
|
- } catch (Exception e) {
|
|
|
|
- log.error(SystemConstant.LOG_ERROR, e);
|
|
|
|
- }
|
|
|
|
|
|
+// try {
|
|
|
|
+// BigDecimal progress = new BigDecimal(0);
|
|
|
|
+// BigDecimal finished = new BigDecimal(1);
|
|
|
|
+// for (int i = 0; i < calculateParams.getCourseCode().size(); i++) {
|
|
|
|
+// progress = new BigDecimal(i).divide(new BigDecimal(calculateParams.getCourseCode().size() - 1), 2, BigDecimal.ROUND_HALF_UP).setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
|
+// Long time = System.currentTimeMillis();
|
|
|
|
+// JSONObject dataObjectJson = new JSONObject();
|
|
|
|
+// dataObjectJson.put("examId", calculateParams.getExamId());
|
|
|
|
+// dataObjectJson.put("courseCode", calculateParams.getCourseCode().get(i));
|
|
|
|
+// dataObjectJson.put("progress", progress);
|
|
|
|
+// if (progress.compareTo(finished) == 0) {
|
|
|
|
+// dataObjectJson.put("status", "FINISHED");
|
|
|
|
+// } else {
|
|
|
|
+// dataObjectJson.put("status", "RUNNING");
|
|
|
|
+// }
|
|
|
|
+// dataObjectJson.put("time", time);
|
|
|
|
+//
|
|
|
|
+// String sign = URLEncoder.encode(Base64Util.encode(ShaUtils.sha1(callbackPwd + dataObjectJson.toJSONString())), SystemConstant.CHARSET_NAME);
|
|
|
|
+// String callbackResult = HttpUtil.postJson(dictionaryConfig.printOpenDomain().getHostUrl() + dictionaryConfig.printOpenDomain().getCallbackUrlApi(), dataObjectJson.toJSONString(), sign, time);
|
|
|
|
+// if (Objects.nonNull(callbackResult)) {
|
|
|
|
+// log.info("callbackResult:{}", JacksonUtil.parseJson(callbackResult));
|
|
|
|
+// }
|
|
|
|
+// if (progress.compareTo(finished) == 0) {
|
|
|
|
+// break;
|
|
|
|
+// }
|
|
|
|
+//// Thread.sleep(5000);
|
|
|
|
+// }
|
|
|
|
+// } catch (Exception e) {
|
|
|
|
+// log.error(SystemConstant.LOG_ERROR, e);
|
|
|
|
+// }
|
|
return ResultUtil.ok(true);
|
|
return ResultUtil.ok(true);
|
|
}
|
|
}
|
|
}
|
|
}
|