Browse Source

云教练作业优化

zouxuan 4 years ago
parent
commit
efc7a35c3a

+ 33 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/TeacherServeHomeworkPojo.java

@@ -1,5 +1,7 @@
 package com.ym.mec.biz.dal.dto;
 
+import io.swagger.annotations.ApiModelProperty;
+
 public class TeacherServeHomeworkPojo {
 
     private String subjectName;
@@ -22,6 +24,37 @@ public class TeacherServeHomeworkPojo {
 
     private String teachMode;
 
+    private Integer signInStatus;
+
+    private Integer signOutStatus;
+
+    @ApiModelProperty(value = "是否是第一次进行学生点名")
+    private int studentAttendanceIsFirstTime;
+
+    public int getStudentAttendanceIsFirstTime() {
+        return studentAttendanceIsFirstTime;
+    }
+
+    public void setStudentAttendanceIsFirstTime(int studentAttendanceIsFirstTime) {
+        this.studentAttendanceIsFirstTime = studentAttendanceIsFirstTime;
+    }
+
+    public Integer getSignInStatus() {
+        return signInStatus;
+    }
+
+    public void setSignInStatus(Integer signInStatus) {
+        this.signInStatus = signInStatus;
+    }
+
+    public Integer getSignOutStatus() {
+        return signOutStatus;
+    }
+
+    public void setSignOutStatus(Integer signOutStatus) {
+        this.signOutStatus = signOutStatus;
+    }
+
     public String getSubjectName() {
         return subjectName;
     }

+ 6 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/StudentExtracurricularExercisesSituationService.java

@@ -59,4 +59,10 @@ public interface StudentExtracurricularExercisesSituationService extends BaseSer
 
     PageInfo<TeacherServeExtraDto> queryTeacherServeExtraDetail(TeacherServeHomeworkQueryInfo queryInfo);
 
+    /**
+     * 获取能布置作业的课程数量
+     * @param queryInfo
+     * @return
+     */
+    int countWaitCreateHomeworkNum(TeacherServeHomeworkQueryInfo queryInfo);
 }

+ 18 - 4
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentExtracurricularExercisesSituationServiceImpl.java

@@ -62,6 +62,8 @@ public class StudentExtracurricularExercisesSituationServiceImpl extends BaseSer
 	@Autowired
 	private ClassGroupDao classGroupDao;
 	@Autowired
+	private StudentAttendanceDao studentAttendanceDao;
+	@Autowired
 	private CourseScheduleStudentPaymentDao courseScheduleStudentPaymentDao;
 
 	@Override
@@ -418,15 +420,16 @@ public class StudentExtracurricularExercisesSituationServiceImpl extends BaseSer
 		MapUtil.populateMap(params, queryInfo);
 		params.put("courseIds", courseIds);
 
-		Map<Long,Long> memberNumMap = MapUtil.convertIntegerMap(studentDao.countCourseStudentMemberNum(courseIds));
-		Map<Long,String> studentSubjectMap = MapUtil.convertMybatisMap(studentDao.countCourseStudentSubjectName(courseIds));
-		Map<Long, Long> studentNumMap = MapUtil.convertIntegerMap(courseScheduleStudentPaymentDao.countCourseStudentNum(courseIds));
-
 		List<CourseHomework> courseHomeworks = courseHomeworkDao.findByCourseSchedules(new ArrayList<>(courseIds));
 		if(!CollectionUtils.isEmpty(courseHomeworks)){
 			Set<Long> collect = courseHomeworks.stream().map(e -> e.getCourseScheduleId()).collect(Collectors.toSet());
 			courseIds.removeAll(collect);
 		}
+		Map<Long,Long> memberNumMap = MapUtil.convertIntegerMap(studentDao.countCourseStudentMemberNum(courseIds));
+		Map<Long,String> studentSubjectMap = MapUtil.convertMybatisMap(studentDao.countCourseStudentSubjectName(courseIds));
+		Map<Long, Long> studentNumMap = MapUtil.convertIntegerMap(courseScheduleStudentPaymentDao.countCourseStudentNum(courseIds));
+		Map<Integer, Long> studentNumCourseMap = MapUtil.convertIntegerMap(studentAttendanceDao.countStudentAttendancesByCourses(courseIds));
+
 		if(courseIds.size() == 0){
 			return pageInfo;
 		}
@@ -438,6 +441,12 @@ public class StudentExtracurricularExercisesSituationServiceImpl extends BaseSer
 			homeworkPojos = courseScheduleDao.queryHomeworkPojoByCourseScheduleIds(params);
 			pageInfo.setRows(homeworkPojos);
 			for (TeacherServeHomeworkPojo homeworkPojo : homeworkPojos) {
+				Long studentNum = studentNumCourseMap.get(homeworkPojo.getCourseScheduleId().intValue());
+				if (Objects.nonNull(studentNum)) {
+					homeworkPojo.setStudentAttendanceIsFirstTime(studentNum > 0 ? 0 : 1);
+				} else {
+					homeworkPojo.setStudentAttendanceIsFirstTime(1);
+				}
 				Long aLong = memberNumMap.get(homeworkPojo.getCourseScheduleId());
 				homeworkPojo.setMemberNum(aLong==null?0:aLong.intValue());
 				Long aLong1 = studentNumMap.get(homeworkPojo.getCourseScheduleId());
@@ -520,4 +529,9 @@ public class StudentExtracurricularExercisesSituationServiceImpl extends BaseSer
 		pageInfo.setRows(dataList);
 		return pageInfo;
 	}
+
+	@Override
+	public int countWaitCreateHomeworkNum(TeacherServeHomeworkQueryInfo queryInfo) {
+		return 0;
+	}
 }

+ 7 - 2
mec-biz/src/main/resources/config/mybatis/CourseScheduleMapper.xml

@@ -4035,6 +4035,8 @@
         <result property="endClassTime" column="end_class_time_"/>
         <result property="classDate" column="class_date_"/>
         <result property="teachMode" column="teach_mode_"/>
+        <result property="signInStatus" column="sign_in_status_"/>
+        <result property="signOutStatus" column="sign_out_status_"/>
     </resultMap>
     <select id="queryHomeworkPojoByCourseScheduleIds" resultMap="TeacherServeHomeworkPojo">
         SELECT
@@ -4044,10 +4046,13 @@
         cs.class_date_,
         cs.start_class_time_,
         cs.end_class_time_,
-        cs.teach_mode_
+        cs.teach_mode_,
+        IF(ta.sign_in_status_ IS NULL,0,1) sign_in_status_,
+        IF(ta.sign_out_status_ IS NULL,0,1) sign_out_status_
         FROM course_schedule cs
+        LEFT JOIN teacher_attendance ta ON ta.course_schedule_id_ = cs.id_
         LEFT JOIN class_group cg ON cs.class_group_id_ = cg.id_
-        WHERE cs.id_ IN
+        WHERE ta.teacher_id_ = #{teacherId} AND cs.id_ IN
         <foreach collection="courseIds" item="courseId" open="(" close=")" separator=",">
             #{courseId}
         </foreach>

+ 12 - 1
mec-teacher/src/main/java/com/ym/mec/teacher/controller/ExtracurricularExercisesController.java

@@ -57,7 +57,7 @@ public class ExtracurricularExercisesController extends BaseController {
     @Autowired
     private StudentDao studentDao;
 
-    @ApiOperation(value = "教师服务课后作业")
+    @ApiOperation(value = "获取教师有服务指标的课程列表")
     @GetMapping("/queryTeacherServeHomeworkDetail")
     public HttpResponseResult queryTeacherServeHomeworkDetail(TeacherServeHomeworkQueryInfo queryInfo) {
         SysUser sysUser = sysUserFeignService.queryUserInfo();
@@ -68,6 +68,17 @@ public class ExtracurricularExercisesController extends BaseController {
         return succeed(studentExtracurricularExercisesSituationService.queryTeacherServeHomeworkDetail1(queryInfo));
     }
 
+    @ApiOperation(value = "统计老师当前时间能布置作业的课程数量")
+    @GetMapping("/countWaitCreateHomeworkNum")
+    public HttpResponseResult countWaitCreateHomeworkNum(TeacherServeHomeworkQueryInfo queryInfo) {
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if (sysUser == null) {
+            return failed("用户信息获取失败");
+        }
+        queryInfo.setTeacherId(sysUser.getId());
+        return succeed(studentExtracurricularExercisesSituationService.countWaitCreateHomeworkNum(queryInfo));
+    }
+
     @ApiOperation(value = "创建课外训练")
     @PostMapping("/createExtraExercises")
     @AuditLogAnnotation(operateName = "创建课外训练")