浏览代码

Merge branch 'master' of http://git.dayaedu.com/yonge/mec

zouxuan 5 年之前
父节点
当前提交
ebc963111f

+ 19 - 8
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentAttendanceDao.java

@@ -1,20 +1,20 @@
 package com.ym.mec.biz.dal.dao;
 
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
-
-import org.apache.ibatis.annotations.Delete;
-import org.apache.ibatis.annotations.Param;
-import org.apache.ibatis.annotations.Select;
-
 import com.ym.mec.biz.dal.dto.StudentAttendanceResponse;
 import com.ym.mec.biz.dal.dto.StudentAttendanceStatusCountDto;
 import com.ym.mec.biz.dal.dto.StudentPersonalAttendanceDto;
 import com.ym.mec.biz.dal.dto.StudentStatusCountUtilEntity;
 import com.ym.mec.biz.dal.entity.StudentAttendance;
 import com.ym.mec.biz.dal.enums.GroupType;
+import com.ym.mec.biz.dal.enums.StudentAttendanceStatusEnum;
 import com.ym.mec.common.dal.BaseDAO;
+import org.apache.ibatis.annotations.Delete;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Select;
+
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
 
 public interface StudentAttendanceDao extends BaseDAO<Long, StudentAttendance> {
 
@@ -150,6 +150,17 @@ public interface StudentAttendanceDao extends BaseDAO<Long, StudentAttendance> {
     List<Map<Integer,Integer>> countStudentAttendancesByCourses(@Param("courseScheduleIds") List courseScheduleIds);
 
     /**
+     * @describe 统计课程里对应状态的学生数量
+     * @author Joburgess
+     * @date 2020/4/18
+     * @param courseScheduleIds:
+     * @param status:
+     * @return java.util.List<java.util.Map<java.lang.Integer,java.lang.Integer>>
+     */
+    List<Map<Integer, Integer>> countStudentAttendancesByCoursesAndStatus(@Param("courseScheduleIds") List courseScheduleIds,
+                                                                          @Param("status") StudentAttendanceStatusEnum status);
+
+    /**
      * @describe 根据课程获取最后的点名时间
      * @author Joburgess
      * @date 2019/10/24

+ 3 - 5
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ExtracurricularExercisesReplyServiceImpl.java

@@ -225,16 +225,14 @@ public class ExtracurricularExercisesReplyServiceImpl extends BaseServiceImpl<Lo
 			int exercisesMessageNum=0;
 			int exercisesMessageTimelyNum=0;
 			for (ExtracurricularExercisesReply studentExercise : studentExercises) {
-				if(Objects.isNull(studentExercise.getSubmitTime())
-					||Objects.isNull(studentExercise.getCreateTime())){
+				if(!new Integer(1).equals(studentExercise.getStatus())){
 					continue;
 				}
-				if(studentExercise.getSubmitTime().after(studentExercise.getCreateTime())){
+				if(!new Integer(1).equals(studentExercise.getIsReplied())){
 					continue;
 				}
 				exercisesMessageNum+=1;
-				int hours = DateUtil.hoursBetween(studentExercise.getSubmitTime(), studentExercise.getCreateTime());
-				if(hours<=12){
+				if(new Integer(1).equals(studentExercise.getIsRepliedTimely())){
 					exercisesMessageTimelyNum+=1;
 				}
 			}

+ 11 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupServiceImpl.java

@@ -651,12 +651,22 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 		Map<String, Object> params = new HashMap<>();
 		MapUtil.populateMap(params, queryInfo);
 
-		List dataList = null;
+		List<VipGroupCourseSchduleRecordDto> dataList = null;
 		int count = vipGroupDao.countTeachingRecord(params);
 		if (count > 0) {
 			pageInfo.setTotal(count);
 			params.put("offset", pageInfo.getOffset());
 			dataList = vipGroupDao.findTeachingRecord(params);
+			List<Long> courseScheduleIds = dataList.stream().map(VipGroupCourseSchduleRecordDto::getId).collect(Collectors.toList());
+			List<Map<Integer, Integer>> maps = studentAttendanceDao.countStudentAttendancesByCoursesAndStatus(courseScheduleIds, StudentAttendanceStatusEnum.NORMAL);
+			if(!CollectionUtils.isEmpty(maps)){
+				Map<Long, Long> courseStudentNumMap= MapUtil.convertIntegerMap(maps);
+				for (VipGroupCourseSchduleRecordDto vipGroupCourseSchduleRecordDto : dataList) {
+					if(Objects.nonNull(courseStudentNumMap.get(vipGroupCourseSchduleRecordDto.getId()))){
+						vipGroupCourseSchduleRecordDto.setAttendanceNum(courseStudentNumMap.get(vipGroupCourseSchduleRecordDto.getId()).intValue());
+					}
+				}
+			}
 		}
 		if (count == 0) {
 			dataList = new ArrayList<>();

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

@@ -306,10 +306,10 @@
 			eer.user_id_,
 			eer.status_,
 			eer.submit_time_,
-			eem.create_time_
+			eer.is_replied_,
+			eer.is_replied_timely_
 		FROM
 			extracurricular_exercises_reply eer
-		LEFT JOIN extracurricular_exercises_message eem ON eer.id_=eem.extracurricular_exercises_reply_id_ AND eem.role_='TEACHER'
 		WHERE
 			DATE_FORMAT( eer.create_time_, '%Y-%m-%d' ) BETWEEN #{monday} AND #{sunday}
 			AND EXISTS (

+ 15 - 0
mec-biz/src/main/resources/config/mybatis/StudentAttendanceMapper.xml

@@ -433,6 +433,21 @@
         GROUP BY
             course_schedule_id_
     </select>
+    <select id="countStudentAttendancesByCoursesAndStatus" resultType="java.util.Map">
+        SELECT
+        course_schedule_id_ AS 'key',
+        COUNT( id_ ) AS 'value'
+        FROM
+        student_attendance
+        WHERE
+        status_=#{status, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
+        AND course_schedule_id_ IN
+        <foreach collection="courseScheduleIds" item="courseScheduleId" open="(" close=")" separator=",">
+            #{courseScheduleId}
+        </foreach>
+        GROUP BY
+        course_schedule_id_
+    </select>
     <select id="countCourseLeaveStudentNumWithFourHoursAgo" resultType="java.util.Map">
         SELECT
             sa.course_schedule_id_ AS 'key',

+ 1 - 1
mec-biz/src/main/resources/config/mybatis/VipGroupMapper.xml

@@ -606,7 +606,7 @@
             CONCAT(cs.class_date_,' ',cs.end_class_time_) end_class_time_,
             cs.status_,
             cs.teach_mode_,
-            cs.student_num_,s.name_ school_name_,
+            s.name_ school_name_,
             csts.actual_salary_ IS NOT NULL is_salary_,
             cs.schoole_id_,
             IF(ta.sign_in_status_ IS NULL,3,ta.sign_in_status_) sign_in_status_,