瀏覽代碼

教师模块接口

xiaof 4 年之前
父節點
當前提交
dabd03d16e

+ 80 - 0
teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/bean/result/TeacherClassRankResult.java

@@ -0,0 +1,80 @@
+package com.qmth.teachcloud.report.business.bean.result;
+
+/**
+ * @Date: 2021/6/8.
+ */
+public class TeacherClassRankResult {
+
+    private String teacherName;
+    private String inspectCollegeName;
+    private String courseCode;
+    private String courseName;
+    private String teachCollegeName;
+    private String avgScore;
+    private String avgScoreAssign;
+    private String rank;
+
+    public String getTeacherName() {
+        return teacherName;
+    }
+
+    public void setTeacherName(String teacherName) {
+        this.teacherName = teacherName;
+    }
+
+    public String getInspectCollegeName() {
+        return inspectCollegeName;
+    }
+
+    public void setInspectCollegeName(String inspectCollegeName) {
+        this.inspectCollegeName = inspectCollegeName;
+    }
+
+    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 getTeachCollegeName() {
+        return teachCollegeName;
+    }
+
+    public void setTeachCollegeName(String teachCollegeName) {
+        this.teachCollegeName = teachCollegeName;
+    }
+
+    public String getAvgScore() {
+        return avgScore;
+    }
+
+    public void setAvgScore(String avgScore) {
+        this.avgScore = avgScore;
+    }
+
+    public String getAvgScoreAssign() {
+        return avgScoreAssign;
+    }
+
+    public void setAvgScoreAssign(String avgScoreAssign) {
+        this.avgScoreAssign = avgScoreAssign;
+    }
+
+    public String getRank() {
+        return rank;
+    }
+
+    public void setRank(String rank) {
+        this.rank = rank;
+    }
+}

+ 80 - 0
teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/bean/result/TeacherMyClassRankResult.java

@@ -0,0 +1,80 @@
+package com.qmth.teachcloud.report.business.bean.result;
+
+/**
+ * @Date: 2021/6/8.
+ */
+public class TeacherMyClassRankResult {
+
+    private String teacherName;
+    private String inspectCollegeName;
+    private String courseCode;
+    private String courseName;
+    private String teachCollegeName;
+    private String scoreAssign;
+    private String teacherCount;
+    private String rank;
+
+    public String getTeacherName() {
+        return teacherName;
+    }
+
+    public void setTeacherName(String teacherName) {
+        this.teacherName = teacherName;
+    }
+
+    public String getInspectCollegeName() {
+        return inspectCollegeName;
+    }
+
+    public void setInspectCollegeName(String inspectCollegeName) {
+        this.inspectCollegeName = inspectCollegeName;
+    }
+
+    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 getTeachCollegeName() {
+        return teachCollegeName;
+    }
+
+    public void setTeachCollegeName(String teachCollegeName) {
+        this.teachCollegeName = teachCollegeName;
+    }
+
+    public String getScoreAssign() {
+        return scoreAssign;
+    }
+
+    public void setScoreAssign(String scoreAssign) {
+        this.scoreAssign = scoreAssign;
+    }
+
+    public String getTeacherCount() {
+        return teacherCount;
+    }
+
+    public void setTeacherCount(String teacherCount) {
+        this.teacherCount = teacherCount;
+    }
+
+    public String getRank() {
+        return rank;
+    }
+
+    public void setRank(String rank) {
+        this.rank = rank;
+    }
+}

+ 8 - 0
teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/mapper/TAExamCourseCollegeTeacherMapper.java

@@ -1,7 +1,12 @@
 package com.qmth.teachcloud.report.business.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.qmth.teachcloud.report.business.bean.result.TeacherClassRankResult;
+import com.qmth.teachcloud.report.business.bean.result.TeacherMyClassRankResult;
 import com.qmth.teachcloud.report.business.entity.TAExamCourseCollegeTeacher;
+import org.apache.ibatis.annotations.Param;
 
 /**
  * <p>
@@ -13,4 +18,7 @@ import com.qmth.teachcloud.report.business.entity.TAExamCourseCollegeTeacher;
  */
 public interface TAExamCourseCollegeTeacherMapper extends BaseMapper<TAExamCourseCollegeTeacher> {
 
+    IPage<TeacherClassRankResult> listClassRank(@Param("page") Page<TeacherClassRankResult> page, @Param("schoolId") Long schoolId, @Param("semester") String semester, @Param("examId") Long examId, @Param("courseCode") String courseCode, @Param("inspectCollegeId") Long inspectCollegeId);
+
+    IPage<TeacherMyClassRankResult> listMyClassRank(@Param("page") Page<TeacherMyClassRankResult> page, @Param("schoolId") Long schoolId, @Param("semester") String semester, @Param("examId") Long examId, @Param("teacherId") Long teacherId, @Param("courseCode") String courseCode, @Param("inspectCollegeId") Long inspectCollegeId);
 }

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

@@ -1,6 +1,9 @@
 package com.qmth.teachcloud.report.business.service;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.qmth.teachcloud.report.business.bean.result.TeacherClassRankResult;
+import com.qmth.teachcloud.report.business.bean.result.TeacherMyClassRankResult;
 import com.qmth.teachcloud.report.business.entity.TAExamCourseCollegeTeacher;
 
 /**
@@ -13,4 +16,7 @@ import com.qmth.teachcloud.report.business.entity.TAExamCourseCollegeTeacher;
  */
 public interface TAExamCourseCollegeTeacherService extends IService<TAExamCourseCollegeTeacher> {
 
+    IPage<TeacherClassRankResult> listClassRank(String semester, Long examId, String courseCode, Long inspectCollegeId, Integer pageNumber, Integer pageSize);
+
+    IPage<TeacherMyClassRankResult> listMyClassRank(String semester, Long examId, Long teacherId, String courseCode, Long inspectCollegeId, Integer pageNumber, Integer pageSize);
 }

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

@@ -1,11 +1,18 @@
 package com.qmth.teachcloud.report.business.service.impl;
 
+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.qmth.teachcloud.common.util.ServletUtil;
+import com.qmth.teachcloud.report.business.bean.result.TeacherClassRankResult;
+import com.qmth.teachcloud.report.business.bean.result.TeacherMyClassRankResult;
 import com.qmth.teachcloud.report.business.entity.TAExamCourseCollegeTeacher;
 import com.qmth.teachcloud.report.business.mapper.TAExamCourseCollegeTeacherMapper;
 import com.qmth.teachcloud.report.business.service.TAExamCourseCollegeTeacherService;
 import org.springframework.stereotype.Service;
 
+import javax.annotation.Resource;
+
 /**
  * <p>
  * 参考课程学院下授课教师维度分析表 服务实现类
@@ -17,4 +24,22 @@ import org.springframework.stereotype.Service;
 @Service
 public class TAExamCourseCollegeTeacherServiceImpl extends ServiceImpl<TAExamCourseCollegeTeacherMapper, TAExamCourseCollegeTeacher> implements TAExamCourseCollegeTeacherService {
 
+    @Resource
+    private TAExamCourseCollegeTeacherMapper taExamCourseCollegeTeacherMapper;
+
+    @Override
+    public IPage<TeacherClassRankResult> listClassRank(String semester, Long examId, String courseCode, Long inspectCollegeId, Integer pageNumber, Integer pageSize) {
+        Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
+        Page<TeacherClassRankResult> page = new Page<>(pageNumber, pageSize);
+        IPage<TeacherClassRankResult> listPage = taExamCourseCollegeTeacherMapper.listClassRank(page, schoolId, semester, examId, courseCode, inspectCollegeId);
+        return listPage;
+    }
+
+    @Override
+    public IPage<TeacherMyClassRankResult> listMyClassRank(String semester, Long examId, Long teacherId, String courseCode, Long inspectCollegeId, Integer pageNumber, Integer pageSize) {
+        Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
+        Page<TeacherMyClassRankResult> page = new Page<>(pageNumber, pageSize);
+        IPage<TeacherMyClassRankResult> listPage = taExamCourseCollegeTeacherMapper.listMyClassRank(page, schoolId, semester, examId, teacherId, courseCode, inspectCollegeId);
+        return listPage;
+    }
 }

+ 63 - 0
teachcloud-report-business/src/main/resources/mapper/TAExamCourseCollegeTeacherMapper.xml

@@ -2,4 +2,67 @@
 <!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.TAExamCourseCollegeTeacherMapper">
 
+    <select id="listClassRank"
+            resultType="com.qmth.teachcloud.report.business.bean.result.TeacherClassRankResult">
+        SELECT
+            a.teacher_name teacherName,
+            a.inspect_college_name inspectCollegeName,
+            a.course_code courseCode,
+            a.course_name courseName,
+            a.teach_college_name teachCollegeName,
+            a.avg_score avgScore,
+            a.avg_score_assign avgScoreAssign,
+            a.rank
+        FROM
+            t_a_exam_course_college_teacher a
+                LEFT JOIN
+            t_b_exam b ON a.exam_id = b.id
+        <where>
+            and b.school_id = #{schoolId}
+            <if test="semester != null and semester != ''">
+                and b.semester = #{semester}
+            </if>
+            <if test="examId != null">
+                and a.exam_id = #{examId}
+            </if>
+            <if test="courseCode != null and courseCode != ''">
+                and a.course_code = #{courseCode}
+            </if>
+            <if test="inspectCollegeId != null">
+                and a.inspect_college_id = #{inspectCollegeId}
+            </if>
+        </where>
+    </select>
+    <select id="listMyClassRank"
+            resultType="com.qmth.teachcloud.report.business.bean.result.TeacherMyClassRankResult">
+        SELECT
+            a.teacher_name teacherName,
+            a.inspect_college_name inspectCollegeName,
+            a.course_code courseCode,
+            a.course_name courseName,
+            a.teach_college_name teachCollegeName,
+            a.avg_score avgScore,
+            a.teacher_count teacherCount,
+            a.rank
+        FROM
+            t_a_exam_course_college_teacher a
+                LEFT JOIN
+            t_b_exam b ON a.exam_id = b.id
+        <where>
+            and b.school_id = #{schoolId}
+            and a.teacher_id = #{teacherId}
+            <if test="semester != null and semester != ''">
+                and b.semester = #{semester}
+            </if>
+            <if test="examId != null">
+                and a.exam_id = #{examId}
+            </if>
+            <if test="courseCode != null and courseCode != ''">
+                and a.course_code = #{courseCode}
+            </if>
+            <if test="inspectCollegeId != null">
+                and a.inspect_college_id = #{inspectCollegeId}
+            </if>
+        </where>
+    </select>
 </mapper>

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

@@ -1,8 +1,16 @@
 package com.qmth.teachcloud.report.api;
 
 
+import com.qmth.boot.api.constant.ApiConstant;
+import com.qmth.teachcloud.common.util.Result;
+import com.qmth.teachcloud.common.util.ResultUtil;
+import com.qmth.teachcloud.report.business.bean.result.TBExamStudentResult;
+import com.qmth.teachcloud.report.business.service.TAExamCourseCollegeTeacherService;
+import io.swagger.annotations.*;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.RequestMapping;
-
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
 /**
@@ -13,8 +21,38 @@ import org.springframework.web.bind.annotation.RestController;
  * @author wangliang
  * @since 2021-06-01
  */
+@Api(tags = "教研分析教师模板Controller")
 @RestController
-@RequestMapping("/t-aexam-course-college-teacher")
+@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.reportSchool}/teacher")
 public class TAExamCourseCollegeTeacherController {
 
+    @Autowired
+    private TAExamCourseCollegeTeacherService taExamCourseCollegeTeacherService;
+
+    @ApiOperation(value = "教师各课堂成绩排名")
+    @RequestMapping(value = "/list_class_rank", method = RequestMethod.POST)
+    @ApiResponses({@ApiResponse(code = 200, message = "开课成绩查询信息", response = TBExamStudentResult.class)})
+    public Result listClassRank(
+            @ApiParam(value = "学期", required = true) @RequestParam String semester,
+            @ApiParam(value = "考试ID", required = true) @RequestParam Long examId,
+            @ApiParam(value = "课程代码", required = true) @RequestParam String courseCode,
+            @ApiParam(value = "考查学院ID", required = true) @RequestParam Long inspectCollegeId,
+            @ApiParam(value = "分页页码", required = true) @RequestParam Integer pageNumber,
+            @ApiParam(value = "分页数量", required = true) @RequestParam Integer pageSize) {
+        return ResultUtil.ok(taExamCourseCollegeTeacherService.listClassRank(semester, examId, courseCode, inspectCollegeId, pageNumber, pageSize));
+    }
+
+    @ApiOperation(value = "我的课堂考成绩排名")
+    @RequestMapping(value = "/list_myclass_rank", method = RequestMethod.POST)
+    @ApiResponses({@ApiResponse(code = 200, message = "开课成绩查询信息", response = TBExamStudentResult.class)})
+    public Result listMyClassRank(
+            @ApiParam(value = "学期", required = true) @RequestParam String semester,
+            @ApiParam(value = "考试ID", required = true) @RequestParam Long examId,
+            @ApiParam(value = "教师ID", required = true) @RequestParam Long teacherId,
+            @ApiParam(value = "课程代码", required = true) @RequestParam String courseCode,
+            @ApiParam(value = "考查学院ID", required = true) @RequestParam Long inspectCollegeId,
+            @ApiParam(value = "分页页码", required = true) @RequestParam Integer pageNumber,
+            @ApiParam(value = "分页数量", required = true) @RequestParam Integer pageSize) {
+        return ResultUtil.ok(taExamCourseCollegeTeacherService.listMyClassRank(semester, examId, teacherId, courseCode, inspectCollegeId, pageNumber, pageSize));
+    }
 }

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

@@ -31,7 +31,7 @@ import java.util.Objects;
  * @author wangliang
  * @since 2021-06-01
  */
-@Api(tags = "教研分析学校公用Controller")
+@Api(tags = "教研分析学生模块Controller")
 @RestController
 @RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.reportSchool}/student")
 public class TBExamStudentController {