Prechádzať zdrojové kódy

新增教研分析回调

wangliang 3 rokov pred
rodič
commit
19828dc14b

+ 3 - 5
distributed-print/src/main/java/com/qmth/distributed/print/api/NotifyApiController.java

@@ -7,9 +7,7 @@ import com.qmth.teachcloud.common.SignatureEntityTest;
 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.enums.ExceptionResultEnum;
 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.ServletUtil;
+import com.qmth.teachcloud.common.util.*;
 import io.swagger.annotations.*;
 import io.swagger.annotations.*;
 import org.slf4j.Logger;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.slf4j.LoggerFactory;
@@ -57,12 +55,12 @@ public class NotifyApiController {
         String callbackPwd = dictionaryConfig.printOpenDomain().getCallbackPwd();
         String callbackPwd = dictionaryConfig.printOpenDomain().getCallbackPwd();
         Optional.ofNullable(callbackPwd).orElseThrow(() -> ExceptionResultEnum.ERROR.exception("配置文件回调密码为空"));
         Optional.ofNullable(callbackPwd).orElseThrow(() -> ExceptionResultEnum.ERROR.exception("配置文件回调密码为空"));
 
 
-        String sign = ServletUtil.getRequestSign();
+        String sign = ServletUtil.getRequestAuthorization();
         Optional.ofNullable(sign).orElseThrow(() -> ExceptionResultEnum.ERROR.exception("签名为空"));
         Optional.ofNullable(sign).orElseThrow(() -> ExceptionResultEnum.ERROR.exception("签名为空"));
         log.info("sign:{}", sign);
         log.info("sign:{}", sign);
 
 
         String pattern = "{0}{1}{2}";
         String pattern = "{0}{1}{2}";
-        String localSign = URLEncoder.encode(MessageFormat.format(pattern, dictionaryConfig.printOpenDomain().getCallbackPwd(), SignatureEntityTest.FIELD_JOINER, SignatureEntityTest.encrypt(decodeJson)), SystemConstant.CHARSET_NAME);
+        String localSign = URLEncoder.encode(MessageFormat.format(pattern, Base64Util.encode(ShaUtils.sha1(callbackPwd)), SignatureEntityTest.FIELD_JOINER, SignatureEntityTest.encrypt(decodeJson)), SystemConstant.CHARSET_NAME);
         log.info("localSign:{}", localSign);
         log.info("localSign:{}", localSign);
 
 
         if (!Objects.equals(localSign, sign)) {
         if (!Objects.equals(localSign, sign)) {

+ 32 - 38
distributed-print/src/main/java/com/qmth/distributed/print/api/TSAuthController.java

@@ -8,7 +8,6 @@ import com.qmth.distributed.print.business.service.AuthInfoService;
 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.RoleTypeEnum;
 import com.qmth.teachcloud.common.service.CommonCacheService;
 import com.qmth.teachcloud.common.service.CommonCacheService;
 import com.qmth.teachcloud.common.util.*;
 import com.qmth.teachcloud.common.util.*;
 import io.swagger.annotations.*;
 import io.swagger.annotations.*;
@@ -125,55 +124,50 @@ public class TSAuthController {
 //        map.computeIfAbsent("courseName", v -> "测试课程1");
 //        map.computeIfAbsent("courseName", v -> "测试课程1");
 //        map.computeIfAbsent("paperType", v -> "A");
 //        map.computeIfAbsent("paperType", v -> "A");
 //        map.computeIfAbsent("teachCollegeName", v -> "测试机构1");//机构名称
 //        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);
+//        String accessToken = SignatureEntity.build(SignatureType.SECRET, SystemConstant.METHOD, dictionaryConfig.reportOpenDomain().getCourseEditApi(), timestamp, basicSchool.getAccessKey(), basicSchool.getAccessSecret());
+//        String result = HttpUtil.postJson(dictionaryConfig.reportOpenDomain().getHostUrl() + dictionaryConfig.reportOpenDomain().getCourseEditApi(), JacksonUtil.parseJson(map), accessToken, timestamp);
+//        if (Objects.nonNull(result)) {
+//            log.info("result:{}", JacksonUtil.parseJson(result));
+//        }
+
+//        /**
+//         * 测试单点登录
+//         */
+//        Map<String, Object> map = new HashMap<>();
+//        map.computeIfAbsent("loginName", v -> "admin");
+//        map.computeIfAbsent("role", v -> RoleTypeEnum.OFFICE_TEACHER);
+//        map.computeIfAbsent("orgName", v -> "本科生院");
+//        map.computeIfAbsent("realName", v -> "admin");
+//        map.computeIfAbsent("mobileNumber", v -> "18008659001");
+//        map.computeIfAbsent("returnUrl", v -> "https://www.baidu.com");
+//        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)) {
 //        if (Objects.nonNull(result)) {
 //            log.info("result:{}", JacksonUtil.parseJson(result));
 //            log.info("result:{}", JacksonUtil.parseJson(result));
 //        }
 //        }
 
 
         /**
         /**
-         * 测试单点登录
+         * 测试生成课程(试卷)分析报告接口
          */
          */
         Map<String, Object> map = new HashMap<>();
         Map<String, Object> map = new HashMap<>();
-        map.computeIfAbsent("loginName", v -> "admin");
-        map.computeIfAbsent("role", v -> RoleTypeEnum.OFFICE_TEACHER);
-        map.computeIfAbsent("orgName", v -> "本科生院");
-        map.computeIfAbsent("realName", v -> "admin");
-        map.computeIfAbsent("mobileNumber", v -> "18008659001");
-        map.computeIfAbsent("returnUrl", v -> "https://www.baidu.com");
-        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);
+        map.computeIfAbsent("examId", v -> 262946761763454976L);
+        map.computeIfAbsent("courseCode", v -> 2022052700001L + "A");//试卷编号+卷型
+        String accessToken = SignatureEntity.build(SignatureType.SECRET, SystemConstant.METHOD, dictionaryConfig.reportOpenDomain().getCalculateApi(), timestamp, basicSchool.getAccessKey(), basicSchool.getAccessSecret());
+        String result = HttpUtil.postJson(dictionaryConfig.reportOpenDomain().getHostUrl() + dictionaryConfig.reportOpenDomain().getCalculateApi(), JacksonUtil.parseJson(map), accessToken, timestamp);
         if (Objects.nonNull(result)) {
         if (Objects.nonNull(result)) {
             log.info("result:{}", JacksonUtil.parseJson(result));
             log.info("result:{}", JacksonUtil.parseJson(result));
         }
         }
 
 
-//        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());
-//        jsonObject.put("callbackUrl", "/api/admin/auth/test/callback");
-//        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.post("http://127.0.0.1:7004/api/report/open/basic/examination/data", jsonObject.toJSONString(), accessToken, timestamp);
+//        /**
+//         * 测试删除分析课程(试卷)
+//         */
+//        Map<String, Object> map = new HashMap<>();
+//        map.computeIfAbsent("examId", v -> 262946761763454976L);
+//        map.computeIfAbsent("courseCode", v -> 2022052700001L + "A");//试卷编号+卷型
+//        String accessToken = SignatureEntity.build(SignatureType.SECRET, SystemConstant.METHOD, dictionaryConfig.reportOpenDomain().getCourseDelApi(), timestamp, basicSchool.getAccessKey(), basicSchool.getAccessSecret());
+//        String result = HttpUtil.postJson(dictionaryConfig.reportOpenDomain().getHostUrl() + dictionaryConfig.reportOpenDomain().getCourseDelApi(), JacksonUtil.parseJson(map), accessToken, timestamp);
 //        if (Objects.nonNull(result)) {
 //        if (Objects.nonNull(result)) {
 //            log.info("result:{}", JacksonUtil.parseJson(result));
 //            log.info("result:{}", JacksonUtil.parseJson(result));
-//    }
+//        }
     }
     }
-
-//    @ApiOperation(value = "测试教研分析回调接口")
-//    @ApiResponses({@ApiResponse(code = 200, message = "测试教研分析回调接口", response = Objects.class)})
-//    @RequestMapping(value = "/test/callback", method = RequestMethod.POST)
-//    @Aac(auth = BOOL.FALSE)
-//    public Result testCallback(@ApiParam(value = "接收教研分析回调数据", required = true) @RequestBody String result) throws IOException {
-//        log.info("testCallback,result:{}", result);
-//        String decodeJson = URLDecoder.decode(result, SystemConstant.CHARSET_NAME);
-//        log.info("testCallback decodeJson:{}", decodeJson);
-//        return ResultUtil.ok(System.currentTimeMillis());
-//    }
 }
 }

+ 4 - 4
distributed-print/src/main/java/com/qmth/distributed/print/interceptor/AuthInterceptor.java

@@ -22,11 +22,11 @@ public class AuthInterceptor extends ExtendInterceptor {
     @Override
     @Override
     public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
     public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
         log.info("preHandle is come in");
         log.info("preHandle is come in");
-        if (request.getServletPath().contains(endpoint)) {
+//        if (request.getServletPath().contains(endpoint)) {
         return true;
         return true;
-        } else {
-            return AuthUtil.adminAuthInterceptor(request, response, handler);
-        }
+//        } else {
+//            return AuthUtil.adminAuthInterceptor(request, response, handler);
+//        }
     }
     }
 
 
     @Override
     @Override

+ 7 - 5
distributed-print/src/main/resources/application-dev.properties

@@ -12,14 +12,14 @@ spring.application.name=distributed-print
 #\u6570\u636E\u6E90\u914D\u7F6E
 #\u6570\u636E\u6E90\u914D\u7F6E
 db.host=localhost
 db.host=localhost
 db.port=3306
 db.port=3306
-db.name=distributed-v3.0.2
+db.name=distributed-v3.1.0
 db.username=root
 db.username=root
-db.password=88888888
+db.password=123456789
 
 
 #redis\u6570\u636E\u6E90\u914D\u7F6E
 #redis\u6570\u636E\u6E90\u914D\u7F6E
 com.qmth.redis.host=${db.host}
 com.qmth.redis.host=${db.host}
 com.qmth.redis.port=6379
 com.qmth.redis.port=6379
-com.qmth.redis.db=15
+com.qmth.redis.db=1
 #com.qmth.redis.password=
 #com.qmth.redis.password=
 
 
 #mysql\u914D\u7F6E
 #mysql\u914D\u7F6E
@@ -89,7 +89,7 @@ org.center.orgQueryApi=/api/open/org/query
 #com.qmth.api.uri-prefix=/aaa
 #com.qmth.api.uri-prefix=/aaa
 #\u7EDF\u8BA1\u9875\u9762\u914D\u7F6E
 #\u7EDF\u8BA1\u9875\u9762\u914D\u7F6E
 com.qmth.api.metrics-endpoint=/metrics-count
 com.qmth.api.metrics-endpoint=/metrics-count
-com.qmth.api.global-auth=false
+com.qmth.api.global-auth=true
 #com.qmth.api.global-strict=false
 #com.qmth.api.global-strict=false
 #com.qmth.api.global-rate-limit=1/5s
 #com.qmth.api.global-rate-limit=1/5s
 
 
@@ -200,7 +200,9 @@ sms.config.aliyunSMSAuditCopyUserCode=SMS_237206065
 report.open.hostUrl=http://127.0.0.1:7004
 report.open.hostUrl=http://127.0.0.1:7004
 report.open.semesterApi=/api/report/open/semester_edit
 report.open.semesterApi=/api/report/open/semester_edit
 report.open.examApi=/api/report/open/exam_edit
 report.open.examApi=/api/report/open/exam_edit
-report.open.courseApi=/api/report/open/course_edit
+report.open.courseEditApi=/api/report/open/course_edit
+report.open.courseDelApi=/api/report/open/course_del
+report.open.calculateApi=/api/report/open/calculate
 report.open.ssoLoginApi=/api/report/sso/login
 report.open.ssoLoginApi=/api/report/sso/login
 
 
 print.open.callbackPwd=123456
 print.open.callbackPwd=123456

+ 25 - 5
teachcloud-common/src/main/java/com/qmth/teachcloud/common/domain/ReportOpenDomain.java

@@ -17,7 +17,11 @@ public class ReportOpenDomain implements Serializable {
 
 
     String examApi;
     String examApi;
 
 
-    String courseApi;
+    String courseEditApi;
+
+    String courseDelApi;
+
+    String calculateApi;
 
 
     String ssoLoginApi;
     String ssoLoginApi;
 
 
@@ -45,12 +49,28 @@ public class ReportOpenDomain implements Serializable {
         this.examApi = examApi;
         this.examApi = examApi;
     }
     }
 
 
-    public String getCourseApi() {
-        return courseApi;
+    public String getCourseEditApi() {
+        return courseEditApi;
+    }
+
+    public void setCourseEditApi(String courseEditApi) {
+        this.courseEditApi = courseEditApi;
+    }
+
+    public String getCourseDelApi() {
+        return courseDelApi;
+    }
+
+    public void setCourseDelApi(String courseDelApi) {
+        this.courseDelApi = courseDelApi;
+    }
+
+    public String getCalculateApi() {
+        return calculateApi;
     }
     }
 
 
-    public void setCourseApi(String courseApi) {
-        this.courseApi = courseApi;
+    public void setCalculateApi(String calculateApi) {
+        this.calculateApi = calculateApi;
     }
     }
 
 
     public String getSemesterApi() {
     public String getSemesterApi() {

+ 3 - 6
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/TeachcloudCommonServiceImpl.java

@@ -9,8 +9,6 @@ import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.google.common.reflect.TypeToken;
 import com.google.common.reflect.TypeToken;
 import com.google.gson.Gson;
 import com.google.gson.Gson;
 import com.qmth.boot.core.enums.Platform;
 import com.qmth.boot.core.enums.Platform;
-import com.qmth.boot.tools.signature.SignatureType;
-import com.qmth.teachcloud.common.SignatureEntityTest;
 import com.qmth.teachcloud.common.bean.auth.AuthBean;
 import com.qmth.teachcloud.common.bean.auth.AuthBean;
 import com.qmth.teachcloud.common.bean.auth.ExpireTimeBean;
 import com.qmth.teachcloud.common.bean.auth.ExpireTimeBean;
 import com.qmth.teachcloud.common.bean.dto.MenuDto;
 import com.qmth.teachcloud.common.bean.dto.MenuDto;
@@ -23,7 +21,6 @@ import com.qmth.teachcloud.common.contant.SpringContextHolder;
 import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.entity.*;
 import com.qmth.teachcloud.common.entity.*;
 import com.qmth.teachcloud.common.enums.*;
 import com.qmth.teachcloud.common.enums.*;
-import com.qmth.teachcloud.common.enums.userPush.SpecialPrivilegeEnum;
 import com.qmth.teachcloud.common.service.*;
 import com.qmth.teachcloud.common.service.*;
 import com.qmth.teachcloud.common.util.*;
 import com.qmth.teachcloud.common.util.*;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.lang3.StringUtils;
@@ -925,7 +922,7 @@ public class TeachcloudCommonServiceImpl implements TeachcloudCommonService {
         }
         }
         String sessionId = SessionUtil.digest(sysUser.getId(), Math.abs(roleNames.toString().hashCode()), platform.name());
         String sessionId = SessionUtil.digest(sysUser.getId(), Math.abs(roleNames.toString().hashCode()), platform.name());
         //TODO 测试用
         //TODO 测试用
-        String test = SignatureEntityTest.build(SignatureType.TOKEN, sessionId, token);
+//        String test = SignatureEntityTest.build(SignatureType.TOKEN, sessionId, token);
         ExpireTimeBean expireTime = AuthUtil.getExpireTime(platform);
         ExpireTimeBean expireTime = AuthUtil.getExpireTime(platform);
         TBSession tbSession = new TBSession(sysUser.getSchoolId(), sessionId, String.valueOf(sysUser.getId()), roleNames.toString(),
         TBSession tbSession = new TBSession(sysUser.getSchoolId(), sessionId, String.valueOf(sysUser.getId()), roleNames.toString(),
                 platform.name(), platform.name(), deviceId, ServletUtil.getRequest().getLocalAddr(), token,
                 platform.name(), platform.name(), deviceId, ServletUtil.getRequest().getLocalAddr(), token,
@@ -933,8 +930,8 @@ public class TeachcloudCommonServiceImpl implements TeachcloudCommonService {
         tbSessionService.saveOrUpdate(tbSession);
         tbSessionService.saveOrUpdate(tbSession);
         redisUtil.setUserSession(sessionId, tbSession, expireTime.getExpireSeconds());
         redisUtil.setUserSession(sessionId, tbSession, expireTime.getExpireSeconds());
 
 
-        LoginResult loginResult = new LoginResult(sysUser, sessionId, test, Objects.nonNull(roleTypes) && roleTypes.size() > 0 ? roleTypes : roleNames, appSource);
-//        LoginResult loginResult = new LoginResult(sysUser, sessionId, token, Objects.nonNull(roleTypes) && roleTypes.size() > 0 ? roleTypes : roleNames, appSource);
+//        LoginResult loginResult = new LoginResult(sysUser, sessionId, test, Objects.nonNull(roleTypes) && roleTypes.size() > 0 ? roleTypes : roleNames, appSource);
+        LoginResult loginResult = new LoginResult(sysUser, sessionId, token, Objects.nonNull(roleTypes) && roleTypes.size() > 0 ? roleTypes : roleNames, appSource);
         loginResult.setSchoolInfo(Objects.nonNull(authBean.getSchool()) ? loginResult.new SchoolNativeBean(authBean.getSchool()) : null);
         loginResult.setSchoolInfo(Objects.nonNull(authBean.getSchool()) ? loginResult.new SchoolNativeBean(authBean.getSchool()) : null);
         loginResult.setOrgInfo(Objects.nonNull(authBean.getOrg()) ? loginResult.new OrgNativeBean(authBean.getOrg()) : null);
         loginResult.setOrgInfo(Objects.nonNull(authBean.getOrg()) ? loginResult.new OrgNativeBean(authBean.getOrg()) : null);
         loginResult.setTime(System.currentTimeMillis());
         loginResult.setTime(System.currentTimeMillis());

+ 25 - 49
teachcloud-report/src/main/java/com/qmth/teachcloud/report/api/OpenApiController.java

@@ -148,7 +148,7 @@ public class OpenApiController {
     public Result calculate(@ApiParam(value = "接收分析课程(试卷)数据信息", required = true) @RequestBody String result) throws IOException, InterruptedException {
     public Result calculate(@ApiParam(value = "接收分析课程(试卷)数据信息", required = true) @RequestBody String result) throws IOException, InterruptedException {
         Optional.ofNullable(result).orElseThrow(() -> ExceptionResultEnum.PARAMS_ERROR.exception("数据为空"));
         Optional.ofNullable(result).orElseThrow(() -> ExceptionResultEnum.PARAMS_ERROR.exception("数据为空"));
         String decodeJson = URLDecoder.decode(result, SystemConstant.CHARSET_NAME);
         String decodeJson = URLDecoder.decode(result, SystemConstant.CHARSET_NAME);
-        log.info("calculate进来了进来了,result:{}", decodeJson);
+        log.info("calculate进来了,result:{}", decodeJson);
         CourseParam courseParam = JacksonUtil.readJson(decodeJson, CourseParam.class);
         CourseParam courseParam = JacksonUtil.readJson(decodeJson, CourseParam.class);
         courseParam.validParamsExamIdAndCourseCode();
         courseParam.validParamsExamIdAndCourseCode();
         AuthThirdUtil.hasPermission();
         AuthThirdUtil.hasPermission();
@@ -157,58 +157,34 @@ public class OpenApiController {
         Optional.ofNullable(callbackPwd).orElseThrow(() -> ExceptionResultEnum.ERROR.exception("配置文件回调密码为空"));
         Optional.ofNullable(callbackPwd).orElseThrow(() -> ExceptionResultEnum.ERROR.exception("配置文件回调密码为空"));
 
 
         try {
         try {
-            Long time = System.currentTimeMillis();
-            JSONObject dataObjectJson = new JSONObject();
-            dataObjectJson.put("examId", courseParam.getExamId());
-            dataObjectJson.put("courseCode", courseParam.getCourseCode());
-            dataObjectJson.put("progress", 0d);
-            dataObjectJson.put("status", "RUNNING");
-            dataObjectJson.put("time", time);
-            String pattern = "{0}{1}{2}";
-            String sign = URLEncoder.encode(MessageFormat.format(pattern, 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));
+            Double progress = 0D;
+            for (int i = 0; i < 11; i++) {
+                progress += 10D;
+                Long time = System.currentTimeMillis();
+                JSONObject dataObjectJson = new JSONObject();
+                dataObjectJson.put("examId", courseParam.getExamId());
+                dataObjectJson.put("courseCode", courseParam.getCourseCode());
+                dataObjectJson.put("progress", progress);
+                if (progress == 100D) {
+                    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 == 100D) {
+                    break;
+                }
+                Thread.sleep(5000);
             }
             }
         } catch (Exception e) {
         } catch (Exception e) {
             log.error(SystemConstant.LOG_ERROR, e);
             log.error(SystemConstant.LOG_ERROR, e);
         }
         }
         return ResultUtil.ok(true);
         return ResultUtil.ok(true);
     }
     }
-
-//    @ApiOperation(value = "接收基础考务数据")
-//    @ApiResponses({@ApiResponse(code = 200, message = "推送基础考务数据", response = Object.class)})
-//    @RequestMapping(value = "/basic/examination/data", method = RequestMethod.POST)
-//    public Result basicExaminationData(@ApiParam(value = "接收基础考务数据信息", required = true) @RequestBody String result) throws IOException, InterruptedException {
-//        log.info("basicExaminationData进来了,result:{}", result);
-//        String decodeJson = URLDecoder.decode(result, SystemConstant.CHARSET_NAME);
-//        log.info("decodeJson:{}", decodeJson);
-//        if (Objects.nonNull(decodeJson)) {
-//            JSONObject jsonObject = JSONObject.parseObject(decodeJson);
-//            String callbackUrl = jsonObject.getString("callbackUrl");
-//            String accessKey = jsonObject.getString("accessKey");
-//            String accessSecret = jsonObject.getString("accessSecret");
-//            if (Objects.nonNull(callbackUrl)) {
-//                Double progress = 0D;
-//                for (int i = 0; i < 11; i++) {
-//                    progress += 10D;
-//                    JSONObject dataObjectJson = new JSONObject();
-//                    dataObjectJson.put("progress", progress);
-//                    if (progress == 100D) {
-//                        dataObjectJson.put("status", "FINISHED");
-//                    } else {
-//                        dataObjectJson.put("status", "RUNNING");
-//                    }
-//                    Long timestamp = System.currentTimeMillis();
-//                    String accessToken = SignatureEntity.build(SignatureType.SECRET, SystemConstant.METHOD, callbackUrl, timestamp, accessKey, accessSecret);
-//                    String callbackResult = HttpUtil.postJson("http://127.0.0.1:7001" + callbackUrl, dataObjectJson.toJSONString(), accessToken, timestamp);
-//                    if (Objects.nonNull(callbackResult)) {
-//                        log.info("callbackResult:{}", JacksonUtil.parseJson(callbackResult));
-//                    }
-//                    Thread.sleep(5000);
-//                }
-//            }
-//        }
-//        return ResultUtil.ok(true);
-//    }
 }
 }