Ver Fonte

发布开放接口

caozixuan há 3 anos atrás
pai
commit
e1d9f2e0cd

+ 12 - 1
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/GradeBatchServiceImpl.java

@@ -28,6 +28,7 @@ import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
 import com.qmth.teachcloud.common.enums.GradeAnalyzePaperStatusEnum;
 import com.qmth.teachcloud.common.enums.GradeAnalyzePaperStatusEnum;
 import com.qmth.teachcloud.common.enums.TaskResultEnum;
 import com.qmth.teachcloud.common.enums.TaskResultEnum;
 import com.qmth.teachcloud.common.enums.UploadFileEnum;
 import com.qmth.teachcloud.common.enums.UploadFileEnum;
+import com.qmth.teachcloud.common.service.TeachcloudCommonService;
 import com.qmth.teachcloud.common.util.ExcelUtil;
 import com.qmth.teachcloud.common.util.ExcelUtil;
 import com.qmth.teachcloud.common.util.FileStoreUtil;
 import com.qmth.teachcloud.common.util.FileStoreUtil;
 import com.qmth.teachcloud.common.util.ResultUtil;
 import com.qmth.teachcloud.common.util.ResultUtil;
@@ -71,10 +72,20 @@ public class GradeBatchServiceImpl extends ServiceImpl<GradeBatchMapper, GradeBa
     @Resource
     @Resource
     GradeBatchStudentService gradeBatchStudentService;
     GradeBatchStudentService gradeBatchStudentService;
 
 
+    @Resource
+    TeachcloudCommonService teachcloudCommonService;
+
     @Override
     @Override
     public IPage<GradeBatchResult> gradeBatchPage(String batchName, int pageNumber, int pageSize, SysUser requestUser) {
     public IPage<GradeBatchResult> gradeBatchPage(String batchName, int pageNumber, int pageSize, SysUser requestUser) {
         batchName = SystemConstant.translateSpecificSign(batchName);
         batchName = SystemConstant.translateSpecificSign(batchName);
-        return this.baseMapper.findGradeBatchPage(new Page<>(pageNumber, pageSize), batchName, requestUser.getSchoolId());
+        IPage<GradeBatchResult> page = this.baseMapper.findGradeBatchPage(new Page<>(pageNumber, pageSize), batchName, requestUser.getSchoolId());
+        for (GradeBatchResult record : page.getRecords()) {
+            String txtPath = record.getReportFilePath();
+            if (SystemConstant.strNotNull(txtPath)){
+                record.setReportFilePath(teachcloudCommonService.filePreview(txtPath));
+            }
+        }
+        return page;
     }
     }
 
 
     @Transactional(rollbackFor = Exception.class)
     @Transactional(rollbackFor = Exception.class)

+ 0 - 2
distributed-print/src/main/java/com/qmth/distributed/print/api/GradeBatchController.java

@@ -1,7 +1,5 @@
 package com.qmth.distributed.print.api;
 package com.qmth.distributed.print.api;
 
 
-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.api.constant.ApiConstant;
 import com.qmth.distributed.print.business.bean.params.analyze.GradeBatchParam;
 import com.qmth.distributed.print.business.bean.params.analyze.GradeBatchParam;
 import com.qmth.distributed.print.business.bean.result.EditResult;
 import com.qmth.distributed.print.business.bean.result.EditResult;

+ 5 - 1
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/TeachcloudCommonServiceImpl.java

@@ -120,9 +120,13 @@ public class TeachcloudCommonServiceImpl implements TeachcloudCommonService {
         }
         }
         Set<Long> privilegeIds = sysRolePrivilegeList.stream().map(s -> s.getPrivilegeId()).collect(Collectors.toSet());
         Set<Long> privilegeIds = sysRolePrivilegeList.stream().map(s -> s.getPrivilegeId()).collect(Collectors.toSet());
         QueryWrapper<SysPrivilege> sysPrivilegeQueryWrapper = new QueryWrapper<>();
         QueryWrapper<SysPrivilege> sysPrivilegeQueryWrapper = new QueryWrapper<>();
-        sysPrivilegeQueryWrapper.lambda().in(SysPrivilege::getId, privilegeIds)
+        sysPrivilegeQueryWrapper.lambda()
                 .eq(SysPrivilege::getEnable, true).eq(SysPrivilege::getFrontDisplay, true)
                 .eq(SysPrivilege::getEnable, true).eq(SysPrivilege::getFrontDisplay, true)
                 .orderByAsc(SysPrivilege::getSequence);
                 .orderByAsc(SysPrivilege::getSequence);
+
+        if (!privilegeIds.isEmpty()){
+            sysPrivilegeQueryWrapper.lambda().in(SysPrivilege::getId, privilegeIds);
+        }
         List<SysPrivilege> sysPrivilegeList = sysPrivilegeService.list(sysPrivilegeQueryWrapper);
         List<SysPrivilege> sysPrivilegeList = sysPrivilegeService.list(sysPrivilegeQueryWrapper);
         Gson gson = new Gson();
         Gson gson = new Gson();
         List<MenuDto> menuDtoList = gson.fromJson(JacksonUtil.parseJson(sysPrivilegeList), new TypeToken<List<MenuDto>>() {
         List<MenuDto> menuDtoList = gson.fromJson(JacksonUtil.parseJson(sysPrivilegeList), new TypeToken<List<MenuDto>>() {

+ 58 - 0
teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/bean/params/PublishParams.java

@@ -0,0 +1,58 @@
+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.util.Optional;
+
+/**
+ * @Description: 开放接口 - 发布报告参数
+ * @Author: CaoZixuan
+ * @Date: 2022-06-16
+ */
+public class PublishParams {
+    @ApiModelProperty(value = "考试id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long examId;
+
+    @ApiModelProperty(value = "课程编号")
+    private String courseCode;
+
+    @ApiModelProperty(value = "发布状态 true:发布 false:撤回发布")
+    private Boolean publishStatus;
+
+    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 Boolean getPublishStatus() {
+        return publishStatus;
+    }
+
+    public void setPublishStatus(Boolean publishStatus) {
+        this.publishStatus = publishStatus;
+    }
+
+    /**
+     * 参数校验
+     */
+    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.getPublishStatus()).orElseThrow(() -> ExceptionResultEnum.PARAMS_ERROR.exception("发布状态为空"));
+    }
+}

+ 1 - 1
teachcloud-report-business/src/main/resources/mapper/TBExamStudentMapper.xml

@@ -342,7 +342,7 @@
             t_b_exam_student a
             t_b_exam_student a
                 LEFT JOIN
                 LEFT JOIN
             t_b_exam b ON a.exam_id = b.id
             t_b_exam b ON a.exam_id = b.id
-            join basic_semester bs on bs.id = d.semester_id
+            join basic_semester bs on bs.id = b.semester_id
         <where>
         <where>
             and b.school_id = #{schoolId}
             and b.school_id = #{schoolId}
             and a.student_code = #{studentCode}
             and a.student_code = #{studentCode}

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

@@ -16,7 +16,10 @@ import com.qmth.teachcloud.common.util.Result;
 import com.qmth.teachcloud.common.util.ResultUtil;
 import com.qmth.teachcloud.common.util.ResultUtil;
 import com.qmth.teachcloud.report.business.bean.params.CalculateParams;
 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.PublishParams;
 import com.qmth.teachcloud.report.business.bean.params.TBExamParam;
 import com.qmth.teachcloud.report.business.bean.params.TBExamParam;
+import com.qmth.teachcloud.report.business.enums.PublishStatusEnum;
+import com.qmth.teachcloud.report.business.service.AnalyzeForReportService;
 import com.qmth.teachcloud.report.business.service.TBExamCourseService;
 import com.qmth.teachcloud.report.business.service.TBExamCourseService;
 import com.qmth.teachcloud.report.business.service.TBExamService;
 import com.qmth.teachcloud.report.business.service.TBExamService;
 import com.qmth.teachcloud.report.business.templete.strategy.CourseCodeSyncTaskService;
 import com.qmth.teachcloud.report.business.templete.strategy.CourseCodeSyncTaskService;
@@ -66,6 +69,9 @@ public class OpenApiController {
     @Resource
     @Resource
     CourseCodeSyncTaskService courseCodeSyncTaskService;
     CourseCodeSyncTaskService courseCodeSyncTaskService;
 
 
+    @Resource
+    AnalyzeForReportService analyzeForReportService;
+
     @ApiOperation(value = "学期创建/更新接口")
     @ApiOperation(value = "学期创建/更新接口")
     @ApiResponses({@ApiResponse(code = 200, message = "学期创建/更新接口", response = Object.class)})
     @ApiResponses({@ApiResponse(code = 200, message = "学期创建/更新接口", response = Object.class)})
     @RequestMapping(value = "/semester_edit", method = RequestMethod.POST)
     @RequestMapping(value = "/semester_edit", method = RequestMethod.POST)
@@ -134,6 +140,29 @@ public class OpenApiController {
         return ResultUtil.ok(true);
         return ResultUtil.ok(true);
     }
     }
 
 
+    @ApiOperation(value = "发布报告接口")
+    @ApiResponses({@ApiResponse(code = 200, message = "发布报告接口", response = Object.class)})
+    @RequestMapping(value = "/publish", method = RequestMethod.POST)
+    @Aac(auth = BOOL.FALSE)
+    public Result publish(@ApiParam(value = "发布报告接口", required = true) @RequestBody String result) throws IOException {
+        Optional.ofNullable(result).orElseThrow(() -> ExceptionResultEnum.PARAMS_ERROR.exception("数据为空"));
+        String decodeJson = URLDecoder.decode(result, SystemConstant.CHARSET_NAME);
+        log.info("calculate进来了,result:{}", decodeJson);
+        PublishParams publishParams = JacksonUtil.readJson(decodeJson, PublishParams.class);
+        publishParams.validParams();
+        BasicSchool basicSchool = AuthThirdUtil.hasPermission();
+
+        Boolean publishStatus = publishParams.getPublishStatus();
+        PublishStatusEnum publishStatusEnum;
+        if (publishStatus){
+            publishStatusEnum = PublishStatusEnum.PUBLISH;
+        }else {
+            publishStatusEnum = PublishStatusEnum.UN_PUBLISH;
+        }
+        analyzeForReportService.publishReport(publishParams.getExamId(),publishParams.getCourseCode(),publishStatusEnum);
+        return ResultUtil.ok(true);
+    }
+
 
 
     @ApiOperation(value = "生成课程(试卷)分析报告接口测试")
     @ApiOperation(value = "生成课程(试卷)分析报告接口测试")
     @ApiResponses({@ApiResponse(code = 200, message = "生成课程(试卷)分析报告接口", response = Object.class)})
     @ApiResponses({@ApiResponse(code = 200, message = "生成课程(试卷)分析报告接口", response = Object.class)})