wangliang před 4 roky
rodič
revize
d4c6aed0b9

+ 6 - 0
teachcloud-common/src/main/java/com/qmth/teachcloud/common/contant/SystemConstant.java

@@ -85,6 +85,12 @@ public class SystemConstant {
     public static final String ROLE_PRIVILEGE_CACHE = "role:privilege:cache";
     public static final String USER_ROLE_PRIVILEGE_CACHE = "user:role:privilege:cache";
 
+    /**
+     * 报表缓存
+     */
+    public static final String EXAM_STUDENT_REPORT = "report:cache:examStudent";
+    public static final String COLLEGE_COURSE_REPORT = "report:cache:collegeCourse";
+
     /**
      * 鉴权
      */

+ 3 - 3
teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/service/TAExamCourseService.java

@@ -51,11 +51,11 @@ public interface TAExamCourseService extends IService<TAExamCourse> {
     /**
      * 考查课程考试分析接口
      *
-     * @param examId
+     * @param schoolId
      * @param semester
+     * @param examId
      * @param courseCode
-     * @param schoolId
      * @return
      */
-    CollegeAndCourseResult surveyInspectAnalyseView(Long examId, SemesterEnum semester, String courseCode, Long schoolId);
+    CollegeAndCourseResult surveyInspectAnalyseView(Long schoolId, SemesterEnum semester, Long examId, String courseCode);
 }

+ 6 - 3
teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/service/impl/TAExamCourseServiceImpl.java

@@ -2,6 +2,7 @@ package com.qmth.teachcloud.report.business.service.impl;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.entity.SysUser;
 import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
 import com.qmth.teachcloud.common.util.ServletUtil;
@@ -13,6 +14,7 @@ import com.qmth.teachcloud.report.business.enums.SemesterEnum;
 import com.qmth.teachcloud.report.business.mapper.TAExamCourseMapper;
 import com.qmth.teachcloud.report.business.mapper.TAExamCourseRecordMapper;
 import com.qmth.teachcloud.report.business.service.*;
+import org.springframework.cache.annotation.Cacheable;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
@@ -137,14 +139,15 @@ public class TAExamCourseServiceImpl extends ServiceImpl<TAExamCourseMapper, TAE
     /**
      * 考查课程考试分析接口
      *
-     * @param examId
+     * @param schoolId
      * @param semester
+     * @param examId
      * @param courseCode
-     * @param schoolId
      * @return
      */
     @Override
-    public CollegeAndCourseResult surveyInspectAnalyseView(Long examId, SemesterEnum semester, String courseCode, Long schoolId) {
+    @Cacheable(value = SystemConstant.COLLEGE_COURSE_REPORT, key = "#schoolId + '-' + #semester + '-' + #examId + '-' + #courseCode")
+    public CollegeAndCourseResult surveyInspectAnalyseView(Long schoolId, SemesterEnum semester, Long examId, String courseCode) {
         SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
         if (Objects.isNull(sysUser)) {
             throw ExceptionResultEnum.NOT_LOGIN.exception();

+ 8 - 5
teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/service/impl/TBExamStudentServiceImpl.java

@@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.google.common.collect.Lists;
+import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.entity.BasicCourse;
 import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
 import com.qmth.teachcloud.common.service.BasicCourseService;
@@ -21,6 +22,7 @@ import com.qmth.teachcloud.report.business.mapper.*;
 import com.qmth.teachcloud.report.business.service.TBExamStudentService;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.cache.annotation.Cacheable;
 import org.springframework.stereotype.Service;
 import org.springframework.util.LinkedMultiValueMap;
 import org.springframework.web.multipart.MultipartFile;
@@ -229,7 +231,7 @@ public class TBExamStudentServiceImpl extends ServiceImpl<TBExamStudentMapper, T
      */
     @Override
     public IPage<TBStudentReportResult> reportList(IPage<Map> iPage, Long schoolId, Long examId, Long collegeId, String courseCode, Long clazzId, Boolean absent) {
-        if(schoolId == null){
+        if (schoolId == null) {
             schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
         }
         return tbExamStudentMapper.reportList(iPage, schoolId, examId, collegeId, courseCode, clazzId, absent);
@@ -244,7 +246,7 @@ public class TBExamStudentServiceImpl extends ServiceImpl<TBExamStudentMapper, T
      */
     @Override
     public ReportResult reportResult(Long schoolId, String studentCode) {
-        if(schoolId == null){
+        if (schoolId == null) {
             schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
         }
         ReportResult reportResult = new ReportResult();
@@ -263,8 +265,9 @@ public class TBExamStudentServiceImpl extends ServiceImpl<TBExamStudentMapper, T
     }
 
     @Override
+    @Cacheable(value = SystemConstant.EXAM_STUDENT_REPORT, key = "#schoolId + '-' + #studentCode + '-' + #examId + '-' + #courseCode")
     public PersonalReportResult reportMark(Long schoolId, String studentCode, String examId, String courseCode) {
-        if(schoolId == null){
+        if (schoolId == null) {
             schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
         }
         PersonalReportResult personalReportResult = new PersonalReportResult();
@@ -341,8 +344,8 @@ public class TBExamStudentServiceImpl extends ServiceImpl<TBExamStudentMapper, T
             List<TBModuleProficiency> moduleProficiencies = tbModuleProficiencyMapper.selectList(moduleProficiencyQueryWrapper);
             List<Map<String, String>> moduleProficiencieTemps = moduleProficiencies.stream().flatMap(e -> {
                 Map<String, String> tbModuleProficiency = new HashMap();
-                tbModuleProficiency.put("examId",e.getExamId().toString());
-                tbModuleProficiency.put("courseCode",e.getCourseCode());
+                tbModuleProficiency.put("examId", e.getExamId().toString());
+                tbModuleProficiency.put("courseCode", e.getCourseCode());
                 tbModuleProficiency.put("moduleType", e.getModuleType());
                 tbModuleProficiency.put("interpret", e.getInterpret());
                 return Stream.of(tbModuleProficiency);

+ 1 - 1
teachcloud-report/src/main/java/com/qmth/teachcloud/report/api/CourseController.java

@@ -44,7 +44,7 @@ public class CourseController {
                                            @ApiParam(value = "科目编码", required = true) @RequestParam String courseCode,
                                            @ApiParam(value = "学校id", required = true) @RequestParam String schoolId) {
 
-        return ResultUtil.ok(taExamCourseService.surveyInspectAnalyseView(SystemConstant.convertIdToLong(examId), semester, courseCode, SystemConstant.convertIdToLong(schoolId)));
+        return ResultUtil.ok(taExamCourseService.surveyInspectAnalyseView(SystemConstant.convertIdToLong(schoolId), semester, SystemConstant.convertIdToLong(examId), courseCode));
     }
 
     @ApiOperation(value = "赋分管理列表接口")