Browse Source

Merge remote-tracking branch 'origin/dev_v2.1.0' into dev_v2.1.0

wangliang 3 years ago
parent
commit
29c74698df

+ 1 - 0
teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/bean/result/CellResult.java

@@ -22,6 +22,7 @@ public class CellResult implements Serializable {
     @ApiModelProperty(value = "分数")
     private String scope;
 
+    // TODO: 2021/7/22 如果能把这个属性改为 referenceAvgScoreRate(参照指标) 比较好,因为有的地方显示的是学校平均得分率,有的是学院平均得分率,更改这个地方需要前端和三个mapper查询更改
     @ApiModelProperty(value = "学校平均分得分率")
     private Double schAvgScoreRate;
 

+ 13 - 0
teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/mapper/TAExamCourseTeacherCollegeDifficultMapper.java

@@ -1,7 +1,11 @@
 package com.qmth.teachcloud.report.business.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.qmth.teachcloud.report.business.bean.result.CellResult;
 import com.qmth.teachcloud.report.business.entity.TAExamCourseTeacherCollegeDifficult;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 /**
  * <p>
@@ -13,4 +17,13 @@ import com.qmth.teachcloud.report.business.entity.TAExamCourseTeacherCollegeDiff
  */
 public interface TAExamCourseTeacherCollegeDifficultMapper extends BaseMapper<TAExamCourseTeacherCollegeDifficult> {
 
+    /**
+     * 查找有效答案
+     * @param examId 考试id
+     * @param courseCode 课程编号
+     * @param teacherId 教师id
+     * @param inspectCollegeId 考察学院id
+     * @return 结果
+     */
+    List<CellResult> findValidAnswerDetail(@Param("examId") Long examId, @Param("courseCode") String courseCode, @Param("teacherId") Long teacherId,@Param("inspectCollegeId") Long inspectCollegeId);
 }

+ 1 - 1
teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/service/TAExamCourseCollegeTeacherService.java

@@ -72,5 +72,5 @@ public interface TAExamCourseCollegeTeacherService extends IService<TAExamCourse
      * @param collegeId
      * @return
      */
-    QuestionInfoResult teacherQuestionAnswerView(Long schoolId, SemesterEnum semester, Long examId, String courseCode, Long collegeId);
+    QuestionInfoResult teacherQuestionAnswerView(Long schoolId, SemesterEnum semester, Long examId, String courseCode, Long collegeId,Long teacher);
 }

+ 12 - 0
teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/service/TAExamCourseTeacherCollegeDifficultService.java

@@ -1,8 +1,11 @@
 package com.qmth.teachcloud.report.business.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.qmth.teachcloud.report.business.bean.result.CellResult;
 import com.qmth.teachcloud.report.business.entity.TAExamCourseTeacherCollegeDifficult;
 
+import java.util.List;
+
 /**
  * <p>
  * 授课教师-本院难度分布和该教师在本院难度分布对比 服务类
@@ -13,4 +16,13 @@ import com.qmth.teachcloud.report.business.entity.TAExamCourseTeacherCollegeDiff
  */
 public interface TAExamCourseTeacherCollegeDifficultService extends IService<TAExamCourseTeacherCollegeDifficult> {
 
+    /**
+     * 查找教师在各学院有效作答
+     * @param examId 考试id
+     * @param courseCode 课程编号
+     * @param teacherId 教师id
+     * @param inspectCollegeId 考察学院id
+     * @return 结果
+     */
+    List<CellResult> findValidAnswerDetail(Long examId, String courseCode, Long teacherId,Long inspectCollegeId);
 }

+ 10 - 2
teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/service/impl/ReportCommonServiceImpl.java

@@ -71,6 +71,9 @@ public class ReportCommonServiceImpl implements ReportCommonService {
     @Resource
     TBExamService tbExamService;
 
+    @Resource
+    TAExamCourseTeacherCollegeDifficultService taExamCourseTeacherCollegeDifficultService;
+
     /**
      * 学院学科报表查询科目信息
      *
@@ -386,10 +389,15 @@ public class ReportCommonServiceImpl implements ReportCommonService {
     public QuestionInfoResult findSituationOfQuestions(Long examId, String courseCode, Long collegeId, Long teacherId) {
         //查找答题记录
         List<CellResult> answerDetailDatasource = null;
-        if (Objects.isNull(teacherId) || Objects.equals(teacherId, "")) {
+        if (SystemConstant.longNotNull(collegeId) && !SystemConstant.longNotNull(teacherId)) {
+            // 有学院id无教师id -> 开课院长看各考察学院数据
             answerDetailDatasource = taExamCourseDifficultService.findValidAnswerDetail(examId, courseCode, collegeId);
-        } else {
+        } else if (SystemConstant.longNotNull(teacherId) && !SystemConstant.longNotNull(collegeId)){
+            // 有教师id无学院id -> 开课院长看各授课教师数据
             answerDetailDatasource = taExamCourseTeacherDifficultService.findValidAnswerDetail(examId, courseCode, teacherId);
+        } else if (SystemConstant.longNotNull(teacherId) && SystemConstant.longNotNull(collegeId)) {
+            // 既有教师id又有学院id -> 任课教师看某个学院下自己的数据
+            answerDetailDatasource = taExamCourseTeacherCollegeDifficultService.findValidAnswerDetail(examId, courseCode, collegeId, teacherId);
         }
         Set<String> paperTypeList = answerDetailDatasource.stream().map(e -> e.getPaperType()).collect(Collectors.toSet());
         List<PaperTypeResult> questionInfoList = new ArrayList<>();

+ 2 - 2
teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/service/impl/TAExamCourseCollegeTeacherServiceImpl.java

@@ -171,7 +171,7 @@ public class TAExamCourseCollegeTeacherServiceImpl extends ServiceImpl<TAExamCou
      * @return
      */
     @Override
-    public QuestionInfoResult teacherQuestionAnswerView(Long schoolId, SemesterEnum semester, Long examId, String courseCode, Long collegeId) {
-        return reportCommonService.findSituationOfQuestions(examId, courseCode, collegeId, null);
+    public QuestionInfoResult teacherQuestionAnswerView(Long schoolId, SemesterEnum semester, Long examId, String courseCode, Long collegeId,Long teacherId) {
+        return reportCommonService.findSituationOfQuestions(examId, courseCode, collegeId, teacherId);
     }
 }

+ 11 - 0
teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/service/impl/TAExamCourseTeacherCollegeDifficultServiceImpl.java

@@ -1,10 +1,15 @@
 package com.qmth.teachcloud.report.business.service.impl;
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.qmth.teachcloud.report.business.bean.result.CellResult;
 import com.qmth.teachcloud.report.business.entity.TAExamCourseTeacherCollegeDifficult;
 import com.qmth.teachcloud.report.business.mapper.TAExamCourseTeacherCollegeDifficultMapper;
 import com.qmth.teachcloud.report.business.service.TAExamCourseTeacherCollegeDifficultService;
 import org.springframework.stereotype.Service;
+import org.springframework.web.bind.annotation.RequestParam;
+
+import javax.annotation.Resource;
+import java.util.List;
 
 /**
  * <p>
@@ -16,5 +21,11 @@ import org.springframework.stereotype.Service;
  */
 @Service
 public class TAExamCourseTeacherCollegeDifficultServiceImpl extends ServiceImpl<TAExamCourseTeacherCollegeDifficultMapper, TAExamCourseTeacherCollegeDifficult> implements TAExamCourseTeacherCollegeDifficultService {
+    @Resource
+    private TAExamCourseTeacherCollegeDifficultMapper taExamCourseTeacherCollegeDifficultMapper;
 
+    @Override
+    public List<CellResult> findValidAnswerDetail(Long examId, String courseCode, Long teacherId, Long inspectCollegeId) {
+        return taExamCourseTeacherCollegeDifficultMapper.findValidAnswerDetail(examId, courseCode, teacherId, inspectCollegeId);
+    }
 }

+ 24 - 0
teachcloud-report-business/src/main/resources/mapper/TAExamCourseTeacherCollegeDifficultMapper.xml

@@ -2,4 +2,28 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.qmth.teachcloud.report.business.mapper.TAExamCourseTeacherCollegeDifficultMapper">
 
+    <select id="findValidAnswerDetail" resultType="com.qmth.teachcloud.report.business.bean.result.CellResult">
+        SELECT
+            tik.paper_type AS paperType,
+            tik.`scope`,
+            tik.count,
+            tik.interpret,
+            round(tik.col_avg_score_rate * 100,2) as schAvgScoreRate,
+            round(tik.tea_col_avg_score_rate * 100,2) as myAvgScoreRate
+        from t_a_exam_course_teacher_college_difficult tik
+        <where>
+            <if test="teacherId != null and teacherId > 0">
+                and tik.teacher_id = #{teacherId}
+            </if>
+            <if test="inspectCollegeId != null and inspectCollegeId > 0">
+                and tik.inspect_college_id = #{inspectCollegeId}
+            </if>
+            <if test="examId != null and examId > 0">
+                and tik.exam_id = #{examId}
+            </if>
+            <if test="courseCode != null and courseCode != ''">
+                and tik.course_code = #{courseCode}
+            </if>
+        </where>
+    </select>
 </mapper>

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

@@ -105,10 +105,11 @@ public class TAExamCourseCollegeTeacherController {
                                             @ApiParam(value = "学校id", required = false) @RequestParam(required = false) String schoolId,
                                             @ApiParam(value = "科目编码", required = true) @RequestParam String courseCode,
                                             @ApiParam(value = "学院id", required = false) @RequestParam(required = false) String collegeId) {
+        // 道理上讲必须传学院id 但如果老师想看自己的整体情况,不传学院id得到的就是整体情况
         SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
         if (Objects.isNull(sysUser)) {
             throw ExceptionResultEnum.NOT_LOGIN.exception();
         }
-        return ResultUtil.ok(taExamCourseCollegeTeacherService.teacherQuestionAnswerView(Objects.isNull(schoolId) ? SystemConstant.convertIdToLong(String.valueOf(ServletUtil.getRequestHeaderSchoolId())) : SystemConstant.convertIdToLong(schoolId), semester, SystemConstant.convertIdToLong(examId), courseCode, Objects.nonNull(collegeId) ? SystemConstant.convertIdToLong(collegeId) : sysUser.getOrgId()));
+        return ResultUtil.ok(taExamCourseCollegeTeacherService.teacherQuestionAnswerView(Objects.isNull(schoolId) ? SystemConstant.convertIdToLong(String.valueOf(ServletUtil.getRequestHeaderSchoolId())) : SystemConstant.convertIdToLong(schoolId), semester, SystemConstant.convertIdToLong(examId), courseCode, SystemConstant.convertIdToLong(collegeId),sysUser.getId()));
     }
 }