浏览代码

推送科目方法

wangliang 3 年之前
父节点
当前提交
021ae79c48

+ 28 - 12
distributed-print/src/main/java/com/qmth/distributed/print/api/TSAuthController.java

@@ -7,6 +7,7 @@ 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.config.DictionaryConfig;
 import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.entity.BasicSchool;
 import com.qmth.teachcloud.common.service.CommonCacheService;
@@ -49,6 +50,9 @@ public class TSAuthController {
     @Resource
     CommonCacheService commonCacheService;
 
+    @Resource
+    DictionaryConfig dictionaryConfig;
+
     @ApiOperation(value = "导出硬件信息")
     @ApiResponses({@ApiResponse(code = 200, message = "导出硬件信息", response = Object.class)})
     @RequestMapping(value = "/export/device/info", method = RequestMethod.POST)
@@ -87,29 +91,41 @@ public class TSAuthController {
     public void testPush() throws IOException {
         Long schoolId = SystemConstant.getHeadOrUserSchoolId();
         BasicSchool basicSchool = commonCacheService.schoolCache(schoolId);
+        Long timestamp = System.currentTimeMillis();
 //        /**
 //         * 测试推送学期
 //         */
-//        String url = "/api/report/open/semester_edit";
 //        BasicSemesterParams basicSemesterParams = new BasicSemesterParams("测试学期1", System.currentTimeMillis(), System.currentTimeMillis() + 1L);
-//        Long timestamp = System.currentTimeMillis();
-//        String accessToken = SignatureEntity.build(SignatureType.SECRET, SystemConstant.METHOD, url, timestamp, basicSchool.getAccessKey(), basicSchool.getAccessSecret());
-//        String result = HttpUtil.postJson("http://127.0.0.1:7004" + url, JacksonUtil.parseJson(basicSemesterParams), accessToken, timestamp);
+//        String accessToken = SignatureEntity.build(SignatureType.SECRET, SystemConstant.METHOD, dictionaryConfig.reportOpenDomain().getSemesterApi(), timestamp, basicSchool.getAccessKey(), basicSchool.getAccessSecret());
+//        String result = HttpUtil.postJson(dictionaryConfig.reportOpenDomain().getHostUrl() + dictionaryConfig.reportOpenDomain().getSemesterApi(), JacksonUtil.parseJson(basicSemesterParams), accessToken, timestamp);
+//        if (Objects.nonNull(result)) {
+//            log.info("result:{}", JacksonUtil.parseJson(result));
+//        }
+
+//        /**
+//         * 测试推送考试
+//         */
+//        Map<String, Object> map = new HashMap<>();
+//        map.computeIfAbsent("examName", v -> "测试考试1");
+//        map.computeIfAbsent("examTime", v -> timestamp);
+//        map.computeIfAbsent("semesterId", v -> 262908000564412416L);
+//        String accessToken = SignatureEntity.build(SignatureType.SECRET, SystemConstant.METHOD, dictionaryConfig.reportOpenDomain().getExamApi(), timestamp, basicSchool.getAccessKey(), basicSchool.getAccessSecret());
+//        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));
 //        }
 
         /**
-         * 测试推送考试
+         * 测试推送分析课程(试卷)
          */
-        String url = "/api/report/open/exam_edit";
         Map<String, Object> map = new HashMap<>();
-        Long timestamp = System.currentTimeMillis();
-        map.computeIfAbsent("examName", v -> "测试考试1");
-        map.computeIfAbsent("examTime", v -> timestamp);
-        map.computeIfAbsent("semesterId", v -> 262908000564412416L);
-        String accessToken = SignatureEntity.build(SignatureType.SECRET, SystemConstant.METHOD, url, timestamp, basicSchool.getAccessKey(), basicSchool.getAccessSecret());
-        String result = HttpUtil.postJson("http://127.0.0.1:7004" + url, JacksonUtil.parseJson(map), accessToken, timestamp);
+        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));
         }

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

@@ -196,4 +196,7 @@ sms.config.aliyunSMSAuditRejectCode=SMS_237206063
 sms.config.aliyunSMSUploadStructureCode=SMS_237201068
 sms.config.aliyunSMSAuditCopyUserCode=SMS_237206065
 
-report.open.semesterApi=/api/report/open/semester_edit
+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

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

@@ -11,8 +11,38 @@ import java.io.Serializable;
  */
 public class ReportOpenDomain implements Serializable {
 
+    String hostUrl;
+
     String semesterApi;
 
+    String examApi;
+
+    String courseApi;
+
+    public String getHostUrl() {
+        return hostUrl;
+    }
+
+    public void setHostUrl(String hostUrl) {
+        this.hostUrl = hostUrl;
+    }
+
+    public String getExamApi() {
+        return examApi;
+    }
+
+    public void setExamApi(String examApi) {
+        this.examApi = examApi;
+    }
+
+    public String getCourseApi() {
+        return courseApi;
+    }
+
+    public void setCourseApi(String courseApi) {
+        this.courseApi = courseApi;
+    }
+
     public String getSemesterApi() {
         return semesterApi;
     }

+ 85 - 0
teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/bean/params/CourseParam.java

@@ -0,0 +1,85 @@
+package com.qmth.teachcloud.report.business.bean.params;
+
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.io.Serializable;
+import java.util.Optional;
+
+/**
+ * @Description: 课程参数
+ * @Param:
+ * @return:
+ * @Author: wangliang
+ * @Date: 2022/5/27
+ */
+public class CourseParam implements Serializable {
+
+    @ApiModelProperty(value = "考试id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long examId;
+
+    @ApiModelProperty(value = "课程编码,一个分析试卷的唯一标识")
+    private String courseCode;
+
+    @ApiModelProperty(value = "课程名称,分析试卷名称(可用课程名称-试卷唯一性标识)")
+    private String courseName;
+
+    @ApiModelProperty(value = "试卷类型没有就传'#'")
+    private String paperType = "#";
+
+    @ApiModelProperty(value = "开课机构名称(命题机构)")
+    private String teachCollegeName;
+
+    /**
+     * 参数校验
+     */
+    public void validParams() {
+        Optional.ofNullable(this.getExamId()).orElseThrow(() -> ExceptionResultEnum.PARAMS_ERROR.exception("考试id为空"));
+        Optional.ofNullable(this.getCourseCode()).orElseThrow(() -> ExceptionResultEnum.PARAMS_ERROR.exception("课程编码为空"));
+        Optional.ofNullable(this.getCourseName()).orElseThrow(() -> ExceptionResultEnum.PARAMS_ERROR.exception("课程名称为空"));
+        Optional.ofNullable(this.getTeachCollegeName()).orElseThrow(() -> ExceptionResultEnum.PARAMS_ERROR.exception("开课机构名称为空"));
+    }
+
+    public Long getExamId() {
+        return examId;
+    }
+
+    public void setExamId(Long examId) {
+        this.examId = examId;
+    }
+
+    public String getCourseCode() {
+        return courseCode;
+    }
+
+    public void setCourseCode(String courseCode) {
+        this.courseCode = courseCode;
+    }
+
+    public String getCourseName() {
+        return courseName;
+    }
+
+    public void setCourseName(String courseName) {
+        this.courseName = courseName;
+    }
+
+    public String getPaperType() {
+        return paperType;
+    }
+
+    public void setPaperType(String paperType) {
+        this.paperType = paperType;
+    }
+
+    public String getTeachCollegeName() {
+        return teachCollegeName;
+    }
+
+    public void setTeachCollegeName(String teachCollegeName) {
+        this.teachCollegeName = teachCollegeName;
+    }
+}

+ 8 - 2
teachcloud-report/src/main/java/com/qmth/teachcloud/report/api/OpenApiController.java

@@ -13,12 +13,14 @@ 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.CourseParam;
 import com.qmth.teachcloud.report.business.bean.params.TBExamParam;
 import com.qmth.teachcloud.report.business.service.TBExamCourseService;
 import com.qmth.teachcloud.report.business.service.TBExamService;
 import io.swagger.annotations.*;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -91,13 +93,17 @@ public class OpenApiController {
     @ApiOperation(value = "分析课程(试卷)创建/更新接口")
     @ApiResponses({@ApiResponse(code = 200, message = "分析课程(试卷)创建/更新接口", response = Object.class)})
     @RequestMapping(value = "/course_edit", method = RequestMethod.POST)
+    @Aac(auth = BOOL.FALSE)
+    @Transactional
     public Result courseEdit(@ApiParam(value = "接收分析课程(试卷)数据信息", required = true) @RequestBody String result) throws IOException, InterruptedException {
         Optional.ofNullable(result).orElseThrow(() -> ExceptionResultEnum.PARAMS_ERROR.exception("数据为空"));
         String decodeJson = URLDecoder.decode(result, SystemConstant.CHARSET_NAME);
         log.info("courseEdit进来了进来了,result:{}", decodeJson);
+        CourseParam courseParam = JacksonUtil.readJson(decodeJson, CourseParam.class);
+        courseParam.validParams();
         BasicSchool basicSchool = AuthThirdUtil.hasPermission();
-//        basicCourseService.createCourse(basicSchool.getId());
-
+        basicCourseService.createCourse(basicSchool.getId(), courseParam.getCourseCode(), courseParam.getCourseName());
+        tbExamCourseService.createCourse(basicSchool.getId(), courseParam.getExamId(), courseParam.getCourseCode(), courseParam.getCourseName(), courseParam.getPaperType(), courseParam.getTeachCollegeName());
         return ResultUtil.ok(true);
     }